sinek/src gtkxine.c,1.6,1.7

[email protected] Fri, 17 Jan 2003 00:50:55 -0800
Newsgroups gmane.comp.video.sinek.cvs
Message-ID <[email protected]>
Update of /cvsroot/sinek/sinek/src
In directory sc8-pr-cvs1:/tmp/cvs-serv9970a/src

Modified Files:
	gtkxine.c 
Log Message:
synch w/ cvs


Index: gtkxine.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/gtkxine.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- gtkxine.c	14 Jan 2003 10:44:24 -0000	1.6
+++ gtkxine.c	17 Jan 2003 08:50:53 -0000	1.7
@@ -43,6 +43,7 @@
 	xine_video_port_t *vo_driver;
 
 	xine_stream_t *stream;
+	xine_osd_t *osd;
 
 	char *current_mrl;
 	int x, y, w, h;
@@ -57,7 +58,9 @@
 	xine->conf_loaded = 0;
 	xine->ao_driver = NULL;
 	xine->vo_driver = NULL;
+
 	xine->stream = NULL;
+	xine->osd = NULL;
 
 	xine->current_mrl = NULL;
 	xine->x = xine->y = xine->w = xine->h = 0;
@@ -200,7 +203,7 @@
 	return 0;
 }
 
-int gtk_xine_config_get (GtkXine *xine, const char *key, void **value)
+GtkXineConfigType gtk_xine_config_get (GtkXine *xine, const char *key, void **value)
 {
 	xine_cfg_entry_t entry;
 
@@ -217,7 +220,85 @@
 				break;
 		}
 
-		return 1;
+		return entry.type;
+	}
+
+	return GTK_XINE_CONFIG_TYPE_NONE;
+}
+
+GtkXineConfigType gtk_xine_config_get_first (GtkXine *xine, const char **key, const void **value)
+{
+	xine_cfg_entry_t entry;
+
+	if (xine_config_get_first_entry (xine->xine, &entry)) {
+		*key = (const char *) entry.key;
+		switch (entry.type) {
+			case XINE_CONFIG_TYPE_UNKNOWN:
+				*((char **) value) = entry.unknown_value;
+				break;
+			case XINE_CONFIG_TYPE_STRING:
+				*((char **) value) = entry.str_value;
+				break;
+			default:
+				*((int *) value) = entry.num_value;
+				break;
+		}
+
+		return entry.type;
+	}
+
+	return GTK_XINE_CONFIG_TYPE_NONE;
+}
+
+GtkXineConfigType gtk_xine_config_get_next (GtkXine *xine, const char *key, const char **nextkey, const void **value)
+{
+	xine_cfg_entry_t entry;
+
+	if (xine_config_lookup_entry (xine->xine, key, &entry) &&
+			xine_config_get_next_entry (xine->xine, &entry)) {
+		*nextkey = (const char *) entry.key;
+		switch (entry.type) {
+			case XINE_CONFIG_TYPE_UNKNOWN:
+				*((char **) value) = entry.unknown_value;
+				break;
+			case XINE_CONFIG_TYPE_STRING:
+				*((char **) value) = entry.str_value;
+				break;
+			default:
+				*((int *) value) = entry.num_value;
+				break;
+		}
+
+		return entry.type;
+	}
+
+	return GTK_XINE_CONFIG_TYPE_NONE;
+}
+
+int gtk_xine_config_get_min_max (GtkXine *xine, const char *key, int *min, int *max)
+{
+	xine_cfg_entry_t entry;
+
+	if (xine_config_lookup_entry (xine->xine, key, &entry)) {
+		if (entry.type == XINE_CONFIG_TYPE_RANGE) {
+			*min = entry.range_min;
+			*max = entry.range_max;
+			return 1;
+		}
+	}
+
+	return 0;
+}
+
+int gtk_xine_config_get_enums (GtkXine *xine, const char *key, const char ***enums)
+{
+	xine_cfg_entry_t entry;
+
+	if (xine_config_lookup_entry (xine->xine, key, &entry)) {
+		if (entry.type == XINE_CONFIG_TYPE_ENUM) {
+			*enums = entry.enum_values;
+			return 1;
+		}
 	}
 
 	return 0;
@@ -476,11 +557,23 @@
 	return i;
 }
 
+const char *gtk_xine_get_current_mrl (GtkXine *xine)
+{
+	return xine->current_mrl;
+}
+
 int gtk_xine_play (GtkXine *xine)
 {
 	if (!xine->stream)
 		return 0;
 
+#if 0
+	// TODO:
+	if (get_status(xine) != PLAYING)
+		return xine_play();
+	else
+		gtk_xine_set_speed(xine, GTK_XINE_PLAYBACK_SPEED_NORMAL);
+#endif
 	return xine_play (xine->stream, 0, 0);
 }
 
@@ -671,6 +764,22 @@
 	return xine_get_param (xine->stream, XINE_PARAM_VO_TVMODE);
 }
 
+int gtk_xine_set_fullscreen (GtkXine *xine, int fullscreen)
+{
+	if (fullscreen)
+		gtk_window_fullscreen (GDK_WINDOW (xine->window));
+	else
+		gdk_window_unfullscreen (GDK_WINDOW (xine->window));
+
+	return fullscreen;
+}
+
+int gtk_xine_get_fullscreen (GtkXine *xine)
+{
+	/* TODO */
+	return 0;
+}
+
 #if 0
 int gtk_xine_set_audio_compression (GtkXine *xine, int level)
 {
@@ -773,6 +882,53 @@
 
 	xine_get_version (&a, &b, &vers);
 	return vers;
+}
+
+int gtk_xine_osd_reset (GtkXine *xine, int x, int y, int w, int h, const char *font, int font_size, GtkXinePalette pal)
+{
+	if (xine->osd)
+		xine_osd_free (xine->osd);
+
+	xine->osd = xine_osd_new (xine->stream, x, y, w, h);
+	if (!xine->osd)
+		return 0;
+	xine_osd_set_font (xine->osd, font, font_size);
+	xine_osd_set_text_palette (xine->osd, pal, XINE_OSD_TEXT1);
+
+	return 1;
+}
+
+int gtk_xine_osd_set_position (GtkXine *xine, int x, int y)
+{
+	xine_osd_set_position (xine->osd, x, y);
+	return 1;
+}
+
+int gtk_xine_osd_draw_text (GtkXine *xine, const char *text, int x, int y)
+{
+	gtk_xine_osd_hide (xine, 0);
+	gtk_xine_osd_clear (xine);
+	xine_osd_draw_text (xine->osd, x, y, text, XINE_OSD_TEXT1);
+	gtk_xine_osd_show (xine, 0);
+	return 1;
+}
+
+int gtk_xine_osd_show (GtkXine *xine, int64_t vpts)
+{
+	xine_osd_show (xine->osd, vpts);
+	return 1;
+}
+
+int gtk_xine_osd_hide (GtkXine *xine, int64_t vpts)
+{
+	xine_osd_hide (xine->osd, vpts);
+	return 1;
+}
+
+int gtk_xine_osd_clear (GtkXine *xine)
+{
+	xine_osd_clear (xine->osd);
+	return 1;
 }
 
 #ifdef GTK_XINE_TEST




-------------------------------------------------------
This SF.NET email is sponsored by: Thawte.com
Understand how to protect your customers personal information by implementing
SSL on your Apache Web Server. Click here to get our FREE Thawte Apache 
Guide: http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0029en