| 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 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 203 delta_x, delta_y)); | 203 delta_x, delta_y)); |
| 204 return; | 204 return; |
| 205 } | 205 } |
| 206 | 206 |
| 207 protocol::MouseEvent event; | 207 protocol::MouseEvent event; |
| 208 event.set_wheel_delta_x(delta_x); | 208 event.set_wheel_delta_x(delta_x); |
| 209 event.set_wheel_delta_y(delta_y); | 209 event.set_wheel_delta_y(delta_y); |
| 210 connection_->input_stub()->InjectMouseEvent(event); | 210 connection_->input_stub()->InjectMouseEvent(event); |
| 211 } | 211 } |
| 212 | 212 |
| 213 void ChromotingJniInstance::SendKeyEvent(int key_code, bool key_down) { | 213 bool ChromotingJniInstance::SendKeyEvent(int key_code, bool key_down) { |
| 214 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { | 214 uint32 usb_key_code = AndroidKeycodeToUsbKeycode(key_code); |
| 215 jni_runtime_->network_task_runner()->PostTask( | 215 if (!usb_key_code) { |
| 216 FROM_HERE, base::Bind(&ChromotingJniInstance::SendKeyEvent, | 216 LOG(WARNING) << "Ignoring unknown keycode: " << key_code; |
| 217 this, key_code, key_down)); | 217 return false; |
| 218 return; | |
| 219 } | 218 } |
| 220 | 219 |
| 221 uint32 usb_code = AndroidKeycodeToUsbKeycode(key_code); | 220 SendKeyEventInternal(usb_key_code, key_down); |
| 222 if (usb_code) { | 221 return true; |
| 223 protocol::KeyEvent event; | |
| 224 event.set_usb_keycode(usb_code); | |
| 225 event.set_pressed(key_down); | |
| 226 connection_->input_stub()->InjectKeyEvent(event); | |
| 227 } else { | |
| 228 LOG(WARNING) << "Ignoring unknown keycode: " << key_code; | |
| 229 } | |
| 230 } | 222 } |
| 231 | 223 |
| 232 void ChromotingJniInstance::SendTextEvent(const std::string& text) { | 224 void ChromotingJniInstance::SendTextEvent(const std::string& text) { |
| 233 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { | 225 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { |
| 234 jni_runtime_->network_task_runner()->PostTask( | 226 jni_runtime_->network_task_runner()->PostTask( |
| 235 FROM_HERE, | 227 FROM_HERE, |
| 236 base::Bind(&ChromotingJniInstance::SendTextEvent, this, text)); | 228 base::Bind(&ChromotingJniInstance::SendTextEvent, this, text)); |
| 237 return; | 229 return; |
| 238 } | 230 } |
| 239 | 231 |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 442 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { | 434 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { |
| 443 jni_runtime_->network_task_runner()->PostTask( | 435 jni_runtime_->network_task_runner()->PostTask( |
| 444 FROM_HERE, base::Bind(&ChromotingJniInstance::SetDeviceName, this, | 436 FROM_HERE, base::Bind(&ChromotingJniInstance::SetDeviceName, this, |
| 445 device_name)); | 437 device_name)); |
| 446 return; | 438 return; |
| 447 } | 439 } |
| 448 | 440 |
| 449 device_name_ = device_name; | 441 device_name_ = device_name; |
| 450 } | 442 } |
| 451 | 443 |
| 444 void ChromotingJniInstance::SendKeyEventInternal(int usb_key_code, |
| 445 bool key_down) { |
| 446 if (!jni_runtime_->network_task_runner()->BelongsToCurrentThread()) { |
| 447 jni_runtime_->network_task_runner()->PostTask( |
| 448 FROM_HERE, base::Bind(&ChromotingJniInstance::SendKeyEventInternal, |
| 449 this, usb_key_code, key_down)); |
| 450 return; |
| 451 } |
| 452 |
| 453 |
| 454 protocol::KeyEvent event; |
| 455 event.set_usb_keycode(usb_key_code); |
| 456 event.set_pressed(key_down); |
| 457 connection_->input_stub()->InjectKeyEvent(event); |
| 458 } |
| 459 |
| 452 void ChromotingJniInstance::EnableStatsLogging(bool enabled) { | 460 void ChromotingJniInstance::EnableStatsLogging(bool enabled) { |
| 453 DCHECK(jni_runtime_->network_task_runner()->BelongsToCurrentThread()); | 461 DCHECK(jni_runtime_->network_task_runner()->BelongsToCurrentThread()); |
| 454 | 462 |
| 455 if (enabled && !stats_logging_enabled_) { | 463 if (enabled && !stats_logging_enabled_) { |
| 456 jni_runtime_->network_task_runner()->PostDelayedTask( | 464 jni_runtime_->network_task_runner()->PostDelayedTask( |
| 457 FROM_HERE, base::Bind(&ChromotingJniInstance::LogPerfStats, this), | 465 FROM_HERE, base::Bind(&ChromotingJniInstance::LogPerfStats, this), |
| 458 base::TimeDelta::FromMilliseconds(kPerfStatsIntervalMs)); | 466 base::TimeDelta::FromMilliseconds(kPerfStatsIntervalMs)); |
| 459 } | 467 } |
| 460 stats_logging_enabled_ = enabled; | 468 stats_logging_enabled_ = enabled; |
| 461 } | 469 } |
| (...skipping 17 matching lines...) Expand all Loading... |
| 479 stats->round_trip_ms()->Average()); | 487 stats->round_trip_ms()->Average()); |
| 480 | 488 |
| 481 log_to_server_->LogStatistics(stats); | 489 log_to_server_->LogStatistics(stats); |
| 482 | 490 |
| 483 jni_runtime_->network_task_runner()->PostDelayedTask( | 491 jni_runtime_->network_task_runner()->PostDelayedTask( |
| 484 FROM_HERE, base::Bind(&ChromotingJniInstance::LogPerfStats, this), | 492 FROM_HERE, base::Bind(&ChromotingJniInstance::LogPerfStats, this), |
| 485 base::TimeDelta::FromMilliseconds(kPerfStatsIntervalMs)); | 493 base::TimeDelta::FromMilliseconds(kPerfStatsIntervalMs)); |
| 486 } | 494 } |
| 487 | 495 |
| 488 } // namespace remoting | 496 } // namespace remoting |
| OLD | NEW |