void my_handle_message(struct cfw_message * msg, void * param) { pr_info(LOG_MODULE_MAIN, "%s:%s for param: %s conn:%p", __FILE__, __func__, (char*)param, msg->conn); cfw_dump_message(msg); switch (CFW_MESSAGE_ID(msg)) { case MSG_ID_CFW_OPEN_SERVICE_RSP: { pr_info(LOG_MODULE_MAIN, "%s:%s for conn: %s", __FILE__, __func__, (char*)msg->priv); cfw_open_conn_rsp_msg_t * cnf = (cfw_open_conn_rsp_msg_t*)msg; int events[1] = {MSG_ID_TEST_1_EVT}; test_service_conn = cnf->service_conn; cfw_register_events(test_service_conn, events, 1, msg->priv); } break; case MSG_ID_CFW_REGISTER_EVT_RSP: if (!strcmp(msg->priv, "Conn2")) { test_service_test_1(test_service_conn, "Coucou"); } break; case MSG_ID_TEST_1_RSP: { pr_info(LOG_MODULE_MAIN, "got MSG_ID_TEST_1_RSP Priv: %s", (char*)msg->priv); test_service_test_2(test_service_conn, "Testing 2"); break; } case MSG_ID_TEST_2_RSP: { pr_info(LOG_MODULE_MAIN, "got MSG_ID_TEST_2_RSP Priv: %s", (char*)msg->priv); test_service_test_1(test_service_conn, "Testing 1"); break; } } cfw_msg_free(msg); }
void default_msg_handler(struct cfw_message *msg, void *data) { pr_error(LOG_MODULE_CFW, "Bug: %s should not be called data: %p", __func__, data); cfw_dump_message(msg); }
static void srv_client_handle_msg(struct cfw_message * msg, void * data) { cfw_dump_message(msg); switch (CFW_MESSAGE_ID(msg)) { case MSG_ID_CFW_OPEN_SERVICE_RSP: { cfw_open_conn_rsp_msg_t *resp = (cfw_open_conn_rsp_msg_t *)msg; printf("server_main:%s(): MSG_ID_CFW_OPEN_SERVICE_RSP::port_id: %d, cpu_id: %d, " "service_conn: 0x%p, priv 0x%p\n", __func__, resp->port, resp->cpu_id, resp->service_conn, msg->priv); break; } case MSG_ID_CFW_REGISTER_SVC_AVAIL_EVT_RSP: printf("server_main::%s(): MSG_ID_CFW_REGISTER_SVC_AVAIL_EVT_RSP, priv:" " 0x%p\n", __func__, msg->priv); break; case MSG_ID_CFW_SVC_AVAIL_EVT: { cfw_svc_available_evt_msg_t * evt = (cfw_svc_available_evt_msg_t *)msg; if ((evt->service_id == BLE_CORE_SERVICE_ID) || (0 != cfw_service_registered( BLE_CORE_SERVICE_ID))) { _server_cb.ble_svc_started = 1; printf("\n%s(): BLE_CORE_SERVICE_ID registered!\n", __func__); #ifdef CONFIG_BLE_CORE_TEST extern void test_ble_service_init(void); test_ble_service_init(); #endif } break; } default: pr_info(LOG_MODULE_MAIN, "server_main::%s(): Unhandled Msg: 0x%x", __func__, CFW_MESSAGE_ID(msg)); break; } cfw_msg_free(msg); }
/**@brief Function to handle messages from framework. * * @details In this function are handled messages of * communications with the Audio service. * @param[in] msg Message from framework. * @param[in] param Additional data. NULL if not used. * @return none. */ void ui_audio_svc_handle_message(message_t * msg, void *param) { int client_events[4]; cfw_open_conn_rsp_msg_t *cnf = NULL; audio_stream_mgr_evt_msg *evt = NULL; pr_debug(LOG_MODULE_UI_SVC, "Audio: received msg: %d src: %d dst: %d", msg->id, msg->src, msg->dst); /* Dump message content. */ cfw_dump_message(msg); ui_port = msg->dst; switch (msg->id) { case MSG_ID_CFW_OPEN_SERVICE_RSP:{ cnf = (cfw_open_conn_rsp_msg_t *) msg; if (cnf == NULL) force_panic(); audio_client_cfw_hdl = cnf->service_conn; if (audio_client_cfw_hdl == NULL) force_panic(); client_events[0] = MSG_ID_AS_LPAL_EVT; client_events[1] = MSG_ID_AS_ASR_EVT; client_events[2] = MSG_ID_AS_STREAM_STOPPED_EVT; client_events[3] = MSG_ID_AS_STREAM_TERMINATED_EVT; /* Events registration. */ cfw_register_events(audio_client_cfw_hdl, client_events, 4, msg->priv); pr_info(LOG_MODULE_UI_SVC, "Audio: Audio service id %lu opened", UI_SVC_ID); } break; case MSG_ID_CFW_CLOSE_SERVICEi_RSP: pr_info(LOG_MODULE_UI_SVC, "Audio: Audio service has been closed"); break; case MSG_ID_CFW_REGISTER_EVT_RSP: pr_debug(LOG_MODULE_UI_SVC, "Audio: Events registered for Audio service"); break; case MSG_ID_AS_LPAL_EVT: ui_broadcast_svc_lpal_event(msg); break; case MSG_ID_AS_ASR_EVT: ui_broadcast_svc_asr_event(msg); break; case MSG_ID_AS_STREAM_STOPPED_EVT: /* Need to filter MSG_ID_AS_STREAM_XX messages, as the UI SVC is */ /* not the only one listening to them. */ /* If not tone or speech sequence initialized, msg is ignored. */ evt = (audio_stream_mgr_evt_msg *)msg; if ((evt->sHandle == tone_stream) || (evt->sHandle == sps_stream)) { pr_debug(LOG_MODULE_UI_SVC, "Audio: stream 0x%08x stopped, reason %d", evt->sHandle, evt->sHandle->reason); if (evt->sHandle->reason == AUDIO_STREAM_STATE_INIT_SUCCESS) { if (tone_stream) ui_tone_play_start(); else if (sps_stream) ui_sps_play_start(); } } break; case MSG_ID_AS_STREAM_TERMINATED_EVT: ui_handle_as_stream_end(msg); break; default: break; } cfw_msg_free(msg); }