diff --git a/components/esp_codec_dev/esp_codec_dev.c b/components/esp_codec_dev/esp_codec_dev.c index ea694f380..2ba71a993 100644 --- a/components/esp_codec_dev/esp_codec_dev.c +++ b/components/esp_codec_dev/esp_codec_dev.c @@ -212,6 +212,30 @@ int esp_codec_dev_open(esp_codec_dev_handle_t handle, esp_codec_dev_sample_info_ return ESP_CODEC_DEV_OK; } +int esp_codec_dev_read_reg(esp_codec_dev_handle_t handle, int reg, int *val) +{ + codec_dev_t *dev = (codec_dev_t *) handle; + if (dev == NULL || val == NULL) { + return ESP_CODEC_DEV_INVALID_ARG; + } + if (dev && dev->codec_if && dev->codec_if->get_reg) { + dev->codec_if->get_reg(dev->codec_if, reg, val); + } + return ESP_CODEC_DEV_OK; +} + +int esp_codec_dev_write_reg(esp_codec_dev_handle_t handle, int reg, int val) +{ + codec_dev_t *dev = (codec_dev_t *) handle; + if (dev == NULL) { + return ESP_CODEC_DEV_INVALID_ARG; + } + if (dev && dev->codec_if && dev->codec_if->set_reg) { + dev->codec_if->set_reg(dev->codec_if, reg, val); + } + return ESP_CODEC_DEV_OK; +} + int esp_codec_dev_read(esp_codec_dev_handle_t handle, void *data, int len) { codec_dev_t *dev = (codec_dev_t *) handle; diff --git a/components/esp_codec_dev/include/esp_codec_dev.h b/components/esp_codec_dev/include/esp_codec_dev.h index a38610b40..5d26a393c 100644 --- a/components/esp_codec_dev/include/esp_codec_dev.h +++ b/components/esp_codec_dev/include/esp_codec_dev.h @@ -54,6 +54,26 @@ esp_codec_dev_handle_t esp_codec_dev_new(esp_codec_dev_cfg_t *codec_dev_cfg); */ int esp_codec_dev_open(esp_codec_dev_handle_t codec, esp_codec_dev_sample_info_t *fs); +/** + * @brief Read register value from codec + * @param codec: Codec device handle + * @param reg: Register address to be read + * @param val: Value to be read + * @return ESP_CODEC_DEV_OK: Read success + * ESP_CODEC_DEV_INVALID_ARG: Invalid arguments + */ +int esp_codec_dev_read_reg(esp_codec_dev_handle_t codec, int reg, int *val); + +/** + * @brief Write register value to codec + * @param codec: Codec device handle + * @param reg: Register address to be wrote + * @param val: Value to be wrote + * @return ESP_CODEC_DEV_OK: Read success + * ESP_CODEC_DEV_INVALID_ARG: Invalid arguments + */ +int esp_codec_dev_write_reg(esp_codec_dev_handle_t codec, int reg, int val); + /** * @brief Read data from codec * @param codec: Codec device handle