/**@brief Sending an event * @param[in] id Message identifier * @param[in] battery_service_evt_content_rsp_msg Content of battery event */ static void bs_send_evt_msg( uint16_t id, battery_service_evt_content_rsp_msg_t * battery_service_evt_content_rsp_msg) { battery_service_listen_evt_rsp_msg_t *evt = NULL; evt = (battery_service_listen_evt_rsp_msg_t *)cfw_alloc_evt_msg( &battery_service, id, sizeof( battery_service_listen_evt_rsp_msg_t)); if ((NULL != evt) && (NULL != battery_service_evt_content_rsp_msg)) { memcpy(&evt->battery_service_evt_content_rsp_msg, battery_service_evt_content_rsp_msg, sizeof(battery_service_evt_content_rsp_msg_t)); } cfw_send_event(&evt->header); bfree(evt); /* message has been cloned by cfw_send_event */ }
/**@brief Function to broadcast to other clients ASR events coming * from the Audio service. * * @details Broadcast message is built and passed to the framework which * in turn sends it to all clients consumers of the event. * @param[in] msg Event message. * @return none */ void ui_broadcast_svc_asr_event(message_t * msg) { message_t *broadcast_msg; broadcast_msg = cfw_alloc_evt_msg(ui_svc, MSG_ID_UI_ASR_EVT, sizeof(ui_asr_evt_t)); if (broadcast_msg == NULL) force_panic(); ((ui_asr_evt_t *) broadcast_msg)->ui_asr_event_id = ((ui_asr_evt_t *) msg)->ui_asr_event_id; pr_debug(LOG_MODULE_UI_SVC, "Audio: broadcast ASR EVT:0x%x from src:%d", ((ui_asr_evt_t *) msg)->ui_asr_event_id, msg->src); cfw_send_event(broadcast_msg); /* Message cloned by the framework. Can be deleted now. */ cfw_msg_free(broadcast_msg); }