Header for our log player DBus client. More...
#include <dbus/dbus-glib-bindings.h>
#include <glib.h>
#include "log-player-dbus-methods.h"
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 **) |
Header for our log player DBus client.
This file contains the signature of the log player's DBus client functions.
Definition in file log-player-dbus.h.
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 }