syntax = "proto3"; package rv.data; option cc_enable_arenas = true; option csharp_namespace = "Pro.SerializationInterop.RVProtoData"; option swift_prefix = "RVData_"; import "alphaType.proto"; import "color.proto"; import "digitalAudio.proto"; import "effects.proto"; import "fileProperties.proto"; import "font.proto"; import "intRange.proto"; import "url.proto"; import "uuid.proto"; message Graphics { message Element { enum FlipMode { FLIP_MODE_NONE = 0; FLIP_MODE_VERTICAL = 1; FLIP_MODE_HORIZONTAL = 2; FLIP_MODE_BOTH = 3; } .rv.data.UUID uuid = 1; string name = 2; .rv.data.Graphics.Rect bounds = 3; double rotation = 4; double opacity = 5; bool locked = 6; bool aspect_ratio_locked = 7; .rv.data.Graphics.Path path = 8; .rv.data.Graphics.Fill fill = 9; .rv.data.Graphics.Stroke stroke = 10; .rv.data.Graphics.Shadow shadow = 11; .rv.data.Graphics.Feather feather = 12; .rv.data.Graphics.Text text = 13; .rv.data.Graphics.Element.FlipMode flipMode = 15; bool hidden = 16; oneof Mask { .rv.data.Graphics.Text.LineFillMask text_line_mask = 14; } } message Rect { .rv.data.Graphics.Point origin = 1; .rv.data.Graphics.Size size = 2; } message Point { double x = 1; double y = 2; } message Size { double width = 1; double height = 2; } message EdgeInsets { double left = 1; double right = 2; double top = 3; double bottom = 4; } message Path { message BezierPoint { .rv.data.Graphics.Point point = 1; .rv.data.Graphics.Point q0 = 2; .rv.data.Graphics.Point q1 = 3; bool curved = 4; } message Shape { message RoundedRectangle { double roundness = 1; } message Arrow { .rv.data.Graphics.Point corner = 1; } message Polygon { uint32 number_sides = 1; } message Star { double inner_radius = 1; uint32 number_points = 2; } enum Type { TYPE_UNKNOWN = 0; TYPE_RECTANGLE = 1; TYPE_ELLIPSE = 2; TYPE_ISOSCELES_TRIANGLE = 3; TYPE_RIGHT_TRIANGLE = 4; TYPE_RHOMBUS = 5; TYPE_STAR = 6; TYPE_POLYGON = 7; TYPE_CUSTOM = 8; TYPE_RIGHT_ARROW = 9; TYPE_DOUBLE_ARROW = 10; TYPE_ROUNDED_RECTANGLE = 11; } .rv.data.Graphics.Path.Shape.Type type = 1; oneof AdditionalData { .rv.data.Graphics.Path.Shape.RoundedRectangle rounded_rectangle = 2; .rv.data.Graphics.Path.Shape.Polygon polygon = 3; .rv.data.Graphics.Path.Shape.Star star = 4; .rv.data.Graphics.Path.Shape.Arrow arrow = 5; } } bool closed = 1; repeated .rv.data.Graphics.Path.BezierPoint points = 2; .rv.data.Graphics.Path.Shape shape = 3; } message Fill { bool enable = 4; oneof FillType { .rv.data.Color color = 1; .rv.data.Graphics.Gradient gradient = 2; .rv.data.Media media = 3; .rv.data.Graphics.BackgroundEffect backgroundEffect = 5; } } message BackgroundEffect { reserved "layer"; reserved 1; message BackgroundEffectBlur { double saturation = 1; double blur_amount = 2; } message BackgroundEffectInvert { } oneof EffectType { .rv.data.Graphics.BackgroundEffect.BackgroundEffectBlur backgroundBlur = 2; .rv.data.Graphics.BackgroundEffect.BackgroundEffectInvert backgroundInvert = 3; } } message Gradient { message ColorStop { .rv.data.Color color = 1; double position = 2; double blend_point = 3; } enum Type { TYPE_LINEAR = 0; TYPE_RADIAL = 1; TYPE_ANGLE = 2; } .rv.data.Graphics.Gradient.Type type = 1; double angle = 2; double length = 3; repeated .rv.data.Graphics.Gradient.ColorStop stops = 4; } message Shadow { enum Style { STYLE_DROP = 0; } .rv.data.Graphics.Shadow.Style style = 1; double angle = 2; double offset = 3; double radius = 4; .rv.data.Color color = 5; double opacity = 6; bool enable = 7; } message Stroke { enum Style { STYLE_SOLID_LINE = 0; STYLE_SQUARE_DASH = 1; STYLE_SHORT_DASH = 2; STYLE_LONG_DASH = 3; } .rv.data.Graphics.Stroke.Style style = 1; double width = 2; .rv.data.Color color = 3; repeated double pattern = 4; bool enable = 5; } message Feather { enum Style { STYLE_INSIDE = 0; STYLE_CENTER = 1; STYLE_OUTSIDE = 2; } .rv.data.Graphics.Feather.Style style = 1; double radius = 2; bool enable = 3; } message Text { reserved 1; reserved 2; message LineFillMask { enum LineMaskStyle { LINE_MASK_STYLE_FULL_WIDTH = 0; LINE_MASK_STYLE_LINE_WIDTH = 1; LINE_MASK_STYLE_MAX_LINE_WIDTH = 2; } bool enabled = 1; double height_offset = 2; double vertical_offset = 3; .rv.data.Graphics.Text.LineFillMask.LineMaskStyle mask_style = 4; double width_offset = 5; double horizontal_offset = 6; } message GradientFill { .rv.data.Graphics.Gradient gradient = 1; bool stretch_to_document_bounds = 2; } message CutOutFill { } message MediaFill { .rv.data.Media media = 1; } message ChordPro { enum Notation { NOTATION_CHORDS = 0; NOTATION_NUMBERS = 1; NOTATION_NUMERALS = 2; NOTATION_DO_RE_MI = 3; } bool enabled = 1; .rv.data.Graphics.Text.ChordPro.Notation notation = 2; .rv.data.Color color = 3; } message Attributes { message Underline { enum Style { STYLE_NONE = 0; STYLE_SINGLE = 1; STYLE_THICK = 2; STYLE_DOUBLE = 3; } enum Pattern { PATTERN_SOLID = 0; PATTERN_DOT = 1; PATTERN_DASH = 2; PATTERN_DASH_DOT = 3; PATTERN_DASH_DOT_DOT = 4; } .rv.data.Graphics.Text.Attributes.Underline.Style style = 1; .rv.data.Graphics.Text.Attributes.Underline.Pattern pattern = 2; bool by_word = 3; } message Paragraph { message TabStop { double location = 1; .rv.data.Graphics.Text.Attributes.Alignment alignment = 2; } message TextList { enum NumberType { NUMBER_TYPE_BOX = 0; NUMBER_TYPE_CHECK = 1; NUMBER_TYPE_CIRCLE = 2; NUMBER_TYPE_DIAMOND = 3; NUMBER_TYPE_DISC = 4; NUMBER_TYPE_HYPHEN = 5; NUMBER_TYPE_SQUARE = 6; NUMBER_TYPE_DECIMAL = 7; NUMBER_TYPE_LOWERCASE_ALPHA = 8; NUMBER_TYPE_UPPERCASE_ALPHA = 9; NUMBER_TYPE_LOWERCASE_ROMAN = 10; NUMBER_TYPE_UPPERCASE_ROMAN = 11; } bool is_enabled = 1; .rv.data.Graphics.Text.Attributes.Paragraph.TextList.NumberType number_type = 2; string prefix = 3; string postfix = 4; int32 starting_number = 5; } .rv.data.Graphics.Text.Attributes.Alignment alignment = 1; double first_line_head_indent = 2; double head_indent = 3; double tail_indent = 4; double line_height_multiple = 5; double maximum_line_height = 6; double minimum_line_height = 7; double line_spacing = 8; double paragraph_spacing = 9; double paragraph_spacing_before = 10; repeated .rv.data.Graphics.Text.Attributes.Paragraph.TabStop tab_stops = 11; double default_tab_interval = 12; .rv.data.Graphics.Text.Attributes.Paragraph.TextList text_list = 13; repeated .rv.data.Graphics.Text.Attributes.Paragraph.TextList text_lists = 14; } message CustomAttribute { .rv.data.IntRange range = 1; oneof Attribute { .rv.data.Graphics.Text.Attributes.Capitalization capitalization = 2; double original_font_size = 3; double font_scale_factor = 4; .rv.data.Graphics.Text.GradientFill text_gradient_fill = 5; bool should_preserve_foreground_color = 6; string chord = 7; .rv.data.Graphics.Text.CutOutFill cut_out_fill = 8; .rv.data.Graphics.Text.MediaFill media_fill = 9; .rv.data.Graphics.BackgroundEffect background_effect = 10; } } enum Capitalization { CAPITALIZATION_NONE = 0; CAPITALIZATION_ALL_CAPS = 1; CAPITALIZATION_SMALL_CAPS = 2; CAPITALIZATION_TITLE_CASE = 3; CAPITALIZATION_START_CASE = 4; } enum Alignment { ALIGNMENT_LEFT = 0; ALIGNMENT_RIGHT = 1; ALIGNMENT_CENTER = 2; ALIGNMENT_JUSTIFIED = 3; ALIGNMENT_NATURAL = 4; } .rv.data.Font font = 1; .rv.data.Graphics.Text.Attributes.Capitalization capitalization = 2; .rv.data.Graphics.Text.Attributes.Underline underline_style = 4; .rv.data.Color underline_color = 5; .rv.data.Graphics.Text.Attributes.Paragraph paragraph_style = 6; double kerning = 7; int32 superscript = 8; .rv.data.Graphics.Text.Attributes.Underline strikethrough_style = 9; .rv.data.Color strikethrough_color = 10; double stroke_width = 11; .rv.data.Color stroke_color = 12; repeated .rv.data.Graphics.Text.Attributes.CustomAttribute custom_attributes = 13; .rv.data.Color background_color = 15; oneof fill { .rv.data.Color text_solid_fill = 3; .rv.data.Graphics.Text.GradientFill text_gradient_fill = 14; .rv.data.Graphics.Text.CutOutFill cut_out_fill = 16; .rv.data.Graphics.Text.MediaFill media_fill = 17; .rv.data.Graphics.BackgroundEffect background_effect = 18; } } enum VerticalAlignment { VERTICAL_ALIGNMENT_TOP = 0; VERTICAL_ALIGNMENT_MIDDLE = 1; VERTICAL_ALIGNMENT_BOTTOM = 2; } enum ScaleBehavior { SCALE_BEHAVIOR_NONE = 0; SCALE_BEHAVIOR_ADJUST_CONTAINER_HEIGHT = 1; SCALE_BEHAVIOR_SCALE_FONT_DOWN = 2; SCALE_BEHAVIOR_SCALE_FONT_UP = 3; SCALE_BEHAVIOR_SCALE_FONT_UP_DOWN = 4; } enum Transform { TRANSFORM_NONE = 0; TRANSFORM_SINGLE_LINE = 1; TRANSFORM_ONE_WORD_PER_LINE = 2; TRANSFORM_ONE_CHARACTER_PER_LINE = 3; TRANSFORM_REPLACE_LINE_RETURNS = 4; } .rv.data.Graphics.Text.Attributes attributes = 3; .rv.data.Graphics.Shadow shadow = 4; bytes rtf_data = 5; .rv.data.Graphics.Text.VerticalAlignment vertical_alignment = 6; .rv.data.Graphics.Text.ScaleBehavior scale_behavior = 7; .rv.data.Graphics.EdgeInsets margins = 8; bool is_superscript_standardized = 9; .rv.data.Graphics.Text.Transform transform = 10; string transformDelimiter = 11; .rv.data.Graphics.Text.ChordPro chord_pro = 12; } } message Media { message Metadata { string manufacture_name = 1; .rv.data.URL manufacture_url = 2; string information = 3; string artist = 4; string format = 5; } message VideoDevice { enum Type { TYPE_GENERIC = 0; TYPE_DIRECTSHOW = 1; TYPE_BLACKMAGIC = 2; TYPE_AJA = 3; TYPE_AV = 4; TYPE_SYPHON = 5; TYPE_NDI = 6; TYPE_BLUEFISH = 7; } .rv.data.Media.VideoDevice.Type type = 1; string name = 2; string unique_id = 3; string model_id = 4; uint32 format_index = 5; .rv.data.DigitalAudio.Device.Routing audio_routing = 6; } message AudioDevice { string name = 1; string unique_id = 2; string model_id = 3; uint32 channel_count = 4; } message Audio { message Channel { message Output { reserved 1; int32 channel_index = 2; } uint32 index = 1; bool muted = 2; double volume = 3; bool compress_limit = 4; repeated .rv.data.Media.Audio.Channel.Output outputs = 5; } } message AudioProperties { double volume = 1; repeated .rv.data.Media.Audio.Channel audio_channels = 2; bool is_custom_mapping = 3; } message TransportProperties { reserved "start_ramp_time"; reserved "end_ramp_time"; reserved "fade_start_position"; reserved 4; reserved 5; reserved 6; enum PlaybackBehavior { PLAYBACK_BEHAVIOR_STOP = 0; PLAYBACK_BEHAVIOR_LOOP = 1; PLAYBACK_BEHAVIOR_LOOP_FOR_COUNT = 2; PLAYBACK_BEHAVIOR_LOOP_FOR_TIME = 3; } enum RetriggerSetting { RETRIGGER_SETTING_UNSET = 0; RETRIGGER_SETTING_ALWAYS = 1; RETRIGGER_SETTING_NEVER = 2; RETRIGGER_SETTING_AUTOMATIC = 3; } double play_rate = 1; double in_point = 2; double out_point = 3; double fade_in_duration = 7; double fade_out_duration = 8; bool should_fade_in = 9; bool should_fade_out = 10; double end_point = 11; .rv.data.Media.TransportProperties.PlaybackBehavior playback_behavior = 12; double loop_time = 13; uint32 times_to_loop = 14; .rv.data.Media.TransportProperties.RetriggerSetting retrigger = 15; } message DrawingProperties { enum NativeRotationType { NATIVE_ROTATION_TYPE_ROTATE_STANDARD = 0; NATIVE_ROTATION_TYPE_ROTATE_90 = 90; NATIVE_ROTATION_TYPE_ROTATE_180 = 180; NATIVE_ROTATION_TYPE_ROTATE_270 = 270; } .rv.data.Media.ScaleBehavior scale_behavior = 1; bool is_blurred = 16; .rv.data.Media.ScaleAlignment scale_alignment = 2; bool flipped_horizontally = 3; bool flipped_vertically = 4; .rv.data.Graphics.Size natural_size = 5; double custom_image_rotation = 6; .rv.data.Graphics.Rect custom_image_bounds = 7; bool custom_image_aspect_locked = 8; bool alpha_inverted = 9; .rv.data.Media.DrawingProperties.NativeRotationType native_rotation = 10; .rv.data.UUID selected_effect_preset_uuid = 11; repeated .rv.data.Effect effects = 12; bool crop_enable = 13; .rv.data.Graphics.EdgeInsets crop_insets = 14; .rv.data.AlphaType alpha_type = 15; } message VideoProperties { enum EndBehavior { END_BEHAVIOR_STOP = 0; END_BEHAVIOR_STOP_ON_BLACK = 1; END_BEHAVIOR_STOP_ON_CLEAR = 2; END_BEHAVIOR_FADE_TO_BLACK = 3; END_BEHAVIOR_FADE_TO_CLEAR = 4; } enum FieldType { FIELD_TYPE_UNKNOWN = 0; FIELD_TYPE_PROGRESSIVE = 1; FIELD_TYPE_INTERLACED_UPPER_FIRST = 2; FIELD_TYPE_INTERLACED_LOWER_FIRST = 3; } double frame_rate = 1; .rv.data.Media.VideoProperties.FieldType field_type = 2; double thumbnail_position = 3; .rv.data.Media.VideoProperties.EndBehavior end_behavior = 4; bool soft_loop = 5; double soft_loop_duration = 6; } message LiveVideoProperties { .rv.data.Media.VideoDevice video_device = 1; .rv.data.Media.AudioDevice audio_device = 2; int32 live_video_index = 3; } message AudioTypeProperties { .rv.data.Media.AudioProperties audio = 1; .rv.data.Media.TransportProperties transport = 2; .rv.data.FileProperties file = 3; } message ImageTypeProperties { .rv.data.Media.DrawingProperties drawing = 1; .rv.data.FileProperties file = 2; } message VideoTypeProperties { .rv.data.Media.DrawingProperties drawing = 1; .rv.data.Media.AudioProperties audio = 2; .rv.data.Media.TransportProperties transport = 3; .rv.data.Media.VideoProperties video = 4; .rv.data.FileProperties file = 5; } message LiveVideoTypeProperties { .rv.data.Media.DrawingProperties drawing = 1; .rv.data.Media.AudioProperties audio = 2; .rv.data.Media.LiveVideoProperties live_video = 3; } message WebContentTypeProperties { .rv.data.Media.DrawingProperties drawing = 1; .rv.data.URL url = 2; } enum ScaleBehavior { SCALE_BEHAVIOR_FIT = 0; SCALE_BEHAVIOR_FILL = 1; SCALE_BEHAVIOR_STRETCH = 2; SCALE_BEHAVIOR_CUSTOM = 3; } enum ScaleAlignment { SCALE_ALIGNMENT_MIDDLE_CENTER = 0; SCALE_ALIGNMENT_TOP_LEFT = 1; SCALE_ALIGNMENT_TOP_CENTER = 2; SCALE_ALIGNMENT_TOP_RIGHT = 3; SCALE_ALIGNMENT_MIDDLE_RIGHT = 4; SCALE_ALIGNMENT_BOTTOM_RIGHT = 5; SCALE_ALIGNMENT_BOTTOM_CENTER = 6; SCALE_ALIGNMENT_BOTTOM_LEFT = 7; SCALE_ALIGNMENT_MIDDLE_LEFT = 8; } .rv.data.UUID uuid = 1; .rv.data.URL url = 2; .rv.data.Media.Metadata metadata = 3; oneof TypeProperties { .rv.data.Media.AudioTypeProperties audio = 4; .rv.data.Media.ImageTypeProperties image = 5; .rv.data.Media.VideoTypeProperties video = 6; .rv.data.Media.LiveVideoTypeProperties live_video = 7; .rv.data.Media.WebContentTypeProperties web_content = 8; } }