DSME_HANDLER(DSM_MSGTYPE_STATE_CHANGE_IND, server, msg) { if (state_replies) { // there are yet unsent replies to state queries; sent the first one GSList* first_node = state_replies; DsmeDbusMessage* first_reply = (DsmeDbusMessage*)(first_node->data); dsme_dbus_message_append_string(first_reply, state_name(msg->state)); dsme_dbus_signal_emit(first_reply); // deletes the reply first_node->data = 0; state_replies = g_slist_delete_link(state_replies, first_node); } else { // this is a broadcast state change if (msg->state == DSME_STATE_SHUTDOWN || msg->state == DSME_STATE_ACTDEAD || msg->state == DSME_STATE_REBOOT) { emit_dsme_dbus_signal(dsme_shutdown_ind); } DsmeDbusMessage* sig = dsme_dbus_signal_new(sig_path, sig_interface, dsme_state_change_ind); dsme_dbus_message_append_string(sig, state_name(msg->state)); dsme_dbus_signal_emit(sig); } }
DSME_HANDLER(DSM_MSGTYPE_SAVE_DATA_IND, server, msg) { emit_dsme_dbus_signal(dsme_save_unsaved_data_ind); }
DSME_HANDLER(DSM_MSGTYPE_BATTERY_EMPTY_IND, server, msg) { emit_dsme_dbus_signal(dsme_battery_empty_ind); }