| Index: webrtc/modules/audio_device/android/audio_device_template.h
|
| diff --git a/webrtc/modules/audio_device/android/audio_device_template.h b/webrtc/modules/audio_device/android/audio_device_template.h
|
| index 69ede541c41cdce55cfdebb161e6e9d51d8bb57d..adc66fa6d44d4caaa3d4ce907d26ca183f49e17d 100644
|
| --- a/webrtc/modules/audio_device/android/audio_device_template.h
|
| +++ b/webrtc/modules/audio_device/android/audio_device_template.h
|
| @@ -11,12 +11,17 @@
|
| #ifndef WEBRTC_MODULES_AUDIO_DEVICE_ANDROID_AUDIO_DEVICE_TEMPLATE_H_
|
| #define WEBRTC_MODULES_AUDIO_DEVICE_ANDROID_AUDIO_DEVICE_TEMPLATE_H_
|
|
|
| +#include <android/log.h>
|
| +
|
| #include "webrtc/base/checks.h"
|
| #include "webrtc/base/thread_checker.h"
|
| #include "webrtc/modules/audio_device/android/audio_manager.h"
|
| #include "webrtc/modules/audio_device/audio_device_generic.h"
|
| #include "webrtc/system_wrappers/interface/trace.h"
|
|
|
| +#define TAG "AudioDeviceTemplate"
|
| +#define ALOGW(...) __android_log_print(ANDROID_LOG_WARN, TAG, __VA_ARGS__)
|
| +
|
| namespace webrtc {
|
|
|
| // InputType/OutputType can be any class that implements the capturing/rendering
|
| @@ -125,12 +130,6 @@ class AudioDeviceTemplate : public AudioDeviceGeneric {
|
| }
|
|
|
| int32_t InitPlayout() override {
|
| - // Switches the Android audio mode to MODE_IN_COMMUNICATION to ensure that
|
| - // audio routing, volume control and echo performance are the best possible
|
| - // for VoIP. InitRecording() does the same type of call but only the first
|
| - // call has any effect.
|
| - // This call does nothing if MODE_IN_COMMUNICATION was already set.
|
| - audio_manager_->SetCommunicationMode(true);
|
| return output_.InitPlayout();
|
| }
|
|
|
| @@ -144,12 +143,6 @@ class AudioDeviceTemplate : public AudioDeviceGeneric {
|
| }
|
|
|
| int32_t InitRecording() override {
|
| - // Switches the Android audio mode to MODE_IN_COMMUNICATION to ensure that
|
| - // audio routing, volume control and echo performance are the best possible
|
| - // for VoIP. InitRecording() does the same type of call but only the first
|
| - // call has any effect.
|
| - // This call does nothing if MODE_IN_COMMUNICATION was already set.
|
| - audio_manager_->SetCommunicationMode(true);
|
| return input_.InitRecording();
|
| }
|
|
|
| @@ -158,6 +151,9 @@ class AudioDeviceTemplate : public AudioDeviceGeneric {
|
| }
|
|
|
| int32_t StartPlayout() override {
|
| + if (!audio_manager_->IsCommunicationModeEnabled()) {
|
| + ALOGW("The application should use MODE_IN_COMMUNICATION audio mode!");
|
| + }
|
| return output_.StartPlayout();
|
| }
|
|
|
| @@ -166,11 +162,6 @@ class AudioDeviceTemplate : public AudioDeviceGeneric {
|
| if (!Playing())
|
| return 0;
|
| int32_t err = output_.StopPlayout();
|
| - if (!Recording()) {
|
| - // Restore initial audio mode since all audio streaming is disabled.
|
| - // The default mode was stored in Init().
|
| - audio_manager_->SetCommunicationMode(false);
|
| - }
|
| return err;
|
| }
|
|
|
| @@ -179,6 +170,9 @@ class AudioDeviceTemplate : public AudioDeviceGeneric {
|
| }
|
|
|
| int32_t StartRecording() override {
|
| + if (!audio_manager_->IsCommunicationModeEnabled()) {
|
| + ALOGW("The application should use MODE_IN_COMMUNICATION audio mode!");
|
| + }
|
| return input_.StartRecording();
|
| }
|
|
|
| @@ -187,11 +181,6 @@ class AudioDeviceTemplate : public AudioDeviceGeneric {
|
| if (!Recording())
|
| return 0;
|
| int32_t err = input_.StopRecording();
|
| - if (!Playing()) {
|
| - // Restore initial audio mode since all audio streaming is disabled.
|
| - // The default mode was is stored in Init().
|
| - audio_manager_->SetCommunicationMode(false);
|
| - }
|
| return err;
|
| }
|
|
|
|
|