Chromium Code Reviews| Index: media/audio/android/audio_manager_android.cc |
| diff --git a/media/audio/android/audio_manager_android.cc b/media/audio/android/audio_manager_android.cc |
| index 96a7c78c29c055d099f5ee985a8a591bfe44c3a8..4563a0aecf26288624674f61ca6c5da11113ebe8 100644 |
| --- a/media/audio/android/audio_manager_android.cc |
| +++ b/media/audio/android/audio_manager_android.cc |
| @@ -45,12 +45,22 @@ const int kDefaultOutputBufferSize = 2048; |
| } // namespace |
| -AudioManager* CreateAudioManager(AudioLogFactory* audio_log_factory) { |
| - return new AudioManagerAndroid(audio_log_factory); |
| -} |
| - |
| -AudioManagerAndroid::AudioManagerAndroid(AudioLogFactory* audio_log_factory) |
| - : AudioManagerBase(audio_log_factory), |
| +ScopedAudioManagerPtr CreateAudioManager( |
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner, |
| + scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner, |
| + AudioLogFactory* audio_log_factory) { |
| + return ScopedAudioManagerPtr(new AudioManagerAndroid( |
| + std::move(task_runner), std::move(worker_task_runner), |
| + audio_log_factory)); |
| +} |
| + |
| +AudioManagerAndroid::AudioManagerAndroid( |
| + scoped_refptr<base::SingleThreadTaskRunner> task_runner, |
| + scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner, |
| + AudioLogFactory* audio_log_factory) |
| + : AudioManagerBase(std::move(task_runner), |
| + std::move(worker_task_runner), |
| + audio_log_factory), |
| communication_mode_is_on_(false), |
| output_volume_override_set_(false), |
| output_volume_override_(0) { |
| @@ -68,11 +78,11 @@ AudioManagerAndroid::AudioManagerAndroid(AudioLogFactory* audio_log_factory) |
| } |
| AudioManagerAndroid::~AudioManagerAndroid() { |
| - // It's safe to post a task here since Shutdown() will wait for all tasks to |
| - // complete before returning. |
| - GetTaskRunner()->PostTask(FROM_HERE, base::Bind( |
| - &AudioManagerAndroid::ShutdownOnAudioThread, base::Unretained(this))); |
| - Shutdown(); |
| + DCHECK(GetTaskRunner()->BelongsToCurrentThread()); |
|
DaleCurtis
2016/04/06 22:07:49
Hmm, this might be a bit dicy in the future since
alokp
2016/04/07 00:38:10
We have a DCHECK_EQ(0, num_input_streams_) in Audi
tommi (sloooow) - chröme
2016/04/07 14:33:40
What do you think about upgrading that to CHECK_EQ
DaleCurtis
2016/04/07 17:23:09
+1 I think we should do this, though it'll be hard
|
| + DVLOG(2) << "Destroying Java part of the audio manager"; |
| + Java_AudioManagerAndroid_close(base::android::AttachCurrentThread(), |
| + j_audio_manager_.obj()); |
| + j_audio_manager_.Reset(); |
| } |
| bool AudioManagerAndroid::HasAudioOutputDevices() { |
| @@ -337,15 +347,6 @@ void AudioManagerAndroid::InitializeOnAudioThread() { |
| j_audio_manager_.obj()); |
| } |
| -void AudioManagerAndroid::ShutdownOnAudioThread() { |
| - DCHECK(GetTaskRunner()->BelongsToCurrentThread()); |
| - DVLOG(2) << "Destroying Java part of the audio manager"; |
| - Java_AudioManagerAndroid_close( |
| - base::android::AttachCurrentThread(), |
| - j_audio_manager_.obj()); |
| - j_audio_manager_.Reset(); |
| -} |
| - |
| void AudioManagerAndroid::SetCommunicationAudioModeOn(bool on) { |
| Java_AudioManagerAndroid_setCommunicationAudioModeOn( |
| base::android::AttachCurrentThread(), |