| 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 502a8cbf8dc84955a99546cfabc3858b164e0e4e..012a59a5b74c1698ee37db675afe209d9440603e 100644
|
| --- a/media/audio/android/audio_manager_android.cc
|
| +++ b/media/audio/android/audio_manager_android.cc
|
| @@ -11,6 +11,7 @@
|
| #include "base/android/scoped_java_ref.h"
|
| #include "base/bind.h"
|
| #include "base/logging.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/strings/string_number_conversions.h"
|
| #include "jni/AudioManagerAndroid_jni.h"
|
| @@ -46,39 +47,24 @@ const int kDefaultOutputBufferSize = 2048;
|
|
|
| } // namespace
|
|
|
| -ScopedAudioManagerPtr CreateAudioManager(
|
| - scoped_refptr<base::SingleThreadTaskRunner> task_runner,
|
| - scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner,
|
| +std::unique_ptr<AudioManager> CreateAudioManager(
|
| + std::unique_ptr<AudioThread> audio_thread,
|
| AudioLogFactory* audio_log_factory) {
|
| - return ScopedAudioManagerPtr(new AudioManagerAndroid(
|
| - std::move(task_runner), std::move(worker_task_runner),
|
| - audio_log_factory));
|
| + return base::MakeUnique<AudioManagerAndroid>(std::move(audio_thread),
|
| + audio_log_factory);
|
| }
|
|
|
| AudioManagerAndroid::AudioManagerAndroid(
|
| - scoped_refptr<base::SingleThreadTaskRunner> task_runner,
|
| - scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner,
|
| + std::unique_ptr<AudioThread> audio_thread,
|
| AudioLogFactory* audio_log_factory)
|
| - : AudioManagerBase(std::move(task_runner),
|
| - std::move(worker_task_runner),
|
| - audio_log_factory),
|
| + : AudioManagerBase(std::move(audio_thread), audio_log_factory),
|
| communication_mode_is_on_(false),
|
| output_volume_override_set_(false),
|
| output_volume_override_(0) {
|
| SetMaxOutputStreamsAllowed(kMaxOutputStreams);
|
| }
|
|
|
| -AudioManagerAndroid::~AudioManagerAndroid() {
|
| - DCHECK(GetTaskRunner()->BelongsToCurrentThread());
|
| - Shutdown();
|
| -
|
| - if (j_audio_manager_.is_null())
|
| - return;
|
| - DVLOG(2) << "Destroying Java part of the audio manager";
|
| - Java_AudioManagerAndroid_close(base::android::AttachCurrentThread(),
|
| - j_audio_manager_);
|
| - j_audio_manager_.Reset();
|
| -}
|
| +AudioManagerAndroid::~AudioManagerAndroid() = default;
|
|
|
| void AudioManagerAndroid::InitializeIfNeeded() {
|
| GetTaskRunner()->PostTask(
|
| @@ -87,6 +73,17 @@ void AudioManagerAndroid::InitializeIfNeeded() {
|
| base::Unretained(this)));
|
| }
|
|
|
| +void AudioManagerAndroid::ShutdownOnAudioThread() {
|
| + AudioManagerBase::ShutdownOnAudioThread();
|
| +
|
| + if (!j_audio_manager_.is_null()) {
|
| + DVLOG(2) << "Destroying Java part of the audio manager";
|
| + Java_AudioManagerAndroid_close(base::android::AttachCurrentThread(),
|
| + j_audio_manager_);
|
| + j_audio_manager_.Reset();
|
| + }
|
| +}
|
| +
|
| bool AudioManagerAndroid::HasAudioOutputDevices() {
|
| return true;
|
| }
|
|
|