Index: content/browser/renderer_host/media/audio_input_device_manager.cc |
diff --git a/content/browser/renderer_host/media/audio_input_device_manager.cc b/content/browser/renderer_host/media/audio_input_device_manager.cc |
index 42728f7f42079b2f1341ed34b3457f1f000909c1..6b5bdf394f9bc9fdeee4f0cfdbedc1edd40ec8eb 100644 |
--- a/content/browser/renderer_host/media/audio_input_device_manager.cc |
+++ b/content/browser/renderer_host/media/audio_input_device_manager.cc |
@@ -8,6 +8,7 @@ |
#include "base/memory/scoped_ptr.h" |
#include "content/browser/renderer_host/media/audio_input_device_manager_event_handler.h" |
#include "content/public/browser/browser_thread.h" |
+#include "content/public/common/media_stream_request.h" |
#include "media/audio/audio_input_ipc.h" |
#include "media/audio/audio_manager_base.h" |
@@ -21,10 +22,13 @@ const int AudioInputDeviceManager::kFakeOpenSessionId = 1; |
const int kFirstSessionId = AudioInputDeviceManager::kFakeOpenSessionId + 1; |
AudioInputDeviceManager::AudioInputDeviceManager( |
- media::AudioManager* audio_manager) |
+ media::AudioManager* audio_manager, |
+ media_stream::MediaStreamType device_type) |
: listener_(NULL), |
next_capture_session_id_(kFirstSessionId), |
- audio_manager_(audio_manager) { |
+ audio_manager_(audio_manager), |
+ device_type_(device_type) { |
+ DCHECK(content::IsAudioMediaType(device_type_)); |
} |
AudioInputDeviceManager::~AudioInputDeviceManager() { |
@@ -84,18 +88,27 @@ void AudioInputDeviceManager::Close(int session_id) { |
void AudioInputDeviceManager::EnumerateOnDeviceThread() { |
DCHECK(IsOnDeviceThread()); |
- // AudioManager is guaranteed to outlive MediaStreamManager in |
- // BrowserMainloop. |
- media::AudioDeviceNames device_names; |
- audio_manager_->GetAudioInputDeviceNames(&device_names); |
StreamDeviceInfoArray* devices = new StreamDeviceInfoArray; |
- for (media::AudioDeviceNames::iterator it = device_names.begin(); |
- it != device_names.end(); |
- ++it) { |
- devices->push_back(StreamDeviceInfo( |
- content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE, it->device_name, |
- it->unique_id, false)); |
+ switch (device_type_) { |
+ case content::MEDIA_DEVICE_AUDIO_CAPTURE: { |
+ // AudioManager is guaranteed to outlive MediaStreamManager in |
+ // BrowserMainloop. |
+ media::AudioDeviceNames device_names; |
+ audio_manager_->GetAudioInputDeviceNames(&device_names); |
+ for (media::AudioDeviceNames::iterator it = device_names.begin(); |
+ it != device_names.end(); ++it) { |
+ devices->push_back(StreamDeviceInfo( |
+ device_type_, it->device_name, it->unique_id, false)); |
+ } |
+ break; |
+ } |
+ case content::MEDIA_TAB_AUDIO_CAPTURE: |
+ NOTREACHED() << "enumeration of tab audio devices"; |
+ break; |
+ default: |
+ NOTIMPLEMENTED(); |
+ break; |
} |
// Returns the device list through the listener by posting a task on |
@@ -185,24 +198,20 @@ void AudioInputDeviceManager::DevicesEnumeratedOnIOThread( |
// Ensures that |devices| gets deleted on exit. |
scoped_ptr<StreamDeviceInfoArray> devices_array(devices); |
if (listener_) { |
- listener_->DevicesEnumerated( |
- content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE, |
- *devices_array); |
+ listener_->DevicesEnumerated(device_type_, *devices_array); |
} |
} |
void AudioInputDeviceManager::OpenedOnIOThread(int session_id) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
if (listener_) |
- listener_->Opened(content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE, |
- session_id); |
+ listener_->Opened(device_type_, session_id); |
} |
void AudioInputDeviceManager::ClosedOnIOThread(int session_id) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
if (listener_) |
- listener_->Closed(content::MEDIA_STREAM_DEVICE_TYPE_AUDIO_CAPTURE, |
- session_id); |
+ listener_->Closed(device_type_, session_id); |
} |
bool AudioInputDeviceManager::IsOnDeviceThread() const { |