Loading media/libaudiohal/EffectHalHidl.cpp +51 −0 Original line number Diff line number Diff line Loading @@ -73,12 +73,33 @@ void EffectHalHidl::effectBufferConfigFromHal( config->mask = EffectConfigParameters(halConfig.mask); } // static void EffectHalHidl::effectBufferConfigToHal( const EffectBufferConfig& config, buffer_config_t* halConfig) { halConfig->buffer.frameCount = 0; halConfig->buffer.raw = NULL; halConfig->samplingRate = config.samplingRateHz; halConfig->channels = static_cast<uint32_t>(config.channels); halConfig->bufferProvider.cookie = NULL; halConfig->bufferProvider.getBuffer = NULL; halConfig->bufferProvider.releaseBuffer = NULL; halConfig->format = static_cast<uint8_t>(config.format); halConfig->accessMode = static_cast<uint8_t>(config.accessMode); halConfig->mask = static_cast<uint8_t>(config.mask); } // static void EffectHalHidl::effectConfigFromHal(const effect_config_t& halConfig, EffectConfig* config) { effectBufferConfigFromHal(halConfig.inputCfg, &config->inputCfg); effectBufferConfigFromHal(halConfig.outputCfg, &config->outputCfg); } // static void EffectHalHidl::effectConfigToHal(const EffectConfig& config, effect_config_t* halConfig) { effectBufferConfigToHal(config.inputCfg, &halConfig->inputCfg); effectBufferConfigToHal(config.outputCfg, &halConfig->outputCfg); } // static status_t EffectHalHidl::analyzeResult(const Result& result) { switch (result) { Loading Loading @@ -193,6 +214,8 @@ status_t EffectHalHidl::command(uint32_t cmdCode, uint32_t cmdSize, void *pCmdDa // Special cases. if (cmdCode == EFFECT_CMD_SET_CONFIG || cmdCode == EFFECT_CMD_SET_CONFIG_REVERSE) { return setConfigImpl(cmdCode, cmdSize, pCmdData, replySize, pReplyData); } else if (cmdCode == EFFECT_CMD_GET_CONFIG || cmdCode == EFFECT_CMD_GET_CONFIG_REVERSE) { return getConfigImpl(cmdCode, replySize, pReplyData); } // Common case. Loading Loading @@ -235,6 +258,34 @@ status_t EffectHalHidl::close() { return ret.isOk() ? analyzeResult(ret) : FAILED_TRANSACTION; } status_t EffectHalHidl::getConfigImpl( uint32_t cmdCode, uint32_t *replySize, void *pReplyData) { if (replySize == NULL || *replySize != sizeof(effect_config_t) || pReplyData == NULL) { return BAD_VALUE; } status_t result = FAILED_TRANSACTION; Return<void> ret; if (cmdCode == EFFECT_CMD_GET_CONFIG) { ret = mEffect->getConfig([&] (Result r, const EffectConfig &hidlConfig) { result = analyzeResult(r); if (r == Result::OK) { effectConfigToHal(hidlConfig, static_cast<effect_config_t*>(pReplyData)); } }); } else { ret = mEffect->getConfigReverse([&] (Result r, const EffectConfig &hidlConfig) { result = analyzeResult(r); if (r == Result::OK) { effectConfigToHal(hidlConfig, static_cast<effect_config_t*>(pReplyData)); } }); } if (!ret.isOk()) { result = FAILED_TRANSACTION; } return result; } status_t EffectHalHidl::setConfigImpl( uint32_t cmdCode, uint32_t cmdSize, void *pCmdData, uint32_t *replySize, void *pReplyData) { if (pCmdData == NULL || cmdSize != sizeof(effect_config_t) || Loading media/libaudiohal/EffectHalHidl.h +4 −0 Original line number Diff line number Diff line Loading @@ -79,7 +79,10 @@ class EffectHalHidl : public EffectHalInterface static status_t analyzeResult(const hardware::audio::effect::V2_0::Result& result); static void effectBufferConfigFromHal( const buffer_config_t& halConfig, EffectBufferConfig* config); static void effectBufferConfigToHal( const EffectBufferConfig& config, buffer_config_t* halConfig); static void effectConfigFromHal(const effect_config_t& halConfig, EffectConfig* config); static void effectConfigToHal(const EffectConfig& config, effect_config_t* halConfig); // Can not be constructed directly by clients. EffectHalHidl(const sp<IEffect>& effect, uint64_t effectId); Loading @@ -87,6 +90,7 @@ class EffectHalHidl : public EffectHalInterface // The destructor automatically releases the effect. virtual ~EffectHalHidl(); status_t getConfigImpl(uint32_t cmdCode, uint32_t *replySize, void *pReplyData); status_t prepareForProcessing(); status_t processImpl(uint32_t mqFlag); status_t setConfigImpl( Loading Loading
media/libaudiohal/EffectHalHidl.cpp +51 −0 Original line number Diff line number Diff line Loading @@ -73,12 +73,33 @@ void EffectHalHidl::effectBufferConfigFromHal( config->mask = EffectConfigParameters(halConfig.mask); } // static void EffectHalHidl::effectBufferConfigToHal( const EffectBufferConfig& config, buffer_config_t* halConfig) { halConfig->buffer.frameCount = 0; halConfig->buffer.raw = NULL; halConfig->samplingRate = config.samplingRateHz; halConfig->channels = static_cast<uint32_t>(config.channels); halConfig->bufferProvider.cookie = NULL; halConfig->bufferProvider.getBuffer = NULL; halConfig->bufferProvider.releaseBuffer = NULL; halConfig->format = static_cast<uint8_t>(config.format); halConfig->accessMode = static_cast<uint8_t>(config.accessMode); halConfig->mask = static_cast<uint8_t>(config.mask); } // static void EffectHalHidl::effectConfigFromHal(const effect_config_t& halConfig, EffectConfig* config) { effectBufferConfigFromHal(halConfig.inputCfg, &config->inputCfg); effectBufferConfigFromHal(halConfig.outputCfg, &config->outputCfg); } // static void EffectHalHidl::effectConfigToHal(const EffectConfig& config, effect_config_t* halConfig) { effectBufferConfigToHal(config.inputCfg, &halConfig->inputCfg); effectBufferConfigToHal(config.outputCfg, &halConfig->outputCfg); } // static status_t EffectHalHidl::analyzeResult(const Result& result) { switch (result) { Loading Loading @@ -193,6 +214,8 @@ status_t EffectHalHidl::command(uint32_t cmdCode, uint32_t cmdSize, void *pCmdDa // Special cases. if (cmdCode == EFFECT_CMD_SET_CONFIG || cmdCode == EFFECT_CMD_SET_CONFIG_REVERSE) { return setConfigImpl(cmdCode, cmdSize, pCmdData, replySize, pReplyData); } else if (cmdCode == EFFECT_CMD_GET_CONFIG || cmdCode == EFFECT_CMD_GET_CONFIG_REVERSE) { return getConfigImpl(cmdCode, replySize, pReplyData); } // Common case. Loading Loading @@ -235,6 +258,34 @@ status_t EffectHalHidl::close() { return ret.isOk() ? analyzeResult(ret) : FAILED_TRANSACTION; } status_t EffectHalHidl::getConfigImpl( uint32_t cmdCode, uint32_t *replySize, void *pReplyData) { if (replySize == NULL || *replySize != sizeof(effect_config_t) || pReplyData == NULL) { return BAD_VALUE; } status_t result = FAILED_TRANSACTION; Return<void> ret; if (cmdCode == EFFECT_CMD_GET_CONFIG) { ret = mEffect->getConfig([&] (Result r, const EffectConfig &hidlConfig) { result = analyzeResult(r); if (r == Result::OK) { effectConfigToHal(hidlConfig, static_cast<effect_config_t*>(pReplyData)); } }); } else { ret = mEffect->getConfigReverse([&] (Result r, const EffectConfig &hidlConfig) { result = analyzeResult(r); if (r == Result::OK) { effectConfigToHal(hidlConfig, static_cast<effect_config_t*>(pReplyData)); } }); } if (!ret.isOk()) { result = FAILED_TRANSACTION; } return result; } status_t EffectHalHidl::setConfigImpl( uint32_t cmdCode, uint32_t cmdSize, void *pCmdData, uint32_t *replySize, void *pReplyData) { if (pCmdData == NULL || cmdSize != sizeof(effect_config_t) || Loading
media/libaudiohal/EffectHalHidl.h +4 −0 Original line number Diff line number Diff line Loading @@ -79,7 +79,10 @@ class EffectHalHidl : public EffectHalInterface static status_t analyzeResult(const hardware::audio::effect::V2_0::Result& result); static void effectBufferConfigFromHal( const buffer_config_t& halConfig, EffectBufferConfig* config); static void effectBufferConfigToHal( const EffectBufferConfig& config, buffer_config_t* halConfig); static void effectConfigFromHal(const effect_config_t& halConfig, EffectConfig* config); static void effectConfigToHal(const EffectConfig& config, effect_config_t* halConfig); // Can not be constructed directly by clients. EffectHalHidl(const sp<IEffect>& effect, uint64_t effectId); Loading @@ -87,6 +90,7 @@ class EffectHalHidl : public EffectHalInterface // The destructor automatically releases the effect. virtual ~EffectHalHidl(); status_t getConfigImpl(uint32_t cmdCode, uint32_t *replySize, void *pReplyData); status_t prepareForProcessing(); status_t processImpl(uint32_t mqFlag); status_t setConfigImpl( Loading