| 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 #if defined(OS_NACL) | 10 #if defined(OS_NACL) | 
| (...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 431   scoped_ptr<base::DictionaryValue> data(new base::DictionaryValue()); | 431   scoped_ptr<base::DictionaryValue> data(new base::DictionaryValue()); | 
| 432   data->SetInteger("width", size.width()); | 432   data->SetInteger("width", size.width()); | 
| 433   data->SetInteger("height", size.height()); | 433   data->SetInteger("height", size.height()); | 
| 434   if (dpi.x()) | 434   if (dpi.x()) | 
| 435     data->SetInteger("x_dpi", dpi.x()); | 435     data->SetInteger("x_dpi", dpi.x()); | 
| 436   if (dpi.y()) | 436   if (dpi.y()) | 
| 437     data->SetInteger("y_dpi", dpi.y()); | 437     data->SetInteger("y_dpi", dpi.y()); | 
| 438   PostLegacyJsonMessage("onDesktopSize", data.Pass()); | 438   PostLegacyJsonMessage("onDesktopSize", data.Pass()); | 
| 439 } | 439 } | 
| 440 | 440 | 
| 441 void ChromotingInstance::OnVideoShape(const webrtc::DesktopRegion& shape) { | 441 void ChromotingInstance::OnVideoShape(const webrtc::DesktopRegion* shape) { | 
| 442   if (desktop_shape_ && shape.Equals(*desktop_shape_)) | 442   if ((shape && desktop_shape_ && shape->Equals(*desktop_shape_)) || | 
|  | 443       (!shape && !desktop_shape_)) { | 
| 443     return; | 444     return; | 
| 444 |  | 
| 445   desktop_shape_.reset(new webrtc::DesktopRegion(shape)); |  | 
| 446 |  | 
| 447   scoped_ptr<base::ListValue> rects_value(new base::ListValue()); |  | 
| 448   for (webrtc::DesktopRegion::Iterator i(shape); !i.IsAtEnd(); i.Advance()) { |  | 
| 449     const webrtc::DesktopRect& rect = i.rect(); |  | 
| 450     scoped_ptr<base::ListValue> rect_value(new base::ListValue()); |  | 
| 451     rect_value->AppendInteger(rect.left()); |  | 
| 452     rect_value->AppendInteger(rect.top()); |  | 
| 453     rect_value->AppendInteger(rect.width()); |  | 
| 454     rect_value->AppendInteger(rect.height()); |  | 
| 455     rects_value->Append(rect_value.release()); |  | 
| 456   } | 445   } | 
| 457 | 446 | 
| 458   scoped_ptr<base::DictionaryValue> data(new base::DictionaryValue()); | 447   scoped_ptr<base::DictionaryValue> shape_message(new base::DictionaryValue()); | 
| 459   data->Set("rects", rects_value.release()); | 448   if (shape) { | 
| 460   PostLegacyJsonMessage("onDesktopShape", data.Pass()); | 449     desktop_shape_ = make_scoped_ptr(new webrtc::DesktopRegion(*shape)); | 
|  | 450     scoped_ptr<base::ListValue> rects_value(new base::ListValue()); | 
|  | 451     for (webrtc::DesktopRegion::Iterator i(*shape); !i.IsAtEnd(); i.Advance()) { | 
|  | 452       const webrtc::DesktopRect& rect = i.rect(); | 
|  | 453       scoped_ptr<base::ListValue> rect_value(new base::ListValue()); | 
|  | 454       rect_value->AppendInteger(rect.left()); | 
|  | 455       rect_value->AppendInteger(rect.top()); | 
|  | 456       rect_value->AppendInteger(rect.width()); | 
|  | 457       rect_value->AppendInteger(rect.height()); | 
|  | 458       rects_value->Append(rect_value.release()); | 
|  | 459     } | 
|  | 460     shape_message->Set("rects", rects_value.release()); | 
|  | 461   } | 
|  | 462 | 
|  | 463   PostLegacyJsonMessage("onDesktopShape", shape_message.Pass()); | 
| 461 } | 464 } | 
| 462 | 465 | 
| 463 void ChromotingInstance::OnVideoFrameDirtyRegion( | 466 void ChromotingInstance::OnVideoFrameDirtyRegion( | 
| 464     const webrtc::DesktopRegion& dirty_region) { | 467     const webrtc::DesktopRegion& dirty_region) { | 
| 465   scoped_ptr<base::ListValue> rects_value(new base::ListValue()); | 468   scoped_ptr<base::ListValue> rects_value(new base::ListValue()); | 
| 466   for (webrtc::DesktopRegion::Iterator i(dirty_region); !i.IsAtEnd(); | 469   for (webrtc::DesktopRegion::Iterator i(dirty_region); !i.IsAtEnd(); | 
| 467        i.Advance()) { | 470        i.Advance()) { | 
| 468     const webrtc::DesktopRect& rect = i.rect(); | 471     const webrtc::DesktopRect& rect = i.rect(); | 
| 469     scoped_ptr<base::ListValue> rect_value(new base::ListValue()); | 472     scoped_ptr<base::ListValue> rect_value(new base::ListValue()); | 
| 470     rect_value->AppendInteger(rect.left()); | 473     rect_value->AppendInteger(rect.left()); | 
| (...skipping 758 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1229 | 1232 | 
| 1230 #if !defined(OS_NACL) | 1233 #if !defined(OS_NACL) | 
| 1231   // Log messages are forwarded to the webapp only in PNaCl version of the | 1234   // Log messages are forwarded to the webapp only in PNaCl version of the | 
| 1232   // plugin, so ProcessLogToUI() needs to be called explicitly in the non-PNaCl | 1235   // plugin, so ProcessLogToUI() needs to be called explicitly in the non-PNaCl | 
| 1233   // version. | 1236   // version. | 
| 1234   ProcessLogToUI(message); | 1237   ProcessLogToUI(message); | 
| 1235 #endif  // !defined(OS_NACL) | 1238 #endif  // !defined(OS_NACL) | 
| 1236 } | 1239 } | 
| 1237 | 1240 | 
| 1238 }  // namespace remoting | 1241 }  // namespace remoting | 
| OLD | NEW | 
|---|