| Index: remoting/base/protocol/chromotocol.proto
|
| ===================================================================
|
| --- remoting/base/protocol/chromotocol.proto (revision 0)
|
| +++ remoting/base/protocol/chromotocol.proto (revision 0)
|
| @@ -0,0 +1,153 @@
|
| +// Copyright (c) 2010 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 communication between chromoting client and host.
|
| +
|
| +syntax = "proto2";
|
| +
|
| +option optimize_for = LITE_RUNTIME;
|
| +
|
| +package chromotocol_pb;
|
| +
|
| +// A message that gets sent to the client after the client is connected to the
|
| +// host. It contains information that the client needs to know about the host.
|
| +// NEXT ID: 3
|
| +message InitClientMessage {
|
| + required int32 width = 1;
|
| + required int32 height = 2;
|
| +}
|
| +
|
| +// A message to denote the beginning of an update stream. It will be followed
|
| +// by 0 or more PartialUpdateStream messages and then a EndUpdateStream message.
|
| +// NEXT ID: 1
|
| +message BeginUpdateStreamMessage {
|
| +}
|
| +
|
| +// A message to denote the end of an update stream.
|
| +// NEXT ID: 1
|
| +message EndUpdateStreamMessage {
|
| +}
|
| +
|
| +// Identifies how the image was encoded.
|
| +enum UpdateStreamEncoding {
|
| + EncodingNone = 0;
|
| + EncodingZlib = 1;
|
| +}
|
| +
|
| +// Identifies the pixel format.
|
| +// Note that this list should match exactly the same as
|
| +// media::VideoFrame::Format in media/base/video_frame.h.
|
| +enum PixelFormat {
|
| + PixelFormatInvalid = 0;
|
| + PixelFormatRgb555 = 1;
|
| + PixelFormatRgb565 = 2;
|
| + PixelFormatRgb24 = 3;
|
| + PixelFormatRgb32 = 4;
|
| + PixelFormatRgba = 5;
|
| + PixelFormatYv12 = 6;
|
| + PixelFormatYv16 = 7;
|
| + PixelFormatEmpty = 8;
|
| + PixelFormatAscii = 9;
|
| +}
|
| +
|
| +// A message with info about the update stream.
|
| +// NEXT ID: 6
|
| +message UpdateStreamPacketHeader {
|
| + // X,Y coordinates (in screen pixels) for origin of this update.
|
| + required int32 x = 1;
|
| + required int32 y = 2;
|
| +
|
| + // Width, height (in screen pixels) for this update.
|
| + required int32 width = 3;
|
| + required int32 height = 4;
|
| +
|
| + // The encoding used for this image update.
|
| + optional UpdateStreamEncoding encoding = 5 [default=EncodingNone];
|
| +
|
| + // The pixel format of this image.
|
| + optional PixelFormat pixel_format = 6 [default=PixelFormatRgb24];
|
| +}
|
| +
|
| +// A message to denote a partial update stream.
|
| +// NEXT ID: 3
|
| +message UpdateStreamPacketMessage {
|
| + // TODO(garykac): Make this required and fix unit tests.
|
| + optional UpdateStreamPacketHeader header = 2;
|
| + optional bytes data = 1;
|
| +}
|
| +
|
| +// Defines the message that is sent from the host to the client.
|
| +// Only one of these messages should be present.
|
| +// NEXT ID: 5
|
| +message HostMessage {
|
| + optional InitClientMessage init_client= 1;
|
| + optional BeginUpdateStreamMessage begin_update_stream = 2;
|
| + optional EndUpdateStreamMessage end_update_stream = 3;
|
| + optional UpdateStreamPacketMessage update_stream_packet = 4;
|
| +}
|
| +
|
| +// Defines a keyboard event.
|
| +// NEXT ID: 3
|
| +message KeyEvent {
|
| + // The POSIX key code.
|
| + required int32 key = 1;
|
| + required bool pressed = 2;
|
| +}
|
| +
|
| +// Sets the position of the mouse cursor.
|
| +// The coordinate value is between [0 .. 1] which is relative to the
|
| +// dimension of the screen area.
|
| +// NEXT ID: 3
|
| +message MouseSetPositionEvent {
|
| + required float x = 1;
|
| + required float y = 2;
|
| +}
|
| +
|
| +// Adjust the position of the mouse cursor by an offset.
|
| +// NEXT ID: 3
|
| +message MouseMoveEvent {
|
| + required int32 offset_x = 1;
|
| + required int32 offset_y = 2;
|
| +}
|
| +
|
| +// Motion of the mouse wheel.
|
| +// NEXT ID: 3
|
| +message MouseWheelEvent {
|
| + required int32 offset_x = 1;
|
| + required int32 offset_y = 2;
|
| +}
|
| +
|
| +// Mouse button is pressed down.
|
| +// NEXT ID: 2
|
| +message MouseDownEvent {
|
| + enum Button {
|
| + LEFT = 0;
|
| + MIDDLE = 1;
|
| + RIGHT = 2;
|
| + }
|
| + required Button button = 1;
|
| +}
|
| +
|
| +// Mouse button is released.
|
| +// NEXT ID: 2
|
| +message MouseUpEvent {
|
| + enum Button {
|
| + LEFT = 0;
|
| + MIDDLE = 1;
|
| + RIGHT = 2;
|
| + }
|
| + required Button button = 1;
|
| +}
|
| +
|
| +// Defines the message that is sent from the client to the host.
|
| +// Only one of these messages should be present.
|
| +// NEXT ID: 7
|
| +message ClientMessage {
|
| + optional KeyEvent key_event = 1;
|
| + optional MouseSetPositionEvent mouse_set_position_event = 2;
|
| + optional MouseMoveEvent mouse_move_event = 3;
|
| + optional MouseWheelEvent mouse_wheel_event = 4;
|
| + optional MouseDownEvent mouse_down_event = 5;
|
| + optional MouseUpEvent mouse_up_event = 6;
|
| +}
|
|
|