func_bt.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. #ifndef _FUNC_BT_H
  2. #define _FUNC_BT_H
  3. #define BT_WARN_CON BIT(0)
  4. #define BT_WARN_HID_CON BIT(1)
  5. #define BT_WARN_TWS_MCON BIT(2)
  6. #define BT_WARN_TWS_SCON BIT(3)
  7. #define BT_WARN_DISCON BIT(4)
  8. #define BT_WARN_HID_DISCON BIT(5)
  9. #define BT_WARN_PAIRING BIT(6)
  10. #define BT_WARN_TWS_DISCON BIT(7)
  11. #define BT_WARN_TWS_CON BIT(8)
  12. #define INCALL_FLAG_SCO BIT(0)
  13. #define INCALL_FLAG_CALL BIT(1)
  14. #define INCALL_FLAG_FADE (INCALL_FLAG_SCO|INCALL_FLAG_CALL)
  15. ///对应USER_DEF键自定义的按键功能列表(与配置项对应)
  16. enum _user_def_key {
  17. UDK_NONE = 0, //0
  18. UDK_REDIALING, //1
  19. UDK_SIRI, //2
  20. UDK_PREV, //3
  21. UDK_NEXT, //4
  22. UDK_VOL_UP, //5
  23. UDK_VOL_DOWN, //6
  24. UDK_SIRI_REDIALING, //7
  25. UDK_PHOTO, //8
  26. UDK_HOME, //9
  27. UDK_LANG, //10
  28. UDK_ATMOS_LED, //11
  29. UDK_PLAY_PAUSE, //12
  30. UDK_NR, //13
  31. UDK_TOGGLE_POPUP, //14
  32. UDK_GAME_SWITCH, //15
  33. UDK_MODE, //16
  34. };
  35. enum {
  36. AEC_PARAM_MIC_ANL_GAIN,
  37. AEC_PARAM_MIC_DIG_GAIN,
  38. AEC_PARAM_MIC_POST_GAIN,
  39. AEC_PARAM_NOISE,
  40. AEC_PARAM_LEVEL,
  41. AEC_PARAM_OFFSET,
  42. AEC_PARAM_FULL_THD,
  43. AEC_PARAM_HALF_THD,
  44. AEC_PARAM_SMOOTH_GAIN,
  45. };
  46. ///请勿修改func_bt_t结构体
  47. typedef struct{
  48. u16 warning_status;
  49. u8 disp_status;
  50. u8 hid_menu_flag;
  51. u8 hid_discon_flag;
  52. u8 siri_kl_flag;
  53. u8 user_kl_flag;
  54. u8 tws_status;
  55. u8 need_pairing;
  56. u8 w4_tws_warning;
  57. u8 autoplay; //蓝牙连接后自动播放控制
  58. volatile u8 ring_stop;
  59. volatile u8 ring_sta;
  60. u8 bt_is_inited;
  61. u8 quick_test_flag; //蓝牙快速测试控制变量
  62. u8 popup_delay_dis; //关窗后需要延时关广播
  63. u32 tick;
  64. u32 tick_vbat;
  65. u8 loc_vbat;
  66. u8 rem_vbat;
  67. } func_bt_t;
  68. extern func_bt_t f_bt;
  69. typedef struct {
  70. u8 cur;
  71. s8 gain_offset;
  72. u8 avol_level;
  73. u8 ring_cnt;
  74. u8 inband_ring_sta;
  75. u8 ring_first;
  76. u16 w4_sco_tick;
  77. u32 ios_ring_tick;
  78. u32 ring_tick;
  79. } t_play_cb;
  80. typedef struct {
  81. u8 buf[25];
  82. u8 len;
  83. t_play_cb play;
  84. u8 sysclk_bak;
  85. u8 dac_sta;
  86. } f_bt_ring_cb;
  87. extern f_bt_ring_cb f_bt_ring;
  88. typedef struct
  89. {
  90. u8 esbc_flag;
  91. u8 sbc_flag;
  92. }f_bt_ring1_cb;
  93. extern f_bt_ring1_cb f_bt_ring1;
  94. extern int sfunc_bt_call_flag;
  95. void sfunc_bt_ring(void);
  96. void sfunc_bt_ring_message(u16 msg);
  97. void sfunc_bt_ring_message_m(u16 msg);
  98. void sfunc_bt_call(void);
  99. void sfunc_bt_call_message(u16 msg);
  100. void sfunc_bt_call_message_m(u16 msg);
  101. void bt_call_volume_change(u16 msg);
  102. void func_bt_status(void);
  103. void func_bt_message(u16 msg);
  104. void func_bt_message_m(u16 msg);
  105. u16 func_bt_chkclr_warning(u16 bits);
  106. void func_bt_display(void);
  107. void func_bt_enter_display(void);
  108. void func_bt_exit_display(void);
  109. void func_bt_mp3_res_play(u32 addr, u32 len);
  110. void sfunc_bt_ring_sync(void);
  111. void bt_msg_tws_ring_sync(void);
  112. void bt_ring_var_init(void);
  113. void bt_ring_stop(void);
  114. bool bt_ring_inband_is_active(void); //是否正在播放手机铃声
  115. void func_bt_dut(void);
  116. void func_bt_init(void);
  117. void func_bt_exit(void);
  118. void func_bt_chk_off(void);
  119. void func_bt_set_dac(u8 enable);
  120. u8 func_bt_tws_get_channel(void);
  121. void func_bt_sub_process(void);
  122. bool user_def_key_msg(u8 func_sel);
  123. void bt_exit_wait_ticks(u32 tick);
  124. void func_bt_tws_set_channel(void);
  125. void sco_set_incall_flag(u8 bit);
  126. bool sco_clr_incall_flag(u8 bit);
  127. void func_bt_fcc(void);
  128. void fcc_init_hook(void);
  129. void fcc_exit_hook(void);
  130. void bt_sco_magic_voice_switch(void);
  131. #endif // _FUNC_BT_H