[email protected] | 6387b4d | 2012-04-11 02:27:09 | [diff] [blame] | 1 | // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
[email protected] | 409ac61 | 2011-11-18 04:05:57 | [diff] [blame] | 2 | // 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] | 5d7eb86 | 2013-06-28 15:21:24 | [diff] [blame] | 7 | #include "base/time/time.h" |
[email protected] | 2e8b52c | 2011-11-22 00:07:13 | [diff] [blame] | 8 | #include "net/socket/stream_socket.h" |
sergeyu | f1005f6 | 2016-02-03 21:11:30 | [diff] [blame] | 9 | #include "remoting/base/compound_buffer.h" |
[email protected] | 2e8b52c | 2011-11-22 00:07:13 | [diff] [blame] | 10 | #include "remoting/base/constants.h" |
[email protected] | 409ac61 | 2011-11-18 04:05:57 | [diff] [blame] | 11 | #include "remoting/proto/event.pb.h" |
12 | #include "remoting/proto/internal.pb.h" | ||||
sergeyu | f1005f6 | 2016-02-03 21:11:30 | [diff] [blame] | 13 | #include "remoting/protocol/message_pipe.h" |
[email protected] | 409ac61 | 2011-11-18 04:05:57 | [diff] [blame] | 14 | |
15 | namespace remoting { | ||||
16 | namespace protocol { | ||||
17 | |||||
18 | ClientEventDispatcher::ClientEventDispatcher() | ||||
sergeyu | f1005f6 | 2016-02-03 21:11:30 | [diff] [blame] | 19 | : ChannelDispatcherBase(kEventChannelName) {} |
Chris Watkins | 6fe52aa | 2017-11-28 03:24:05 | [diff] [blame] | 20 | ClientEventDispatcher::~ClientEventDispatcher() = default; |
[email protected] | 409ac61 | 2011-11-18 04:05:57 | [diff] [blame] | 21 | |
22 | void ClientEventDispatcher::InjectKeyEvent(const KeyEvent& event) { | ||||
[email protected] | f5e7c88 | 2012-09-11 01:52:14 | [diff] [blame] | 23 | DCHECK(event.has_usb_keycode()); |
[email protected] | 6387b4d | 2012-04-11 02:27:09 | [diff] [blame] | 24 | DCHECK(event.has_pressed()); |
[email protected] | 409ac61 | 2011-11-18 04:05:57 | [diff] [blame] | 25 | EventMessage message; |
sergeyu | 8acf48f8 | 2015-10-01 18:40:48 | [diff] [blame] | 26 | message.set_timestamp(base::TimeTicks::Now().ToInternalValue()); |
[email protected] | 409ac61 | 2011-11-18 04:05:57 | [diff] [blame] | 27 | message.mutable_key_event()->CopyFrom(event); |
sergeyu | f1005f6 | 2016-02-03 21:11:30 | [diff] [blame] | 28 | message_pipe()->Send(&message, base::Closure()); |
[email protected] | 409ac61 | 2011-11-18 04:05:57 | [diff] [blame] | 29 | } |
30 | |||||
[email protected] | 529bbd1 | 2014-03-27 20:25:39 | [diff] [blame] | 31 | void ClientEventDispatcher::InjectTextEvent(const TextEvent& event) { |
32 | DCHECK(event.has_text()); | ||||
33 | EventMessage message; | ||||
sergeyu | 8acf48f8 | 2015-10-01 18:40:48 | [diff] [blame] | 34 | message.set_timestamp(base::TimeTicks::Now().ToInternalValue()); |
[email protected] | 529bbd1 | 2014-03-27 20:25:39 | [diff] [blame] | 35 | message.mutable_text_event()->CopyFrom(event); |
sergeyu | f1005f6 | 2016-02-03 21:11:30 | [diff] [blame] | 36 | message_pipe()->Send(&message, base::Closure()); |
[email protected] | 529bbd1 | 2014-03-27 20:25:39 | [diff] [blame] | 37 | } |
38 | |||||
[email protected] | 409ac61 | 2011-11-18 04:05:57 | [diff] [blame] | 39 | void ClientEventDispatcher::InjectMouseEvent(const MouseEvent& event) { |
40 | EventMessage message; | ||||
sergeyu | 8acf48f8 | 2015-10-01 18:40:48 | [diff] [blame] | 41 | message.set_timestamp(base::TimeTicks::Now().ToInternalValue()); |
[email protected] | 409ac61 | 2011-11-18 04:05:57 | [diff] [blame] | 42 | message.mutable_mouse_event()->CopyFrom(event); |
sergeyu | f1005f6 | 2016-02-03 21:11:30 | [diff] [blame] | 43 | message_pipe()->Send(&message, base::Closure()); |
[email protected] | 409ac61 | 2011-11-18 04:05:57 | [diff] [blame] | 44 | } |
45 | |||||
rkuroiwa | 0e68803f | 2015-02-26 19:41:42 | [diff] [blame] | 46 | void ClientEventDispatcher::InjectTouchEvent(const TouchEvent& event) { |
47 | EventMessage message; | ||||
sergeyu | 8acf48f8 | 2015-10-01 18:40:48 | [diff] [blame] | 48 | message.set_timestamp(base::TimeTicks::Now().ToInternalValue()); |
rkuroiwa | 0e68803f | 2015-02-26 19:41:42 | [diff] [blame] | 49 | message.mutable_touch_event()->CopyFrom(event); |
sergeyu | f1005f6 | 2016-02-03 21:11:30 | [diff] [blame] | 50 | message_pipe()->Send(&message, base::Closure()); |
rkuroiwa | 0e68803f | 2015-02-26 19:41:42 | [diff] [blame] | 51 | } |
52 | |||||
sergeyu | d8af2ca | 2016-01-30 03:04:36 | [diff] [blame] | 53 | void ClientEventDispatcher::OnIncomingMessage( |
dcheng | 0765c49 | 2016-04-06 22:41:53 | [diff] [blame] | 54 | std::unique_ptr<CompoundBuffer> message) { |
sergeyu | d8af2ca | 2016-01-30 03:04:36 | [diff] [blame] | 55 | LOG(ERROR) << "Received unexpected message on the event channel."; |
56 | } | ||||
57 | |||||
[email protected] | 409ac61 | 2011-11-18 04:05:57 | [diff] [blame] | 58 | } // namespace protocol |
59 | } // namespace remoting |