Index: chrome/browser/media/desktop_media_picker_model.h |
diff --git a/chrome/browser/media/desktop_media_picker_model.h b/chrome/browser/media/desktop_media_picker_model.h |
deleted file mode 100644 |
index 839ffc7eddf9468e3ff93faa2b1b65c1c4e1e7e6..0000000000000000000000000000000000000000 |
--- a/chrome/browser/media/desktop_media_picker_model.h |
+++ /dev/null |
@@ -1,157 +0,0 @@ |
-// Copyright 2013 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. |
- |
-#ifndef CHROME_BROWSER_MEDIA_DESKTOP_MEDIA_PICKER_MODEL_H_ |
-#define CHROME_BROWSER_MEDIA_DESKTOP_MEDIA_PICKER_MODEL_H_ |
- |
-#include "base/basictypes.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "base/memory/weak_ptr.h" |
-#include "base/sequenced_task_runner.h" |
-#include "content/public/common/desktop_media_id.h" |
-#include "ui/gfx/image/image_skia.h" |
- |
-namespace webrtc { |
-class ScreenCapturer; |
-class WindowCapturer; |
-} |
- |
-// DesktopMediaPickerModel provides the list of desktop media source (screens, |
-// windows, tabs), and their thumbnails, to the desktop media picker dialog. It |
-// transparently updates the list in the background, and notifies the desktop |
-// media picker when something changes. |
-class DesktopMediaPickerModel { |
- public: |
- // Interface implemented by the picker dialog to receive notifications when |
- // the model's contents change. |
- class Observer { |
- public: |
- virtual ~Observer() {} |
- |
- virtual void OnSourceAdded(int index) = 0; |
- virtual void OnSourceRemoved(int index) = 0; |
- virtual void OnSourceNameChanged(int index) = 0; |
- virtual void OnSourceThumbnailChanged(int index) = 0; |
- }; |
- |
- // Struct used to represent each entry in the model. |
- struct Source { |
- Source(content::DesktopMediaID id, const string16& name); |
- |
- // Id of the source. |
- content::DesktopMediaID id; |
- |
- // Name of the source that should be shown to the user. |
- string16 name; |
- |
- // The thumbnail for the source. |
- gfx::ImageSkia thumbnail; |
- }; |
- |
- virtual ~DesktopMediaPickerModel() {} |
- |
- // Sets time interval between updates. By default list of sources and their |
- // thumbnail are updated once per second. If called after StartUpdating() then |
- // it will take effect only after the next update. |
- virtual void SetUpdatePeriod(base::TimeDelta period) = 0; |
- |
- // Sets size to which the thumbnails should be scaled. If called after |
- // StartUpdating() then some thumbnails may be still scaled to the old size |
- // until they are updated. |
- virtual void SetThumbnailSize(const gfx::Size& thumbnail_size) = 0; |
- |
- // Sets ID of the hosting desktop picker dialog. The window with this ID will |
- // be filtered out from the list of sources. |
- virtual void SetViewDialogWindowId(content::DesktopMediaID::Id dialog_id) = 0; |
- |
- // Starts updating the model. The model is initially empty, so OnSourceAdded() |
- // notifications will be generated for each existing source as it is |
- // enumerated. After the initial enumeration the model will be refreshed based |
- // on the update period, and notifications generated only for changes in the |
- // model. |
- virtual void StartUpdating(Observer* observer) = 0; |
- |
- virtual int source_count() const = 0; |
- virtual const Source& source(int index) const = 0; |
-}; |
- |
-class DesktopMediaPickerModelImpl : public DesktopMediaPickerModel { |
- public: |
- // Caller may pass NULL for either of the arguments in case when only some |
- // types of sources the model should be populated with (e.g. it will only |
- // contain windows, if |screen_capturer| is NULL). |
- DesktopMediaPickerModelImpl( |
- scoped_ptr<webrtc::ScreenCapturer> screen_capturer, |
- scoped_ptr<webrtc::WindowCapturer> window_capturer); |
- virtual ~DesktopMediaPickerModelImpl(); |
- |
- // DesktopMediaPickerModel interface. |
- virtual void SetUpdatePeriod(base::TimeDelta period) OVERRIDE; |
- virtual void SetThumbnailSize(const gfx::Size& thumbnail_size) OVERRIDE; |
- virtual void StartUpdating(Observer* observer) OVERRIDE; |
- virtual int source_count() const OVERRIDE; |
- virtual const Source& source(int index) const OVERRIDE; |
- virtual void SetViewDialogWindowId( |
- content::DesktopMediaID::Id dialog_id) OVERRIDE; |
- |
- private: |
- class Worker; |
- friend class Worker; |
- |
- // Struct used to represent sources list the model gets from the Worker. |
- struct SourceDescription { |
- SourceDescription(content::DesktopMediaID id, const string16& name); |
- |
- content::DesktopMediaID id; |
- string16 name; |
- }; |
- |
- // Order comparator for sources. Used to sort list of sources. |
- static bool CompareSources(const SourceDescription& a, |
- const SourceDescription& b); |
- |
- // Post a task for the |worker_| to update list of windows and get thumbnails. |
- void Refresh(); |
- |
- // Called by |worker_| to refresh the model. First it posts tasks for |
- // OnSourcesList() with the fresh list of sources, then follows with |
- // OnSourceThumbnail() for each changed thumbnail and then calls |
- // OnRefreshFinished() at the end. |
- void OnSourcesList(const std::vector<SourceDescription>& sources); |
- void OnSourceThumbnail(int index, const gfx::ImageSkia& thumbnail); |
- void OnRefreshFinished(); |
- |
- // Capturers specified in SetCapturers() and passed to the |worker_| later. |
- scoped_ptr<webrtc::ScreenCapturer> screen_capturer_; |
- scoped_ptr<webrtc::WindowCapturer> window_capturer_; |
- |
- // Time interval between mode updates. |
- base::TimeDelta update_period_; |
- |
- // Size of thumbnails generated by the model. |
- gfx::Size thumbnail_size_; |
- |
- // ID of the hosting dialog. |
- content::DesktopMediaID::Id view_dialog_id_; |
- |
- // The observer passed to StartUpdating(). |
- Observer* observer_; |
- |
- // Task runner used for the |worker_|. |
- scoped_refptr<base::SequencedTaskRunner> capture_task_runner_; |
- |
- // An object that does all the work of getting list of sources on a background |
- // thread (see |capture_task_runner_|). Destroyed on |capture_task_runner_| |
- // after the model is destroyed. |
- scoped_ptr<Worker> worker_; |
- |
- // Current list of sources. |
- std::vector<Source> sources_; |
- |
- base::WeakPtrFactory<DesktopMediaPickerModelImpl> weak_factory_; |
- |
- DISALLOW_COPY_AND_ASSIGN(DesktopMediaPickerModelImpl); |
-}; |
- |
-#endif // CHROME_BROWSER_MEDIA_DESKTOP_MEDIA_PICKER_MODEL_H_ |