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 dc77a4c3eec6a2c6e5310ecd0dec5a0a88cb7ec6..21cb3e499e748248d40c5536b86794ef30d1cb8d 100644 |
--- a/media/audio/android/audio_manager_android.cc |
+++ b/media/audio/android/audio_manager_android.cc |
@@ -41,7 +41,8 @@ AudioManagerAndroid::AudioManagerAndroid() { |
j_audio_manager_.Reset( |
Java_AudioManagerAndroid_createAudioManagerAndroid( |
base::android::AttachCurrentThread(), |
- base::android::GetApplicationContext())); |
+ base::android::GetApplicationContext(), |
+ reinterpret_cast<intptr_t>(this))); |
} |
AudioManagerAndroid::~AudioManagerAndroid() { |
@@ -93,6 +94,7 @@ AudioOutputStream* AudioManagerAndroid::MakeAudioOutputStream( |
SetAudioMode(kAudioModeInCommunication); |
RegisterHeadsetReceiver(); |
} |
+ streams_.insert(reinterpret_cast<OpenSLESOutputStream*>(stream)); |
tommi (sloooow) - chröme
2013/12/02 18:36:00
static_cast
wjia(left Chromium)
2013/12/02 21:49:49
Done.
|
return stream; |
} |
@@ -109,6 +111,7 @@ void AudioManagerAndroid::ReleaseOutputStream(AudioOutputStream* stream) { |
UnregisterHeadsetReceiver(); |
SetAudioMode(kAudioModeNormal); |
} |
+ streams_.erase(reinterpret_cast<OpenSLESOutputStream*>(stream)); |
tommi (sloooow) - chröme
2013/12/02 18:36:00
static_cast
wjia(left Chromium)
2013/12/02 21:49:49
Done.
tommi (sloooow) - chröme
2013/12/03 08:56:24
Looks like there's a race here too.
wjia(left Chromium)
2013/12/04 00:53:29
Done.
|
} |
void AudioManagerAndroid::ReleaseInputStream(AudioInputStream* stream) { |
@@ -188,6 +191,22 @@ bool AudioManagerAndroid::RegisterAudioManager(JNIEnv* env) { |
return RegisterNativesImpl(env); |
} |
+void AudioManagerAndroid::SetMute(JNIEnv* env, jobject obj, jboolean state) { |
+ message_loop_->PostTask( |
+ FROM_HERE, |
+ base::Bind( |
+ &AudioManagerAndroid::DoSetMuteOnAudioThread, |
+ base::Unretained(this), |
+ state)); |
+} |
+ |
+void AudioManagerAndroid::DoSetMuteOnAudioThread(bool state) { |
+ for (OutputStreams::iterator it=streams_.begin(); |
tommi (sloooow) - chröme
2013/12/02 18:36:00
spaces around =
wjia(left Chromium)
2013/12/02 21:49:49
Done.
|
+ it != streams_.end(); ++it) { |
+ (*it)->SetMute(state); |
+ } |
+} |
+ |
void AudioManagerAndroid::SetAudioMode(int mode) { |
Java_AudioManagerAndroid_setMode( |
base::android::AttachCurrentThread(), |