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