コード例 #1
0
ファイル: plugin.c プロジェクト: kjokinie/ngfd
static DBusHandlerResult
mce_signal_filter (DBusConnection *connection, DBusMessage *msg, void *user_data)
{
    (void) connection;
    (void) user_data;

    if (dbus_message_is_signal(msg, MCE_SIGNAL_IF, MCE_LED_PATTERN_DEACTIVATED_SIG)) {
        DBusError error;
        dbus_error_init(&error);

        gchar *pattern = NULL;

        if (!dbus_message_get_args(msg, &error, DBUS_TYPE_STRING, &pattern, DBUS_TYPE_INVALID)) {
            N_WARNING ("%s >> failed to read MCE signal arguments, cause: %s", __FUNCTION__, error.message);
            dbus_error_free(&error);
        } else {
            GList *event;
            N_DEBUG ("%s >> mce finished playing %s", __FUNCTION__, pattern);
            for (event = active_events; event != NULL; event = g_list_next(event)) {
                MceData *data = (MceData *) event->data;
                if (g_strcmp0(pattern, data->pattern) == 0) {
                    n_sink_interface_complete(data->iface, data->request);
                    N_DEBUG ("%s >> led pattern %s complete", __FUNCTION__, data->pattern);
                    active_events = g_list_remove_all(active_events, data);
                    break;
                }
            }
        }
    }

    return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
コード例 #2
0
ファイル: plugin.c プロジェクト: jusa/ngfd
static gboolean
canberra_complete_cb (gpointer userdata) {
    CanberraData *data = (CanberraData*) userdata;

    data->complete_cb_id = 0;
    n_sink_interface_complete (data->iface, data->request);

    return FALSE;
}