static inline void tp_svc_protocol_interface_presence_base_init_once (gpointer klass G_GNUC_UNUSED) { static TpDBusPropertiesMixinPropInfo properties[2] = { { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "a{s(ubb)}", 0, NULL, NULL }, /* Statuses */ { 0, 0, NULL, 0, NULL, NULL } }; static TpDBusPropertiesMixinIfaceInfo interface = { 0, properties, NULL, NULL }; dbus_g_object_type_install_info (tp_svc_protocol_interface_presence_get_type (), &_tp_svc_protocol_interface_presence_object_info); interface.dbus_interface = g_quark_from_static_string ("org.freedesktop.Telepathy.Protocol.Interface.Presence"); properties[0].name = g_quark_from_static_string ("Statuses"); properties[0].type = (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_INVALID)))); tp_svc_interface_set_dbus_properties_info (TP_TYPE_SVC_PROTOCOL_INTERFACE_PRESENCE, &interface); }
GType modem_type_dbus_managed_array (void) { static gsize type = 0; /* a(oa{sv}) */ if (g_once_init_enter (&type)) { GType stype = dbus_g_type_get_struct ("GValueArray", DBUS_TYPE_G_OBJECT_PATH, MODEM_TYPE_DBUS_DICT, G_TYPE_INVALID); GType t = dbus_g_type_get_collection ("GPtrArray", stype); g_once_init_leave (&type, t); } return type; }
void mpris_player_init(MprisPlayer * object) { dbus_g_object_type_install_info(mpris_player_get_type(), &dbus_glib_mpris_player_object_info); // Register DBUS path dbus_g_connection_register_g_object(dbus_conn, AUDACIOUS_DBUS_PATH_MPRIS_PLAYER, G_OBJECT(object)); // Add signals DBusGProxy *proxy = object->proxy; if (proxy != NULL) { dbus_g_proxy_add_signal (proxy, "StatusChange", dbus_g_type_get_struct ("GValueArray", G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INVALID), G_TYPE_INVALID); dbus_g_proxy_add_signal (proxy, "CapsChange", G_TYPE_INT, G_TYPE_INVALID); dbus_g_proxy_add_signal(proxy, "TrackChange", DBUS_TYPE_G_STRING_VALUE_HASHTABLE, G_TYPE_INVALID); } else { /* XXX / FIXME: Why does this happen? -- ccr */ AUDDBG ("object->proxy == NULL; not adding some signals.\n"); } }
static inline void tp_svc_call_stream_interface_media_base_init_once (gpointer klass G_GNUC_UNUSED) { static TpDBusPropertiesMixinPropInfo properties[11] = { { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "u", 0, NULL, NULL }, /* SendingState */ { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "u", 0, NULL, NULL }, /* ReceivingState */ { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "u", 0, NULL, NULL }, /* Transport */ { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "a(usua{sv})", 0, NULL, NULL }, /* LocalCandidates */ { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "(ss)", 0, NULL, NULL }, /* LocalCredentials */ { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "a(sq)", 0, NULL, NULL }, /* STUNServers */ { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "aa{sv}", 0, NULL, NULL }, /* RelayInfo */ { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "b", 0, NULL, NULL }, /* HasServerInfo */ { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "ao", 0, NULL, NULL }, /* Endpoints */ { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "b", 0, NULL, NULL }, /* ICERestartPending */ { 0, 0, NULL, 0, NULL, NULL } }; static TpDBusPropertiesMixinIfaceInfo interface = { 0, properties, NULL, NULL }; dbus_g_object_type_install_info (tp_svc_call_stream_interface_media_get_type (), &_tp_svc_call_stream_interface_media_object_info); interface.dbus_interface = g_quark_from_static_string ("org.freedesktop.Telepathy.Call1.Stream.Interface.Media"); properties[0].name = g_quark_from_static_string ("SendingState"); properties[0].type = G_TYPE_UINT; properties[1].name = g_quark_from_static_string ("ReceivingState"); properties[1].type = G_TYPE_UINT; properties[2].name = g_quark_from_static_string ("Transport"); properties[2].type = G_TYPE_UINT; properties[3].name = g_quark_from_static_string ("LocalCandidates"); properties[3].type = (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)), G_TYPE_INVALID)))); properties[4].name = g_quark_from_static_string ("LocalCredentials"); properties[4].type = (dbus_g_type_get_struct ("GValueArray", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID)); properties[5].name = g_quark_from_static_string ("STUNServers"); properties[5].type = (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID)))); properties[6].name = g_quark_from_static_string ("RelayInfo"); properties[6].type = (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)))); properties[7].name = g_quark_from_static_string ("HasServerInfo"); properties[7].type = G_TYPE_BOOLEAN; properties[8].name = g_quark_from_static_string ("Endpoints"); properties[8].type = dbus_g_type_get_collection ("GPtrArray", DBUS_TYPE_G_OBJECT_PATH); properties[9].name = g_quark_from_static_string ("ICERestartPending"); properties[9].type = G_TYPE_BOOLEAN; tp_svc_interface_set_dbus_properties_info (TP_TYPE_SVC_CALL_STREAM_INTERFACE_MEDIA, &interface); call_stream_interface_media_signals[SIGNAL_CALL_STREAM_INTERFACE_MEDIA_SendingStateChanged] = g_signal_new ("sending-state-changed", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_UINT); call_stream_interface_media_signals[SIGNAL_CALL_STREAM_INTERFACE_MEDIA_ReceivingStateChanged] = g_signal_new ("receiving-state-changed", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_UINT); call_stream_interface_media_signals[SIGNAL_CALL_STREAM_INTERFACE_MEDIA_LocalCandidatesAdded] = g_signal_new ("local-candidates-added", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 1, (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)), G_TYPE_INVALID))))); call_stream_interface_media_signals[SIGNAL_CALL_STREAM_INTERFACE_MEDIA_LocalCredentialsChanged] = g_signal_new ("local-credentials-changed", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); call_stream_interface_media_signals[SIGNAL_CALL_STREAM_INTERFACE_MEDIA_RelayInfoChanged] = g_signal_new ("relay-info-changed", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 1, (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE))))); call_stream_interface_media_signals[SIGNAL_CALL_STREAM_INTERFACE_MEDIA_STUNServersChanged] = g_signal_new ("s-tu-nservers-changed", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 1, (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID))))); call_stream_interface_media_signals[SIGNAL_CALL_STREAM_INTERFACE_MEDIA_ServerInfoRetrieved] = g_signal_new ("server-info-retrieved", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 0); call_stream_interface_media_signals[SIGNAL_CALL_STREAM_INTERFACE_MEDIA_EndpointsChanged] = g_signal_new ("endpoints-changed", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2, dbus_g_type_get_collection ("GPtrArray", DBUS_TYPE_G_OBJECT_PATH), dbus_g_type_get_collection ("GPtrArray", DBUS_TYPE_G_OBJECT_PATH)); call_stream_interface_media_signals[SIGNAL_CALL_STREAM_INTERFACE_MEDIA_ICERestartRequested] = g_signal_new ("i-ce-restart-requested", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 0); }
static inline void tp_svc_media_stream_handler_base_init_once (gpointer klass G_GNUC_UNUSED) { static TpDBusPropertiesMixinPropInfo properties[5] = { { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "a(sq)", 0, NULL, NULL }, /* STUNServers */ { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "b", 0, NULL, NULL }, /* CreatedLocally */ { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "s", 0, NULL, NULL }, /* NATTraversal */ { 0, TP_DBUS_PROPERTIES_MIXIN_FLAG_READ, "aa{sv}", 0, NULL, NULL }, /* RelayInfo */ { 0, 0, NULL, 0, NULL, NULL } }; static TpDBusPropertiesMixinIfaceInfo interface = { 0, properties, NULL, NULL }; dbus_g_object_type_install_info (tp_svc_media_stream_handler_get_type (), &_tp_svc_media_stream_handler_object_info); interface.dbus_interface = g_quark_from_static_string ("org.freedesktop.Telepathy.Media.StreamHandler"); properties[0].name = g_quark_from_static_string ("STUNServers"); properties[0].type = (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INVALID)))); properties[1].name = g_quark_from_static_string ("CreatedLocally"); properties[1].type = G_TYPE_BOOLEAN; properties[2].name = g_quark_from_static_string ("NATTraversal"); properties[2].type = G_TYPE_STRING; properties[3].name = g_quark_from_static_string ("RelayInfo"); properties[3].type = (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_map ("GHashTable", G_TYPE_STRING, G_TYPE_VALUE)))); tp_svc_interface_set_dbus_properties_info (TP_TYPE_SVC_MEDIA_STREAM_HANDLER, &interface); /** * TpSvcMediaStreamHandler::add-remote-candidate: * @arg_Candidate_ID: const gchar * (FIXME, generate documentation) * @arg_Transports: const GPtrArray * (FIXME, generate documentation) * * The AddRemoteCandidate D-Bus signal is emitted whenever this GObject signal is. */ media_stream_handler_signals[SIGNAL_MEDIA_STREAM_HANDLER_AddRemoteCandidate] = g_signal_new ("add-remote-candidate", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, _tp_marshal_VOID__STRING_BOXED, G_TYPE_NONE, 2, G_TYPE_STRING, (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_DOUBLE, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID))))); /** * TpSvcMediaStreamHandler::close: * * The Close D-Bus signal is emitted whenever this GObject signal is. */ media_stream_handler_signals[SIGNAL_MEDIA_STREAM_HANDLER_Close] = g_signal_new ("close", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /** * TpSvcMediaStreamHandler::remove-remote-candidate: * @arg_Candidate_ID: const gchar * (FIXME, generate documentation) * * The RemoveRemoteCandidate D-Bus signal is emitted whenever this GObject signal is. */ media_stream_handler_signals[SIGNAL_MEDIA_STREAM_HANDLER_RemoveRemoteCandidate] = g_signal_new ("remove-remote-candidate", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); /** * TpSvcMediaStreamHandler::set-active-candidate-pair: * @arg_Native_Candidate_ID: const gchar * (FIXME, generate documentation) * @arg_Remote_Candidate_ID: const gchar * (FIXME, generate documentation) * * The SetActiveCandidatePair D-Bus signal is emitted whenever this GObject signal is. */ media_stream_handler_signals[SIGNAL_MEDIA_STREAM_HANDLER_SetActiveCandidatePair] = g_signal_new ("set-active-candidate-pair", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, _tp_marshal_VOID__STRING_STRING, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING); /** * TpSvcMediaStreamHandler::set-remote-candidate-list: * @arg_Remote_Candidates: const GPtrArray * (FIXME, generate documentation) * * The SetRemoteCandidateList D-Bus signal is emitted whenever this GObject signal is. */ media_stream_handler_signals[SIGNAL_MEDIA_STREAM_HANDLER_SetRemoteCandidateList] = g_signal_new ("set-remote-candidate-list", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_VOID__BOXED, G_TYPE_NONE, 1, (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_STRING, (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_DOUBLE, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID)))), G_TYPE_INVALID))))); /** * TpSvcMediaStreamHandler::set-remote-codecs: * @arg_Codecs: const GPtrArray * (FIXME, generate documentation) * * The SetRemoteCodecs D-Bus signal is emitted whenever this GObject signal is. */ media_stream_handler_signals[SIGNAL_MEDIA_STREAM_HANDLER_SetRemoteCodecs] = g_signal_new ("set-remote-codecs", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_VOID__BOXED, G_TYPE_NONE, 1, (dbus_g_type_get_collection ("GPtrArray", (dbus_g_type_get_struct ("GValueArray", G_TYPE_UINT, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT, DBUS_TYPE_G_STRING_STRING_HASHTABLE, G_TYPE_INVALID))))); /** * TpSvcMediaStreamHandler::set-stream-playing: * @arg_Playing: gboolean (FIXME, generate documentation) * * The SetStreamPlaying D-Bus signal is emitted whenever this GObject signal is. */ media_stream_handler_signals[SIGNAL_MEDIA_STREAM_HANDLER_SetStreamPlaying] = g_signal_new ("set-stream-playing", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); /** * TpSvcMediaStreamHandler::set-stream-sending: * @arg_Sending: gboolean (FIXME, generate documentation) * * The SetStreamSending D-Bus signal is emitted whenever this GObject signal is. */ media_stream_handler_signals[SIGNAL_MEDIA_STREAM_HANDLER_SetStreamSending] = g_signal_new ("set-stream-sending", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); /** * TpSvcMediaStreamHandler::start-telephony-event: * @arg_Event: guchar (FIXME, generate documentation) * * The StartTelephonyEvent D-Bus signal is emitted whenever this GObject signal is. */ media_stream_handler_signals[SIGNAL_MEDIA_STREAM_HANDLER_StartTelephonyEvent] = g_signal_new ("start-telephony-event", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_VOID__UCHAR, G_TYPE_NONE, 1, G_TYPE_UCHAR); /** * TpSvcMediaStreamHandler::stop-telephony-event: * * The StopTelephonyEvent D-Bus signal is emitted whenever this GObject signal is. */ media_stream_handler_signals[SIGNAL_MEDIA_STREAM_HANDLER_StopTelephonyEvent] = g_signal_new ("stop-telephony-event", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /** * TpSvcMediaStreamHandler::set-stream-held: * @arg_Held: gboolean (FIXME, generate documentation) * * The SetStreamHeld D-Bus signal is emitted whenever this GObject signal is. */ media_stream_handler_signals[SIGNAL_MEDIA_STREAM_HANDLER_SetStreamHeld] = g_signal_new ("set-stream-held", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST|G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); }
/** * * Method GetData on /org/freedesktop/DeviceKit/Power/Wakeups * * <method name="GetData"> * <arg name="data" type="a(budss)" direction="out"/> (1) * </method> * (1): array | boolean Wheter the proceess on userspace * | uint PID * | double Wakeups value * | string command line * | string details **/ static void xfpm_info_update_wakeups (XfpmInfo *info) { GtkListStore *store; GError *error = NULL; static GType collection_type = G_TYPE_INVALID; static GType struct_type = G_TYPE_INVALID; GPtrArray *array = NULL; gboolean ret; guint i; if ( G_UNLIKELY (collection_type == G_TYPE_INVALID ) ) { struct_type = dbus_g_type_get_struct ("GValueArray", G_TYPE_BOOLEAN, G_TYPE_UINT, G_TYPE_DOUBLE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); collection_type = dbus_g_type_get_collection ("GPtrArray", struct_type); } ret = dbus_g_proxy_call (info->wakeups_proxy, "GetData", &error, G_TYPE_INVALID, collection_type, &array, NULL); if ( !ret ) { g_warning ("GetData Failed on %s : %s", UPOWER_PATH_WAKEUPS, error->message); g_error_free (error); return; } store = GTK_LIST_STORE (gtk_tree_view_get_model (GTK_TREE_VIEW (info->wakeups))); gtk_list_store_clear (GTK_LIST_STORE (store)); for ( i = 0; i < array->len; i++ ) { GValue elem = { 0 }; GtkTreeIter iter; gboolean userspace; guint pid; gdouble value; gchar *cmd; gchar *formatted_cmd; gchar *details; gchar *formatted_details; gchar *pid_str; gchar *value_str; const gchar *icon; g_value_init (&elem, struct_type); g_value_set_static_boxed (&elem, g_ptr_array_index (array, i)); dbus_g_type_struct_get (&elem, 0, &userspace, 1, &pid, 2, &value, 3, &cmd, 4, &details, G_MAXUINT); if ( userspace ) { pid_str = g_strdup_printf ("%i", pid); } else { if ( pid < 0xff0 ) { pid_str = g_strdup_printf ("IRQ%i", pid); } else { pid_str = g_strdup("IRQx"); } } value_str = g_strdup_printf ("%.1f", value); icon = userspace ? "application-x-executable" : "applications-system"; formatted_cmd = gpm_stats_format_cmdline (cmd, userspace); formatted_details = gpm_stats_format_details (details); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, COL_WAKEUPS_TYPE, icon, COL_WAKEUPS_PID, pid_str, COL_WAKEUPS_VALUE, value_str, COL_WAKEUPS_CMD, formatted_cmd, COL_WAKEUPS_DETAILS, formatted_details, -1); g_free (cmd); g_free (details); g_free (formatted_cmd); g_free (formatted_details); g_value_unset (&elem); } g_ptr_array_free (array, TRUE); }
/** * up_wakeups_get_data_sync: * @wakeups: a #UpWakeups instance. * @cancellable: a #GCancellable or %NULL * @error: a #GError, or %NULL. * * Gets the wakeups data from the daemon. * * Return value: an array of %UpWakeupItem's * * Since: 0.9.1 **/ GPtrArray * up_wakeups_get_data_sync (UpWakeups *wakeups, GCancellable *cancellable, GError **error) { GError *error_local = NULL; GType g_type_gvalue_array; GPtrArray *gvalue_ptr_array = NULL; GValueArray *gva; GValue *gv; guint i; UpWakeupItem *item; GPtrArray *array = NULL; gboolean ret; g_return_val_if_fail (UP_IS_WAKEUPS (wakeups), NULL); g_return_val_if_fail (wakeups->priv->proxy != NULL, NULL); g_type_gvalue_array = dbus_g_type_get_collection ("GPtrArray", dbus_g_type_get_struct("GValueArray", G_TYPE_BOOLEAN, G_TYPE_UINT, G_TYPE_DOUBLE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID)); /* get compound data */ ret = dbus_g_proxy_call (wakeups->priv->proxy, "GetData", &error_local, G_TYPE_INVALID, g_type_gvalue_array, &gvalue_ptr_array, G_TYPE_INVALID); if (!ret) { g_warning ("GetData on failed: %s", error_local->message); g_set_error (error, 1, 0, "%s", error_local->message); g_error_free (error_local); goto out; } /* no data */ if (gvalue_ptr_array->len == 0) goto out; /* convert */ array = g_ptr_array_new_with_free_func ((GDestroyNotify) g_object_unref); for (i=0; i<gvalue_ptr_array->len; i++) { gva = (GValueArray *) g_ptr_array_index (gvalue_ptr_array, i); item = up_wakeup_item_new (); /* 0 */ gv = g_value_array_get_nth (gva, 0); up_wakeup_item_set_is_userspace (item, g_value_get_boolean (gv)); g_value_unset (gv); /* 1 */ gv = g_value_array_get_nth (gva, 1); up_wakeup_item_set_id (item, g_value_get_uint (gv)); g_value_unset (gv); /* 2 */ gv = g_value_array_get_nth (gva, 2); up_wakeup_item_set_value (item, g_value_get_double (gv)); g_value_unset (gv); /* 3 */ gv = g_value_array_get_nth (gva, 3); up_wakeup_item_set_cmdline (item, g_value_get_string (gv)); g_value_unset (gv); /* 4 */ gv = g_value_array_get_nth (gva, 4); up_wakeup_item_set_details (item, g_value_get_string (gv)); g_value_unset (gv); /* add */ g_ptr_array_add (array, item); g_value_array_free (gva); } out: if (gvalue_ptr_array != NULL) g_ptr_array_unref (gvalue_ptr_array); return array; }