Index: content/browser/renderer_host/media/media_stream_manager.h |
=================================================================== |
--- content/browser/renderer_host/media/media_stream_manager.h (revision 150592) |
+++ content/browser/renderer_host/media/media_stream_manager.h (working copy) |
@@ -30,7 +30,6 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/memory/ref_counted.h" |
#include "base/message_loop.h" |
-#include "base/system_monitor/system_monitor.h" |
#include "base/threading/thread.h" |
#include "content/browser/renderer_host/media/media_stream_provider.h" |
#include "content/browser/renderer_host/media/media_stream_settings_requester.h" |
@@ -73,8 +72,7 @@ |
class CONTENT_EXPORT MediaStreamManager |
: public MediaStreamProviderListener, |
public MessageLoop::DestructionObserver, |
- public SettingsRequester, |
- public base::SystemMonitor::DevicesChangedObserver { |
+ public SettingsRequester { |
public: |
// This class takes the ownerships of the |audio_input_device_manager| |
// and |video_capture_manager|. |
@@ -109,9 +107,6 @@ |
// Gets a list of devices of |type|. |
// The request is identified using |label|, which is pointing to a |
// std::string. |
- // The request is persistent, which means the client keeps listening to |
- // device changes, such as plug/unplug, and expects new device list for |
- // such a change, till the client stops the request. |
void EnumerateDevices(MediaStreamRequester* requester, |
int render_process_id, |
int render_view_id, |
@@ -146,10 +141,6 @@ |
const StreamDeviceInfoArray& devices) OVERRIDE; |
virtual void SettingsError(const std::string& label) OVERRIDE; |
- // Implements base::SystemMonitor::DevicesChangedObserver. |
- virtual void OnDevicesChanged( |
- base::SystemMonitor::DeviceType device_type) OVERRIDE; |
- |
// Used by unit test to make sure fake devices are used instead of a real |
// devices, which is needed for server based testing. |
// TODO(xians): Remove this hack since we can create our own |
@@ -165,15 +156,6 @@ |
// Contains all data needed to keep track of requests. |
struct DeviceRequest; |
- // Cache enumerated device list. |
- struct EnumerationCache { |
- EnumerationCache(); |
- ~EnumerationCache(); |
- |
- bool valid; |
- StreamDeviceInfoArray devices; |
- }; |
- |
// Helpers for signaling the media observer that new capture devices are |
// opened/closed. |
void NotifyObserverDevicesOpened(DeviceRequest* request); |
@@ -186,26 +168,11 @@ |
MediaStreamProvider* GetDeviceManager(MediaStreamType stream_type); |
void StartEnumeration(DeviceRequest* new_request, |
std::string* label); |
- void AddRequest(DeviceRequest* new_request, std::string* label); |
- bool HasEnumerationRequest(MediaStreamType type); |
- bool HasEnumerationRequest(); |
- void ClearEnumerationCache(EnumerationCache* cache); |
// Helper to ensure the device thread and pass the message loop to device |
// managers, it also register itself as the listener to the device managers. |
void EnsureDeviceThreadAndListener(); |
- // Sends cached device list to a client corresponding to the request |
- // identified by |label|. |
- void SendCachedDeviceList(EnumerationCache* cache, const std::string& label); |
- |
- // Stop the request of enumerating devices indentified by |label|. |
- void StopEnumerateDevices(const std::string& label); |
- |
- // Helpers to start and stop monitoring devices. |
- void StartMonitoring(); |
- void StopMonitoring(); |
- |
// Device thread shared by VideoCaptureManager and AudioInputDeviceManager. |
scoped_ptr<base::Thread> device_thread_; |
@@ -213,18 +180,10 @@ |
scoped_refptr<AudioInputDeviceManager> audio_input_device_manager_; |
scoped_refptr<VideoCaptureManager> video_capture_manager_; |
- // Indicator of device monitoring state. |
- bool monitoring_started_; |
+ // Keeps track of device types currently being enumerated to not enumerate |
+ // when not necessary. |
+ std::vector<bool> enumeration_in_progress_; |
- // Stores most recently enumerated device lists. The cache is cleared when |
- // monitoring is stopped or there is no request for that type of device. |
- EnumerationCache audio_enumeration_cache_; |
- EnumerationCache video_enumeration_cache_; |
- |
- // Keeps track of live enumeration commands sent to VideoCaptureManager or |
- // AudioInputDeviceManager, in order to only enumerate when necessary. |
- int active_enumeration_ref_count_[content::NUM_MEDIA_STREAM_DEVICE_TYPES]; |
- |
// All non-closed request. |
typedef std::map<std::string, DeviceRequest> DeviceRequests; |
DeviceRequests requests_; |