[Galago-commits] r2923 - in branches/libgalago/push-presence: .
libgalago
galago-commits at freedesktop.org
galago-commits at freedesktop.org
Sun Oct 8 12:17:40 PDT 2006
Author: chipx86
Date: 2006-10-08 12:17:33 -0700 (Sun, 08 Oct 2006)
New Revision: 2923
Modified:
branches/libgalago/push-presence/ChangeLog
branches/libgalago/push-presence/libgalago/galago-presence.c
Log:
Add some basic code for get_enabled_statuses and get_status_enabled.
Modified: branches/libgalago/push-presence/ChangeLog
===================================================================
--- branches/libgalago/push-presence/ChangeLog 2006-10-08 18:21:33 UTC (rev 2922)
+++ branches/libgalago/push-presence/ChangeLog 2006-10-08 19:17:33 UTC (rev 2923)
@@ -1,3 +1,8 @@
+Sun Oct 08 15:15:27 EDT 2006 Christian Hammond <chipx86 at chipx86.com>
+
+ * libgalago/galago-presence.c:
+ - Add some basic code for get_enabled_statuses and get_status_enabled.
+
Mon Jul 03 02:07:00 PDT 2006 Christian Hammond <chipx86 at chipx86.com>
* libgalago/galago-presence.c:
Modified: branches/libgalago/push-presence/libgalago/galago-presence.c
===================================================================
--- branches/libgalago/push-presence/libgalago/galago-presence.c 2006-10-08 18:21:33 UTC (rev 2922)
+++ branches/libgalago/push-presence/libgalago/galago-presence.c 2006-10-08 19:17:33 UTC (rev 2923)
@@ -575,6 +575,8 @@
"EnableStatus",
FALSE, &iter);
+ dbus_message_iter_append_basic(&iter, DBUS_TYPE_STRING, &status_id);
+
va_start(args, attr_value);
append_attributes(&iter, attr_id, attr_value, args);
va_end(args);
@@ -598,27 +600,79 @@
if (GALAGO_OBJECT_IS_LOCAL(presence) && galago_is_connected() &&
galago_is_feed())
{
+ galago_dbus_send_message(GALAGO_OBJECT(presence), "DisableStatus",
+ galago_value_new(GALAGO_VALUE_TYPE_STRING,
+ &status_id, NULL));
}
}
GList *
galago_presence_get_enabled_statuses(const GalagoPresence *presence)
{
- g_return_val_if_fail(presence != NULL, NULL);
- g_return_val_if_fail(GALAGO_IS_PRESENCE(presence), NULL);
+ g_return_val_if_fail(presence != NULL, NULL);
+ g_return_val_if_fail(GALAGO_IS_PRESENCE(presence), NULL);
- return NULL;
+ if (query && GALAGO_OBJECT_IS_REMOTE(presence) &&
+ !galago_is_daemon() && galago_is_connected())
+ {
+ DBusMessageIter *iter;
+ DBusMessage *message, *reply;
+ DBusError error;
+ GList *statuses;
+
+ message = galago_dbus_message_new_method_call(GALAGO_OBJECT(presence),
+ "GetEnabledStatuses",
+ FALSE, NULL);
+
+ dbus_error_init(&error);
+ reply = dbus_connection_send_with_reply_and_block(
+ galago_get_dbus_conn(), message, -1, &error);
+ dbus_message_unref(message);
+
+ if (dbus_error_is_set(&error))
+ {
+ g_warning("Error sending GetEnabledStatuses: %s", error.message);
+ return;
+ }
+
+ g_assert(reply != NULL);
+
+ dbus_message_iter_init(reply, &iter);
+ dbus_message_iter_recurse(&iter, &array_iter);
+
+ while (dbus_message_iter_get_arg_type(&array_iter) != DBUS_TYPE_INVALID)
+ }
+
+ return presence->priv->enabled_statuses;
}
gboolean
galago_presence_get_status_enabled(const GalagoPresence *presence,
const char *status_id)
{
+ gboolean enabled = FALSE;
+
g_return_val_if_fail(presence != NULL, FALSE);
g_return_val_if_fail(GALAGO_IS_PRESENCE(presence), FALSE);
g_return_val_if_fail(status_id != NULL && *status_id != '\0', FALSE);
- return FALSE;
+ if (GALAGO_OBJECT_IS_LOCAL(presence))
+ {
+ GList *l;
+
+ for (l = presence->priv->statuses; l != NULL; l = l->next)
+ {
+ }
+ }
+ else if (GALAGO_OBJECT_IS_REMOTE(presence) && galago_is_connected())
+ {
+ enabled = GPOINTER_TO_INT(galago_dbus_send_message_with_reply(
+ GALAGO_OBJECT(presence), "GetStatusEnabled",
+ galago_value_new(GALAGO_VALUE_TYPE_STRING, &status_id, NULL),
+ NULL));
+ }
+
+ return enabled;
}
static void
More information about the galago-commits
mailing list