OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "remoting/client/jni/chromoting_jni_instance.h" | 5 #include "remoting/client/jni/chromoting_jni_instance.h" |
6 | 6 |
7 #include <android/log.h> | 7 #include <android/log.h> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 if (!jni_runtime_->display_task_runner()->BelongsToCurrentThread()) { | 121 if (!jni_runtime_->display_task_runner()->BelongsToCurrentThread()) { |
122 jni_runtime_->display_task_runner()->PostTask( | 122 jni_runtime_->display_task_runner()->PostTask( |
123 FROM_HERE, | 123 FROM_HERE, |
124 base::Bind(&ChromotingJniInstance::RedrawDesktop, this)); | 124 base::Bind(&ChromotingJniInstance::RedrawDesktop, this)); |
125 return; | 125 return; |
126 } | 126 } |
127 | 127 |
128 jni_runtime_->RedrawCanvas(); | 128 jni_runtime_->RedrawCanvas(); |
129 } | 129 } |
130 | 130 |
131 void ChromotingJniInstance::PerformMouseAction( | 131 void ChromotingJniInstance::SendMouseEvent( |
132 int x, int y, | 132 int x, int y, |
133 protocol::MouseEvent_MouseButton button, | 133 protocol::MouseEvent_MouseButton button, |
134 bool button_down) { | 134 bool button_down) { |
135 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { | 135 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { |
136 jni_runtime_->network_task_runner()->PostTask( | 136 jni_runtime_->network_task_runner()->PostTask( |
137 FROM_HERE, base::Bind(&ChromotingJniInstance::PerformMouseAction, | 137 FROM_HERE, base::Bind(&ChromotingJniInstance::SendMouseEvent, |
138 this, x, y, button, button_down)); | 138 this, x, y, button, button_down)); |
139 return; | 139 return; |
140 } | 140 } |
141 | 141 |
142 protocol::MouseEvent action; | 142 protocol::MouseEvent event; |
143 action.set_x(x); | 143 event.set_x(x); |
144 action.set_y(y); | 144 event.set_y(y); |
145 action.set_button(button); | 145 event.set_button(button); |
146 if (button != protocol::MouseEvent::BUTTON_UNDEFINED) | 146 if (button != protocol::MouseEvent::BUTTON_UNDEFINED) |
147 action.set_button_down(button_down); | 147 event.set_button_down(button_down); |
148 | 148 |
149 connection_->input_stub()->InjectMouseEvent(action); | 149 connection_->input_stub()->InjectMouseEvent(event); |
150 } | 150 } |
151 | 151 |
152 void ChromotingJniInstance::PerformMouseWheelDeltaAction(int delta_x, | 152 void ChromotingJniInstance::SendMouseWheelEvent(int delta_x, int delta_y) { |
153 int delta_y) { | |
154 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { | 153 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { |
155 jni_runtime_->network_task_runner()->PostTask( | 154 jni_runtime_->network_task_runner()->PostTask( |
156 FROM_HERE, | 155 FROM_HERE, |
157 base::Bind(&ChromotingJniInstance::PerformMouseWheelDeltaAction, this, | 156 base::Bind(&ChromotingJniInstance::SendMouseWheelEvent, this, |
158 delta_x, delta_y)); | 157 delta_x, delta_y)); |
159 return; | 158 return; |
160 } | 159 } |
161 | 160 |
162 protocol::MouseEvent action; | 161 protocol::MouseEvent event; |
163 action.set_wheel_delta_x(delta_x); | 162 event.set_wheel_delta_x(delta_x); |
164 action.set_wheel_delta_y(delta_y); | 163 event.set_wheel_delta_y(delta_y); |
165 connection_->input_stub()->InjectMouseEvent(action); | 164 connection_->input_stub()->InjectMouseEvent(event); |
166 } | 165 } |
167 | 166 |
168 void ChromotingJniInstance::PerformKeyboardAction(int key_code, bool key_down) { | 167 void ChromotingJniInstance::SendKeyEvent(int key_code, bool key_down) { |
169 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { | 168 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { |
170 jni_runtime_->network_task_runner()->PostTask( | 169 jni_runtime_->network_task_runner()->PostTask( |
171 FROM_HERE, base::Bind(&ChromotingJniInstance::PerformKeyboardAction, | 170 FROM_HERE, base::Bind(&ChromotingJniInstance::SendKeyEvent, |
172 this, key_code, key_down)); | 171 this, key_code, key_down)); |
173 return; | 172 return; |
174 } | 173 } |
175 | 174 |
176 uint32 usb_code = AndroidKeycodeToUsbKeycode(key_code); | 175 uint32 usb_code = AndroidKeycodeToUsbKeycode(key_code); |
177 if (usb_code) { | 176 if (usb_code) { |
178 protocol::KeyEvent action; | 177 protocol::KeyEvent event; |
179 action.set_usb_keycode(usb_code); | 178 event.set_usb_keycode(usb_code); |
180 action.set_pressed(key_down); | 179 event.set_pressed(key_down); |
181 connection_->input_stub()->InjectKeyEvent(action); | 180 connection_->input_stub()->InjectKeyEvent(event); |
182 } else { | 181 } else { |
183 LOG(WARNING) << "Ignoring unknown keycode: " << key_code; | 182 LOG(WARNING) << "Ignoring unknown keycode: " << key_code; |
184 } | 183 } |
185 } | 184 } |
186 | 185 |
| 186 void ChromotingJniInstance::SendTextEvent(const std::string& text) { |
| 187 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { |
| 188 jni_runtime_->network_task_runner()->PostTask( |
| 189 FROM_HERE, |
| 190 base::Bind(&ChromotingJniInstance::SendTextEvent, this, text)); |
| 191 return; |
| 192 } |
| 193 |
| 194 protocol::TextEvent event; |
| 195 event.set_text(text); |
| 196 connection_->input_stub()->InjectTextEvent(event); |
| 197 } |
| 198 |
187 void ChromotingJniInstance::RecordPaintTime(int64 paint_time_ms) { | 199 void ChromotingJniInstance::RecordPaintTime(int64 paint_time_ms) { |
188 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { | 200 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { |
189 jni_runtime_->network_task_runner()->PostTask( | 201 jni_runtime_->network_task_runner()->PostTask( |
190 FROM_HERE, base::Bind(&ChromotingJniInstance::RecordPaintTime, this, | 202 FROM_HERE, base::Bind(&ChromotingJniInstance::RecordPaintTime, this, |
191 paint_time_ms)); | 203 paint_time_ms)); |
192 return; | 204 return; |
193 } | 205 } |
194 | 206 |
195 if (stats_logging_enabled_) | 207 if (stats_logging_enabled_) |
196 video_renderer_->GetStats()->video_paint_ms()->Record(paint_time_ms); | 208 video_renderer_->GetStats()->video_paint_ms()->Record(paint_time_ms); |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
407 stats->video_decode_ms()->Average(), | 419 stats->video_decode_ms()->Average(), |
408 stats->video_paint_ms()->Average(), | 420 stats->video_paint_ms()->Average(), |
409 stats->round_trip_ms()->Average()); | 421 stats->round_trip_ms()->Average()); |
410 | 422 |
411 jni_runtime_->network_task_runner()->PostDelayedTask( | 423 jni_runtime_->network_task_runner()->PostDelayedTask( |
412 FROM_HERE, base::Bind(&ChromotingJniInstance::LogPerfStats, this), | 424 FROM_HERE, base::Bind(&ChromotingJniInstance::LogPerfStats, this), |
413 base::TimeDelta::FromMilliseconds(kPerfStatsIntervalMs)); | 425 base::TimeDelta::FromMilliseconds(kPerfStatsIntervalMs)); |
414 } | 426 } |
415 | 427 |
416 } // namespace remoting | 428 } // namespace remoting |
OLD | NEW |