src/log-player-dbus.h File Reference

Header for our log player DBus client. More...

#include <dbus/dbus-glib-bindings.h>
#include <glib.h>
#include "log-player-dbus-methods.h"
Include dependency graph for log-player-dbus.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void player_dbus_playback_ended_callback (DBusGProxy *proxy, gpointer user_data)
void player_dbus_date_being_played_callback (DBusGProxy *, guint64, gpointer)
gboolean player_dbus_set_speed (double speed)
gboolean player_dbus_get_speed (double *speed)
gboolean player_dbus_get_start_date (guint64 *date)
gboolean player_dbus_get_duration (guint64 *duration)
gboolean player_dbus_get_state (gboolean *started, gboolean *paused)
gboolean player_dbus_stop ()
gboolean player_dbus_set_paused (gboolean paused)
gboolean player_dbus_start (guint64 start_date, guint64 duration)
gboolean player_dbus_try_ping (gboolean set_values)
gboolean player_dbus_connect (DBusGConnection **, DBusGProxy **)

Detailed Description

Header for our log player DBus client.

Author:
Steve Dodier <sidnioulz@gmail.com>

This file contains the signature of the log player's DBus client functions.

Definition in file log-player-dbus.h.


Function Documentation

gboolean player_dbus_connect ( DBusGConnection **  ,
DBusGProxy **   
)

Definition at line 251 of file log-player-dbus.c.

00252 {
00253     GError  *err    = NULL;
00254 
00255     *connection = dbus_g_bus_get (DBUS_BUS_SESSION, &err);
00256     if (err) {
00257         g_warning ("player_dbus_connect: Could not get the DBus session bus (%s)", err->message);
00258         g_clear_error (&err);
00259         return FALSE;
00260     }
00261 
00262     *proxy = dbus_g_proxy_new_for_name (*connection, PLAYER_SERVICE_NAME, PLAYER_PATH, PLAYER_INTERFACE_NAME);
00263     if (*proxy == NULL) {
00264         g_warning ("player_dbus_connect: Failed to create a DBus proxy for the log player");
00265         return FALSE;
00266     }
00267 
00268     g_signal_connect_swapped (*proxy, "destroy", G_CALLBACK (player_dbus_on_lost_proxy), connection);
00269 
00270     dbus_g_object_register_marshaller (g_cclosure_user_marshal_VOID__UINT64, G_TYPE_NONE, G_TYPE_UINT64, G_TYPE_INVALID);
00271     dbus_g_proxy_add_signal (*proxy, "DateBeingPlayed", G_TYPE_UINT64, G_TYPE_INVALID);
00272     dbus_g_proxy_connect_signal (*proxy,
00273                         "DateBeingPlayed",
00274                         G_CALLBACK (player_dbus_date_being_played_callback),
00275                         NULL,
00276                         NULL);
00277                         
00278     dbus_g_object_register_marshaller (g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, G_TYPE_INVALID);
00279     dbus_g_proxy_add_signal (*proxy, "PlaybackEnded", G_TYPE_INVALID);
00280     dbus_g_proxy_connect_signal (*proxy,
00281                         "PlaybackEnded",
00282                         G_CALLBACK (player_dbus_playback_ended_callback),
00283                         NULL,
00284                         NULL);
00285     return TRUE;
00286 }

void player_dbus_date_being_played_callback ( DBusGProxy *  ,
guint64  ,
gpointer   
)

Definition at line 43 of file log-player-dbus.c.

00044 {
00045     synema_instance_t   *inst   = synema_instance ();
00046     g_return_if_fail (proxy != NULL);
00047     inst->player_curr_time = time;
00048     player_set_status_label (time, "Playing logs from");
00049 }

gboolean player_dbus_get_duration ( guint64 *  duration  ) 

Definition at line 152 of file log-player-dbus.c.

