1919
2020#define BT_APP_CORE_TAG "bt_app_core"
2121
22- static void bt_app_task (void * pvParameter );
23- static bool bt_app_send_msg (bt_app_msg_t * msg );
24- static void bt_app_work_dispatched (bt_app_msg_t * msg );
25-
2622static xQueueHandle s_bt_app_task_queue = NULL ;
2723
28- bool bt_app_work_dispatch ( bt_app_cb_t p_cback , uint16_t event , void * p_params , int param_len , bt_app_copy_cb_t p_copy_cback )
24+ static void bt_app_work_dispatched ( bt_app_msg_t * msg )
2925{
30- bt_app_msg_t msg ;
26+ if (msg -> cb ) {
27+ msg -> cb (msg -> event , msg -> param );
28+ }
29+ }
3130
32- memset (& msg , 0 , sizeof (bt_app_msg_t ));
31+ static void bt_app_task (void * pvParameter )
32+ {
33+ bt_app_msg_t msg ;
3334
34- msg .sig = BT_APP_SIG_WORK_DISPATCH ;
35- msg .event = event ;
36- msg .cb = p_cback ;
35+ while (1 ) {
36+ if (pdTRUE == xQueueReceive (s_bt_app_task_queue , & msg , portMAX_DELAY )) {
37+ ESP_LOGD (BT_APP_CORE_TAG , "%s, sig 0x%x, 0x%x" , __func__ , msg .sig , msg .event );
38+ switch (msg .sig ) {
39+ case BT_APP_SIG_WORK_DISPATCH :
40+ bt_app_work_dispatched (& msg );
41+ break ;
42+ default :
43+ ESP_LOGW (BT_APP_CORE_TAG , "%s, unhandled sig: %d" , __func__ , msg .sig );
44+ break ;
45+ }
3746
38- if (param_len == 0 ) {
39- return bt_app_send_msg (& msg );
40- } else if (p_params && param_len > 0 ) {
41- if ((msg .param = malloc (param_len )) != NULL ) {
42- memcpy (msg .param , p_params , param_len );
43- /* check if caller has provided a copy callback to do the deep copy */
44- if (p_copy_cback ) {
45- p_copy_cback (& msg , msg .param , p_params );
47+ if (msg .param ) {
48+ free (msg .param );
4649 }
47- return bt_app_send_msg (& msg );
4850 }
4951 }
50-
51- return false;
5252}
5353
5454static bool bt_app_send_msg (bt_app_msg_t * msg )
@@ -65,34 +65,28 @@ static bool bt_app_send_msg(bt_app_msg_t *msg)
6565 return true;
6666}
6767
68- static void bt_app_work_dispatched (bt_app_msg_t * msg )
69- {
70- if (msg -> cb ) {
71- msg -> cb (msg -> event , msg -> param );
72- }
73- }
74-
75- static void bt_app_task (void * pvParameter )
68+ bool bt_app_work_dispatch (bt_app_cb_t p_cback , uint16_t event , void * p_params , int param_len , bt_app_copy_cb_t p_copy_cback )
7669{
77- bt_app_msg_t msg ;
70+ bt_app_msg_t msg = { 0 } ;
7871
79- while (1 ) {
80- if (pdTRUE == xQueueReceive (s_bt_app_task_queue , & msg , portMAX_DELAY )) {
81- ESP_LOGD (BT_APP_CORE_TAG , "%s, sig 0x%x, 0x%x" , __func__ , msg .sig , msg .event );
82- switch (msg .sig ) {
83- case BT_APP_SIG_WORK_DISPATCH :
84- bt_app_work_dispatched (& msg );
85- break ;
86- default :
87- ESP_LOGW (BT_APP_CORE_TAG , "%s, unhandled sig: %d" , __func__ , msg .sig );
88- break ;
89- }
72+ msg .sig = BT_APP_SIG_WORK_DISPATCH ;
73+ msg .event = event ;
74+ msg .cb = p_cback ;
9075
91- if (msg .param ) {
92- free (msg .param );
76+ if (param_len == 0 ) {
77+ return bt_app_send_msg (& msg );
78+ } else if (p_params && param_len > 0 ) {
79+ if ((msg .param = malloc (param_len )) != NULL ) {
80+ memcpy (msg .param , p_params , param_len );
81+ /* check if caller has provided a copy callback to do the deep copy */
82+ if (p_copy_cback ) {
83+ p_copy_cback (& msg , msg .param , p_params );
9384 }
85+ return bt_app_send_msg (& msg );
9486 }
9587 }
88+
89+ return false;
9690}
9791
9892void bt_app_task_start_up (void )
0 commit comments