summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--audio/msm7x30/AudioHardware.cpp4
-rw-r--r--audio/msm7x30/AudioPolicyManager.cpp17
-rw-r--r--audio/msm7x30/AudioPolicyManager.h8
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