Index: media/audio/audio_output_controller.cc |
diff --git a/media/audio/audio_output_controller.cc b/media/audio/audio_output_controller.cc |
index d780687d1b8415aee8f6223be8497905a80b8800..e7addfe730d66512c36d8132d7aff19d3ab7edaa 100644 |
--- a/media/audio/audio_output_controller.cc |
+++ b/media/audio/audio_output_controller.cc |
@@ -57,7 +57,8 @@ scoped_refptr<AudioOutputController> AudioOutputController::Create( |
EventHandler* event_handler, |
const AudioParameters& params, |
const std::string& output_device_id, |
- SyncReader* sync_reader) { |
+ SyncReader* sync_reader, |
+ const content::mojom::AudioOutput::CreateStreamCallback& callback) { |
DCHECK(audio_manager); |
DCHECK(sync_reader); |
@@ -66,8 +67,9 @@ scoped_refptr<AudioOutputController> AudioOutputController::Create( |
scoped_refptr<AudioOutputController> controller(new AudioOutputController( |
audio_manager, event_handler, params, output_device_id, sync_reader)); |
- controller->message_loop_->PostTask(FROM_HERE, base::Bind( |
- &AudioOutputController::DoCreate, controller, false)); |
+ controller->message_loop_->PostTask( |
+ FROM_HERE, base::Bind(&AudioOutputController::DoCreate, controller, false, |
+ callback)); |
return controller; |
} |
@@ -110,7 +112,9 @@ void AudioOutputController::SwitchOutputDevice( |
callback); |
} |
-void AudioOutputController::DoCreate(bool is_for_device_change) { |
+void AudioOutputController::DoCreate( |
+ bool is_for_device_change, |
+ const content::mojom::AudioOutput::CreateStreamCallback& callback) { |
DCHECK(message_loop_->BelongsToCurrentThread()); |
SCOPED_UMA_HISTOGRAM_TIMER("Media.AudioOutputController.CreateTime"); |
TRACE_EVENT0("audio", "AudioOutputController::DoCreate"); |
@@ -122,9 +126,9 @@ void AudioOutputController::DoCreate(bool is_for_device_change) { |
DoStopCloseAndClearStream(); // Calls RemoveOutputDeviceChangeListener(). |
DCHECK_EQ(kEmpty, state_); |
- stream_ = diverting_to_stream_ ? |
- diverting_to_stream_ : |
- audio_manager_->MakeAudioOutputStreamProxy(params_, output_device_id_); |
+ stream_ = diverting_to_stream_ ? diverting_to_stream_ |
+ : audio_manager_->MakeAudioOutputStreamProxy( |
+ params_, output_device_id_); |
if (!stream_) { |
state_ = kError; |
handler_->OnError(); |
@@ -151,7 +155,7 @@ void AudioOutputController::DoCreate(bool is_for_device_change) { |
// And then report we have been created if we haven't done so already. |
if (!is_for_device_change) |
- handler_->OnCreated(); |
+ handler_->OnCreated(callback); |
} |
void AudioOutputController::DoPlay() { |
@@ -359,7 +363,7 @@ void AudioOutputController::OnDeviceChange() { |
// Recreate the stream (DoCreate() will first shut down an existing stream). |
// Exit if we ran into an error. |
const State original_state = state_; |
- DoCreate(true); |
+ DoCreate(true, content::mojom::AudioOutput::CreateStreamCallback()); |
if (!stream_ || state_ == kError) |
return; |