Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(972)

Side by Side Diff: content/browser/renderer_host/media/media_stream_manager.h

Issue 8818012: Remove the AudioManager singleton. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Set svn eol properties for a couple of files Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 // MediaStreamManager is used to open media capture devices (video supported 5 // MediaStreamManager is used to open media capture devices (video supported
6 // now). Call flow: 6 // now). Call flow:
7 // 1. GenerateStream is called when a render process wants to use a capture 7 // 1. GenerateStream is called when a render process wants to use a capture
8 // device. 8 // device.
9 // 2. MediaStreamManager will ask MediaStreamDeviceSettings for permission to 9 // 2. MediaStreamManager will ask MediaStreamDeviceSettings for permission to
10 // use devices and for which device to use. 10 // use devices and for which device to use.
11 // 3. MediaStreamDeviceSettings will request list(s) of available devices, the 11 // 3. MediaStreamDeviceSettings will request list(s) of available devices, the
12 // requests will be relayed to the corresponding media device manager and the 12 // requests will be relayed to the corresponding media device manager and the
13 // result will be given to MediaStreamDeviceSettings. 13 // result will be given to MediaStreamDeviceSettings.
14 // 4. MediaStreamDeviceSettings will, by using user settings, pick devices which 14 // 4. MediaStreamDeviceSettings will, by using user settings, pick devices which
15 // devices to use and let MediaStreamManager know the result. 15 // devices to use and let MediaStreamManager know the result.
16 // 5. MediaStreamManager will call the proper media device manager to open the 16 // 5. MediaStreamManager will call the proper media device manager to open the
17 // device and let the MediaStreamRequester know it has been done. 17 // device and let the MediaStreamRequester know it has been done.
18 18
19 #ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_MANAGER_H_ 19 #ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_MANAGER_H_
20 #define CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_MANAGER_H_ 20 #define CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_MANAGER_H_
21 21
22 #include <map> 22 #include <map>
23 #include <string> 23 #include <string>
24 #include <vector> 24 #include <vector>
25 25
26 #include "base/basictypes.h" 26 #include "base/basictypes.h"
27 #include "base/memory/scoped_ptr.h" 27 #include "base/memory/scoped_ptr.h"
28 #include "base/memory/ref_counted.h"
28 #include "content/browser/renderer_host/media/media_stream_provider.h" 29 #include "content/browser/renderer_host/media/media_stream_provider.h"
29 #include "content/browser/renderer_host/media/media_stream_settings_requester.h" 30 #include "content/browser/renderer_host/media/media_stream_settings_requester.h"
30 #include "content/common/media/media_stream_options.h" 31 #include "content/common/media/media_stream_options.h"
31 #include "content/common/content_export.h" 32 #include "content/common/content_export.h"
32 33
34 class AudioManager;
35
33 namespace media_stream { 36 namespace media_stream {
34 37
35 class AudioInputDeviceManager; 38 class AudioInputDeviceManager;
36 class MediaStreamDeviceSettings; 39 class MediaStreamDeviceSettings;
37 class MediaStreamRequester; 40 class MediaStreamRequester;
38 class VideoCaptureManager; 41 class VideoCaptureManager;
39 42
40 // MediaStreamManager is used to generate and close new media devices, not to 43 // MediaStreamManager is used to generate and close new media devices, not to
41 // start the media flow. 44 // start the media flow.
42 // The classes requesting new media streams are answered using 45 // The classes requesting new media streams are answered using
43 // MediaStreamManager::Listener. 46 // MediaStreamManager::Listener.
44 class CONTENT_EXPORT MediaStreamManager 47 class CONTENT_EXPORT MediaStreamManager
45 : public MediaStreamProviderListener, 48 : public MediaStreamProviderListener,
46 public SettingsRequester { 49 public SettingsRequester {
47 public: 50 public:
48 MediaStreamManager(); 51 explicit MediaStreamManager(AudioManager* audio_manager);
49 virtual ~MediaStreamManager(); 52 virtual ~MediaStreamManager();
50 53
51 // Used to access VideoCaptureManager. 54 // Used to access VideoCaptureManager.
52 VideoCaptureManager* video_capture_manager(); 55 VideoCaptureManager* video_capture_manager();
53 56
54 // Used to access AudioInputDeviceManager. 57 // Used to access AudioInputDeviceManager.
55 AudioInputDeviceManager* audio_input_device_manager(); 58 AudioInputDeviceManager* audio_input_device_manager();
56 59
57 // GenerateStream opens new media devices according to |components|. The 60 // GenerateStream opens new media devices according to |components|. The
58 // request is identified using |label|, which is pointing to an already 61 // request is identified using |label|, which is pointing to an already
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 scoped_ptr<VideoCaptureManager> video_capture_manager_; 105 scoped_ptr<VideoCaptureManager> video_capture_manager_;
103 scoped_ptr<AudioInputDeviceManager> audio_input_device_manager_; 106 scoped_ptr<AudioInputDeviceManager> audio_input_device_manager_;
104 107
105 // Keeps track of device types currently being enumerated to not enumerate 108 // Keeps track of device types currently being enumerated to not enumerate
106 // when not necessary. 109 // when not necessary.
107 std::vector<bool> enumeration_in_progress_; 110 std::vector<bool> enumeration_in_progress_;
108 111
109 // All non-closed request. 112 // All non-closed request.
110 typedef std::map<std::string, DeviceRequest> DeviceRequests; 113 typedef std::map<std::string, DeviceRequest> DeviceRequests;
111 DeviceRequests requests_; 114 DeviceRequests requests_;
115 scoped_refptr<AudioManager> audio_manager_;
112 116
113 DISALLOW_COPY_AND_ASSIGN(MediaStreamManager); 117 DISALLOW_COPY_AND_ASSIGN(MediaStreamManager);
114 }; 118 };
115 119
116 } // namespace media_stream 120 } // namespace media_stream
117 121
118 #endif // CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_MANAGER_H_ 122 #endif // CONTENT_BROWSER_RENDERER_HOST_MEDIA_MEDIA_STREAM_MANAGER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698