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 "chrome/browser/media/native_desktop_media_list.h" | 5 #include "chrome/browser/media/native_desktop_media_list.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 #include <string.h> | 9 #include <string.h> |
10 #include <vector> | 10 #include <vector> |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
60 class FakeScreenCapturer : public webrtc::ScreenCapturer { | 60 class FakeScreenCapturer : public webrtc::ScreenCapturer { |
61 public: | 61 public: |
62 FakeScreenCapturer() {} | 62 FakeScreenCapturer() {} |
63 ~FakeScreenCapturer() override {} | 63 ~FakeScreenCapturer() override {} |
64 | 64 |
65 // webrtc::ScreenCapturer implementation. | 65 // webrtc::ScreenCapturer implementation. |
66 void Start(Callback* callback) override { callback_ = callback; } | 66 void Start(Callback* callback) override { callback_ = callback; } |
67 | 67 |
68 void Capture(const webrtc::DesktopRegion& region) override { | 68 void Capture(const webrtc::DesktopRegion& region) override { |
69 DCHECK(callback_); | 69 DCHECK(callback_); |
70 webrtc::DesktopFrame* frame = | 70 std::unique_ptr<webrtc::DesktopFrame> frame( |
71 new webrtc::BasicDesktopFrame(webrtc::DesktopSize(10, 10)); | 71 new webrtc::BasicDesktopFrame(webrtc::DesktopSize(10, 10))); |
72 memset(frame->data(), 0, frame->stride() * frame->size().height()); | 72 memset(frame->data(), 0, frame->stride() * frame->size().height()); |
73 callback_->OnCaptureCompleted(frame); | 73 callback_->OnCaptureResult(webrtc::DesktopCapturer::Result::SUCCESS, |
| 74 std::move(frame)); |
74 } | 75 } |
75 | 76 |
76 bool GetScreenList(ScreenList* screens) override { | 77 bool GetScreenList(ScreenList* screens) override { |
77 webrtc::ScreenCapturer::Screen screen; | 78 webrtc::ScreenCapturer::Screen screen; |
78 screen.id = 0; | 79 screen.id = 0; |
79 screens->push_back(screen); | 80 screens->push_back(screen); |
80 return true; | 81 return true; |
81 } | 82 } |
82 | 83 |
83 bool SelectScreen(webrtc::ScreenId id) override { | 84 bool SelectScreen(webrtc::ScreenId id) override { |
(...skipping 30 matching lines...) Expand all Loading... |
114 void Start(Callback* callback) override { callback_ = callback; } | 115 void Start(Callback* callback) override { callback_ = callback; } |
115 | 116 |
116 void Capture(const webrtc::DesktopRegion& region) override { | 117 void Capture(const webrtc::DesktopRegion& region) override { |
117 DCHECK(callback_); | 118 DCHECK(callback_); |
118 | 119 |
119 base::AutoLock lock(frame_values_lock_); | 120 base::AutoLock lock(frame_values_lock_); |
120 | 121 |
121 std::map<WindowId, int8_t>::iterator it = | 122 std::map<WindowId, int8_t>::iterator it = |
122 frame_values_.find(selected_window_id_); | 123 frame_values_.find(selected_window_id_); |
123 int8_t value = (it != frame_values_.end()) ? it->second : 0; | 124 int8_t value = (it != frame_values_.end()) ? it->second : 0; |
124 webrtc::DesktopFrame* frame = | 125 std::unique_ptr<webrtc::DesktopFrame> frame( |
125 new webrtc::BasicDesktopFrame(webrtc::DesktopSize(10, 10)); | 126 new webrtc::BasicDesktopFrame(webrtc::DesktopSize(10, 10))); |
126 memset(frame->data(), value, frame->stride() * frame->size().height()); | 127 memset(frame->data(), value, frame->stride() * frame->size().height()); |
127 callback_->OnCaptureCompleted(frame); | 128 callback_->OnCaptureResult(webrtc::DesktopCapturer::Result::SUCCESS, |
| 129 std::move(frame)); |
128 } | 130 } |
129 | 131 |
130 bool GetWindowList(WindowList* windows) override { | 132 bool GetWindowList(WindowList* windows) override { |
131 base::AutoLock lock(window_list_lock_); | 133 base::AutoLock lock(window_list_lock_); |
132 *windows = window_list_; | 134 *windows = window_list_; |
133 return true; | 135 return true; |
134 } | 136 } |
135 | 137 |
136 bool SelectWindow(WindowId id) override { | 138 bool SelectWindow(WindowId id) override { |
137 selected_window_id_ = id; | 139 selected_window_id_ = id; |
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
505 QuitMessageLoop(message_loop()))); | 507 QuitMessageLoop(message_loop()))); |
506 | 508 |
507 // Swap the two windows. | 509 // Swap the two windows. |
508 webrtc::WindowCapturer::Window temp = window_list_[0]; | 510 webrtc::WindowCapturer::Window temp = window_list_[0]; |
509 window_list_[0] = window_list_[1]; | 511 window_list_[0] = window_list_[1]; |
510 window_list_[1] = temp; | 512 window_list_[1] = temp; |
511 window_capturer_->SetWindowList(window_list_); | 513 window_capturer_->SetWindowList(window_list_); |
512 | 514 |
513 message_loop()->Run(); | 515 message_loop()->Run(); |
514 } | 516 } |
OLD | NEW |