Index: media/blink/webaudiosourceprovider_impl.cc |
diff --git a/media/blink/webaudiosourceprovider_impl.cc b/media/blink/webaudiosourceprovider_impl.cc |
index d43a16fb5b1b927eab078c7fb7f952b02aafe3b6..a657a6a8a0821f02fd311ef1cfa7fdfd7728b605 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), |
@@ -204,6 +204,17 @@ OutputDevice* WebAudioSourceProviderImpl::GetOutputDevice() { |
return sink_->GetOutputDevice(); |
} |
+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, |
RenderCallback* renderer) { |
base::AutoLock auto_lock(sink_lock_); |