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

Unified Diff: content/renderer/media/audio_device_factory.cc

Issue 1809093003: Moving SwitchOutputDevice out of OutputDevice interface, eliminating OutputDevice (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressing guidou's comments Created 4 years, 9 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/renderer/media/audio_device_factory.cc
diff --git a/content/renderer/media/audio_device_factory.cc b/content/renderer/media/audio_device_factory.cc
index e2118fea834f453690dbf80d7c0c1394b53eb861..36eb19d9a470bfcae439f83dc6db7ec99588f59e 100644
--- a/content/renderer/media/audio_device_factory.cc
+++ b/content/renderer/media/audio_device_factory.cc
@@ -21,6 +21,19 @@ AudioDeviceFactory* AudioDeviceFactory::factory_ = NULL;
namespace {
+scoped_refptr<media::AudioOutputDevice> NewOutputDevice(
+ int render_frame_id,
+ int session_id,
+ const std::string& device_id,
+ const url::Origin& security_origin) {
+ AudioMessageFilter* const filter = AudioMessageFilter::Get();
+ scoped_refptr<media::AudioOutputDevice> device(new media::AudioOutputDevice(
+ filter->CreateAudioOutputIPC(render_frame_id), filter->io_task_runner(),
+ session_id, device_id, security_origin));
+ device->RequestDeviceAuthorization();
+ return device;
+}
+
// This is where we decide which audio will go to mixers and which one to
// AudioOutpuDevice directly.
bool IsMixable(AudioDeviceFactory::SourceType source_type) {
@@ -32,7 +45,7 @@ bool IsMixable(AudioDeviceFactory::SourceType source_type) {
return false;
}
-scoped_refptr<media::RestartableAudioRendererSink> NewMixableSink(
+scoped_refptr<media::SwitchableAudioRendererSink> NewMixableSink(
int render_frame_id,
const std::string& device_id,
const url::Origin& security_origin) {
@@ -47,31 +60,27 @@ scoped_refptr<media::AudioRendererSink> NewUnmixableSink(
int session_id,
const std::string& device_id,
const url::Origin& security_origin) {
- return AudioDeviceFactory::NewOutputDevice(render_frame_id, session_id,
- device_id, security_origin);
+ return NewOutputDevice(render_frame_id, session_id, device_id,
+ security_origin);
}
} // namespace
-// static
-scoped_refptr<media::AudioOutputDevice> AudioDeviceFactory::NewOutputDevice(
+scoped_refptr<media::AudioRendererSink>
+AudioDeviceFactory::NewAudioRendererMixerSink(
int render_frame_id,
int session_id,
const std::string& device_id,
const url::Origin& security_origin) {
if (factory_) {
- media::AudioOutputDevice* const device = factory_->CreateOutputDevice(
- render_frame_id, session_id, device_id, security_origin);
- if (device)
- return device;
+ scoped_refptr<media::AudioRendererSink> sink =
+ factory_->CreateAudioRendererMixerSink(render_frame_id, session_id,
+ device_id, security_origin);
+ if (sink)
+ return sink;
}
-
- AudioMessageFilter* const filter = AudioMessageFilter::Get();
- scoped_refptr<media::AudioOutputDevice> device = new media::AudioOutputDevice(
- filter->CreateAudioOutputIPC(render_frame_id), filter->io_task_runner(),
- session_id, device_id, security_origin);
- device->RequestDeviceAuthorization();
- return device;
+ return NewOutputDevice(render_frame_id, session_id, device_id,
+ security_origin);
}
// static
@@ -82,8 +91,10 @@ AudioDeviceFactory::NewAudioRendererSink(SourceType source_type,
const std::string& device_id,
const url::Origin& security_origin) {
if (factory_) {
- media::AudioRendererSink* const device = factory_->CreateAudioRendererSink(
- source_type, render_frame_id, session_id, device_id, security_origin);
+ scoped_refptr<media::AudioRendererSink> device =
+ factory_->CreateAudioRendererSink(source_type, render_frame_id,
+ session_id, device_id,
+ security_origin);
if (device)
return device;
}
@@ -96,20 +107,20 @@ AudioDeviceFactory::NewAudioRendererSink(SourceType source_type,
}
// static
-scoped_refptr<media::RestartableAudioRendererSink>
-AudioDeviceFactory::NewRestartableAudioRendererSink(
+scoped_refptr<media::SwitchableAudioRendererSink>
+AudioDeviceFactory::NewSwitchableAudioRendererSink(
SourceType source_type,
int render_frame_id,
int session_id,
const std::string& device_id,
const url::Origin& security_origin) {
if (factory_) {
- media::RestartableAudioRendererSink* const device =
- factory_->CreateRestartableAudioRendererSink(
- source_type, render_frame_id, session_id, device_id,
- security_origin);
- if (device)
- return device;
+ scoped_refptr<media::SwitchableAudioRendererSink> sink =
+ factory_->CreateSwitchableAudioRendererSink(source_type,
+ render_frame_id, session_id,
+ device_id, security_origin);
+ if (sink)
+ return sink;
}
if (IsMixable(source_type))
@@ -125,7 +136,7 @@ AudioDeviceFactory::NewRestartableAudioRendererSink(
scoped_refptr<media::AudioInputDevice> AudioDeviceFactory::NewInputDevice(
int render_frame_id) {
if (factory_) {
- media::AudioInputDevice* const device =
+ scoped_refptr<media::AudioInputDevice> device =
factory_->CreateInputDevice(render_frame_id);
if (device)
return device;
@@ -139,17 +150,17 @@ scoped_refptr<media::AudioInputDevice> AudioDeviceFactory::NewInputDevice(
// static
// TODO(http://crbug.com/587461): Find a better way to check if device exists
// and is authorized.
-media::OutputDeviceStatus AudioDeviceFactory::GetOutputDeviceStatus(
+media::OutputDeviceInfo AudioDeviceFactory::GetOutputDeviceInfo(
int render_frame_id,
int session_id,
const std::string& device_id,
const url::Origin& security_origin) {
scoped_refptr<media::AudioOutputDevice> device =
NewOutputDevice(render_frame_id, session_id, device_id, security_origin);
- media::OutputDeviceStatus status = device->GetDeviceStatus();
+ const media::OutputDeviceInfo& device_info = device->GetOutputDeviceInfo();
device->Stop(); // Must be stopped.
- return status;
+ return device_info;
}
AudioDeviceFactory::AudioDeviceFactory() {

Powered by Google App Engine
This is Rietveld 408576698