func.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #ifndef _FUNC_H
  2. #define _FUNC_H
  3. #include "func_bt.h"
  4. #include "func_bt_hid.h"
  5. #include "func_clock.h"
  6. #include "func_idle.h"
  7. #include "func_music.h"
  8. #include "func_fmrx.h"
  9. #include "func_usbdev.h"
  10. #include "func_aux.h"
  11. #include "func_speaker.h"
  12. #include "sfunc_record.h"
  13. #include "sfunc_record_play.h"
  14. #include "func_lowpwr.h"
  15. #include "func_update.h"
  16. #include "func_i2s.h"
  17. #include "func_spdif.h"
  18. #include "func_hdmi.h"
  19. #include "func_bt_dut.h"
  20. #include "func_uart_upd.h"
  21. #include "func_tom_cat.h"
  22. //task number
  23. enum {
  24. FUNC_NULL = 0,
  25. FUNC_MUSIC,
  26. FUNC_FMRX,
  27. FUNC_CLOCK,
  28. FUNC_BT,
  29. FUNC_BTHID,
  30. FUNC_USBDEV,
  31. FUNC_AUX,
  32. FUNC_SPDIF,
  33. FUNC_SPEAKER,
  34. FUNC_TOM_CAT,
  35. FUNC_PWROFF,
  36. FUNC_SLEEPMODE,
  37. FUNC_EXSPIFLASH_MUSIC,
  38. FUNC_I2S,
  39. FUNC_HUART,
  40. FUNC_HDMI,
  41. FUNC_BT_DUT,
  42. FUNC_BT_FCC,
  43. FUNC_IDLE,
  44. };
  45. //task control block
  46. typedef struct {
  47. u8 sta; //cur working task number
  48. u8 last; //lask task number
  49. #if BT_BACKSTAGE_EN
  50. u8 sta_break; //被中断的任务
  51. #endif
  52. void (*mp3_res_play)(u32 addr, u32 len); //各任务的语音播报函数接口
  53. void (*set_vol_callback)(u8 dir); //设置音量的回调函数,用于各任务的音量事件处理。
  54. } func_cb_t;
  55. extern func_cb_t func_cb;
  56. extern const u8 func_sort_table[]; //任务切换排序table
  57. ALWAYS_INLINE void func_mp3_res_play(u32 addr, u32 len)
  58. {
  59. if (func_cb.mp3_res_play) {
  60. func_cb.mp3_res_play(addr, len);
  61. }
  62. }
  63. ALWAYS_INLINE void func_set_vol_callback(u8 dir)
  64. {
  65. if (func_cb.set_vol_callback) {
  66. func_cb.set_vol_callback(dir);
  67. }
  68. }
  69. u8 get_funcs_total(void);
  70. void func_process(void);
  71. void func_message(u16 msg);
  72. void func_run(void);
  73. void func_music(void);
  74. void func_idle(void);
  75. void func_clock(void);
  76. void func_fmrx(void);
  77. void func_bt(void);
  78. void func_bthid(void);
  79. void func_usbdev(void);
  80. void func_aux(void);
  81. void func_spdif(void);
  82. #if FUNC_SPEAKER_EN
  83. void func_speaker(void);
  84. #endif // FUNC_SPEAKER_EN
  85. #if FUNC_I2S_EN
  86. void func_i2s(void);
  87. #endif
  88. #if FUNC_HUART_EN
  89. void func_huart(void);
  90. #endif
  91. void func_exspifalsh_music(void);
  92. void func_tom_cat(void);
  93. void func_bt_warning(void);
  94. #endif // _FUNC_H