// 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.

// Internal message types that should not be seen outside the protocol
// directory.

syntax = "proto2";

import "control.proto";
import "event.proto";

option optimize_for = LITE_RUNTIME;

package remoting.protocol;

// Represents a message being sent on the control channel.
message ControlMessage {
  optional ClipboardEvent clipboard_event = 1;
  optional ClientDimensions client_dimensions = 2;
  optional VideoControl video_control = 3;
}

// Defines an event message on the event channel.
message EventMessage {
  optional int64 sequence_number = 1;  // Client timestamp for event.
  optional bool dummy = 2;       // Whether this is a dummy event.

  optional KeyEvent key_event = 3;
  optional MouseEvent mouse_event = 4;
}
