| Index: trunk/src/content/browser/renderer_host/media/audio_input_device_manager.cc
|
| ===================================================================
|
| --- trunk/src/content/browser/renderer_host/media/audio_input_device_manager.cc (revision 272929)
|
| +++ trunk/src/content/browser/renderer_host/media/audio_input_device_manager.cc (working copy)
|
| @@ -8,6 +8,7 @@
|
| #include "base/memory/scoped_ptr.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "content/public/common/media_stream_request.h"
|
| +#include "media/audio/audio_device_name.h"
|
| #include "media/audio/audio_input_ipc.h"
|
| #include "media/audio/audio_manager_base.h"
|
| #include "media/audio/audio_parameters.h"
|
| @@ -29,6 +30,14 @@
|
| next_capture_session_id_(kFirstSessionId),
|
| use_fake_device_(false),
|
| audio_manager_(audio_manager) {
|
| + // TODO(xians): Remove this fake_device after the unittests do not need it.
|
| + StreamDeviceInfo fake_device(MEDIA_DEVICE_AUDIO_CAPTURE,
|
| + media::AudioManagerBase::kDefaultDeviceName,
|
| + media::AudioManagerBase::kDefaultDeviceId,
|
| + 44100, media::CHANNEL_LAYOUT_STEREO,
|
| + 0);
|
| + fake_device.session_id = kFakeOpenSessionId;
|
| + devices_.push_back(fake_device);
|
| }
|
|
|
| AudioInputDeviceManager::~AudioInputDeviceManager() {
|
| @@ -114,18 +123,19 @@
|
| SCOPED_UMA_HISTOGRAM_TIMER(
|
| "Media.AudioInputDeviceManager.EnumerateOnDeviceThreadTime");
|
| DCHECK(IsOnDeviceThread());
|
| - DCHECK_EQ(MEDIA_DEVICE_AUDIO_CAPTURE, stream_type);
|
|
|
| media::AudioDeviceNames device_names;
|
| - if (use_fake_device_) {
|
| - // Use the fake devices.
|
| - GetFakeDeviceNames(&device_names);
|
| - } else {
|
| - // Enumerate the devices on the OS.
|
| - // AudioManager is guaranteed to outlive MediaStreamManager in
|
| - // BrowserMainloop.
|
| - media::AudioDeviceNames device_names;
|
| - audio_manager_->GetAudioInputDeviceNames(&device_names);
|
| +
|
| + switch (stream_type) {
|
| + case MEDIA_DEVICE_AUDIO_CAPTURE:
|
| + // AudioManager is guaranteed to outlive MediaStreamManager in
|
| + // BrowserMainloop.
|
| + audio_manager_->GetAudioInputDeviceNames(&device_names);
|
| + break;
|
| +
|
| + default:
|
| + NOTREACHED();
|
| + break;
|
| }
|
|
|
| scoped_ptr<StreamDeviceInfoArray> devices(new StreamDeviceInfoArray());
|
| @@ -136,6 +146,14 @@
|
| stream_type, it->device_name, it->unique_id));
|
| }
|
|
|
| + // If the |use_fake_device_| flag is on, inject the fake device if there is
|
| + // no available device on the OS.
|
| + if (use_fake_device_ && devices->empty()) {
|
| + devices->push_back(StreamDeviceInfo(
|
| + stream_type, media::AudioManagerBase::kDefaultDeviceName,
|
| + media::AudioManagerBase::kDefaultDeviceId));
|
| + }
|
| +
|
| // Return the device list through the listener by posting a task on
|
| // IO thread since MediaStreamManager handles the callback asynchronously.
|
| BrowserThread::PostTask(
|
| @@ -237,18 +255,4 @@
|
| return devices_.end();
|
| }
|
|
|
| -void AudioInputDeviceManager::GetFakeDeviceNames(
|
| - media::AudioDeviceNames* device_names) {
|
| - static const char kFakeDeviceName1[] = "Fake Audio 1";
|
| - static const char kFakeDeviceId1[] = "fake_audio_1";
|
| - static const char kFakeDeviceName2[] = "Fake Audio 2";
|
| - static const char kFakeDeviceId2[] = "fake_audio_2";
|
| - DCHECK(device_names->empty());
|
| - DCHECK(use_fake_device_);
|
| - device_names->push_back(media::AudioDeviceName(kFakeDeviceName1,
|
| - kFakeDeviceId1));
|
| - device_names->push_back(media::AudioDeviceName(kFakeDeviceName2,
|
| - kFakeDeviceId2));
|
| -}
|
| -
|
| } // namespace content
|
|
|