Files
2026-01-12 18:46:01 +08:00

101 lines
2.5 KiB
C

/**
* @file sdrv_codec.c
* @brief E3 Codec driver
*
* @copyright Copyright (c) 2021 Semidrive Semiconductor.
* All rights reserved.
*
*/
#include <debug.h>
#include <irq.h>
#include <string.h>
#include "sdrv_codec.h"
#include "sdrv_codec_adapter.h"
/**
* @brief initializes codec module
*
* This fuction is used to initializes codec module.
*
*
* @param [in] codec sdrv codec device
* @param [in] cfg sdrv codec device configurations
* @return sdrv_codec_status_t
*
*/
sdrv_codec_status_t sdrv_codec_init(sdrv_codec_t *codec, sdrv_codec_cfg_t *cfg)
{
return sdrv_codec_adapter_init(codec, cfg);
}
/**
* @brief brief set audio codec module params.
*
* This fuction set codec params
*
* @param [in] codec sdrv codec device
* @param [in] params sdrv codec params
* @param [in] type playback or capture type
* @ return sdrv_codec_status_t
*
*
*/
sdrv_codec_status_t sdrv_codec_set_params(sdrv_codec_t *codec,
sdrv_codec_params_t *params,
sdrv_codec_stream_type_t type)
{
return sdrv_codec_adapter_set_params(codec, params, type);
}
/**
* @brief brief start or stop audio codec module
*
* This fuction is used to start or stop audio codec module
*
* @param [in] codec sdrv codec device
* @param [in] cmd start or stop cmd
* @param [in] type playback or capture type
* @ return sdrv_codec_status_t
*
*
*/
sdrv_codec_status_t sdrv_codec_trigger(sdrv_codec_t *codec,
sdrv_codec_trigger_op_t cmd,
sdrv_codec_stream_type_t type)
{
return sdrv_codec_adapter_trigger(codec, cmd, type);
}
/*!
* @brief set audio codec volume.
*
* @param codec_dev_t *
* @param volume volume value, support 0 ~ 100, 0 is mute, 100 is the maximum
* volume value.
*
* @return sdrv_codec_status_t is success, else configure failed.
*/
sdrv_codec_status_t sdrv_codec_set_volume(sdrv_codec_t *codec, uint8_t volume,
sdrv_codec_stream_type_t type)
{
return sdrv_codec_adapter_set_volume(codec, volume, type);
}
/*!
* brief set audio codec module mute.
*
* param codec codec handle.
* param mute true is mute, false is unmute.
* return sdrv_codec_status_t is success, else configure failed.
*/
sdrv_codec_status_t sdrv_codec_set_mute(sdrv_codec_t *codec, bool mute,
sdrv_codec_stream_type_t type)
{
return sdrv_codec_adapter_set_mute(codec, mute, type);
}