- 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
552 lines
14 KiB
Protocol Buffer
Executable file
552 lines
14 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 "alphaType.proto";
|
|
import "ccli.proto";
|
|
import "cue.proto";
|
|
import "effects.proto";
|
|
import "graphicsData.proto";
|
|
import "input.proto";
|
|
import "macros.proto";
|
|
import "messages.proto";
|
|
import "playlist.proto";
|
|
import "preferences.proto";
|
|
import "presentation.proto";
|
|
import "proCoreTestPatterns.proto";
|
|
import "propDocument.proto";
|
|
import "propresenter.proto";
|
|
import "slide.proto";
|
|
import "recording.proto";
|
|
import "stage.proto";
|
|
import "timers.proto";
|
|
import "url.proto";
|
|
import "uuid.proto";
|
|
import "proworkspace.proto";
|
|
import "digitalAudio.proto";
|
|
import "proAudienceLook.proto";
|
|
import "proMask.proto";
|
|
import "timedPlayback.proto";
|
|
|
|
message MediaMetadataRequestInfo {
|
|
string file_path = 1;
|
|
float time = 2;
|
|
uint32 width = 3;
|
|
uint32 height = 4;
|
|
repeated .rv.data.Effect effects = 5;
|
|
.rv.data.Graphics.EdgeInsets crop_insets = 6;
|
|
.rv.data.Media.DrawingProperties.NativeRotationType native_rotation = 7;
|
|
bool flipped_horizontally = 8;
|
|
bool flipped_vertically = 9;
|
|
.rv.data.AlphaType alpha_type = 10;
|
|
}
|
|
|
|
message MediaMetadataRequestResponse {
|
|
message Metadata {
|
|
enum ContentType {
|
|
CONTENT_TYPE_UNKNOWN = 0;
|
|
CONTENT_TYPE_AUDIO = 1;
|
|
CONTENT_TYPE_IMAGE = 2;
|
|
CONTENT_TYPE_VIDEO = 3;
|
|
}
|
|
|
|
uint32 width = 1;
|
|
uint32 height = 2;
|
|
float fps = 3;
|
|
float duration = 4;
|
|
uint32 number_audio_channels = 5;
|
|
string codec = 6;
|
|
string artist = 7;
|
|
string title = 8;
|
|
float rotation = 9;
|
|
.rv.data.MediaMetadataRequestResponse.Metadata.ContentType content_type = 10;
|
|
bool has_alpha_channel = 11;
|
|
}
|
|
|
|
message BitmapInfo {
|
|
uint32 width = 1;
|
|
uint32 height = 2;
|
|
}
|
|
|
|
.rv.data.MediaMetadataRequestResponse.Metadata metadata = 1;
|
|
.rv.data.MediaMetadataRequestResponse.BitmapInfo generated_bitmap_info = 2;
|
|
}
|
|
|
|
message NetworkIdentifier {
|
|
message IndexOrName {
|
|
oneof Component {
|
|
int32 index = 1;
|
|
string name = 2;
|
|
}
|
|
}
|
|
|
|
repeated .rv.data.NetworkIdentifier.IndexOrName identifiers = 1;
|
|
}
|
|
|
|
message TriggerOptions {
|
|
.rv.data.Action.ContentDestination content_destination = 1;
|
|
bool suppress_auto_start_video = 2;
|
|
bool suppress_media_background = 3;
|
|
bool force_retrigger = 4;
|
|
bool reset_chord_chart = 5;
|
|
bool from_playlist_library = 6;
|
|
bool from_timeline = 7;
|
|
bool ignore_analytics = 8;
|
|
double start_position = 9;
|
|
.rv.data.TriggerSource trigger_source = 10;
|
|
.rv.data.NetworkIdentifier network_identifier = 11;
|
|
bool request_client_context = 12;
|
|
}
|
|
|
|
message ControlTransport {
|
|
message PlayControlType {
|
|
}
|
|
|
|
message PauseControlType {
|
|
}
|
|
|
|
message RewindControlType {
|
|
}
|
|
|
|
message FastForwardControlType {
|
|
}
|
|
|
|
message SkipBackControlType {
|
|
double offset = 1;
|
|
}
|
|
|
|
message SkipForwardControlType {
|
|
double offset = 1;
|
|
}
|
|
|
|
message StepBackControlType {
|
|
}
|
|
|
|
message StepForwardControlType {
|
|
}
|
|
|
|
message GoToStartControlType {
|
|
double offset = 1;
|
|
}
|
|
|
|
message GoToEndControlType {
|
|
double offset = 1;
|
|
}
|
|
|
|
message JumpToTimeControlType {
|
|
double time = 1;
|
|
}
|
|
|
|
message JumpToPercentControlType {
|
|
double percent = 1;
|
|
}
|
|
|
|
message MarkInPointControlType {
|
|
double time = 1;
|
|
}
|
|
|
|
message MarkOutPointControlType {
|
|
double time = 1;
|
|
}
|
|
|
|
message SetScaleModeControlType {
|
|
.rv.data.Media.ScaleBehavior mode = 1;
|
|
bool is_blurred = 3;
|
|
.rv.data.Media.ScaleAlignment alignment = 2;
|
|
}
|
|
|
|
message SetFlippedModeControlType {
|
|
bool horizontal = 1;
|
|
bool vertical = 2;
|
|
}
|
|
|
|
message SetPlayRateControlType {
|
|
double play_rate = 1;
|
|
}
|
|
|
|
message SetNativeRotationControlType {
|
|
.rv.data.Media.DrawingProperties.NativeRotationType rotation = 1;
|
|
}
|
|
|
|
message SetAlphaTypeControlType {
|
|
.rv.data.AlphaType alpha_type = 1;
|
|
}
|
|
|
|
message TogglePlaybackControlType {
|
|
}
|
|
|
|
message SetEffectsControlType {
|
|
repeated .rv.data.Effect effects = 1;
|
|
}
|
|
|
|
message UpdateEffectControlType {
|
|
.rv.data.Effect effect = 1;
|
|
}
|
|
|
|
message BeginScrubControlType {
|
|
double time = 1;
|
|
}
|
|
|
|
message EndScrubControlType {
|
|
double time = 1;
|
|
}
|
|
|
|
message ScrubToTimeControlType {
|
|
double time = 1;
|
|
}
|
|
|
|
message ScrubToPercentControlType {
|
|
double percent = 1;
|
|
}
|
|
|
|
message SetAudioFadeType {
|
|
double fade_in_duration = 1;
|
|
double fade_out_duration = 2;
|
|
bool should_fade_in = 3;
|
|
bool should_fade_out = 4;
|
|
}
|
|
|
|
message SetAudioPropertiesType {
|
|
.rv.data.Media.AudioProperties audio_properties = 1;
|
|
repeated bool solo = 2;
|
|
}
|
|
|
|
oneof ControlType {
|
|
.rv.data.ControlTransport.PlayControlType play = 1;
|
|
.rv.data.ControlTransport.PauseControlType pause = 2;
|
|
.rv.data.ControlTransport.RewindControlType rewind = 3;
|
|
.rv.data.ControlTransport.FastForwardControlType fastforward = 4;
|
|
.rv.data.ControlTransport.SkipBackControlType skip_back = 5;
|
|
.rv.data.ControlTransport.SkipForwardControlType skip_forward = 6;
|
|
.rv.data.ControlTransport.StepBackControlType step_back = 7;
|
|
.rv.data.ControlTransport.StepForwardControlType step_forward = 8;
|
|
.rv.data.ControlTransport.GoToStartControlType go_to_start = 9;
|
|
.rv.data.ControlTransport.GoToEndControlType go_to_end = 10;
|
|
.rv.data.ControlTransport.JumpToTimeControlType jump_to_time = 11;
|
|
.rv.data.ControlTransport.JumpToPercentControlType jump_to_percent = 12;
|
|
.rv.data.ControlTransport.MarkInPointControlType mark_in = 13;
|
|
.rv.data.ControlTransport.MarkOutPointControlType mark_out = 14;
|
|
.rv.data.ControlTransport.SetScaleModeControlType set_scale_mode = 15;
|
|
.rv.data.ControlTransport.SetFlippedModeControlType set_flipped_mode = 16;
|
|
.rv.data.ControlTransport.SetPlayRateControlType set_play_rate = 17;
|
|
.rv.data.ControlTransport.SetNativeRotationControlType set_rotation = 18;
|
|
.rv.data.ControlTransport.TogglePlaybackControlType toggle_playback = 19;
|
|
.rv.data.ControlTransport.SetEffectsControlType set_effects = 20;
|
|
.rv.data.ControlTransport.UpdateEffectControlType update_effect = 21;
|
|
.rv.data.ControlTransport.BeginScrubControlType begin_scrub = 22;
|
|
.rv.data.ControlTransport.EndScrubControlType end_scrub = 23;
|
|
.rv.data.ControlTransport.ScrubToTimeControlType scrub_to_time = 24;
|
|
.rv.data.ControlTransport.ScrubToPercentControlType scrub_to_percent = 25;
|
|
.rv.data.ControlTransport.SetAudioFadeType set_audio_fade = 26;
|
|
.rv.data.ControlTransport.SetAudioPropertiesType set_audio_properties = 27;
|
|
.rv.data.ControlTransport.SetAlphaTypeControlType set_alpha_type = 28;
|
|
}
|
|
}
|
|
|
|
message AudioInputSettings {
|
|
repeated .rv.data.AudioInput inputs = 1;
|
|
double transitionTime = 2;
|
|
}
|
|
|
|
message VideoInputSettings {
|
|
repeated .rv.data.VideoInput inputs = 1;
|
|
}
|
|
|
|
message RecordRequest {
|
|
message Resi {
|
|
uint32 gop = 1;
|
|
double segmentSize = 2;
|
|
string destinationGroupId = 3;
|
|
uint32 bufSize = 4;
|
|
uint32 minRate = 5;
|
|
uint32 maxRate = 6;
|
|
string eventName = 7;
|
|
string social_description = 8;
|
|
}
|
|
|
|
.rv.data.Recording.Stream stream = 1;
|
|
.rv.data.URL working_directory = 2;
|
|
.rv.data.RecordRequest.Resi resi = 3;
|
|
}
|
|
|
|
message TextSegmentRequest {
|
|
message Segment {
|
|
uint32 index = 1;
|
|
double size = 2;
|
|
}
|
|
|
|
repeated .rv.data.TextSegmentRequest.Segment segments = 1;
|
|
double start_position = 2;
|
|
}
|
|
|
|
message TriggerCue {
|
|
message PresentationCue {
|
|
.rv.data.Presentation presentation = 1;
|
|
.rv.data.UUID arrangement_id = 2;
|
|
int32 cue_index = 3;
|
|
}
|
|
|
|
uint64 trigger_handle = 1;
|
|
.rv.data.TriggerOptions trigger_options = 2;
|
|
.rv.data.Cue cue = 3;
|
|
.rv.data.TriggerCue.PresentationCue presentation = 4;
|
|
.rv.data.Playlist playlist = 5;
|
|
uint64 client_data = 6;
|
|
}
|
|
|
|
message NetworkTriggerDataItem {
|
|
.rv.data.TriggerOptions trigger_options = 3;
|
|
.rv.data.TriggerCue trigger_cue = 4;
|
|
oneof Type {
|
|
.rv.data.Action action = 1;
|
|
.rv.data.Cue cue = 2;
|
|
}
|
|
}
|
|
|
|
message SlideElementTextRenderInfo {
|
|
message Layer {
|
|
.rv.data.SlideElementTextRenderInfo.LayerType layer_type = 1;
|
|
int32 text_build_index = 5;
|
|
oneof AdvancedFill {
|
|
.rv.data.Graphics.Text.CutOutFill cut_out_fill = 2;
|
|
.rv.data.Graphics.Text.MediaFill media_fill = 3;
|
|
.rv.data.Graphics.BackgroundEffect background_effect = 4;
|
|
}
|
|
}
|
|
|
|
enum LayerType {
|
|
LAYER_TYPE_COMPOSITE = 0;
|
|
LAYER_TYPE_MASK = 1;
|
|
LAYER_TYPE_OVER = 2;
|
|
LAYER_TYPE_UNDER = 3;
|
|
}
|
|
|
|
repeated .rv.data.SlideElementTextRenderInfo.Layer layers = 1;
|
|
}
|
|
|
|
message ValidateEncoderRequest {
|
|
.rv.data.Recording.Stream.Encoder encoder = 1;
|
|
}
|
|
|
|
message ValidateEncoderResponse {
|
|
bool is_valid = 1;
|
|
}
|
|
|
|
message CaptureActionRequest {
|
|
message StartResi {
|
|
}
|
|
|
|
message StopCapture {
|
|
}
|
|
|
|
message Error {
|
|
int32 error_code = 1;
|
|
.rv.data.Action.CaptureType capture_action = 2;
|
|
}
|
|
|
|
oneof RequestType {
|
|
.rv.data.CaptureActionRequest.StartResi start_resi = 1;
|
|
.rv.data.CaptureActionRequest.StopCapture stop_capture = 2;
|
|
.rv.data.CaptureActionRequest.Error error = 3;
|
|
}
|
|
}
|
|
|
|
message CaptureActionResponse {
|
|
message CancelCaptureAction {
|
|
}
|
|
|
|
message StartResi {
|
|
string event_name = 1;
|
|
string event_description = 2;
|
|
}
|
|
|
|
message StopCapture {
|
|
bool stop_capture = 1;
|
|
}
|
|
|
|
oneof ResponseType {
|
|
.rv.data.CaptureActionResponse.StartResi start_resi = 1;
|
|
.rv.data.CaptureActionResponse.StopCapture stop_capture = 2;
|
|
.rv.data.CaptureActionResponse.CancelCaptureAction cancel_capture_action = 3;
|
|
}
|
|
}
|
|
|
|
message MacroIcons {
|
|
message MacroIcon {
|
|
.rv.data.MacrosDocument.Macro.ImageType image_type = 1;
|
|
bytes image_data = 2;
|
|
}
|
|
|
|
repeated .rv.data.MacroIcons.MacroIcon icons = 1;
|
|
}
|
|
|
|
message GenericEvent {
|
|
}
|
|
|
|
message SendData {
|
|
int32 message_id = 1;
|
|
oneof MessageType {
|
|
.rv.data.ProPresenterWorkspace workspace = 2;
|
|
.rv.data.Stage.Document stage_document = 3;
|
|
.rv.data.TimersDocument timers_document = 4;
|
|
.rv.data.ValidateEncoderRequest validate_encoder_request = 5;
|
|
.rv.data.TriggerCue trigger_cue = 6;
|
|
.rv.data.DigitalAudio.Setup digital_audio_setup = 7;
|
|
.rv.data.MacrosDocument macros_document = 8;
|
|
.rv.data.MessageDocument message_document = 9;
|
|
.rv.data.PropDocument prop_document = 10;
|
|
.rv.data.CCLIDocument ccli_document = 11;
|
|
.rv.data.AudienceLookCollection audience_looks = 12;
|
|
.rv.data.ProAudienceLook live_audience_look = 13;
|
|
.rv.data.MaskCollection masks = 14;
|
|
.rv.data.Recording.SettingsDocument recording_settings_document = 15;
|
|
.rv.data.CaptureActionResponse capture_action_response = 16;
|
|
.rv.data.CopyrightLayout copyright_layout = 17;
|
|
.rv.data.Transition global_background_transition = 18;
|
|
.rv.data.Transition global_messages_transition = 19;
|
|
.rv.data.Transition global_foreground_transition = 20;
|
|
.rv.data.Transition global_bible_transition = 21;
|
|
.rv.data.Transition global_props_transition = 22;
|
|
.rv.data.Transition global_audio_transition = 23;
|
|
.rv.data.Preferences preferences = 24;
|
|
.rv.data.TestPatternRequest test_pattern = 25;
|
|
.rv.data.GenericEvent startup_complete = 26;
|
|
.rv.data.PlaylistDocument visual_playlist_doc = 27;
|
|
.rv.data.PlaylistDocument audio_playlist_doc = 28;
|
|
.rv.data.GenericEvent kill_watchdog = 29;
|
|
.rv.data.MacroIcons macro_icons = 30;
|
|
.rv.data.GenericEvent debug_trigger_data_dump = 31;
|
|
.rv.data.PlaylistDocument library_playlist_doc = 32;
|
|
.rv.data.UUID audio_playlist_focus_uuid = 33;
|
|
}
|
|
}
|
|
|
|
message TimerRuntimeState {
|
|
enum ResourceState {
|
|
PREROLLING = 0;
|
|
ACTIVATED = 1;
|
|
UPDATED = 2;
|
|
DEACTIVATED = 3;
|
|
RELEASED = 4;
|
|
}
|
|
|
|
.rv.data.UUID timer_uuid = 1;
|
|
string timer_name = 2;
|
|
.rv.data.Action.TimerType action_type = 3;
|
|
bool is_running = 4;
|
|
bool has_overrun = 5;
|
|
.rv.data.TimerRuntimeState.ResourceState state = 6;
|
|
double current_time = 7;
|
|
}
|
|
|
|
message TimerStateUpdate {
|
|
.rv.data.Timer timer = 1;
|
|
.rv.data.TimerRuntimeState state = 2;
|
|
}
|
|
|
|
message HandledException {
|
|
string description = 1;
|
|
}
|
|
|
|
message CoreDataStateDump {
|
|
.rv.data.MacrosDocument macros = 1;
|
|
}
|
|
|
|
message SendDataResponse {
|
|
int32 message_id = 1;
|
|
oneof MessageType {
|
|
.rv.data.ValidateEncoderResponse validate_encoder_response = 2;
|
|
.rv.data.TimerStateUpdate timer_state = 3;
|
|
.rv.data.CaptureActionRequest capture_action_request = 4;
|
|
.rv.data.TestPatternResponse test_pattern = 5;
|
|
.rv.data.HandledException handled_exception = 6;
|
|
.rv.data.CoreDataStateDump test_state_dump = 7;
|
|
.rv.data.UUID audio_playlist_focus_uuid = 8;
|
|
.rv.data.UUID audio_playlist_item_triggered_uuid = 9;
|
|
}
|
|
}
|
|
|
|
message TriggerTransferRenderState {
|
|
message TimerState {
|
|
.rv.data.Timer timer = 1;
|
|
bool is_running = 2;
|
|
bool has_overrun = 3;
|
|
float value = 4;
|
|
}
|
|
|
|
message MediaState {
|
|
.rv.data.Media current_media = 1;
|
|
bool is_playing = 2;
|
|
bool is_looping = 3;
|
|
float current_time = 4;
|
|
float time_remaining = 5;
|
|
.rv.data.UUID playlist_uuid = 6;
|
|
string playlist_name = 7;
|
|
repeated .rv.data.Action.MediaType.PlaybackMarker markers = 8;
|
|
}
|
|
|
|
message CaptureState {
|
|
enum Status {
|
|
Stopped = 0;
|
|
Active = 1;
|
|
Caution = 2;
|
|
Error = 3;
|
|
}
|
|
|
|
.rv.data.TriggerTransferRenderState.CaptureState.Status status = 1;
|
|
float time = 2;
|
|
}
|
|
|
|
message AutoAdvanceState {
|
|
bool active = 1;
|
|
float remaining_time = 2;
|
|
}
|
|
|
|
message TimelineState {
|
|
bool active = 1;
|
|
float current_time = 2;
|
|
int32 last_slide_index = 3;
|
|
}
|
|
|
|
message SlideState {
|
|
.rv.data.Presentation presentation = 1;
|
|
.rv.data.Playlist playlist = 2;
|
|
.rv.data.UUID current_cue = 3;
|
|
.rv.data.UUID next_cue = 4;
|
|
.rv.data.TriggerTransferRenderState.AutoAdvanceState auto_advance = 5;
|
|
.rv.data.TriggerTransferRenderState.TimelineState timeline_state = 6;
|
|
int32 current_cue_index = 7;
|
|
int32 current_playlist_index = 8;
|
|
}
|
|
|
|
message TimecodeState {
|
|
enum Status {
|
|
Stopped = 0;
|
|
Playing = 1;
|
|
Error = 2;
|
|
}
|
|
|
|
.rv.data.TriggerTransferRenderState.TimecodeState.Status status = 1;
|
|
float time = 2;
|
|
}
|
|
|
|
.rv.data.Slide slide = 1;
|
|
string stage_message = 2;
|
|
.rv.data.TriggerTransferRenderState.MediaState presentation_media = 3;
|
|
.rv.data.TriggerTransferRenderState.MediaState announcement_media = 4;
|
|
.rv.data.TriggerTransferRenderState.MediaState audio_media = 5;
|
|
.rv.data.Media live_video_media = 6;
|
|
.rv.data.TriggerTransferRenderState.SlideState presentation = 7;
|
|
.rv.data.TriggerTransferRenderState.SlideState announcement = 8;
|
|
repeated .rv.data.TriggerTransferRenderState.TimerState timers = 9;
|
|
.rv.data.TriggerTransferRenderState.CaptureState capture = 10;
|
|
.rv.data.TriggerTransferRenderState.TimecodeState timecode = 11;
|
|
uint64 system_time = 12;
|
|
}
|
|
|