-
Notifications
You must be signed in to change notification settings - Fork 4
/
display.proto
84 lines (73 loc) · 2.66 KB
/
display.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
syntax = "proto3";
import "google/protobuf/empty.proto";
package oak.platform;
// Configure displays (monitors, TVs, etc) that are connected to the host
// A "mode" is a string representing a resolution and framerate
// together, e.g. "1024x768@60.00". Because values for modes must be
// an exact text match in order to be recognized they should only be
// generated by this service. Users should not attempt to apply a
// mode to a display if it is not listed in that display's
// 'available_modes'.
//
// When in doubt, it is recommended that every display is configured
// with its preferred_mode and the DPI be set to 96.
//
// 'display_id' values come from the name of the physical port the
// display is plugged into.
service Display {
// Lists displays, current configuration and supported configurations
rpc Info (google.protobuf.Empty) returns (DisplayInformation) {}
// Applies configuration to a specific display
rpc Configure (DisplayConfigurationRequest) returns (google.protobuf.Empty) {}
// Applies configuration that affects all displays
rpc ConfigureGlobal (DisplayGlobalConfiguration) returns (google.protobuf.Empty) {}
}
message DisplayInformation {
DisplayGlobalConfiguration global_configuration = 1;
repeated Display displays = 2;
message Display {
string display_id = 1;
DisplayConfiguration configuration = 2;
// the native resolution and framerate of the display
string preferred_mode = 3;
repeated string available_modes = 4;
}
}
message DisplayConfigurationRequest {
string display_id = 1;
DisplayConfiguration configuration = 2;
}
message DisplayConfiguration {
// setting 'false' will turn the display off and other settings will
// have no effect
bool enabled = 1;
// resolution and framerate; values should only come from Info
// endpoint and should not be guessed
string mode = 2;
// mirror the image across either axis or both
Reflect reflect = 3;
// rotate the image relative to the display's upright direction
// NOT relative to the image's current rotation
Rotate rotate = 4;
// transformation matrix to apply to output
// see '--transform' instructions here:
// https://www.x.org/archive/current/doc/man/man1/xrandr.1.xhtml
// must be 9 comma-separated decimal values
string transform = 5;
enum Reflect {
NO_REFLECT = 0;
X = 1; // swap top and bottom
Y = 2; // swap left and right
XY = 3; // swap along both axes
}
enum Rotate {
NO_ROTATE = 0;
LEFT = 1; // turn 90 degrees counter-clockwise
RIGHT = 2; // turn 90 degrees clockwise
INVERTED = 3; // turn 180 degrees
}
}
message DisplayGlobalConfiguration {
// set DPI for all displays
uint32 dpi = 1;
}