Files

45 lines
1.2 KiB
C
Raw Permalink Normal View History

2026-02-15 02:48:59 +09:00
#pragma once
#include "codec_board.h"
#include "codec_init.h"
#include "i2c_bsp.h"
class CodecPort
{
private:
esp_codec_dev_handle_t playback = NULL;
esp_codec_dev_handle_t record = NULL;
I2cMasterBus& i2cbus_;
i2c_master_dev_handle_t I2c_DevEs8311;
i2c_master_dev_handle_t I2c_DevEs7210;
const uint8_t Es8311Address = 0x18;
const uint8_t Es7210Address = 0x40;
static void CodecPort_MusicTask(void *arg);
static void CodecPort_EchoTask(void *arg);
public:
CodecPort(I2cMasterBus& i2cbus,const char *strName);
~CodecPort();
void Codec_SetCodecReg(const char * str,uint8_t reg,uint8_t data);
uint8_t Codec_GetCodecReg(const char *str, uint8_t reg);
void CodecPort_SetSpeakerVol(int vol);
void CodecPort_SetMicGain(float db_value);
void CodecPort_CloseSpeaker(void);
void CodecPort_CloseMic(void);
int CodecPort_PlayWrite(void *ptr,int ptr_len);
int CodecPort_EchoRead(void *ptr,int ptr_len);
void CodecPort_CreateMusicTask(void);
void CodecPort_CreateEchoTask(void);
void CodecPort_SetInfo(const char *strName,int open_en,int sample_rate,int channel,int bits_per_sample);
uint8_t *CodecPort_GetPcmData(uint32_t *len);
};