api_music.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #ifndef _API_MUSIC_H
  2. #define _API_MUSIC_H
  3. typedef enum {
  4. NONE_TYPE = 0,
  5. WAV_TYPE,
  6. MP3_TYPE,
  7. SBC_TYPE,
  8. APE_TYPE,
  9. FLAC_TYPE,
  10. WMA_TYPE,
  11. ESBC_TYPE,
  12. AAC_TYPE,
  13. } enum_msc_type_t;
  14. enum {
  15. MUSIC_STOP = 0,
  16. MUSIC_PAUSE,
  17. MUSIC_PLAYING,
  18. };
  19. enum {
  20. //decode msg
  21. MUSIC_MSG_STOP = 0,
  22. MUSIC_MSG_PAUSE,
  23. MUSIC_MSG_PLAY,
  24. };
  25. typedef struct {
  26. volatile u8 sta;
  27. u8 type;
  28. } music_cb_t;
  29. extern music_cb_t music_cb;
  30. typedef struct sbc_struct {
  31. unsigned long flags;
  32. uint8_t frequency;
  33. uint8_t blocks;
  34. uint8_t subbands;
  35. uint8_t mode;
  36. uint8_t allocation;
  37. uint8_t bitpool;
  38. struct sbc_priv *priv;
  39. } sbc_t;
  40. typedef struct {
  41. u8 sbc_type; //0:sbc 1:msbc 2:bt_msbc
  42. sbc_t sbc;
  43. u8 buf[256];
  44. } sbc_dec_t;
  45. extern sbc_dec_t sbc_dec;
  46. extern bool (*sbcdec_frame)(void);
  47. void music_control(u8 msg);
  48. u8 get_music_dec_sta(void);
  49. void music_sbc_play(u8 msg);
  50. bool music_is_playing(void);
  51. int sbc_dec_init(void);
  52. bool sbc_dec_frame(void);
  53. void sbc_decode_init(void);
  54. void bt_decode_exit(void);
  55. int sbc_decode(sbc_t *sbc, const void *input, size_t input_len);
  56. void sbcdec_end(void);
  57. void bt_set_sbc_playing(u8 enable);
  58. void esbc_init(const u8 *ptr, u32 size);
  59. u8 res_play_start(uint index);
  60. u8 res_play_start_do(uint index);
  61. void res_play_stop(u8 dnr_sta);
  62. int esbc_res_play(u8 index, const u8 *ptr, const u8 *sptr, u32 size, u32 tws_sync);
  63. bool bt_ring_tone_play(u32 tws_sync);
  64. bool bt_ring_tone_stop(u32 force);
  65. void tws_wav_res_play_kick(u32 addr, u32 len);
  66. void wav_res_stop(void);
  67. void wav_res_play_kick(u32 addr, u32 len, bool tws_sync);
  68. void wav_res_dec_process(void);
  69. bool wav_res_is_play(void);
  70. #endif // _API_MUSIC_H