2025-04-11 09:40:32 +08:00

62 lines
1.3 KiB
C

#ifndef __API_CODEC_H__
#define __API_CODEC_H__
#include <stdint.h>
#include "codecDrv.h"
#include "codec.h"
#ifdef PWM_CODEC_ENABLE
#include "pwmCodec.h"
#endif
#ifdef API_CODEC_SPI_PWM
#include "spiCodec.h"
#endif
typedef enum
{
API_CODEC_ES8311 = ES8311,
API_CODEC_ES8374 = ES8374,
API_CODEC_ES8388 = ES8388,
API_CODEC_ES7148 = ES7148,
API_CODEC_ES7149 = ES7149,
API_CODEC_TM8211 = TM8211,
API_CODEC_ES7111,
API_CODEC_PWM,
API_CODEC_SPI_PWM,
API_CODEC_SPI_SIGMADELTA,
} ApiCodecT;
#ifdef FEATURE_SUBSYS_PCM_RECORD_ENABLE
typedef enum
{
CODEC_RX_IDLE = 0,
CODEC_RX_START = 1,
CODEC_RX_FINISH = 2,
CODEC_RX_INVALID = 3
} CodecRxT;
#endif
extern volatile uint8_t gCodecTx;
#ifdef FEATURE_SUBSYS_PCM_RECORD_ENABLE
extern volatile uint8_t gCodecRx;
#endif
void apiCodecInit(ApiCodecT apiCodec);
void apiCodecPaInit(void);
void apiCodecBoot(void);
void apiCodecStart(I2sSampleRate_e rate, I2sChannelSel_e channel);
void apiCodecStop(void);
void apiCodecPlay(uint8_t *data, uint32_t length);
#ifdef FEATURE_SUBSYS_PCM_RECORD_ENABLE
void apiCodecRecord(uint8_t *data, uint32_t length);
#endif
void apiCodecResume(void);
void codecVoltageSet(void);
int32_t sampleRateConvert(uint32_t rate, bool toEnum);
#endif