Loading media/libaudiohal/impl/EffectConversionHelperAidl.cpp +12 −4 Original line number Diff line number Diff line Loading @@ -318,17 +318,25 @@ status_t EffectConversionHelperAidl::handleSetDevice(uint32_t cmdSize, const voi mEffect->setParameter(Parameter::make<Parameter::deviceDescription>(aidlDevices)))); return *static_cast<int32_t*>(pReplyData) = OK; } status_t EffectConversionHelperAidl::handleSetVolume(uint32_t cmdSize, const void* pCmdData, uint32_t* replySize __unused, void* pReplyData __unused) { uint32_t* replySize, void* pReplyData) { if (cmdSize != 2 * sizeof(uint32_t) || !pCmdData) { ALOGE("%s parameter invalid %u %p", __func__, cmdSize, pCmdData); return BAD_VALUE; } Parameter::VolumeStereo volume = {.left = (float)(*(uint32_t*)pCmdData) / (1 << 24), .right = (float)(*(uint32_t*)pCmdData + 1) / (1 << 24)}; constexpr uint32_t unityGain = 1 << 24; Parameter::VolumeStereo volume = {.left = (float)(*(uint32_t*)pCmdData) / unityGain, .right = (float)(*(uint32_t*)pCmdData + 1) / unityGain}; RETURN_STATUS_IF_ERROR(statusTFromBinderStatus( mEffect->setParameter(Parameter::make<Parameter::volumeStereo>(volume)))); // write unity gain back if volume was successfully set if (replySize && *replySize == 2 * sizeof(uint32_t) && pReplyData) { constexpr uint32_t vol_ret[2] = {unityGain, unityGain}; memcpy(pReplyData, vol_ret, sizeof(vol_ret)); } return OK; } Loading Loading
media/libaudiohal/impl/EffectConversionHelperAidl.cpp +12 −4 Original line number Diff line number Diff line Loading @@ -318,17 +318,25 @@ status_t EffectConversionHelperAidl::handleSetDevice(uint32_t cmdSize, const voi mEffect->setParameter(Parameter::make<Parameter::deviceDescription>(aidlDevices)))); return *static_cast<int32_t*>(pReplyData) = OK; } status_t EffectConversionHelperAidl::handleSetVolume(uint32_t cmdSize, const void* pCmdData, uint32_t* replySize __unused, void* pReplyData __unused) { uint32_t* replySize, void* pReplyData) { if (cmdSize != 2 * sizeof(uint32_t) || !pCmdData) { ALOGE("%s parameter invalid %u %p", __func__, cmdSize, pCmdData); return BAD_VALUE; } Parameter::VolumeStereo volume = {.left = (float)(*(uint32_t*)pCmdData) / (1 << 24), .right = (float)(*(uint32_t*)pCmdData + 1) / (1 << 24)}; constexpr uint32_t unityGain = 1 << 24; Parameter::VolumeStereo volume = {.left = (float)(*(uint32_t*)pCmdData) / unityGain, .right = (float)(*(uint32_t*)pCmdData + 1) / unityGain}; RETURN_STATUS_IF_ERROR(statusTFromBinderStatus( mEffect->setParameter(Parameter::make<Parameter::volumeStereo>(volume)))); // write unity gain back if volume was successfully set if (replySize && *replySize == 2 * sizeof(uint32_t) && pReplyData) { constexpr uint32_t vol_ret[2] = {unityGain, unityGain}; memcpy(pReplyData, vol_ret, sizeof(vol_ret)); } return OK; } Loading