| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/plugin/chromoting_instance.h" | 5 #include "remoting/client/plugin/chromoting_instance.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 g_logging_instance = LAZY_INSTANCE_INITIALIZER; | 119 g_logging_instance = LAZY_INSTANCE_INITIALIZER; |
| 120 base::LazyInstance<base::Lock>::Leaky | 120 base::LazyInstance<base::Lock>::Leaky |
| 121 g_logging_lock = LAZY_INSTANCE_INITIALIZER; | 121 g_logging_lock = LAZY_INSTANCE_INITIALIZER; |
| 122 logging::LogMessageHandlerFunction g_logging_old_handler = NULL; | 122 logging::LogMessageHandlerFunction g_logging_old_handler = NULL; |
| 123 | 123 |
| 124 } // namespace | 124 } // namespace |
| 125 | 125 |
| 126 // String sent in the "hello" message to the plugin to describe features. | 126 // String sent in the "hello" message to the plugin to describe features. |
| 127 const char ChromotingInstance::kApiFeatures[] = | 127 const char ChromotingInstance::kApiFeatures[] = |
| 128 "highQualityScaling injectKeyEvent sendClipboardItem remapKey trapKey " | 128 "highQualityScaling injectKeyEvent sendClipboardItem remapKey trapKey " |
| 129 "notifyClientDimensions pauseVideo"; | 129 "notifyClientDimensions pauseVideo pauseAudio"; |
| 130 | 130 |
| 131 bool ChromotingInstance::ParseAuthMethods(const std::string& auth_methods_str, | 131 bool ChromotingInstance::ParseAuthMethods(const std::string& auth_methods_str, |
| 132 ClientConfig* config) { | 132 ClientConfig* config) { |
| 133 std::vector<std::string> auth_methods; | 133 std::vector<std::string> auth_methods; |
| 134 base::SplitString(auth_methods_str, ',', &auth_methods); | 134 base::SplitString(auth_methods_str, ',', &auth_methods); |
| 135 for (std::vector<std::string>::iterator it = auth_methods.begin(); | 135 for (std::vector<std::string>::iterator it = auth_methods.begin(); |
| 136 it != auth_methods.end(); ++it) { | 136 it != auth_methods.end(); ++it) { |
| 137 protocol::AuthenticationMethod authentication_method = | 137 protocol::AuthenticationMethod authentication_method = |
| 138 protocol::AuthenticationMethod::FromString(*it); | 138 protocol::AuthenticationMethod::FromString(*it); |
| 139 if (authentication_method.is_valid()) | 139 if (authentication_method.is_valid()) |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 338 return; | 338 return; |
| 339 } | 339 } |
| 340 NotifyClientDimensions(width, height); | 340 NotifyClientDimensions(width, height); |
| 341 } else if (method == "pauseVideo") { | 341 } else if (method == "pauseVideo") { |
| 342 bool pause = false; | 342 bool pause = false; |
| 343 if (!data->GetBoolean("pause", &pause)) { | 343 if (!data->GetBoolean("pause", &pause)) { |
| 344 LOG(ERROR) << "Invalid pauseVideo."; | 344 LOG(ERROR) << "Invalid pauseVideo."; |
| 345 return; | 345 return; |
| 346 } | 346 } |
| 347 PauseVideo(pause); | 347 PauseVideo(pause); |
| 348 } else if (method == "pauseAudio") { |
| 349 bool pause = false; |
| 350 if (!data->GetBoolean("pause", &pause)) { |
| 351 LOG(ERROR) << "Invalid pauseAudio."; |
| 352 return; |
| 353 } |
| 354 PauseAudio(pause); |
| 348 } | 355 } |
| 349 } | 356 } |
| 350 | 357 |
| 351 void ChromotingInstance::DidChangeView(const pp::View& view) { | 358 void ChromotingInstance::DidChangeView(const pp::View& view) { |
| 352 DCHECK(plugin_task_runner_->BelongsToCurrentThread()); | 359 DCHECK(plugin_task_runner_->BelongsToCurrentThread()); |
| 353 | 360 |
| 354 view_->SetView(view); | 361 view_->SetView(view); |
| 355 | 362 |
| 356 mouse_input_filter_.set_input_size(view_->get_view_size_dips()); | 363 mouse_input_filter_.set_input_size(view_->get_view_size_dips()); |
| 357 } | 364 } |
| (...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 573 | 580 |
| 574 void ChromotingInstance::PauseVideo(bool pause) { | 581 void ChromotingInstance::PauseVideo(bool pause) { |
| 575 if (!IsConnected()) { | 582 if (!IsConnected()) { |
| 576 return; | 583 return; |
| 577 } | 584 } |
| 578 protocol::VideoControl video_control; | 585 protocol::VideoControl video_control; |
| 579 video_control.set_enable(!pause); | 586 video_control.set_enable(!pause); |
| 580 host_connection_->host_stub()->ControlVideo(video_control); | 587 host_connection_->host_stub()->ControlVideo(video_control); |
| 581 } | 588 } |
| 582 | 589 |
| 590 void ChromotingInstance::PauseAudio(bool pause) { |
| 591 if (!IsConnected()) { |
| 592 return; |
| 593 } |
| 594 protocol::AudioControl audio_control; |
| 595 audio_control.set_enable(!pause); |
| 596 host_connection_->host_stub()->ControlAudio(audio_control); |
| 597 } |
| 598 |
| 583 ChromotingStats* ChromotingInstance::GetStats() { | 599 ChromotingStats* ChromotingInstance::GetStats() { |
| 584 if (!client_.get()) | 600 if (!client_.get()) |
| 585 return NULL; | 601 return NULL; |
| 586 return client_->GetStats(); | 602 return client_->GetStats(); |
| 587 } | 603 } |
| 588 | 604 |
| 589 void ChromotingInstance::PostChromotingMessage( | 605 void ChromotingInstance::PostChromotingMessage( |
| 590 const std::string& method, | 606 const std::string& method, |
| 591 scoped_ptr<base::DictionaryValue> data) { | 607 scoped_ptr<base::DictionaryValue> data) { |
| 592 scoped_ptr<base::DictionaryValue> message(new base::DictionaryValue()); | 608 scoped_ptr<base::DictionaryValue> message(new base::DictionaryValue()); |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 733 PostChromotingMessage("logDebugMessage", data.Pass()); | 749 PostChromotingMessage("logDebugMessage", data.Pass()); |
| 734 g_logging_to_plugin = false; | 750 g_logging_to_plugin = false; |
| 735 } | 751 } |
| 736 | 752 |
| 737 bool ChromotingInstance::IsConnected() { | 753 bool ChromotingInstance::IsConnected() { |
| 738 return host_connection_.get() && | 754 return host_connection_.get() && |
| 739 (host_connection_->state() == protocol::ConnectionToHost::CONNECTED); | 755 (host_connection_->state() == protocol::ConnectionToHost::CONNECTED); |
| 740 } | 756 } |
| 741 | 757 |
| 742 } // namespace remoting | 758 } // namespace remoting |
| OLD | NEW |