api_music.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. #ifndef _API_MUSIC_H
  2. #define _API_MUSIC_H
  3. enum {
  4. MUSIC_STOP = 0,
  5. MUSIC_PAUSE,
  6. MUSIC_PLAYING,
  7. };
  8. enum {
  9. NONE_TYPE = 0,
  10. WAV_TYPE,
  11. MP3_TYPE,
  12. WMA_TYPE,
  13. APE_TYPE,
  14. FLAC_TYPE,
  15. SBCIO_TYPE,
  16. SBC_TYPE,
  17. AACIO_TYPE,
  18. AAC_TYPE,
  19. LHDC_TYPE,
  20. };
  21. enum {
  22. //decode msg
  23. MUSIC_MSG_STOP = 0,
  24. MUSIC_MSG_PAUSE,
  25. MUSIC_MSG_PLAY,
  26. //encode msg
  27. ENC_MSG_MP3 = 32,
  28. ENC_MSG_SCO,
  29. ENC_MSG_SBC,
  30. ENC_MSG_WAV,
  31. ENC_MSG_ADPCM,
  32. };
  33. enum {
  34. QSKIP_BACKWARD,
  35. QSKIP_FORWARD,
  36. };
  37. extern unsigned char avio_buf[556];
  38. extern u32 rec_lba_num;
  39. void music_control(u8 msg);
  40. u8 get_music_dec_sta(void);
  41. int music_decode_init(void);
  42. int wav_decode_init(void);
  43. int mp3_decode_init(void);
  44. int wma_decode_init(void);
  45. int ape_decode_init(void);
  46. int flac_decode_init(void);
  47. int sbcio_decode_init(void);
  48. void sbc_decode_init(void);
  49. int aacio_decode_init(void);
  50. int m4a_decode_init(void);
  51. u16 music_get_total_time(void);
  52. u16 music_get_cur_time(void);
  53. void music_set_cur_time(u32 cur_time);
  54. void music_qskip(bool direct, u8 second); //快进快退控制 direct = 1为快退,0为快进
  55. void music_qskip_end(void);
  56. void music_set_jump(void *brkpt);
  57. void music_get_breakpiont(void *brkpt);
  58. u32 get_music_bitrate(void);
  59. void music_stream_var_init(void);
  60. void msc_pcm_out_var_init(void);
  61. int music_is_encrypt(u16 key); //返回0表示为加密音乐
  62. void music_stream_decrypt(void *buf, unsigned int len);
  63. void music_sync_kick(void);
  64. //按键音单频TONE
  65. void key_voice_play(u32 freq, u32 play_ms, u32 gain); //freq: tone频率,单位Hz, play_ms:持续时间, gain:keytone vol select (0DB, -6DB, 12DB, -24DB)
  66. #endif // _API_MUSIC_H