00153 {
00154     GError          *err    = NULL;
00155     synema_instance_t   *inst   = synema_instance ();
00156     g_return_val_if_fail (inst->dbus_connection != NULL, FALSE);
00157 
00158     if (!fr_ensi_bourges_synema_log_player_get_duration (inst->dbus_proxy, duration, &err)) {
00159         g_warning ("player_dbus_get_duration: DBus call failed (%s)", err->message);
00160         g_clear_error (&err);
00161         player_dbus_try_ping (FALSE);
00162         return FALSE;
00163     }
00164 
00165     return TRUE;
00166 }

gboolean player_dbus_get_speed ( double *  speed  ) 

Definition at line 116 of file log-player-dbus.c.

00117 {
00118     GError          *err    = NULL;
00119     synema_instance_t   *inst   = synema_instance ();
00120     g_return_val_if_fail (inst->dbus_connection != NULL, FALSE);
00121 
00122     if (!fr_ensi_bourges_synema_log_player_get_speed (inst->dbus_proxy, speed, &err)) {
00123         g_warning ("player_dbus_get_speed: DBus call failed (%s)", err->message);
00124         g_clear_error (&err);
00125         player_dbus_try_ping (FALSE);
00126         return FALSE;
00127     }
00128 
00129     return TRUE;
00130 }

gboolean player_dbus_get_start_date ( guint64 *  date  ) 

Definition at line 134 of file log-player-dbus.c.

00135 {
00136     GError          *err    = NULL;
00137     synema_instance_t   *inst   = synema_instance ();
00138     g_return_val_if_fail (inst->dbus_connection != NULL, FALSE);
00139 
00140     if (!fr_ensi_bourges_synema_log_player_get_start_date (inst->dbus_proxy, date, &err)) {
00141         g_warning ("player_dbus_get_start_date: DBus call failed (%s)", err->message);
00142         g_clear_error (&err);
00143         player_dbus_try_ping (FALSE);
00144         return FALSE;
00145     }
00146 
00147     return TRUE;
00148 }

gboolean player_dbus_get_state ( gboolean *  started,
gboolean *  paused 
)

Definition at line 170 of file log-player-dbus.c.

00171 {
00172     GError          *err    = NULL;
00173     synema_instance_t   *inst   = synema_instance ();
00174     g_return_val_if_fail (inst->dbus_connection != NULL, FALSE);
00175 
00176     if (!fr_ensi_bourges_synema_log_player_get_state (inst->dbus_proxy, started, paused, &err)) {
00177         g_warning ("player_dbus_get_state: DBus call failed (%s)", err->message);
00178         g_clear_error (&err);
00179         player_dbus_try_ping (FALSE);
00180         return FALSE;
00181     }
00182 
00183     return TRUE;
00184 }

void player_dbus_playback_ended_callback ( DBusGProxy *  proxy,
gpointer  user_data 
)

Definition at line 34 of file log-player-dbus.c.

00035 {
00036     synema_instance_t   *inst   = synema_instance ();
00037     g_return_if_fail (proxy != NULL);
00038     player_on_stop_button_pressed (GTK_BUTTON (gtk_builder_get_object (inst->builder, "player_button_stop")), GINT_TO_POINTER (0));
00039 } 

gboolean player_dbus_set_paused ( gboolean  paused  ) 

Definition at line 206 of file log-player-dbus.c.

00207 {
00208     GError          *err    = NULL;
00209     synema_instance_t   *inst   = synema_instance ();
00210     g_return_val_if_fail (inst->dbus_connection != NULL, FALSE);
00211 
00212     if (!fr_ensi_bourges_synema_log_player_set_paused (inst->dbus_proxy, paused, &err)) {
00213         g_warning ("player_dbus_set_paused: DBus call failed (%s)", err->message);
00214         g_clear_error (&err);
00215         player_dbus_try_ping (FALSE);
00216         return FALSE;
00217     }
00218 
00219     return TRUE;
00220 }

gboolean player_dbus_set_speed ( double  speed  ) 

Definition at line 98 of file log-player-dbus.c.

