Index: media/blink/webaudiosourceprovider_impl.cc |
diff --git a/media/blink/webaudiosourceprovider_impl.cc b/media/blink/webaudiosourceprovider_impl.cc |
index d43a16fb5b1b927eab078c7fb7f952b02aafe3b6..5dca26415f5a2f00576a006dec44077fe99eae26 100644 |
--- a/media/blink/webaudiosourceprovider_impl.cc |
+++ b/media/blink/webaudiosourceprovider_impl.cc |
@@ -87,7 +87,7 @@ class WebAudioSourceProviderImpl::TeeFilter |
}; |
WebAudioSourceProviderImpl::WebAudioSourceProviderImpl( |
- const scoped_refptr<RestartableAudioRendererSink>& sink) |
+ const scoped_refptr<SwitchableAudioRendererSink>& sink) |
: volume_(1.0), |
state_(kStopped), |
client_(nullptr), |
@@ -199,9 +199,20 @@ bool WebAudioSourceProviderImpl::SetVolume(double volume) { |
return true; |
} |
-OutputDevice* WebAudioSourceProviderImpl::GetOutputDevice() { |
+media::OutputDeviceInfo WebAudioSourceProviderImpl::GetOutputDeviceInfo() { |
base::AutoLock auto_lock(sink_lock_); |
- return sink_->GetOutputDevice(); |
+ return client_ ? media::OutputDeviceInfo() : sink_->GetOutputDeviceInfo(); |
+} |
+ |
+void WebAudioSourceProviderImpl::SwitchOutputDevice( |
+ const std::string& device_id, |
+ const url::Origin& security_origin, |
+ const OutputDeviceStatusCB& callback) { |
+ base::AutoLock auto_lock(sink_lock_); |
+ if (client_) |
+ callback.Run(media::OUTPUT_DEVICE_STATUS_ERROR_INTERNAL); |
+ else |
+ sink_->SwitchOutputDevice(device_id, security_origin, callback); |
} |
void WebAudioSourceProviderImpl::Initialize(const AudioParameters& params, |