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

Unified Diff: content/browser/renderer_host/media/audio_input_device_manager.cc

Issue 10912004: Begin adding support for tab mirroring via the MediaStream audio/video capturing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add MediaStreamDispatcher IPC glue (and unittests) for new GenerateStreamForDevice() API. Created 8 years, 3 months 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 side-by-side diff with in-line comments
Download patch
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..d90ca0dcdb0590f2b0c60c704239073b334621d0 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"
@@ -15,16 +16,23 @@ using content::BrowserThread;
namespace media_stream {
+namespace {
+const char kStubTabAudioDeviceId[] = "<<tab audio id here>>";
+}
+
const int AudioInputDeviceManager::kFakeOpenSessionId = 1;
// Starting id for the first capture session.
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 +92,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_AUDIO_DEVICE_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 +202,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 {

Powered by Google App Engine
This is Rietveld 408576698