propresenter-php/proto/proApiV1Presentation.proto
Thorsten Bus 22ba4aff7d refactor: make repo Composer-compatible by moving php/ to root and ref/ to doc/reference_samples
- Move src/, tests/, bin/, generated/, proto/, composer.json, composer.lock, phpunit.xml from php/ to repo root
- Move ref/ to doc/reference_samples/ for better organization
- Remove vendor/ from git tracking (now properly gitignored)
- Update all test file paths (dirname adjustments and ref/ -> doc/reference_samples/)
- Update all documentation paths (AGENTS.md, doc/*.md)
- Remove php.bak/ directory
- All 252 tests pass
2026-03-30 13:26:29 +02:00

224 lines
6.5 KiB
Protocol Buffer
Executable file

syntax = "proto3";
package rv.data;
option cc_enable_arenas = true;
option csharp_namespace = "Pro.SerializationInterop.RVProtoData";
option swift_prefix = "RVData_";
import "google/protobuf/wrappers.proto";
import "proApiV1Color.proto";
import "proApiV1ContentType.proto";
import "proApiV1Identifier.proto";
import "proApiV1Size.proto";
import "proApiV1TimelineOperation.proto";
import "uuid.proto";
message API_v1_SlideIndex {
uint32 index = 1;
.rv.data.API_v1_Identifier presentation_id = 2;
}
message API_v1_Presentation {
message SlideGroup {
message Slide {
bool enabled = 1;
string notes = 2;
string text = 3;
string label = 5;
.rv.data.API_v1_Size size = 6;
}
string name = 1;
.rv.data.API_v1_Color color = 2;
repeated .rv.data.API_v1_Presentation.SlideGroup.Slide slides = 3;
}
enum Destination {
presentation = 0;
announcements = 1;
}
.rv.data.API_v1_Identifier id = 1;
repeated .rv.data.API_v1_Presentation.SlideGroup groups = 2;
bool has_timeline = 3;
string presentation_path = 4;
.rv.data.API_v1_Presentation.Destination destination = 5;
}
message API_v1_Presentation_Request {
message Active {
}
message SlideIndex {
}
message ChordChart {
int32 quality = 1;
}
message ChordChartUpdates {
}
message Presentation {
.rv.data.UUID uuid = 1;
}
message DeletePresentation {
.rv.data.UUID uuid = 1;
}
message TimelineOperation {
.rv.data.UUID uuid = 1;
.rv.data.API_v1_TimelineOperation operation = 2;
}
message ActivePresentationTimelineOperation {
.rv.data.API_v1_TimelineOperation operation = 1;
}
message FocusedPresentationTimelineOperation {
.rv.data.API_v1_TimelineOperation operation = 1;
}
message ActivePresentationTimelineStatus {
}
message FocusedPresentationTimelineStatus {
}
message Thumbnail {
.rv.data.UUID uuid = 1;
uint32 cue_index = 2;
int32 quality = 3;
.rv.data.API_v1_ContentType content_type = 4;
}
message EmptyMessage {
}
message FocusMessage {
oneof Presentation {
.rv.data.API_v1_Presentation_Request.EmptyMessage next = 1;
.rv.data.API_v1_Presentation_Request.EmptyMessage previous = 2;
.rv.data.API_v1_Presentation_Request.EmptyMessage active = 3;
string uuid = 4;
}
}
message TriggerMessage {
oneof Presentation {
.rv.data.API_v1_Presentation_Request.EmptyMessage focused = 1;
.rv.data.API_v1_Presentation_Request.EmptyMessage active = 2;
.google.protobuf.StringValue uuid = 3;
}
oneof Cue {
.rv.data.API_v1_Presentation_Request.EmptyMessage first = 4;
.rv.data.API_v1_Presentation_Request.EmptyMessage next = 5;
.rv.data.API_v1_Presentation_Request.EmptyMessage previous = 6;
.google.protobuf.UInt32Value index = 7;
.google.protobuf.StringValue group = 8;
}
}
oneof Request {
.rv.data.API_v1_Presentation_Request.Active active = 1;
.rv.data.API_v1_Presentation_Request.EmptyMessage focused = 2;
.rv.data.API_v1_Presentation_Request.SlideIndex slide_index = 3;
.rv.data.API_v1_Presentation_Request.ChordChart chord_chart = 4;
.rv.data.API_v1_Presentation_Request.ChordChartUpdates chord_chart_updates = 5;
.rv.data.API_v1_Presentation_Request.Presentation presentation = 6;
.rv.data.API_v1_Presentation_Request.DeletePresentation delete_presentation = 7;
.rv.data.API_v1_Presentation_Request.TimelineOperation timeline_operation = 8;
.rv.data.API_v1_Presentation_Request.ActivePresentationTimelineOperation active_presentation_timeline_operation = 9;
.rv.data.API_v1_Presentation_Request.FocusedPresentationTimelineOperation focused_presentation_timeline_operation = 10;
.rv.data.API_v1_Presentation_Request.ActivePresentationTimelineStatus active_presentation_timeline_status = 11;
.rv.data.API_v1_Presentation_Request.FocusedPresentationTimelineStatus focused_presentation_timeline_status = 12;
.rv.data.API_v1_Presentation_Request.Thumbnail thumbnail = 13;
.rv.data.API_v1_Presentation_Request.FocusMessage focus = 14;
.rv.data.API_v1_Presentation_Request.TriggerMessage trigger = 15;
}
}
message API_v1_Presentation_Response {
message Active {
.rv.data.API_v1_Presentation presentation = 1;
}
message SlideIndex {
.rv.data.API_v1_SlideIndex presentation_index = 1;
}
message ChordChart {
bytes chord_chart = 1;
}
message ChordChartUpdates {
}
message Presentation {
.rv.data.API_v1_Presentation presentation = 1;
}
message DeletePresentation {
}
message TriggerPresentation {
}
message TriggerCue {
}
message TimelineOperation {
}
message ActivePresentationTimelineOperation {
}
message FocusedPresentationTimelineOperation {
}
message ActivePresentationTimelineStatus {
bool is_running = 1;
double current_time = 2;
}
message FocusedPresentationTimelineStatus {
bool is_running = 1;
double current_time = 2;
}
message Thumbnail {
bytes data = 1;
.rv.data.API_v1_ContentType content_type = 2;
}
message Focused {
.rv.data.API_v1_Identifier id = 1;
}
message EmptyMessage {
}
oneof Response {
.rv.data.API_v1_Presentation_Response.Active active = 1;
.rv.data.API_v1_Presentation_Response.SlideIndex slide_index = 2;
.rv.data.API_v1_Presentation_Response.ChordChart chord_chart = 3;
.rv.data.API_v1_Presentation_Response.ChordChartUpdates chord_chart_update = 4;
.rv.data.API_v1_Presentation_Response.Presentation presentation = 5;
.rv.data.API_v1_Presentation_Response.DeletePresentation delete_presentation = 6;
.rv.data.API_v1_Presentation_Response.TriggerPresentation trigger_presentation = 7;
.rv.data.API_v1_Presentation_Response.TriggerCue trigger_cue = 8;
.rv.data.API_v1_Presentation_Response.TimelineOperation timeline_operation = 9;
.rv.data.API_v1_Presentation_Response.ActivePresentationTimelineOperation active_presentation_timeline_operation = 10;
.rv.data.API_v1_Presentation_Response.FocusedPresentationTimelineOperation focused_presentation_timeline_operation = 11;
.rv.data.API_v1_Presentation_Response.ActivePresentationTimelineStatus active_presentation_timeline_status = 12;
.rv.data.API_v1_Presentation_Response.FocusedPresentationTimelineStatus focused_presentation_timeline_status = 13;
.rv.data.API_v1_Presentation_Response.Thumbnail thumbnail = 14;
.rv.data.API_v1_Presentation_Response.Focused focused = 15;
.rv.data.API_v1_Presentation_Response.EmptyMessage focus = 16;
.rv.data.API_v1_Presentation_Response.EmptyMessage trigger = 17;
}
}