| Index: chrome/browser/media/native_desktop_media_list.cc
|
| diff --git a/chrome/browser/media/desktop_media_picker_model.cc b/chrome/browser/media/native_desktop_media_list.cc
|
| similarity index 81%
|
| rename from chrome/browser/media/desktop_media_picker_model.cc
|
| rename to chrome/browser/media/native_desktop_media_list.cc
|
| index 4ce788aba4c3396b7ec76a7972140d30c6e8fe47..f293fccc2432f53476b0db7edad47a4be8131934 100644
|
| --- a/chrome/browser/media/desktop_media_picker_model.cc
|
| +++ b/chrome/browser/media/native_desktop_media_list.cc
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "chrome/browser/media/desktop_media_picker_model.h"
|
| +#include "chrome/browser/media/native_desktop_media_list.h"
|
|
|
| #include <map>
|
|
|
| @@ -10,6 +10,7 @@
|
| #include "base/logging.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/threading/sequenced_worker_pool.h"
|
| +#include "chrome/browser/media/desktop_media_list_observer.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "grit/generated_resources.h"
|
| #include "media/base/video_util.h"
|
| @@ -75,22 +76,17 @@ gfx::ImageSkia ScaleDesktopFrame(scoped_ptr<webrtc::DesktopFrame> frame,
|
|
|
| } // namespace
|
|
|
| -DesktopMediaPickerModel::Source::Source(DesktopMediaID id, const string16& name)
|
| - : id(id),
|
| - name(name) {
|
| -}
|
| -
|
| -DesktopMediaPickerModelImpl::SourceDescription::SourceDescription(
|
| +NativeDesktopMediaList::SourceDescription::SourceDescription(
|
| DesktopMediaID id,
|
| const string16& name)
|
| : id(id),
|
| name(name) {
|
| }
|
|
|
| -class DesktopMediaPickerModelImpl::Worker
|
| +class NativeDesktopMediaList::Worker
|
| : public webrtc::DesktopCapturer::Callback {
|
| public:
|
| - Worker(base::WeakPtr<DesktopMediaPickerModelImpl> model,
|
| + Worker(base::WeakPtr<NativeDesktopMediaList> media_list,
|
| scoped_ptr<webrtc::ScreenCapturer> screen_capturer,
|
| scoped_ptr<webrtc::WindowCapturer> window_capturer);
|
| virtual ~Worker();
|
| @@ -105,7 +101,7 @@ class DesktopMediaPickerModelImpl::Worker
|
| virtual webrtc::SharedMemory* CreateSharedMemory(size_t size) OVERRIDE;
|
| virtual void OnCaptureCompleted(webrtc::DesktopFrame* frame) OVERRIDE;
|
|
|
| - base::WeakPtr<DesktopMediaPickerModelImpl> model_;
|
| + base::WeakPtr<NativeDesktopMediaList> media_list_;
|
|
|
| scoped_ptr<webrtc::ScreenCapturer> screen_capturer_;
|
| scoped_ptr<webrtc::WindowCapturer> window_capturer_;
|
| @@ -117,11 +113,11 @@ class DesktopMediaPickerModelImpl::Worker
|
| DISALLOW_COPY_AND_ASSIGN(Worker);
|
| };
|
|
|
| -DesktopMediaPickerModelImpl::Worker::Worker(
|
| - base::WeakPtr<DesktopMediaPickerModelImpl> model,
|
| +NativeDesktopMediaList::Worker::Worker(
|
| + base::WeakPtr<NativeDesktopMediaList> media_list,
|
| scoped_ptr<webrtc::ScreenCapturer> screen_capturer,
|
| scoped_ptr<webrtc::WindowCapturer> window_capturer)
|
| - : model_(model),
|
| + : media_list_(media_list),
|
| screen_capturer_(screen_capturer.Pass()),
|
| window_capturer_(window_capturer.Pass()) {
|
| if (screen_capturer_)
|
| @@ -130,9 +126,9 @@ DesktopMediaPickerModelImpl::Worker::Worker(
|
| window_capturer_->Start(this);
|
| }
|
|
|
| -DesktopMediaPickerModelImpl::Worker::~Worker() {}
|
| +NativeDesktopMediaList::Worker::~Worker() {}
|
|
|
| -void DesktopMediaPickerModelImpl::Worker::Refresh(
|
| +void NativeDesktopMediaList::Worker::Refresh(
|
| const gfx::Size& thumbnail_size,
|
| content::DesktopMediaID::Id view_dialog_id) {
|
| std::vector<SourceDescription> sources;
|
| @@ -165,7 +161,8 @@ void DesktopMediaPickerModelImpl::Worker::Refresh(
|
| // Update list of windows before updating thumbnails.
|
| BrowserThread::PostTask(
|
| BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&DesktopMediaPickerModelImpl::OnSourcesList, model_, sources));
|
| + base::Bind(&NativeDesktopMediaList::OnSourcesList,
|
| + media_list_, sources));
|
|
|
| ImageHashesMap new_image_hashes;
|
|
|
| @@ -202,8 +199,8 @@ void DesktopMediaPickerModelImpl::Worker::Refresh(
|
| ScaleDesktopFrame(current_frame_.Pass(), thumbnail_size);
|
| BrowserThread::PostTask(
|
| BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&DesktopMediaPickerModelImpl::OnSourceThumbnail, model_,
|
| - i, thumbnail));
|
| + base::Bind(&NativeDesktopMediaList::OnSourceThumbnail,
|
| + media_list_, i, thumbnail));
|
| }
|
| }
|
| }
|
| @@ -212,20 +209,20 @@ void DesktopMediaPickerModelImpl::Worker::Refresh(
|
|
|
| BrowserThread::PostTask(
|
| BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&DesktopMediaPickerModelImpl::OnRefreshFinished, model_));
|
| + base::Bind(&NativeDesktopMediaList::OnRefreshFinished, media_list_));
|
| }
|
|
|
| -webrtc::SharedMemory* DesktopMediaPickerModelImpl::Worker::CreateSharedMemory(
|
| +webrtc::SharedMemory* NativeDesktopMediaList::Worker::CreateSharedMemory(
|
| size_t size) {
|
| return NULL;
|
| }
|
|
|
| -void DesktopMediaPickerModelImpl::Worker::OnCaptureCompleted(
|
| +void NativeDesktopMediaList::Worker::OnCaptureCompleted(
|
| webrtc::DesktopFrame* frame) {
|
| current_frame_.reset(frame);
|
| }
|
|
|
| -DesktopMediaPickerModelImpl::DesktopMediaPickerModelImpl(
|
| +NativeDesktopMediaList::NativeDesktopMediaList(
|
| scoped_ptr<webrtc::ScreenCapturer> screen_capturer,
|
| scoped_ptr<webrtc::WindowCapturer> window_capturer)
|
| : screen_capturer_(screen_capturer.Pass()),
|
| @@ -240,26 +237,26 @@ DesktopMediaPickerModelImpl::DesktopMediaPickerModelImpl(
|
| worker_pool->GetSequenceToken());
|
| }
|
|
|
| -DesktopMediaPickerModelImpl::~DesktopMediaPickerModelImpl() {
|
| +NativeDesktopMediaList::~NativeDesktopMediaList() {
|
| capture_task_runner_->DeleteSoon(FROM_HERE, worker_.release());
|
| }
|
|
|
| -void DesktopMediaPickerModelImpl::SetUpdatePeriod(base::TimeDelta period) {
|
| +void NativeDesktopMediaList::SetUpdatePeriod(base::TimeDelta period) {
|
| DCHECK(!observer_);
|
| update_period_ = period;
|
| }
|
|
|
| -void DesktopMediaPickerModelImpl::SetThumbnailSize(
|
| +void NativeDesktopMediaList::SetThumbnailSize(
|
| const gfx::Size& thumbnail_size) {
|
| thumbnail_size_ = thumbnail_size;
|
| }
|
|
|
| -void DesktopMediaPickerModelImpl::SetViewDialogWindowId(
|
| +void NativeDesktopMediaList::SetViewDialogWindowId(
|
| content::DesktopMediaID::Id dialog_id) {
|
| view_dialog_id_ = dialog_id;
|
| }
|
|
|
| -void DesktopMediaPickerModelImpl::StartUpdating(Observer* observer) {
|
| +void NativeDesktopMediaList::StartUpdating(DesktopMediaListObserver* observer) {
|
| DCHECK(!observer_);
|
| DCHECK(screen_capturer_ || window_capturer_);
|
|
|
| @@ -270,28 +267,28 @@ void DesktopMediaPickerModelImpl::StartUpdating(Observer* observer) {
|
| Refresh();
|
| }
|
|
|
| -int DesktopMediaPickerModelImpl::source_count() const {
|
| +int NativeDesktopMediaList::GetSourceCount() const {
|
| return sources_.size();
|
| }
|
|
|
| -const DesktopMediaPickerModel::Source& DesktopMediaPickerModelImpl::source(
|
| +const DesktopMediaList::Source& NativeDesktopMediaList::GetSource(
|
| int index) const {
|
| return sources_[index];
|
| }
|
|
|
| // static
|
| -bool DesktopMediaPickerModelImpl::CompareSources(const SourceDescription& a,
|
| - const SourceDescription& b) {
|
| +bool NativeDesktopMediaList::CompareSources(const SourceDescription& a,
|
| + const SourceDescription& b) {
|
| return a.id < b.id;
|
| }
|
|
|
| -void DesktopMediaPickerModelImpl::Refresh() {
|
| +void NativeDesktopMediaList::Refresh() {
|
| capture_task_runner_->PostTask(
|
| FROM_HERE, base::Bind(&Worker::Refresh, base::Unretained(worker_.get()),
|
| thumbnail_size_, view_dialog_id_));
|
| }
|
|
|
| -void DesktopMediaPickerModelImpl::OnSourcesList(
|
| +void NativeDesktopMediaList::OnSourcesList(
|
| const std::vector<SourceDescription>& new_sources) {
|
| // Step through |new_sources| adding and removing entries from |sources_|, and
|
| // notifying the |observer_|, until two match. Requires that |sources| and
|
| @@ -307,8 +304,9 @@ void DesktopMediaPickerModelImpl::OnSourcesList(
|
| }
|
|
|
| if (pos == sources_.size() || !(sources_[pos].id == new_sources[pos].id)) {
|
| - sources_.insert(sources_.begin() + pos,
|
| - Source(new_sources[pos].id, new_sources[pos].name));
|
| + sources_.insert(sources_.begin() + pos, Source());
|
| + sources_[pos].id = new_sources[pos].id;
|
| + sources_[pos].name = new_sources[pos].name;
|
| observer_->OnSourceAdded(pos);
|
| } else if (sources_[pos].name != new_sources[pos].name) {
|
| sources_[pos].name = new_sources[pos].name;
|
| @@ -321,17 +319,18 @@ void DesktopMediaPickerModelImpl::OnSourcesList(
|
| DCHECK_EQ(new_sources.size(), sources_.size());
|
| }
|
|
|
| -void DesktopMediaPickerModelImpl::OnSourceThumbnail(int index,
|
| - const gfx::ImageSkia& image) {
|
| +void NativeDesktopMediaList::OnSourceThumbnail(
|
| + int index,
|
| + const gfx::ImageSkia& image) {
|
| DCHECK_LT(index, static_cast<int>(sources_.size()));
|
| sources_[index].thumbnail = image;
|
| observer_->OnSourceThumbnailChanged(index);
|
| }
|
|
|
| -void DesktopMediaPickerModelImpl::OnRefreshFinished() {
|
| +void NativeDesktopMediaList::OnRefreshFinished() {
|
| BrowserThread::PostDelayedTask(
|
| BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&DesktopMediaPickerModelImpl::Refresh,
|
| + base::Bind(&NativeDesktopMediaList::Refresh,
|
| weak_factory_.GetWeakPtr()),
|
| update_period_);
|
| }
|
|
|