Loading policy_hal/AudioPolicyManager.cpp +9 −3 Original line number Diff line number Diff line Loading @@ -284,10 +284,15 @@ status_t AudioPolicyManagerCustom::setDeviceConnectionStateInt(audio_devices_t d if (state == AUDIO_POLICY_DEVICE_STATE_AVAILABLE) { mPrimaryOutput->changeRefCount(AUDIO_STREAM_MUSIC, 1); newDevice = newDevice | AUDIO_DEVICE_OUT_FM; mFMIsActive = true; } else { mFMIsActive = false; mPrimaryOutput->changeRefCount(AUDIO_STREAM_MUSIC, -1); } AudioParameter param = AudioParameter(); float volumeDb = mPrimaryOutput->mCurVolume[AUDIO_STREAM_MUSIC]; mPrevFMVolumeDb = volumeDb; param.addFloat(String8("fm_volume"), Volume::DbToAmpl(volumeDb)); param.addInt(String8("handle_fm"), (int)newDevice); mpClientInterface->setParameters(mPrimaryOutput->mIoHandle, param.toString()); } Loading Loading @@ -1225,7 +1230,7 @@ status_t AudioPolicyManagerCustom::checkAndSetVolume(audio_stream_type_t stream, } #ifdef FM_POWER_OPT } else if (stream == AUDIO_STREAM_MUSIC && hasPrimaryOutput() && outputDesc == mPrimaryOutput) { outputDesc == mPrimaryOutput && mFMIsActive) { /* Avoid unnecessary set_parameter calls as it puts the primary outputs FastMixer in HOT_IDLE leading to breaks in audio */ if (volumeDb != mPrevFMVolumeDb) { Loading Loading @@ -1956,7 +1961,8 @@ AudioPolicyManagerCustom::AudioPolicyManagerCustom(AudioPolicyClientInterface *c mHdmiAudioDisabled(false), mHdmiAudioEvent(false), mPrevPhoneState(0), mPrevFMVolumeDb(0.0f) mPrevFMVolumeDb(0.0f), mFMIsActive(false) { char ssr_enabled[PROPERTY_VALUE_MAX] = {0}; bool prop_ssr_enabled = false; Loading policy_hal/AudioPolicyManager.h +1 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,7 @@ private: bool mIsInputRequestOnProgress; #endif float mPrevFMVolumeDb; bool mFMIsActive; }; }; Loading
policy_hal/AudioPolicyManager.cpp +9 −3 Original line number Diff line number Diff line Loading @@ -284,10 +284,15 @@ status_t AudioPolicyManagerCustom::setDeviceConnectionStateInt(audio_devices_t d if (state == AUDIO_POLICY_DEVICE_STATE_AVAILABLE) { mPrimaryOutput->changeRefCount(AUDIO_STREAM_MUSIC, 1); newDevice = newDevice | AUDIO_DEVICE_OUT_FM; mFMIsActive = true; } else { mFMIsActive = false; mPrimaryOutput->changeRefCount(AUDIO_STREAM_MUSIC, -1); } AudioParameter param = AudioParameter(); float volumeDb = mPrimaryOutput->mCurVolume[AUDIO_STREAM_MUSIC]; mPrevFMVolumeDb = volumeDb; param.addFloat(String8("fm_volume"), Volume::DbToAmpl(volumeDb)); param.addInt(String8("handle_fm"), (int)newDevice); mpClientInterface->setParameters(mPrimaryOutput->mIoHandle, param.toString()); } Loading Loading @@ -1225,7 +1230,7 @@ status_t AudioPolicyManagerCustom::checkAndSetVolume(audio_stream_type_t stream, } #ifdef FM_POWER_OPT } else if (stream == AUDIO_STREAM_MUSIC && hasPrimaryOutput() && outputDesc == mPrimaryOutput) { outputDesc == mPrimaryOutput && mFMIsActive) { /* Avoid unnecessary set_parameter calls as it puts the primary outputs FastMixer in HOT_IDLE leading to breaks in audio */ if (volumeDb != mPrevFMVolumeDb) { Loading Loading @@ -1956,7 +1961,8 @@ AudioPolicyManagerCustom::AudioPolicyManagerCustom(AudioPolicyClientInterface *c mHdmiAudioDisabled(false), mHdmiAudioEvent(false), mPrevPhoneState(0), mPrevFMVolumeDb(0.0f) mPrevFMVolumeDb(0.0f), mFMIsActive(false) { char ssr_enabled[PROPERTY_VALUE_MAX] = {0}; bool prop_ssr_enabled = false; Loading
policy_hal/AudioPolicyManager.h +1 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,7 @@ private: bool mIsInputRequestOnProgress; #endif float mPrevFMVolumeDb; bool mFMIsActive; }; };