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