diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2016-01-21 01:29:38 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-01-21 01:29:38 -0800 |
commit | 61f9adf9fa0e709ecc6e5c42a185fe0a155c4a9a (patch) | |
tree | a911b7f01e45db10589138a359e1c0dc0c5b5a4a | |
parent | 13b99aa19255eb18403b24b2f3f90d5382323088 (diff) | |
parent | 0b2c37785bc63da92572d50c5c2e97950f9787a2 (diff) | |
download | android_hardware_qcom_audio-61f9adf9fa0e709ecc6e5c42a185fe0a155c4a9a.tar.gz android_hardware_qcom_audio-61f9adf9fa0e709ecc6e5c42a185fe0a155c4a9a.tar.bz2 android_hardware_qcom_audio-61f9adf9fa0e709ecc6e5c42a185fe0a155c4a9a.zip |
Merge "policy: Avoid unnecessary set_parameter calls" into av-userspace.lnx.1.0-dev.1.0
-rw-r--r-- | policy_hal/AudioPolicyManager.cpp | 14 | ||||
-rw-r--r-- | policy_hal/AudioPolicyManager.h | 1 |
2 files changed, 11 insertions, 4 deletions
diff --git a/policy_hal/AudioPolicyManager.cpp b/policy_hal/AudioPolicyManager.cpp index 85776200..ac814cd7 100644 --- a/policy_hal/AudioPolicyManager.cpp +++ b/policy_hal/AudioPolicyManager.cpp @@ -1271,9 +1271,14 @@ status_t AudioPolicyManagerCustom::checkAndSetVolume(audio_stream_type_t stream, #ifdef FM_POWER_OPT } else if (stream == AUDIO_STREAM_MUSIC && hasPrimaryOutput() && outputDesc == mPrimaryOutput) { - AudioParameter param = AudioParameter(); - param.addFloat(String8("fm_volume"), Volume::DbToAmpl(volumeDb)); - mpClientInterface->setParameters(mPrimaryOutput->mIoHandle, param.toString(), delayMs); + /* Avoid unnecessary set_parameter calls as it puts the primary + outputs FastMixer in HOT_IDLE leading to breaks in audio */ + if (volumeDb != mPrevFMVolumeDb) { + mPrevFMVolumeDb = volumeDb; + AudioParameter param = AudioParameter(); + param.addFloat(String8("fm_volume"), Volume::DbToAmpl(volumeDb)); + mpClientInterface->setParameters(mPrimaryOutput->mIoHandle, param.toString(), delayMs); + } #endif /* FM_POWER_OPT end */ } @@ -2037,7 +2042,8 @@ AudioPolicyManagerCustom::AudioPolicyManagerCustom(AudioPolicyClientInterface *c : AudioPolicyManager(clientInterface), mHdmiAudioDisabled(false), mHdmiAudioEvent(false), - mPrevPhoneState(0) + mPrevPhoneState(0), + mPrevFMVolumeDb(0.0f) { char ssr_enabled[PROPERTY_VALUE_MAX] = {0}; bool prop_ssr_enabled = false; diff --git a/policy_hal/AudioPolicyManager.h b/policy_hal/AudioPolicyManager.h index 55d59acc..59124b8d 100644 --- a/policy_hal/AudioPolicyManager.h +++ b/policy_hal/AudioPolicyManager.h @@ -154,6 +154,7 @@ private: // Used for record + playback concurrency bool mIsInputRequestOnProgress; #endif + float mPrevFMVolumeDb; }; }; |