diff options
author | William Jon McCann <mccann@jhu.edu> | 2007-02-20 14:43:27 -0500 |
---|---|---|
committer | William Jon McCann <mccann@jhu.edu> | 2007-02-20 14:43:27 -0500 |
commit | ef89bbdb1be20fbca2a83037fcc922b444b7b513 (patch) | |
tree | b2e49cc8649d4ec9c7eda19e0b02292ca8a4044b /src/ck-session.c | |
parent | 10a6532e35f4e40135006329a6975942ee896817 (diff) |
make the idle hint getters sync dbus methods
This makes it easier to use from C code. Also fix a bug where
we weren't emitting the argument in the idle-hint-changed signal.
Diffstat (limited to 'src/ck-session.c')
-rw-r--r-- | src/ck-session.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/ck-session.c b/src/ck-session.c index 8696b57..bfcde83 100644 --- a/src/ck-session.c +++ b/src/ck-session.c @@ -219,12 +219,13 @@ session_set_idle_hint_internal (CkSession *session, { if (session->priv->idle_hint != idle_hint) { session->priv->idle_hint = idle_hint; + g_object_notify (G_OBJECT (session), "idle-hint"); /* FIXME: can we get a time from the dbus message? */ g_get_current_time (&session->priv->idle_since_hint); ck_debug ("Emitting idle-changed for session %s", session->priv->id); - g_signal_emit (session, signals [IDLE_HINT_CHANGED], 0); + g_signal_emit (session, signals [IDLE_HINT_CHANGED], 0, idle_hint); } return TRUE; @@ -287,18 +288,23 @@ ck_session_set_idle_hint (CkSession *session, } gboolean -ck_session_get_idle_hint (CkSession *session, - DBusGMethodInvocation *context) +ck_session_get_idle_hint (CkSession *session, + gboolean *idle_hint, + GError **error) { g_return_val_if_fail (CK_IS_SESSION (session), FALSE); - dbus_g_method_return (context, session->priv->idle_hint); + if (idle_hint != NULL) { + *idle_hint = session->priv->idle_hint; + } + return TRUE; } gboolean -ck_session_get_idle_since_hint (CkSession *session, - DBusGMethodInvocation *context) +ck_session_get_idle_since_hint (CkSession *session, + char **iso8601_datetime, + GError **error) { char *date_str; @@ -309,7 +315,10 @@ ck_session_get_idle_since_hint (CkSession *session, date_str = g_time_val_to_iso8601 (&session->priv->idle_since_hint); } - dbus_g_method_return (context, date_str); + if (iso8601_datetime != NULL) { + *iso8601_datetime = g_strdup (date_str); + } + g_free (date_str); return TRUE; |