diff options
| -rw-r--r-- | audio/msm7x30/AudioHardware.cpp | 4 | ||||
| -rw-r--r-- | audio/msm7x30/AudioPolicyManager.cpp | 17 | ||||
| -rw-r--r-- | audio/msm7x30/AudioPolicyManager.h | 8 |
3 files changed, 27 insertions, 2 deletions
diff --git a/audio/msm7x30/AudioHardware.cpp b/audio/msm7x30/AudioHardware.cpp index 29c70316..4ee712d7 100644 --- a/audio/msm7x30/AudioHardware.cpp +++ b/audio/msm7x30/AudioHardware.cpp @@ -944,7 +944,7 @@ AudioStreamIn* AudioHardware::openInputStream( #ifdef WITH_QCOM_VOIP_OVER_MVS AudioStreamIn *in; - if(devices == AudioSystem::DEVICE_IN_COMMUNICATION) { + if((devices == AudioSystem::DEVICE_IN_COMMUNICATION)&& (*sampleRate == 8000)) { LOGE("Create Audio stream Voip \n"); AudioStreamInVoip* inVoip = new AudioStreamInVoip(); status_t lStatus = NO_ERROR; @@ -3237,7 +3237,7 @@ ssize_t AudioHardware::AudioStreamOutDirect::write(const void* buffer, size_t by mStandby = false; } } - struct msm_audio_mvs_frame audio_mvs_frame; + struct q5v2_msm_audio_mvs_frame audio_mvs_frame; audio_mvs_frame.frame_type = 0; while (count) { audio_mvs_frame.len = mBufferSize; diff --git a/audio/msm7x30/AudioPolicyManager.cpp b/audio/msm7x30/AudioPolicyManager.cpp index 6a6c0e1e..aed44e78 100644 --- a/audio/msm7x30/AudioPolicyManager.cpp +++ b/audio/msm7x30/AudioPolicyManager.cpp @@ -780,7 +780,24 @@ status_t AudioPolicyManager::stopInput(audio_io_handle_t input) return NO_ERROR; } +#ifdef WITH_QCOM_VOIP_OVER_MVS +bool AudioPolicyManager::needsDirectOuput(AudioSystem::stream_type stream, + uint32_t samplingRate, + uint32_t format, + uint32_t channels, + AudioSystem::output_flags flags, + uint32_t device) +{ + LOGV("AudioPolicyManager::needsDirectOuput stream = %d mPhoneState = %d," + "channels=%d,samplingRate=%d",stream, mPhoneState,channels,samplingRate); + + return ((flags & AudioSystem::OUTPUT_FLAG_DIRECT) || + (format !=0 && !AudioSystem::isLinearPCM(format)) || + ((stream == AudioSystem::VOICE_CALL) && (channels == AudioSystem::CHANNEL_OUT_MONO) + && (samplingRate == 8000 ))); +} +#endif // ---------------------------------------------------------------------------- // AudioPolicyManager // ---------------------------------------------------------------------------- diff --git a/audio/msm7x30/AudioPolicyManager.h b/audio/msm7x30/AudioPolicyManager.h index 0161e2c3..443b0ce7 100644 --- a/audio/msm7x30/AudioPolicyManager.h +++ b/audio/msm7x30/AudioPolicyManager.h @@ -73,6 +73,14 @@ public: int session = 0); virtual void setForceUse(AudioSystem::force_use usage, AudioSystem::forced_config config); status_t startInput(audio_io_handle_t input); +#ifdef WITH_QCOM_VOIP_OVER_MVS + virtual bool needsDirectOuput(AudioSystem::stream_type stream, + uint32_t samplingRate, + uint32_t format, + uint32_t channels, + AudioSystem::output_flags flags, + uint32_t device); +#endif protected: // true is current platform implements a back microphone |
