syntax = "proto3"; package rv.data; option cc_enable_arenas = true; option csharp_namespace = "Pro.SerializationInterop.RVProtoData"; option swift_prefix = "RVData_"; import "color.proto"; import "graphicsData.proto"; import "uuid.proto"; message Screen { message ColorAdjustment { double gamma = 1; double black_level = 2; double red_level = 3; double green_level = 4; double blue_level = 5; double brightness = 6; double contrast = 7; } message BlendCompensation { double black_level = 1; } message AlphaSettings { message AlphaDevice { .rv.data.OutputDisplay display = 1; .rv.data.Graphics.Rect subscreen_unit_rect = 2; } enum Mode { MODE_UNKNOWN = 0; MODE_DISABLED = 1; MODE_PREMULTIPLIED = 2; MODE_STRAIGHT = 3; } .rv.data.Screen.AlphaSettings.Mode mode = 1; .rv.data.Screen.AlphaSettings.AlphaDevice alpha_device = 2; } .rv.data.UUID uuid = 1; string name = 2; .rv.data.Color color = 3; .rv.data.Graphics.Rect bounds = 4; bool aspect_ratio_locked = 5; bool output_bounds_aspect_ratio_locked = 6; bool corner_pinning_enabled = 7; .rv.data.Graphics.Rect subscreen_unit_rect = 8; double rotation = 9; double gamma = 10; double black_level = 11; uint32 blended_edges = 12; .rv.data.CornerValues corner_values = 13; .rv.data.OutputDisplay output_display = 14; bool color_enabled = 15; .rv.data.Screen.ColorAdjustment color_adjustment = 16; .rv.data.Screen.BlendCompensation blend_compensation = 17; .rv.data.Screen.AlphaSettings alpha_settings = 18; } message CornerValues { .rv.data.Graphics.Point top_left = 1; .rv.data.Graphics.Point top_right = 2; .rv.data.Graphics.Point bottom_left = 3; .rv.data.Graphics.Point bottom_right = 4; } message DisplayMode { string name = 1; uint32 width = 2; uint32 height = 3; double refresh_rate = 4; bool interlaced = 5; } message OutputDisplay { message Blackmagic { enum KeyMode { KEY_MODE_INTERNAL = 0; KEY_MODE_EXTERNAL = 1; } bool enabled = 1; .rv.data.OutputDisplay.Blackmagic.KeyMode key_mode = 2; double blend_value = 3; } enum Type { TYPE_UNKNOWN = 0; TYPE_SCREEN = 1; TYPE_CARD = 2; TYPE_NDI = 3; TYPE_SYPHON = 4; TYPE_CUSTOM = 5; } string name = 1; string model = 2; string serial = 3; string deviceName = 4; string vendor = 5; uint32 modeIndex = 6; .rv.data.Graphics.Rect bounds = 7; .rv.data.OutputDisplay.Type type = 8; .rv.data.DisplayMode mode = 9; string render_id = 10; int32 video_delay = 12; oneof HardwareOptions { .rv.data.OutputDisplay.Blackmagic blackmagic = 11; } } message EdgeBlend { message Screen { enum Edge { EDGE_UNKNOWN = 0; EDGE_LEFT = 1; EDGE_RIGHT = 2; EDGE_TOP = 3; EDGE_BOTTOM = 4; } .rv.data.UUID uuid = 1; .rv.data.EdgeBlend.Screen.Edge edge = 2; double gamma = 3; double black_level = 4; .rv.data.EdgeBlend.Mode mode = 5; double radius = 6; double intensity = 7; } enum Mode { MODE_LINEAR = 0; MODE_CUBIC = 1; MODE_QUADRATIC = 2; } .rv.data.UUID uuid = 1; double radius = 2; double intensity = 3; .rv.data.EdgeBlend.Mode mode = 4; .rv.data.EdgeBlend.Screen first_screen = 5; .rv.data.EdgeBlend.Screen second_screen = 6; .rv.data.EdgeBlend.Screen left_screen = 7; .rv.data.EdgeBlend.Screen right_screen = 8; .rv.data.EdgeBlend.Screen top_screen = 9; .rv.data.EdgeBlend.Screen bottom_screen = 10; }