sinek/src gtkxine.c,1.16,1.17
[email protected] Wed, 26 Feb 2003 00:37:48 -0800
| Newsgroups | gmane.comp.video.sinek.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/sinek/sinek/src
In directory sc8-pr-cvs1:/tmp/cvs-serv775/src
Modified Files:
gtkxine.c
Log Message:
add a few signals
Index: gtkxine.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/gtkxine.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- gtkxine.c 20 Feb 2003 06:05:05 -0000 1.16
+++ gtkxine.c 26 Feb 2003 08:37:46 -0000 1.17
@@ -22,6 +22,13 @@
enum
{
+ POSITION_CHANGE,
+ MRL_CHANGE,
+ LAST_SIGNAL,
+};
+
+enum
+{
PROP_0,
/* stream playback */
@@ -62,6 +69,7 @@
static void gtk_xine_realize (GtkWidget *widget);
static void gtk_xine_unrealize (GtkWidget *widget);
+static guint gtk_xine_signals[LAST_SIGNAL] = { 0, };
static GtkDrawingAreaClass *parent_class = NULL;
GType gtk_xine_get_type (void)
@@ -189,6 +197,17 @@
_("Sub version of xine-lib"), 0, 100, 0,
G_PARAM_READABLE));
+ /* register signals */
+ gtk_xine_signals[POSITION_CHANGE] = g_signal_new ("position-change",
+ G_OBJECT_CLASS_TYPE (go_class), G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GtkXineClass, position_change),
+ NULL, NULL, gtk_marshal_VOID__UINT,
+ G_TYPE_NONE, 1, G_TYPE_UINT);
+ gtk_xine_signals[MRL_CHANGE] = g_signal_new ("mrl-change",
+ G_OBJECT_CLASS_TYPE (go_class), G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GtkXineClass, mrl_change), NULL, NULL,
+ gtk_marshal_VOID__STRING, G_TYPE_NONE, 1,
+ G_TYPE_STRING);
}
static void gtk_xine_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec)
@@ -644,9 +663,11 @@
gtk_xine_set_speed (xine, GTK_XINE_SPEED_STOP);
if (!xine_open (xine->stream, mrl)) {
xine->mrl = g_strdup ("");
+ g_signal_emit (xine, gtk_xine_signals[MRL_CHANGE], 0, xine->mrl);
return 0;
}
xine->mrl = g_strdup (mrl);
+ g_signal_emit (xine, gtk_xine_signals[MRL_CHANGE], 0, xine->mrl);
return 1;
}
@@ -663,11 +684,15 @@
static int gtk_xine_play (GtkXine *xine, int start_pos, int start_time)
{
+ guint x;
+
gtk_xine_video_scrsaver_set (xine, FALSE); /* TODO: only disable if has_video */
if (!xine->event_queue) {
xine->event_queue = xine_event_new_queue (xine->stream);
xine_event_create_listener_thread (xine->event_queue, gtkxine_event, xine);
}
+ x = start_pos ? (guint) start_pos : (guint) start_time;
+ g_signal_emit (xine, gtk_xine_signals[POSITION_CHANGE], 0, x);
return xine_play (xine->stream, start_pos, start_time);
}
-------------------------------------------------------
This SF.net email is sponsored by: Scholarships for Techies!
Can't afford IT training? All 2003 ictp students receive scholarships.
Get hands-on training in Microsoft, Cisco, Sun, Linux/UNIX, and more.
www.ictp.com/training/sourceforge.asp