blob: 91e5a978b0d96291ac3ee8edaae2647cf920619c [file] [log] [blame]
[email protected]6387b4d2012-04-11 02:27:091// Copyright (c) 2012 The Chromium Authors. All rights reserved.
[email protected]409ac612011-11-18 04:05:572// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "remoting/protocol/client_event_dispatcher.h"
6
[email protected]5d7eb862013-06-28 15:21:247#include "base/time/time.h"
[email protected]2e8b52c2011-11-22 00:07:138#include "net/socket/stream_socket.h"
sergeyuf1005f62016-02-03 21:11:309#include "remoting/base/compound_buffer.h"
[email protected]2e8b52c2011-11-22 00:07:1310#include "remoting/base/constants.h"
[email protected]409ac612011-11-18 04:05:5711#include "remoting/proto/event.pb.h"
12#include "remoting/proto/internal.pb.h"
sergeyuf1005f62016-02-03 21:11:3013#include "remoting/protocol/message_pipe.h"
[email protected]409ac612011-11-18 04:05:5714
15namespace remoting {
16namespace protocol {
17
18ClientEventDispatcher::ClientEventDispatcher()
sergeyuf1005f62016-02-03 21:11:3019 : ChannelDispatcherBase(kEventChannelName) {}
Chris Watkins6fe52aa2017-11-28 03:24:0520ClientEventDispatcher::~ClientEventDispatcher() = default;
[email protected]409ac612011-11-18 04:05:5721
22void ClientEventDispatcher::InjectKeyEvent(const KeyEvent& event) {
[email protected]f5e7c882012-09-11 01:52:1423 DCHECK(event.has_usb_keycode());
[email protected]6387b4d2012-04-11 02:27:0924 DCHECK(event.has_pressed());
[email protected]409ac612011-11-18 04:05:5725 EventMessage message;
sergeyu8acf48f82015-10-01 18:40:4826 message.set_timestamp(base::TimeTicks::Now().ToInternalValue());
[email protected]409ac612011-11-18 04:05:5727 message.mutable_key_event()->CopyFrom(event);
sergeyuf1005f62016-02-03 21:11:3028 message_pipe()->Send(&message, base::Closure());
[email protected]409ac612011-11-18 04:05:5729}
30
[email protected]529bbd12014-03-27 20:25:3931void ClientEventDispatcher::InjectTextEvent(const TextEvent& event) {
32 DCHECK(event.has_text());
33 EventMessage message;
sergeyu8acf48f82015-10-01 18:40:4834 message.set_timestamp(base::TimeTicks::Now().ToInternalValue());
[email protected]529bbd12014-03-27 20:25:3935 message.mutable_text_event()->CopyFrom(event);
sergeyuf1005f62016-02-03 21:11:3036 message_pipe()->Send(&message, base::Closure());
[email protected]529bbd12014-03-27 20:25:3937}
38
[email protected]409ac612011-11-18 04:05:5739void ClientEventDispatcher::InjectMouseEvent(const MouseEvent& event) {
40 EventMessage message;
sergeyu8acf48f82015-10-01 18:40:4841 message.set_timestamp(base::TimeTicks::Now().ToInternalValue());
[email protected]409ac612011-11-18 04:05:5742 message.mutable_mouse_event()->CopyFrom(event);
sergeyuf1005f62016-02-03 21:11:3043 message_pipe()->Send(&message, base::Closure());
[email protected]409ac612011-11-18 04:05:5744}
45
rkuroiwa0e68803f2015-02-26 19:41:4246void ClientEventDispatcher::InjectTouchEvent(const TouchEvent& event) {
47 EventMessage message;
sergeyu8acf48f82015-10-01 18:40:4848 message.set_timestamp(base::TimeTicks::Now().ToInternalValue());
rkuroiwa0e68803f2015-02-26 19:41:4249 message.mutable_touch_event()->CopyFrom(event);
sergeyuf1005f62016-02-03 21:11:3050 message_pipe()->Send(&message, base::Closure());
rkuroiwa0e68803f2015-02-26 19:41:4251}
52
sergeyud8af2ca2016-01-30 03:04:3653void ClientEventDispatcher::OnIncomingMessage(
dcheng0765c492016-04-06 22:41:5354 std::unique_ptr<CompoundBuffer> message) {
sergeyud8af2ca2016-01-30 03:04:3655 LOG(ERROR) << "Received unexpected message on the event channel.";
56}
57
[email protected]409ac612011-11-18 04:05:5758} // namespace protocol
59} // namespace remoting