| Index: media/audio/android/audio_manager_android.h
|
| diff --git a/media/audio/android/audio_manager_android.h b/media/audio/android/audio_manager_android.h
|
| index 670c094900d26dd230bb82f9da0eb9713f0de855..b4a5698dae7bedc49b7c0ed166859f766158d5fd 100644
|
| --- a/media/audio/android/audio_manager_android.h
|
| +++ b/media/audio/android/audio_manager_android.h
|
| @@ -9,7 +9,9 @@
|
|
|
| #include "base/android/jni_android.h"
|
| #include "base/gtest_prod_util.h"
|
| +#include "base/message_loop/message_loop.h"
|
| #include "base/synchronization/lock.h"
|
| +#include "base/synchronization/waitable_event.h"
|
| #include "media/audio/audio_manager_base.h"
|
|
|
| namespace media {
|
| @@ -17,7 +19,9 @@ namespace media {
|
| class OpenSLESOutputStream;
|
|
|
| // Android implemention of AudioManager.
|
| -class MEDIA_EXPORT AudioManagerAndroid : public AudioManagerBase {
|
| +class MEDIA_EXPORT AudioManagerAndroid
|
| + : public AudioManagerBase,
|
| + public base::MessageLoop::DestructionObserver {
|
| public:
|
| AudioManagerAndroid(AudioLogFactory* audio_log_factory);
|
|
|
| @@ -67,6 +71,9 @@ class MEDIA_EXPORT AudioManagerAndroid : public AudioManagerBase {
|
| const AudioParameters& input_params) OVERRIDE;
|
|
|
| private:
|
| + // Implementation of MessageLoop::DestructionObserver.
|
| + virtual void WillDestroyCurrentMessageLoop() OVERRIDE;
|
| +
|
| bool HadNoAudioStreams();
|
| void Init();
|
| void Close();
|
| @@ -77,6 +84,10 @@ class MEDIA_EXPORT AudioManagerAndroid : public AudioManagerBase {
|
| int GetAudioLowLatencyOutputFrameSize();
|
| int GetOptimalOutputFrameSize(int sample_rate, int channels);
|
|
|
| + void InitializeOnAudioThread();
|
| + void CloseOnAudioThread();
|
| + void GetAudioInputDeviceNamesOnAudioThread(
|
| + base::WaitableEvent* event, AudioDeviceNames* device_names);
|
| void DoSetMuteOnAudioThread(bool muted);
|
|
|
| // Allow the AudioAndroidTest to access private methods.
|
| @@ -91,6 +102,7 @@ class MEDIA_EXPORT AudioManagerAndroid : public AudioManagerBase {
|
| // AudioManager::MakeAudioOutputStream on the audio thread. For now, this
|
| // lock is used to guard access to |streams_|.
|
| base::Lock streams_lock_;
|
| + bool initialized_on_audio_thread_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(AudioManagerAndroid);
|
| };
|
|
|