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..f7c85fe68df38309c6071c7af833cc2b427e7ce5 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,7 +71,14 @@ class MEDIA_EXPORT AudioManagerAndroid : public AudioManagerBase { |
const AudioParameters& input_params) OVERRIDE; |
private: |
- bool HadNoAudioStreams(); |
+ // Implementation of MessageLoop::DestructionObserver. |
+ virtual void WillDestroyCurrentMessageLoop() OVERRIDE; |
+ |
+ void CreateAndInitOnAudioThread(); |
+ void DoCreateAndInitOnAudioThread(base::WaitableEvent* event); |
+ void CloseOnAudioThread(); |
+ |
+ bool HasNoAudioStreams(); |
void Init(); |
void Close(); |
void SetCommunicationAudioModeOn(bool on); |
@@ -77,11 +88,10 @@ 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. |
- FRIEND_TEST_ALL_PREFIXES(AudioAndroidOutputTest, IsAudioLowLatencySupported); |
- |
// Java AudioManager instance. |
base::android::ScopedJavaGlobalRef<jobject> j_audio_manager_; |