syntax = "proto3"; package rv.data; option cc_enable_arenas = true; option csharp_namespace = "Pro.SerializationInterop.RVProtoData"; option swift_prefix = "RVData_"; import "alignmentGuide.proto"; import "color.proto"; import "effects.proto"; import "graphicsData.proto"; import "timers.proto"; import "url.proto"; import "uuid.proto"; message Slide { message Element { message Build { enum Start { START_ON_CLICK = 0; START_WITH_PREVIOUS = 1; START_AFTER_PREVIOUS = 2; START_WITH_SLIDE = 3; } .rv.data.UUID uuid = 1; .rv.data.UUID elementUUID = 2; .rv.data.Slide.Element.Build.Start start = 3; double delayTime = 4; .rv.data.Transition transition = 5; } message ChildBuild { .rv.data.UUID uuid = 1; .rv.data.Slide.Element.Build.Start start = 2; double delayTime = 3; uint32 index = 4; } message DataLink { message RSSFeed { enum ContentType { CONTENT_TYPE_TITLE_ONLY = 0; CONTENT_TYPE_TITLE_AND_DESCRIPTION = 1; } .rv.data.URL url = 1; .rv.data.Slide.Element.DataLink.RSSFeed.ContentType content = 2; string text_delimiter = 3; } message FileFeed { .rv.data.URL url = 1; } message Ticker { message TextType { string text = 1; } message RSSType { enum ContentType { CONTENT_TYPE_TITLE_ONLY = 0; CONTENT_TYPE_TITLE_AND_DESCRIPTION = 1; } .rv.data.URL url = 1; .rv.data.Slide.Element.DataLink.Ticker.RSSType.ContentType content = 2; } message FileType { .rv.data.URL url = 1; } double play_rate = 4; bool should_loop = 5; double loop_delay = 6; string text_delimiter = 7; oneof SourceType { .rv.data.Slide.Element.DataLink.Ticker.TextType text_type = 1; .rv.data.Slide.Element.DataLink.Ticker.RSSType rss_type = 2; .rv.data.Slide.Element.DataLink.Ticker.FileType file_type = 3; } } message AlternateElementText { enum TextTransformOption { TEXT_TRANSFORM_OPTION_NONE = 0; TEXT_TRANSFORM_OPTION_REMOVE_LINE_RETURNS = 1; TEXT_TRANSFORM_OPTION_ONE_WORD_PER_LINE = 2; TEXT_TRANSFORM_OPTION_ONE_CHARACTER_PER_LINE = 3; } .rv.data.UUID other_element_uuid = 1; string other_element_name = 2; uint32 text_transform_options = 3; .rv.data.Slide.Element.DataLink.AlternateElementText.TextTransformOption text_transform = 4; } message CCLIText { } message ColorTrigger { double time = 1; .rv.data.Color color = 2; } message TimerText { .rv.data.UUID timer_uuid = 1; string timer_name = 2; .rv.data.Timer.Format timer_format = 3; string timer_format_string = 4; repeated .rv.data.Slide.Element.DataLink.ColorTrigger color_triggers = 5; } message ClockText { reserved 2; reserved 3; reserved 4; string clock_format_string = 1; .rv.data.Clock.Format format = 5; } message ChordChart { } message OutputScreen { .rv.data.UUID screen_id = 1; string screen_name = 2; } message PCOLive { reserved 1; enum Theme { PCOLIVE_THEME_LIGHT = 0; PCOLIVE_THEME_DARK = 1; } enum CountdownType { COUNTDOWN_TYPE_FULL_ITEM_LENGTH = 0; COUNTDOWN_TYPE_END_ITEM_ON_TIME = 1; COUNTDOWN_TYPE_END_SERVICE_ON_TIME = 2; } .rv.data.Slide.Element.DataLink.PCOLive.Theme theme = 2; .rv.data.Slide.Element.DataLink.PCOLive.CountdownType countdown_type = 3; } message AlternateElementFill { .rv.data.UUID other_element_uuid = 1; string other_element_name = 2; } message VisibilityLink { message Condition { message ElementVisibility { enum ElementVisibilityCriterion { ELEMENT_VISIBILITY_CRITERION_HAS_TEXT = 0; ELEMENT_VISIBILITY_CRITERION_HAS_NO_TEXT = 1; } .rv.data.UUID other_element_uuid = 1; string other_element_name = 2; .rv.data.Slide.Element.DataLink.VisibilityLink.Condition.ElementVisibility.ElementVisibilityCriterion visibility_criterion = 3; } message TimerVisibility { enum TimerVisibilityCriterion { TIMER_VISIBILITY_CRITERION_HAS_TIME_REMAINING = 0; TIMER_VISIBILITY_CRITERION_HAS_EXPIRED = 1; TIMER_VISIBILITY_CRITERION_IS_RUNNING = 2; TIMER_VISIBILITY_CRITERION_NOT_RUNNING = 3; } .rv.data.UUID timer_uuid = 1; string timer_name = 2; .rv.data.Slide.Element.DataLink.VisibilityLink.Condition.TimerVisibility.TimerVisibilityCriterion visibility_criterion = 3; } message VideoCountdownVisibility { enum VideoCountdownVisibilityCriterion { VIDEO_COUNTDOWN_VISIBILITY_CRITERION_HAS_TIME_REMAINING = 0; VIDEO_COUNTDOWN_VISIBILITY_CRITERION_HAS_EXPIRED = 1; VIDEO_COUNTDOWN_VISIBILITY_CRITERION_IS_RUNNING = 2; VIDEO_COUNTDOWN_VISIBILITY_CRITERION_NOT_RUNNING = 3; VIDEO_COUNTDOWN_VISIBILITY_CRITERION_LOOPING = 4; VIDEO_COUNTDOWN_VISIBILITY_CRITERION_NOT_LOOPING = 5; } .rv.data.Slide.Element.DataLink.VisibilityLink.Condition.VideoCountdownVisibility.VideoCountdownVisibilityCriterion visibility_criterion = 1; } message AudioCountdownVisibility { enum AudioCountdownVisibilityCriterion { AUDIO_COUNTDOWN_VISIBILITY_CRITERION_HAS_TIME_REMAINING = 0; AUDIO_COUNTDOWN_VISIBILITY_CRITERION_HAS_EXPIRED = 1; AUDIO_COUNTDOWN_VISIBILITY_CRITERION_IS_RUNNING = 2; AUDIO_COUNTDOWN_VISIBILITY_CRITERION_NOT_RUNNING = 3; AUDIO_COUNTDOWN_VISIBILITY_CRITERION_LOOPING = 4; AUDIO_COUNTDOWN_VISIBILITY_CRITERION_NOT_LOOPING = 5; } .rv.data.Slide.Element.DataLink.VisibilityLink.Condition.AudioCountdownVisibility.AudioCountdownVisibilityCriterion visibility_criterion = 1; } message CaptureSessionVisibility { enum CaptureSessionVisibilityCriterion { CAPTURE_SESSION_VISIBILITY_CRITERION_ACTIVE = 0; CAPTURE_SESSION_VISIBILITY_CRITERION_INACTIVE = 1; } .rv.data.Slide.Element.DataLink.VisibilityLink.Condition.CaptureSessionVisibility.CaptureSessionVisibilityCriterion visibility_criterion = 1; } message VideoInputVisibility { enum VideoInputVisibilityCriterion { VIDEO_INPUT_VISIBILITY_CRITERION_ACTIVE = 0; VIDEO_INPUT_VISIBILITY_CRITERION_INACTIVE = 1; } int32 video_input_index = 1; .rv.data.Slide.Element.DataLink.VisibilityLink.Condition.VideoInputVisibility.VideoInputVisibilityCriterion visibility_criterion = 2; } oneof ConditionType { .rv.data.Slide.Element.DataLink.VisibilityLink.Condition.ElementVisibility element_visibility = 1; .rv.data.Slide.Element.DataLink.VisibilityLink.Condition.TimerVisibility timer_visibility = 2; .rv.data.Slide.Element.DataLink.VisibilityLink.Condition.VideoCountdownVisibility video_countdown_visibility = 3; .rv.data.Slide.Element.DataLink.VisibilityLink.Condition.CaptureSessionVisibility capture_session_visibility = 4; .rv.data.Slide.Element.DataLink.VisibilityLink.Condition.VideoInputVisibility video_input_visibility = 5; .rv.data.Slide.Element.DataLink.VisibilityLink.Condition.AudioCountdownVisibility audio_countdown_visibility = 6; } } enum VisibilityCriterion { VISIBILITY_CRITERION_ALL = 0; VISIBILITY_CRITERION_ANY = 1; VISIBILITY_CRITERION_NONE = 2; } .rv.data.Slide.Element.DataLink.VisibilityLink.VisibilityCriterion visibility_criterion = 1; repeated .rv.data.Slide.Element.DataLink.VisibilityLink.Condition conditions = 2; } message SlideText { enum TextSourceOption { TEXT_SOURCE_OPTION_TEXT = 0; TEXT_SOURCE_OPTION_NOTES = 1; TEXT_SOURCE_OPTION_ELEMENT_MATCHING_NAME = 2; } .rv.data.Slide.Element.DataLink.SlideSourceType source_slide = 1; .rv.data.Slide.Element.DataLink.SlideText.TextSourceOption source_option = 2; bool preserve_notes_format = 3; string name_to_match = 4; .rv.data.Slide.Element.DataLink.AlternateElementText.TextTransformOption element_text_transform = 5; } message SlideImage { .rv.data.Slide.Element.DataLink.SlideSourceType source_slide = 1; } message StageMessage { bool should_flash = 1; .rv.data.Color flash_color = 2; } message VideoCountdown { enum VideoCountdownSource { VIDEO_COUNTDOWN_SOURCE_PRESENTATION = 0; VIDEO_COUNTDOWN_SOURCE_ANNOUNCEMENT = 1; } .rv.data.Timer.Format timer_format = 1; string timer_format_string = 2; repeated .rv.data.Slide.Element.DataLink.ColorTrigger color_triggers = 3; bool ignore_looping_videos = 4; .rv.data.Slide.Element.DataLink.VideoCountdown.VideoCountdownSource video_countdown_source = 5; } message AudioCountdown { .rv.data.Timer.Format timer_format = 1; string timer_format_string = 2; repeated .rv.data.Slide.Element.DataLink.ColorTrigger color_triggers = 3; bool ignore_looping_audio = 4; } message GroupName { .rv.data.Slide.Element.DataLink.GroupSourceType groupSource = 1; } message GroupColor { .rv.data.Slide.Element.DataLink.GroupSourceType groupSource = 1; } message SlideLabelText { .rv.data.Slide.Element.DataLink.SlideLabelSource slide_label_source = 1; } message SlideLabelColor { .rv.data.Slide.Element.DataLink.SlideLabelSource slide_label_source = 1; } message PresentationNotes { } message Presentation { enum PresentationSource { PRESENTATION_SOURCE_PRESENTATION = 0; PRESENTATION_SOURCE_ANNOUNCEMENT = 1; } .rv.data.Slide.Element.DataLink.Presentation.PresentationSource presentation_source = 1; } message PlaylistItem { enum PlaylistItemSourceType { PLAYLIST_ITEM_SOURCE_TYPE_CURRENT = 0; PLAYLIST_ITEM_SOURCE_TYPE_NEXT = 1; PLAYLIST_ITEM_SOURCE_TYPE_CURRENT_HEADER = 2; PLAYLIST_ITEM_SOURCE_TYPE_NEXT_HEADER = 3; PLAYLIST_ITEM_SOURCE_TYPE_PARENT_PLAYLIST = 4; } .rv.data.Slide.Element.DataLink.PlaylistItem.PlaylistItemSourceType playlistItemSource = 1; bool showArrangement = 2; } message AutoAdvanceTimeRemaining { enum AutoAdvanceSource { AUTO_ADVANCE_SOURCE_PRESENTATION = 0; AUTO_ADVANCE_SOURCE_ANNOUNCEMENT = 1; } .rv.data.Slide.Element.DataLink.AutoAdvanceTimeRemaining.AutoAdvanceSource auto_advance_source = 1; .rv.data.Timer.Format timer_format = 2; } message CaptureStatusText { message StatusText { } message ElapsedTime { .rv.data.Timer.Format timer_format = 1; } oneof TextType { .rv.data.Slide.Element.DataLink.CaptureStatusText.StatusText status_text = 1; .rv.data.Slide.Element.DataLink.CaptureStatusText.ElapsedTime elapsed_time = 2; } } message CaptureStatusColor { } message SlideCount { enum SlideCountSourceType { SLIDE_COUNT_SOURCE_TYPE_CURRENT = 0; SLIDE_COUNT_SOURCE_TYPE_REMAINING = 1; SLIDE_COUNT_SOURCE_TYPE_TOTAL = 2; } .rv.data.Slide.Element.DataLink.SlideCount.SlideCountSourceType slideCountSourceType = 1; } message PlaybackMarkerIdentifier { enum Type { PLAYBACK_MARKER_IDENTIFIER_FIRST = 0; PLAYBACK_MARKER_IDENTIFIER_PREVIOUS = 1; PLAYBACK_MARKER_IDENTIFIER_NEXT = 2; PLAYBACK_MARKER_IDENTIFIER_LAST = 3; PLAYBACK_MARKER_IDENTIFIER_NAME = 4; } enum Destination { PLAYBACK_MARKER_DESTINATION_PRESENTATION = 0; PLAYBACK_MARKER_DESTINATION_ANNOUNCEMENT = 1; PLAYBACK_MARKER_DESTINATION_AUDIO = 2; } .rv.data.Slide.Element.DataLink.PlaybackMarkerIdentifier.Destination destination = 1; .rv.data.Slide.Element.DataLink.PlaybackMarkerIdentifier.Type type = 2; string name = 3; } message PlaybackMarkerText { message Name { } message Time { .rv.data.Timer.Format format = 1; } .rv.data.Slide.Element.DataLink.PlaybackMarkerIdentifier identifier = 1; bool should_use_marker_color = 4; oneof TextType { .rv.data.Slide.Element.DataLink.PlaybackMarkerText.Name name = 2; .rv.data.Slide.Element.DataLink.PlaybackMarkerText.Time time = 3; } } message ChordProChart { } message TimecodeText { } message TimecodeStatus { } enum SlideSourceType { SLIDE_SOURCE_TYPE_CURRENT_SLIDE = 0; SLIDE_SOURCE_TYPE_NEXT_SLIDE = 1; } enum GroupSourceType { GROUP_SOURCE_TYPE_CURRENT_SLIDE = 0; GROUP_SOURCE_TYPE_NEXT_SLIDE = 1; GROUP_SOURCE_TYPE_NEXT_GROUP = 2; } enum SlideLabelSource { SLIDE_LABEL_SOURCE_CURRENT_SLIDE = 0; SLIDE_LABEL_SOURCE_NEXT_SLIDE = 1; } oneof PropertyType { .rv.data.Slide.Element.DataLink.Ticker ticker = 1; .rv.data.Slide.Element.DataLink.AlternateElementText alternate_text = 2; .rv.data.Slide.Element.DataLink.TimerText timer_text = 3; .rv.data.Slide.Element.DataLink.ClockText clock_text = 4; .rv.data.Slide.Element.DataLink.ChordChart chord_chart = 5; .rv.data.Slide.Element.DataLink.OutputScreen output_screen = 6; .rv.data.Slide.Element.DataLink.PCOLive pco_live = 7; .rv.data.Slide.Element.DataLink.AlternateElementFill alternate_fill = 8; .rv.data.Slide.Element.DataLink.VisibilityLink visibility_link = 9; .rv.data.Slide.Element.DataLink.SlideText slide_text = 10; .rv.data.Slide.Element.DataLink.StageMessage stage_message = 11; .rv.data.Slide.Element.DataLink.VideoCountdown video_countdown = 12; .rv.data.Slide.Element.DataLink.SlideImage slide_image = 13; .rv.data.Slide.Element.DataLink.CCLIText ccli_text = 14; .rv.data.Slide.Element.DataLink.GroupName group_name = 15; .rv.data.Slide.Element.DataLink.GroupColor group_color = 16; .rv.data.Slide.Element.DataLink.PresentationNotes presentation_notes = 17; .rv.data.Slide.Element.DataLink.PlaylistItem playlist_item = 18; .rv.data.Slide.Element.DataLink.AutoAdvanceTimeRemaining auto_advance_time_remaining = 19; .rv.data.Slide.Element.DataLink.CaptureStatusText capture_status_text = 20; .rv.data.Slide.Element.DataLink.CaptureStatusColor capture_status_color = 21; .rv.data.Slide.Element.DataLink.SlideCount slide_count = 22; .rv.data.Slide.Element.DataLink.AudioCountdown audio_countdown = 23; .rv.data.Slide.Element.DataLink.Presentation presentation = 24; .rv.data.Slide.Element.DataLink.SlideLabelText slide_Label_Text = 25; .rv.data.Slide.Element.DataLink.SlideLabelColor slide_Label_Color = 26; .rv.data.Slide.Element.DataLink.RSSFeed rss_feed = 27; .rv.data.Slide.Element.DataLink.FileFeed file_feed = 28; .rv.data.Slide.Element.DataLink.ChordProChart chord_pro_chart = 29; .rv.data.Slide.Element.DataLink.PlaybackMarkerText playback_marker_text = 30; .rv.data.Slide.Element.DataLink.PlaybackMarkerIdentifier playback_marker_color = 32; .rv.data.Slide.Element.DataLink.TimecodeText timecode_text = 33; .rv.data.Slide.Element.DataLink.TimecodeStatus timecode_status = 34; } } message TextScroller { enum Direction { DIRECTION_LEFT = 0; DIRECTION_RIGHT = 1; DIRECTION_UP = 2; DIRECTION_DOWN = 3; } bool should_scroll = 1; double scroll_rate = 2; bool should_repeat = 3; double repeat_distance = 4; .rv.data.Slide.Element.TextScroller.Direction scrolling_direction = 5; bool starts_off_screen = 6; double fade_left = 7; double fade_right = 8; } enum TextRevealType { TEXT_REVEAL_TYPE_NONE = 0; TEXT_REVEAL_TYPE_BULLET = 1; TEXT_REVEAL_TYPE_UNDERLINE = 2; } enum Info { INFO_NONE = 0; INFO_IS_TEMPLATE_ELEMENT = 1; INFO_IS_TEXT_ELEMENT = 2; INFO_IS_TEXT_TICKER = 4; } .rv.data.Graphics.Element element = 1; .rv.data.Slide.Element.Build build_in = 2; .rv.data.Slide.Element.Build build_out = 3; uint32 info = 4; .rv.data.Slide.Element.TextRevealType reveal_type = 5; repeated .rv.data.Slide.Element.DataLink data_links = 6; repeated .rv.data.Slide.Element.ChildBuild childBuilds = 7; uint32 reveal_from_index = 8; .rv.data.Slide.Element.TextScroller text_scroller = 9; } repeated .rv.data.Slide.Element elements = 1; repeated .rv.data.UUID element_build_order = 2; repeated .rv.data.AlignmentGuide guidelines = 3; bool draws_background_color = 4; .rv.data.Color background_color = 5; .rv.data.Graphics.Size size = 6; .rv.data.UUID uuid = 7; }