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..08dd98c0979a3678c317e25fad11a3848d9ec5d0 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,12 @@ 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 SetAudioDeviceOnAudioThread(base::WaitableEvent* event, |
+ const std::string& device_id, bool* result); |
void DoSetMuteOnAudioThread(bool muted); |
// Allow the AudioAndroidTest to access private methods. |
@@ -91,6 +104,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); |
}; |