Ejemplo n.º 1
0
/**@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 */
}
Ejemplo n.º 2
0
/**@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);
}