func_bt_hid.c 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. #include "include.h"
  2. #include "func.h"
  3. #include "func_bt_hid.h"
  4. AT(.text.bthid)
  5. bool is_bthid_mode(void)
  6. {
  7. #if BT_HID_EN
  8. if ((sys_cb.bthid_mode) && (xcfg_cb.func_bthid_en)) {
  9. return true;
  10. }
  11. #endif
  12. return false;
  13. }
  14. #if FUNC_BTHID_EN
  15. void func_bt_hid_warning(void)
  16. {
  17. if(func_bt_chkclr_warning(BT_WARN_DISCON)) {
  18. #if WARNING_BT_DISCONNECT
  19. #if (FUNC_BTHID_EN && WARNING_BTHID_CONN)
  20. mp3_res_play(RES_BUF_DISCON_HID_MP3, RES_LEN_DISCON_HID_MP3);
  21. #else
  22. mp3_res_play(RES_BUF_DISCONNECT_MP3, RES_LEN_DISCONNECT_MP3);
  23. #endif // FUNC_BTHID_EN
  24. #endif // WARNING_BT_DISCONNECT
  25. #if WARNING_BT_WAIT_CONNECT
  26. #if !(FUNC_BTHID_EN && WARNING_BTHID_CONN)
  27. mp3_res_play(RES_BUF_WAIT4CONN_MP3, RES_LEN_WAIT4CONN_MP3);
  28. #endif // FUNC_BTHID_EN
  29. #endif // WARNING_BT_WAIT_CONNECT
  30. }
  31. if(func_bt_chkclr_warning(BT_WARN_CON)) {
  32. #if WARNING_BT_CONNECT
  33. #if (FUNC_BTHID_EN && WARNING_BTHID_CONN)
  34. mp3_res_play(RES_BUF_CONN_HID_MP3, RES_LEN_CONN_HID_MP3);
  35. #else
  36. mp3_res_play(RES_BUF_CONNECTED_MP3, RES_LEN_CONNECTED_MP3);
  37. #endif // FUNC_BTHID_EN
  38. #endif
  39. }
  40. }
  41. AT(.text.func.bt)
  42. static void func_bthid_process(void)
  43. {
  44. func_process();
  45. func_bt_status();
  46. if(sleep_process(bt_is_sleep)) {
  47. f_bt.disp_status = 0xff;
  48. }
  49. }
  50. AT(.text.func.bt)
  51. static void func_bthid_enter(void)
  52. {
  53. sys_cb.bthid_mode = 1;
  54. dis_auto_pwroff();
  55. func_cb.mp3_res_play = mp3_res_play;
  56. led_bt_init();
  57. func_bt_enter_display();
  58. #if BT_BACKSTAGE_EN
  59. if (f_bt.disp_status >= BT_STA_CONNECTED) {
  60. bt_disconnect(1);
  61. bt_off();
  62. }
  63. #endif
  64. #if WARNING_FUNC_BT
  65. mp3_res_play(RES_BUF_CAMERA_MODE_MP3, RES_LEN_CAMERA_MODE_MP3);
  66. #endif // WARNING_FUNC_BT
  67. #if !BT_BACKSTAGE_EN
  68. bsp_bt_init();
  69. #endif
  70. f_bt.disp_status = 0xff;
  71. #if BT_PWRKEY_5S_DISCOVER_EN
  72. if(bsp_bt_pwrkey5s_check()) {
  73. func_bt_disp_status();
  74. func_bt_mp3_res_play(RES_BUF_PAIRING_MP3, RES_LEN_PAIRING_MP3);
  75. } else {
  76. func_bt_disp_status();
  77. #if WARNING_BT_PAIR
  78. if (xcfg_cb.warning_bt_pair) {
  79. func_bt_mp3_res_play(RES_BUF_PAIRING_MP3, RES_LEN_PAIRING_MP3);
  80. }
  81. #endif // WARNING_BT_PAIR
  82. }
  83. #endif
  84. }
  85. AT(.text.func.bt)
  86. static void func_bthid_exit(void)
  87. {
  88. dac_fade_out();
  89. func_bt_exit_display();
  90. bt_disconnect(1);
  91. bt_off();
  92. func_cb.last = FUNC_BTHID;
  93. sys_cb.bthid_mode = 0;
  94. #if BT_BACKSTAGE_EN
  95. bsp_bt_init();
  96. #endif
  97. }
  98. AT(.text.func.bt)
  99. void func_bthid(void)
  100. {
  101. if (!xcfg_cb.func_bthid_en) {
  102. func_cb.sta = FUNC_NULL;
  103. func_cb.last = FUNC_BTHID;
  104. return;
  105. }
  106. printf("%s\n", __func__);
  107. func_bthid_enter();
  108. while (func_cb.sta == FUNC_BTHID) {
  109. func_bthid_process();
  110. func_bthid_message(msg_dequeue());
  111. func_bt_display();
  112. }
  113. func_bthid_exit();
  114. }
  115. #endif //FUNC_BTHID_EN