- 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
140 lines
3.2 KiB
Protocol Buffer
Executable file
140 lines
3.2 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 "action.proto";
|
|
import "cue.proto";
|
|
import "presentation.proto";
|
|
import "uuid.proto";
|
|
|
|
message TriggerSource {
|
|
message Library {
|
|
string path = 1;
|
|
string presentation_name = 2;
|
|
}
|
|
|
|
message Playlist {
|
|
.rv.data.UUID identifier = 1;
|
|
.rv.data.UUID item_identifier = 2;
|
|
}
|
|
|
|
oneof Location {
|
|
.rv.data.TriggerSource.Library library_location = 1;
|
|
.rv.data.TriggerSource.Playlist playlist_location = 2;
|
|
.rv.data.TriggerSource.Playlist media_playlist_location = 3;
|
|
.rv.data.TriggerSource.Playlist audio_playlist_location = 4;
|
|
}
|
|
}
|
|
|
|
message TimedPlayback {
|
|
message Sequence {
|
|
message SequenceItem {
|
|
.rv.data.UUID identifier = 1;
|
|
double time = 2;
|
|
.rv.data.TriggerSource trigger_source = 3;
|
|
.rv.data.Action.ContentDestination content_destination = 4;
|
|
double end_time = 7;
|
|
oneof Item {
|
|
.rv.data.Cue cue = 5;
|
|
.rv.data.Action action = 6;
|
|
}
|
|
}
|
|
|
|
repeated .rv.data.TimedPlayback.Sequence.SequenceItem sequence = 1;
|
|
.rv.data.Action.ContentDestination content_destination = 2;
|
|
.rv.data.Presentation presentation = 3;
|
|
}
|
|
|
|
message Timing {
|
|
message LayerTransport {
|
|
int32 layer = 1;
|
|
}
|
|
|
|
message SMPTETimecode {
|
|
enum Format {
|
|
FORMAT_24_FPS = 0;
|
|
FORMAT_25_FPS = 1;
|
|
FORMAT_29_97_FPS = 2;
|
|
FORMAT_30_FPS = 3;
|
|
}
|
|
|
|
string device_identifier = 1;
|
|
int32 channel = 2;
|
|
.rv.data.TimedPlayback.Timing.SMPTETimecode.Format format = 3;
|
|
double offset = 4;
|
|
}
|
|
|
|
message Internal {
|
|
double duration = 1;
|
|
bool should_loop = 2;
|
|
}
|
|
|
|
oneof Source {
|
|
.rv.data.TimedPlayback.Timing.LayerTransport layer_transport = 1;
|
|
.rv.data.TimedPlayback.Timing.SMPTETimecode smpte_timecode = 2;
|
|
.rv.data.TimedPlayback.Timing.Internal internal = 3;
|
|
}
|
|
}
|
|
|
|
message Update {
|
|
message Play {
|
|
}
|
|
|
|
message Record {
|
|
bool is_recording = 1;
|
|
}
|
|
|
|
message Pause {
|
|
}
|
|
|
|
message Reset {
|
|
}
|
|
|
|
message JumpToTime {
|
|
double time = 1;
|
|
}
|
|
|
|
message StartScrub {
|
|
double time = 1;
|
|
}
|
|
|
|
message EndScrub {
|
|
double time = 2;
|
|
}
|
|
|
|
message Duration {
|
|
double duration = 1;
|
|
}
|
|
|
|
message Loop {
|
|
bool loop = 1;
|
|
}
|
|
|
|
message MonitorSource {
|
|
bool enable = 1;
|
|
}
|
|
|
|
oneof ActionType {
|
|
.rv.data.TimedPlayback.Update.Play play = 1;
|
|
.rv.data.TimedPlayback.Update.Record record = 2;
|
|
.rv.data.TimedPlayback.Update.Pause pause = 3;
|
|
.rv.data.TimedPlayback.Update.Reset reset = 4;
|
|
.rv.data.TimedPlayback.Update.JumpToTime jump_to_time = 5;
|
|
.rv.data.TimedPlayback.Update.StartScrub start_scrub = 6;
|
|
.rv.data.TimedPlayback.Update.EndScrub end_scrub = 7;
|
|
.rv.data.TimedPlayback.Update.Duration duration = 8;
|
|
.rv.data.TimedPlayback.Update.Loop loop = 9;
|
|
.rv.data.TimedPlayback.Sequence update_sequence = 10;
|
|
.rv.data.TimedPlayback.Update.MonitorSource monitor_source = 11;
|
|
}
|
|
}
|
|
|
|
.rv.data.TimedPlayback.Sequence sequence = 1;
|
|
.rv.data.TimedPlayback.Timing timing = 2;
|
|
}
|
|
|