Chromium Code Reviews| Index: media/audio/audio_manager_base.cc |
| =================================================================== |
| --- media/audio/audio_manager_base.cc (revision 189519) |
| +++ media/audio/audio_manager_base.cc (working copy) |
| @@ -63,6 +63,13 @@ |
| CHECK(audio_thread_->Start()); |
| #endif |
| message_loop_ = audio_thread_->message_loop_proxy(); |
| + |
| +#if defined(OS_ANDROID) |
| + JNIEnv* env = base::android::AttachCurrentThread(); |
| + jobject context = base::android::GetApplicationContext(); |
| + DCHECK(context); |
| + j_am_.Reset(Java_AudioManagerAndroid_createAudioManagerAndroid(env, context)); |
| +#endif |
| } |
| AudioManagerBase::~AudioManagerBase() { |
| @@ -128,6 +135,11 @@ |
| if (stream) |
| ++num_output_streams_; |
| +#if defined(OS_ANDROID) |
| + if (1 == num_output_streams_) |
| + RegisterHeadsetReceiver(); |
| +#endif |
| + |
| return stream; |
| } |
| @@ -170,7 +182,7 @@ |
| ++num_input_streams_; |
| #if defined(OS_ANDROID) |
| - if (num_input_streams_ == 1) |
| + if (1 == num_input_streams_) |
| SetAudioMode(kAudioModeInCommunication); |
| #endif |
| @@ -256,6 +268,10 @@ |
| // streams. |
| --num_output_streams_; |
| delete stream; |
| +#if defined(OS_ANDROID) |
| + if (!num_output_streams_) |
| + UnRegisterHeadsetReceiver(); |
| +#endif |
| } |
| void AudioManagerBase::ReleaseInputStream(AudioInputStream* stream) { |
| @@ -377,6 +393,22 @@ |
| Java_AudioManagerAndroid_setMode(env, context, mode); |
| } |
| -#endif |
| +void AudioManagerBase::RegisterHeadsetReceiver() { |
| + JNIEnv* env = base::android::AttachCurrentThread(); |
| + jobject context = base::android::GetApplicationContext(); |
| + DCHECK(context); |
| + |
| + Java_AudioManagerAndroid_registerHeadsetReceiver(env, j_am_.obj(), context); |
| +} |
| + |
| +void AudioManagerBase::UnRegisterHeadsetReceiver() { |
| + JNIEnv* env = base::android::AttachCurrentThread(); |
| + jobject context = base::android::GetApplicationContext(); |
|
Yaron
2013/03/21 16:51:31
You don't use the context here. Remove it
leozwang1
2013/03/21 18:51:35
Done.
|
| + DCHECK(context); |
| + |
| + Java_AudioManagerAndroid_unregisterHeadsetReceiver(env, j_am_.obj()); |
| +} |
| +#endif // defined(OS_ANDROID) |
| + |
| } // namespace media |