| Index: chrome/browser/media/desktop_media_list_base.cc
|
| diff --git a/chrome/browser/media/desktop_media_list_base.cc b/chrome/browser/media/desktop_media_list_base.cc
|
| deleted file mode 100644
|
| index 199b71a5b5d6bbf4f45116971965677e48520c2e..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/media/desktop_media_list_base.cc
|
| +++ /dev/null
|
| @@ -1,146 +0,0 @@
|
| -// Copyright 2016 The Chromium Authors. All rights reserved.
|
| -// 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_list_base.h"
|
| -
|
| -#include <set>
|
| -
|
| -#include "chrome/browser/media/desktop_media_list_observer.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "ui/gfx/image/image.h"
|
| -
|
| -using content::BrowserThread;
|
| -using content::DesktopMediaID;
|
| -
|
| -DesktopMediaListBase::DesktopMediaListBase(base::TimeDelta update_period)
|
| - : update_period_(update_period), weak_factory_(this) {}
|
| -
|
| -DesktopMediaListBase::~DesktopMediaListBase() {}
|
| -
|
| -void DesktopMediaListBase::SetUpdatePeriod(base::TimeDelta period) {
|
| - DCHECK(!observer_);
|
| - update_period_ = period;
|
| -}
|
| -
|
| -void DesktopMediaListBase::SetThumbnailSize(const gfx::Size& thumbnail_size) {
|
| - thumbnail_size_ = thumbnail_size;
|
| -}
|
| -
|
| -void DesktopMediaListBase::SetViewDialogWindowId(DesktopMediaID dialog_id) {
|
| - view_dialog_id_ = dialog_id;
|
| -}
|
| -
|
| -void DesktopMediaListBase::StartUpdating(DesktopMediaListObserver* observer) {
|
| - DCHECK(!observer_);
|
| -
|
| - observer_ = observer;
|
| - Refresh();
|
| -}
|
| -
|
| -int DesktopMediaListBase::GetSourceCount() const {
|
| - return sources_.size();
|
| -}
|
| -
|
| -const DesktopMediaList::Source& DesktopMediaListBase::GetSource(
|
| - int index) const {
|
| - DCHECK_GE(index, 0);
|
| - DCHECK_LT(index, static_cast<int>(sources_.size()));
|
| - return sources_[index];
|
| -}
|
| -
|
| -DesktopMediaListBase::SourceDescription::SourceDescription(
|
| - DesktopMediaID id,
|
| - const base::string16& name)
|
| - : id(id), name(name) {}
|
| -
|
| -void DesktopMediaListBase::UpdateSourcesList(
|
| - const std::vector<SourceDescription>& new_sources) {
|
| - typedef std::set<DesktopMediaID> SourceSet;
|
| - SourceSet new_source_set;
|
| - for (size_t i = 0; i < new_sources.size(); ++i) {
|
| - new_source_set.insert(new_sources[i].id);
|
| - }
|
| - // Iterate through the old sources to find the removed sources.
|
| - for (size_t i = 0; i < sources_.size(); ++i) {
|
| - if (new_source_set.find(sources_[i].id) == new_source_set.end()) {
|
| - sources_.erase(sources_.begin() + i);
|
| - observer_->OnSourceRemoved(this, i);
|
| - --i;
|
| - }
|
| - }
|
| - // Iterate through the new sources to find the added sources.
|
| - if (new_sources.size() > sources_.size()) {
|
| - SourceSet old_source_set;
|
| - for (size_t i = 0; i < sources_.size(); ++i) {
|
| - old_source_set.insert(sources_[i].id);
|
| - }
|
| -
|
| - for (size_t i = 0; i < new_sources.size(); ++i) {
|
| - if (old_source_set.find(new_sources[i].id) == old_source_set.end()) {
|
| - sources_.insert(sources_.begin() + i, Source());
|
| - sources_[i].id = new_sources[i].id;
|
| - sources_[i].name = new_sources[i].name;
|
| - observer_->OnSourceAdded(this, i);
|
| - }
|
| - }
|
| - }
|
| - DCHECK_EQ(new_sources.size(), sources_.size());
|
| -
|
| - // Find the moved/changed sources.
|
| - size_t pos = 0;
|
| - while (pos < sources_.size()) {
|
| - if (!(sources_[pos].id == new_sources[pos].id)) {
|
| - // Find the source that should be moved to |pos|, starting from |pos + 1|
|
| - // of |sources_|, because entries before |pos| should have been sorted.
|
| - size_t old_pos = pos + 1;
|
| - for (; old_pos < sources_.size(); ++old_pos) {
|
| - if (sources_[old_pos].id == new_sources[pos].id)
|
| - break;
|
| - }
|
| - DCHECK(sources_[old_pos].id == new_sources[pos].id);
|
| -
|
| - // Move the source from |old_pos| to |pos|.
|
| - Source temp = sources_[old_pos];
|
| - sources_.erase(sources_.begin() + old_pos);
|
| - sources_.insert(sources_.begin() + pos, temp);
|
| -
|
| - observer_->OnSourceMoved(this, old_pos, pos);
|
| - }
|
| -
|
| - if (sources_[pos].name != new_sources[pos].name) {
|
| - sources_[pos].name = new_sources[pos].name;
|
| - observer_->OnSourceNameChanged(this, pos);
|
| - }
|
| - ++pos;
|
| - }
|
| -}
|
| -
|
| -void DesktopMediaListBase::UpdateSourceThumbnail(DesktopMediaID id,
|
| - const gfx::ImageSkia& image) {
|
| - for (size_t i = 0; i < sources_.size(); ++i) {
|
| - if (sources_[i].id == id) {
|
| - sources_[i].thumbnail = image;
|
| - observer_->OnSourceThumbnailChanged(this, i);
|
| - break;
|
| - }
|
| - }
|
| -}
|
| -
|
| -void DesktopMediaListBase::ScheduleNextRefresh() {
|
| - BrowserThread::PostDelayedTask(
|
| - BrowserThread::UI, FROM_HERE,
|
| - base::Bind(&DesktopMediaListBase::Refresh, weak_factory_.GetWeakPtr()),
|
| - update_period_);
|
| -}
|
| -
|
| -// static
|
| -uint32_t DesktopMediaListBase::GetImageHash(const gfx::Image& image) {
|
| - SkBitmap bitmap = image.AsBitmap();
|
| - bitmap.lockPixels();
|
| - uint32_t value =
|
| - base::Hash(reinterpret_cast<char*>(bitmap.getPixels()), bitmap.getSize());
|
| - bitmap.unlockPixels();
|
| -
|
| - return value;
|
| -}
|
|
|