diff --git a/src/audio/module_adapter/iadk/iadk_module_adapter.cpp b/src/audio/module_adapter/iadk/iadk_module_adapter.cpp index c680622963ea..f940f08fad4b 100644 --- a/src/audio/module_adapter/iadk/iadk_module_adapter.cpp +++ b/src/audio/module_adapter/iadk/iadk_module_adapter.cpp @@ -121,9 +121,9 @@ IadkModuleAdapter::IadkModuleAdapter_SetConfiguration(uint32_t config_id, AdspErrorCode IadkModuleAdapter::IadkModuleAdapter_GetConfiguration(uint32_t config_id, enum module_cfg_fragment_position pos, - uint32_t data_offset_size, + uint32_t &data_offset_size, uint8_t *fragment_buffer, - size_t fragment_size) + size_t &fragment_size) { intel_adsp::ConfigurationFragmentPosition fragment_position = (intel_adsp::ConfigurationFragmentPosition::Enum) pos; @@ -219,14 +219,14 @@ int iadk_wrapper_set_configuration(void *md, uint32_t config_id, int iadk_wrapper_get_configuration(void *md, uint32_t config_id, enum module_cfg_fragment_position pos, - uint32_t data_offset_size, - uint8_t *fragment, size_t fragment_size) + uint32_t *data_offset_size, + uint8_t *fragment, size_t *fragment_size) { struct IadkModuleAdapter *mod_adp = (struct IadkModuleAdapter *) md; return mod_adp->IadkModuleAdapter_GetConfiguration(config_id, pos, - data_offset_size, + *data_offset_size, fragment, - fragment_size); + *fragment_size); } int iadk_wrapper_process(void *md, diff --git a/src/audio/module_adapter/module/modules.c b/src/audio/module_adapter/module/modules.c index b58f2f47054c..47fd8af6b217 100644 --- a/src/audio/module_adapter/module/modules.c +++ b/src/audio/module_adapter/module/modules.c @@ -191,8 +191,8 @@ static int modules_get_configuration(struct processing_module *mod, uint32_t con size_t fragment_size) { return iadk_wrapper_get_configuration(module_get_private_data(mod), config_id, - MODULE_CFG_FRAGMENT_SINGLE, *data_offset_size, - fragment, fragment_size); + MODULE_CFG_FRAGMENT_SINGLE, data_offset_size, + fragment, &fragment_size); } /** diff --git a/src/include/sof/audio/module_adapter/iadk/iadk_module_adapter.h b/src/include/sof/audio/module_adapter/iadk/iadk_module_adapter.h index 67ac69f46d08..e01a51f8805b 100644 --- a/src/include/sof/audio/module_adapter/iadk/iadk_module_adapter.h +++ b/src/include/sof/audio/module_adapter/iadk/iadk_module_adapter.h @@ -91,9 +91,9 @@ namespace dsp_fw AdspErrorCode IadkModuleAdapter_GetConfiguration(uint32_t config_id, enum module_cfg_fragment_position fragment_position, - uint32_t data_offset_size, + uint32_t &data_offset_size, uint8_t *fragment_buffer, - size_t fragment_size); + size_t &fragment_size); /** * Module specific reset procedure, called as part of codec_adapter component * reset in .reset(). This should reset all parameters to their initial stage @@ -144,10 +144,22 @@ int iadk_wrapper_set_configuration(void *md, uint32_t config_id, const uint8_t *fragment, size_t fragment_size, uint8_t *response, size_t response_size); +/* + * \brief Retrieve module configuration + * \param[in] md - struct IadkModuleAdapter pointer + * \param[in] config_id - Configuration ID + * \param[in] pos - position of the fragment in the large message + * \param[in] data_offset_size: size of the whole configuration if it is the first fragment or the + * only fragment. Otherwise, it is the offset of the fragment in the whole configuration. + * \param[in] fragment: configuration fragment buffer + * \param[in,out] fragment_size: size of @fragment + * + * \return: 0 upon success or error upon failure + */ int iadk_wrapper_get_configuration(void *md, uint32_t config_id, enum module_cfg_fragment_position pos, - uint32_t data_offset_size, - uint8_t *fragment, size_t fragment_size); + uint32_t *data_offset_size, + uint8_t *fragment, size_t *fragment_size); int iadk_wrapper_process(void *md, struct sof_source **sources, int num_of_sources,