Chromium Code Reviews| Index: remoting/client/plugin/chromoting_instance.cc |
| diff --git a/remoting/client/plugin/chromoting_instance.cc b/remoting/client/plugin/chromoting_instance.cc |
| index d87953145de03eacfaff2dff99ee37942d5ba35c..28ae90f591aa71bdbe190e46163a21a86145335f 100644 |
| --- a/remoting/client/plugin/chromoting_instance.cc |
| +++ b/remoting/client/plugin/chromoting_instance.cc |
| @@ -182,7 +182,8 @@ logging::LogMessageHandlerFunction g_logging_old_handler = NULL; |
| const char ChromotingInstance::kApiFeatures[] = |
| "highQualityScaling injectKeyEvent sendClipboardItem remapKey trapKey " |
| "notifyClientResolution pauseVideo pauseAudio asyncPin thirdPartyAuth " |
| - "pinlessAuth extensionMessage allowMouseLock mediaSourceRendering"; |
| + "pinlessAuth extensionMessage allowMouseLock mediaSourceRendering " |
| + "videoControl"; |
| const char ChromotingInstance::kRequestedCapabilities[] = ""; |
| const char ChromotingInstance::kSupportedCapabilities[] = "desktopShape"; |
| @@ -347,6 +348,8 @@ void ChromotingInstance::HandleMessage(const pp::Var& message) { |
| HandleNotifyClientResolution(*data); |
| } else if (method == "pauseVideo") { |
| HandlePauseVideo(*data); |
| + } else if (method == "videoControl") { |
| + HandleVideoControl(*data); |
| } else if (method == "pauseAudio") { |
| HandlePauseAudio(*data); |
| } else if (method == "useAsyncPinDialog") { |
| @@ -871,16 +874,30 @@ void ChromotingInstance::HandleNotifyClientResolution( |
| } |
| void ChromotingInstance::HandlePauseVideo(const base::DictionaryValue& data) { |
| - bool pause = false; |
| - if (!data.GetBoolean("pause", &pause)) { |
| + if (!data.HasKey("pause")) { |
| LOG(ERROR) << "Invalid pauseVideo."; |
| return; |
| } |
| + HandleVideoControl(data); |
| +} |
| + |
| +void ChromotingInstance::HandleVideoControl(const base::DictionaryValue& data) { |
| + protocol::VideoControl video_control; |
| + bool pause_video = false; |
| + if (data.GetBoolean("pause", &pause_video)) { |
| + video_control.set_enable(!pause_video); |
| + } |
| + bool lossless_encode = false; |
| + if (data.GetBoolean("lossless_encode", &lossless_encode)) { |
|
Jamie
2014/05/28 22:21:19
JS uses camelCase for variables. I'm not sure how
Wez
2014/05/28 22:41:07
Makes sense. Done!
|
| + video_control.set_lossless_encode(lossless_encode); |
| + } |
| + bool lossless_color = false; |
| + if (data.GetBoolean("lossless_color", &lossless_color)) { |
| + video_control.set_lossless_color(lossless_color); |
| + } |
| if (!IsConnected()) { |
| return; |
| } |
| - protocol::VideoControl video_control; |
| - video_control.set_enable(!pause); |
| host_connection_->host_stub()->ControlVideo(video_control); |
| } |