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..c67b8daa2635b8d67a3209c4bc6f7a7ada9045ba 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,13 @@ class MEDIA_EXPORT AudioManagerAndroid : public AudioManagerBase { |
const AudioParameters& input_params) OVERRIDE; |
private: |
+ // Implementation of MessageLoop::DestructionObserver. |
+ virtual void WillDestroyCurrentMessageLoop() OVERRIDE; |
+ |
+ void CreateAndInitOnAudioThread(); |
+ void DoCreateAndInitOnAudioThread(base::WaitableEvent* event); |
+ void CloseOnAudioThread(); |
+ |
bool HadNoAudioStreams(); |
void Init(); |
void Close(); |
@@ -77,6 +88,8 @@ class MEDIA_EXPORT AudioManagerAndroid : public AudioManagerBase { |
int GetAudioLowLatencyOutputFrameSize(); |
int GetOptimalOutputFrameSize(int sample_rate, int channels); |
+ void GetAudioInputDeviceNamesOnAudioThread( |
+ base::WaitableEvent* event, AudioDeviceNames* device_names); |
void DoSetMuteOnAudioThread(bool muted); |
// Allow the AudioAndroidTest to access private methods. |