ba5e47bc77
1. 应用界面增加了返回主页的按钮 2. 修复了gif渲染内存泄漏的严重bug 3. 将PetDao当中的cJSON API替换为cpp_json,完美通过测试 4. 整合已经实现的各种上层建筑,实现了一个宠物对话基本业务应用,用于样品测试展示用 5. 重构了音频播放类,使其更modern,更加便于移植和拓展
71 lines
2.0 KiB
C
71 lines
2.0 KiB
C
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "esp_log.h"
|
|
#include "esp_check.h"
|
|
#include "unity.h"
|
|
#include "audio_player.h"
|
|
#include "driver/gpio.h"
|
|
#include "freertos/semphr.h"
|
|
|
|
#include "SD_MMC.h"
|
|
|
|
#define CONFIG_BSP_I2S_NUM 0
|
|
|
|
|
|
#define BSP_I2S_SCLK (GPIO_NUM_48)
|
|
#define BSP_I2S_MCLK (GPIO_NUM_NC)
|
|
#define BSP_I2S_LCLK (GPIO_NUM_38)
|
|
#define BSP_I2S_DOUT (GPIO_NUM_47)
|
|
#define BSP_I2S_DSIN (GPIO_NUM_NC)
|
|
|
|
#define BSP_I2S_GPIO_CFG \
|
|
{ \
|
|
.mclk = BSP_I2S_MCLK, \
|
|
.bclk = BSP_I2S_SCLK, \
|
|
.ws = BSP_I2S_LCLK, \
|
|
.dout = BSP_I2S_DOUT, \
|
|
.din = BSP_I2S_DSIN, \
|
|
.invert_flags = { \
|
|
.mclk_inv = false, \
|
|
.bclk_inv = false, \
|
|
.ws_inv = false, \
|
|
}, \
|
|
}
|
|
|
|
|
|
#define BSP_I2S_DUPLEX_MONO_CFG(_sample_rate) \
|
|
{ \
|
|
.clk_cfg = I2S_STD_CLK_DEFAULT_CONFIG(_sample_rate), \
|
|
.slot_cfg = I2S_STD_PHILIP_SLOT_DEFAULT_CONFIG(I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_MONO), \
|
|
.gpio_cfg = BSP_I2S_GPIO_CFG, \
|
|
}
|
|
|
|
#define Volume_MAX 100
|
|
extern bool Music_Next_Flag;
|
|
extern uint8_t Volume;
|
|
void Audio_Init(void);
|
|
void Play_Music(const char* directory, const char* fileName);
|
|
void Music_resume(void);
|
|
void Music_pause(void);
|
|
|
|
uint32_t Music_Duration(void);
|
|
uint32_t Music_Elapsed(void);
|
|
uint16_t Music_Energy(void);
|
|
void Volume_adjustment(uint8_t Volume);
|
|
|
|
|
|
// 供 C++ 层调用的“重新配置时钟”包装
|
|
esp_err_t bsp_i2s_reconfig_clk(uint32_t rate,
|
|
uint32_t bits_cfg,
|
|
i2s_slot_mode_t ch);
|
|
|
|
// 供 C++ 层直接用的 tx channel 句柄
|
|
extern i2s_chan_handle_t i2s_tx_chan;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif |