luat_multimedia.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /******************************************************************************
  2. * multimedia设备操作抽象层
  3. *****************************************************************************/
  4. #ifndef __LUAT_MULTIMEDIA_H__
  5. #define __LUAT_MULTIMEDIA_H__
  6. #include "luat_base.h"
  7. #include "luat_zbuff.h"
  8. enum
  9. {
  10. MULTIMEDIA_DATA_TYPE_NONE,
  11. MULTIMEDIA_DATA_TYPE_PCM,
  12. MULTIMEDIA_DATA_TYPE_MP3,
  13. MULTIMEDIA_DATA_TYPE_WAV,
  14. MULTIMEDIA_DATA_TYPE_AMR_NB,
  15. MULTIMEDIA_DATA_TYPE_AMR_WB,
  16. };
  17. enum
  18. {
  19. MULTIMEDIA_CB_AUDIO_DECODE_START, //开始解码文件
  20. MULTIMEDIA_CB_AUDIO_OUTPUT_START, //开始输出解码后的音数据
  21. MULTIMEDIA_CB_AUDIO_NEED_DATA, //底层驱动播放播放完一部分数据,需要更多数据
  22. MULTIMEDIA_CB_AUDIO_DONE, //底层驱动播放完全部数据了
  23. MULTIMEDIA_CB_DECODE_DONE, //音频解码完成
  24. MULTIMEDIA_CB_TTS_INIT, //TTS做完了必要的初始化,用户可以通过audio_play_tts_set_param做个性化配置
  25. MULTIMEDIA_CB_TTS_DONE, //TTS编码完成了。注意不是播放完成
  26. MULTIMEDIA_AUDIO_BUS_DAC=0,
  27. MULTIMEDIA_AUDIO_BUS_I2S,
  28. MULTIMEDIA_AUDIO_BUS_SOFT_DAC
  29. };
  30. int l_multimedia_raw_handler(lua_State *L, void* ptr);
  31. #define LUAT_M_CODE_TYPE "MCODER*"
  32. #define MP3_FRAME_LEN 4 * 1152
  33. #include <stddef.h>
  34. #include "mp3_decode/minimp3.h"
  35. typedef struct
  36. {
  37. union
  38. {
  39. mp3dec_t *mp3_decoder;
  40. uint32_t read_len;
  41. void *amr_coder;
  42. };
  43. FILE* fd;
  44. luat_zbuff_t buff;
  45. uint8_t type;
  46. uint8_t is_decoder;
  47. }luat_multimedia_codec_t;
  48. #define MAX_DEVICE_COUNT 2
  49. typedef struct luat_multimedia_cb {
  50. int function_ref;
  51. } luat_multimedia_cb_t;
  52. #endif