luat_audio_codec.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef __LUAT_AUDIO_CODEC_H__
  2. #define __LUAT_AUDIO_CODEC_H__
  3. typedef enum {
  4. LUAT_CODEC_SET_MUTE = 0, // 静音设置
  5. LUAT_CODEC_GET_MUTE, // 获取静音状态
  6. LUAT_CODEC_SET_VOICE_VOL, // 音量设置
  7. LUAT_CODEC_GET_VOICE_VOL, // 获取音量
  8. LUAT_CODEC_SET_MIC_VOL, // mic音量设置
  9. LUAT_CODEC_GET_MIC_VOL, // 获取mic音量
  10. LUAT_CODEC_SET_FORMAT, // codec数据格式设置
  11. LUAT_CODEC_SET_RATE, // 采样率设置
  12. LUAT_CODEC_SET_BITS, // 采样位设置
  13. LUAT_CODEC_SET_CHANNEL, // 通道设置
  14. LUAT_CODEC_MODE_RESUME,
  15. LUAT_CODEC_MODE_STANDBY,
  16. LUAT_CODEC_MODE_PWRDOWN,
  17. } luat_audio_codec_ctl_t;
  18. typedef enum {
  19. LUAT_CODEC_MODE_SLAVE = 0, // 默认从模式
  20. LUAT_CODEC_MODE_MASTER,
  21. LUAT_CODEC_MODE_ALL = 0,
  22. LUAT_CODEC_MODE_DAC,
  23. LUAT_CODEC_MODE_ADC,
  24. LUAT_CODEC_FORMAT_I2S = 0,
  25. LUAT_CODEC_FORMAT_LSB,
  26. LUAT_CODEC_FORMAT_MSB,
  27. LUAT_CODEC_FORMAT_PCMS,
  28. LUAT_CODEC_FORMAT_PCML,
  29. }luat_audio_codec_ctl_param_t;
  30. struct luat_audio_codec_opts;
  31. typedef struct luat_audio_codec_conf {
  32. int i2c_id; // i2c id
  33. int i2s_id; // i2s id
  34. const struct luat_audio_codec_opts* codec_opts; // codec 驱动函数
  35. uint8_t multimedia_id; // 多媒体id
  36. } luat_audio_codec_conf_t;
  37. typedef struct luat_audio_codec_opts{
  38. const char* name;
  39. int (*init)(luat_audio_codec_conf_t* conf,uint8_t mode); //初始化
  40. int (*deinit)(luat_audio_codec_conf_t* conf); //反初始化
  41. int (*control)(luat_audio_codec_conf_t* conf,luat_audio_codec_ctl_t cmd,uint32_t data); //控制函数
  42. int (*start)(luat_audio_codec_conf_t* conf); //停止
  43. int (*stop)(luat_audio_codec_conf_t* conf); //开始
  44. uint8_t no_control; //无法调节,只能开关
  45. } luat_audio_codec_opts_t;
  46. extern const luat_audio_codec_opts_t codec_opts_es8311;
  47. extern const luat_audio_codec_opts_t codec_opts_tm8211;
  48. extern const luat_audio_codec_opts_t codec_opts_common;
  49. #endif