Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(557)

Unified Diff: media/audio/android/audio_manager_android.cc

Issue 93233003: Mute audio when volume is zero on Android. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(),

Powered by Google App Engine
This is Rietveld 408576698