00099 {
00100     GError          *err    = NULL;
00101     synema_instance_t   *inst   = synema_instance ();
00102     g_return_val_if_fail (inst->dbus_connection != NULL, FALSE);
00103 
00104     if (!fr_ensi_bourges_synema_log_player_set_speed (inst->dbus_proxy, speed, &err)) {
00105         g_warning ("player_dbus_set_speed: DBus call failed (%s)", err->message);
00106         g_clear_error (&err);
00107         player_dbus_try_ping (FALSE);
00108         return FALSE;
00109     }
00110 
00111     return TRUE;
00112 }

gboolean player_dbus_start ( guint64  start_date,
guint64  duration 
)

Definition at line 224 of file log-player-dbus.c.

00225 {
00226     GError          *err    = NULL;
00227     synema_instance_t   *inst   = synema_instance ();
00228     g_return_val_if_fail (inst->dbus_connection != NULL, FALSE);
00229 
00230     if (!fr_ensi_bourges_synema_log_player_start (inst->dbus_proxy, start_date, duration, &err)) {
00231         g_warning ("player_dbus_start: DBus call failed (%s)", err->message);
00232         g_clear_error (&err);
00233         player_dbus_try_ping (FALSE);
00234         return FALSE;
00235     }
00236 
00237     return TRUE;
00238 }

gboolean player_dbus_stop (  ) 

Definition at line 188 of file log-player-dbus.c.

00189 {
00190     GError          *err    = NULL;
00191     synema_instance_t   *inst   = synema_instance ();
00192     g_return_val_if_fail (inst->dbus_connection != NULL, FALSE);
00193 
00194     if (!fr_ensi_bourges_synema_log_player_stop (inst->dbus_proxy, &err)) {
00195         g_warning ("player_dbus_stop: DBus call failed (%s)", err->message);
00196         g_clear_error (&err);
00197         player_dbus_try_ping (FALSE);
00198         return FALSE;
00199     }
00200 
00201     return TRUE;
00202 }

gboolean player_dbus_try_ping ( gboolean  set_values  ) 

Definition at line 53 of file log-player-dbus.c.

00054 {
00055     synema_instance_t   *inst   = synema_instance ();
00056     g_return_val_if_fail (inst->dbus_connection != NULL, FALSE);
00057 
00058     gboolean        pong        = FALSE;
00059     GError          *err        = NULL;
00060     GtkWidget       *status     = (GtkWidget *) gtk_builder_get_object (inst->builder, "player_align_status");
00061     GtkWidget       *start      = (GtkWidget *) gtk_builder_get_object (inst->builder, "player_align_start");
00062     GtkWidget       *stopafter  = (GtkWidget *) gtk_builder_get_object (inst->builder, "player_align_stopafter");
00063     GtkWidget       *speed      = (GtkWidget *) gtk_builder_get_object (inst->builder, "player_align_speed");
00064     GtkWidget       *errlabel   = (GtkWidget *) gtk_builder_get_object (inst->builder, "player_align_errlabel");
00065 
00066     if (!fr_ensi_bourges_synema_log_player_ping (inst->dbus_proxy, &pong, &err)) {
00067         g_warning ("player_dbus_try_ping: Ping failed (%s)", err->message);
00068         g_clear_error (&err);
00069         pong = FALSE;
00070     }
00071 
00072     if (pong) {
00073         gtk_widget_hide (errlabel);
00074 
00075         gtk_widget_show (status);
00076         gtk_widget_show (start);
00077         gtk_widget_show (stopafter);
00078         gtk_widget_show (speed);
00079 
00080         if (set_values)
00081             player_update_values_from_dbus ();
00082     } else {
00083         gtk_widget_show (errlabel);
00084 
00085         gtk_widget_hide (status);
00086         gtk_widget_hide (start);
00087         gtk_widget_hide (stopafter);
00088         gtk_widget_hide (speed);
00089 
00090         player_on_stop_button_pressed (GTK_BUTTON (gtk_builder_get_object (inst->builder, "player_button_stop")), GINT_TO_POINTER (0));
00091     }
00092 
00093     return pong;
00094 }

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on Tue Jan 12 00:48:45 2010 for ENSIBSynema by  doxygen 1.6.1