Chromium Code Reviews| 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(), |