summaryrefslogtreecommitdiffstats
path: root/remoting/proto/control.proto
blob: c24343ad6f2e9ae984e72970529f50d895e6d88b (plain)
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
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Protocol for control messages.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package remoting.protocol;

message ClientResolution {
  // Legacy width and height of the client in Density-Independent Pixels
  optional int32 dips_width = 1;
  optional int32 dips_height = 2;

  // Width and height of the client in device pixels.
  optional int32 width = 3;
  optional int32 height = 4;

  // Horizontal and vertical DPI of the screen. If either of these is zero or
  // unset, the corresponding DPI should be assumed to be 96 (Windows' default)
  optional int32 x_dpi = 5;
  optional int32 y_dpi = 6;
}

message VideoControl {
  // Enables the video channel if true, pauses if false.
  optional bool enable = 1;

  // Controls whether lossless encode and color translation are requested.
  optional bool lossless_encode = 2;
  optional bool lossless_color = 3;
}

message AudioControl {
  // Enables the audio channel if true, pauses if false.
  optional bool enable = 1;
}

message CursorShapeInfo {
  // Width, height (in screen pixels) of the cursor.
  optional int32 width = 1;
  optional int32 height = 2;

  // X,Y coordinates (relative to upper-left corner) of the cursor hotspot.
  optional int32 hotspot_x = 3;
  optional int32 hotspot_y = 4;

  // Cursor pixmap data in 32-bit BGRA format.
  optional bytes data = 5;
}

message Capabilities {
  // List of capabilities supported by the sender (case sensitive, capabilities
  // are separated by spaces).
  optional string capabilities = 1;
}

message PairingRequest {
  // Human-readable name of the client.
  optional string client_name = 1;
}

message PairingResponse {
  // Unique identifier for this client.
  optional string client_id = 1;

  // Shared secret for this client.
  optional string shared_secret = 2;
}

message ExtensionMessage {
  // The message type. This is used to dispatch the message to the correct
  // recipient.
  optional string type = 1;

  // String-encoded message data. The client and host must agree on the encoding
  // for each message type; different message types need not shared the same
  // encoding.
  optional string data = 2;
}