sinek/src Makefile.am,1.12,1.13 about.c,1.16,1.17 control.c,1.28,1.29 gtkxine.c,1.12,1.13 guile.c,1.8,1.9 keys.c,1.45,1.46 main.c,1.26,1.27 osd.c,1.20,1.21 prefs.c,1.28,1.29 sinek.c,1.11,1.12 video.c,1.30,1.31
[email protected] Mon, 17 Feb 2003 00:26:07 -0800
| Newsgroups | gmane.comp.video.sinek.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/sinek/sinek/src
In directory sc8-pr-cvs1:/tmp/cvs-serv23278/src
Modified Files:
Makefile.am about.c control.c gtkxine.c guile.c keys.c main.c
osd.c prefs.c sinek.c video.c
Log Message:
fixes all over the place
Index: Makefile.am
===================================================================
RCS file: /cvsroot/sinek/sinek/src/Makefile.am,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- Makefile.am 23 Jan 2003 08:12:06 -0000 1.12
+++ Makefile.am 17 Feb 2003 08:25:59 -0000 1.13
@@ -9,6 +9,10 @@
guile_c = guile.c
endif
+if DO_X11
+gtkxine_driver_c = gtkxine_x11.c
+endif
+
bin_PROGRAMS = sinek
sinek_LDADD = @LIBS@ @XTEST_LIBS@ $(XINE_LIBS) $(GTK_LIBS) $(GUILE_LDFLAGS) $(INTLLIBS)
@@ -30,4 +34,5 @@
$(guile_c) \
about.c \
gtkxine.c \
+ $(gtkxine_driver_c) \
xml.c
Index: about.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/about.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- about.c 16 Jan 2003 07:02:06 -0000 1.16
+++ about.c 17 Feb 2003 08:26:00 -0000 1.17
@@ -21,9 +21,8 @@
char *tmp;
int major, minor, sub;
- major = gtk_xine_get_major_version(GTK_XINE(sinek.xine));
- minor = gtk_xine_get_minor_version(GTK_XINE(sinek.xine));
- sub = gtk_xine_get_sub_version(GTK_XINE(sinek.xine));
+ g_object_get(G_OBJECT(sinek.xine), "version_major", &major, "version_minor",
+ &minor, "version_sub", &sub, NULL);
w = gtk_dialog_new();
gtk_dialog_set_has_separator(GTK_DIALOG(w), FALSE);
Index: control.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/control.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- control.c 16 Jan 2003 07:06:33 -0000 1.28
+++ control.c 17 Feb 2003 08:26:00 -0000 1.29
@@ -86,6 +86,7 @@
GtkWidget *control_win;
GtkWidget *vb, *hb, *hb2, *bb;
GtkWidget *lab, *b;
+ int vol;
register_icons();
@@ -150,7 +151,8 @@
gtk_widget_show(lab);
gtk_box_pack_start(GTK_BOX(hb2), lab, FALSE, FALSE, 0);
- vol_adj = gtk_adjustment_new(gtk_xine_get_volume(GTK_XINE(sinek.xine)), 0, 100, 1, 0, 0);
+ g_object_get(G_OBJECT(sinek.xine), "volume", &vol, NULL);
+ vol_adj = gtk_adjustment_new(vol, 0, 100, 1, 0, 0);
vol_wid = gtk_hscale_new(GTK_ADJUSTMENT(vol_adj));
gtk_widget_show(vol_wid);
gtk_box_pack_start(GTK_BOX(hb2), vol_wid, TRUE, TRUE, 0);
@@ -209,7 +211,7 @@
}
-void control_mrl(char *mrl)
+void control_mrl(const char *mrl)
{
gtk_entry_set_text(GTK_ENTRY(mrl_wid), mrl);
gtk_editable_set_position(GTK_EDITABLE(mrl_wid), -1);
@@ -239,18 +241,16 @@
gtk_entry_set_text(GTK_ENTRY(info_wid), buf);
}
-
static void cb_volume(GtkAdjustment *vadj)
{
- gtk_xine_set_volume(GTK_XINE(sinek.xine), vadj->value);
+ g_object_set(G_OBJECT(sinek.xine), "volume", vadj->value, NULL);
}
-
static int cb_lala(GtkWidget *w, GdkEventButton *ev, gpointer data)
{
if(sinek.seeking)
{
- video_seek(GTK_ADJUSTMENT(time_adj)->value);
+ g_object_set(G_OBJECT(sinek.xine), "time", GTK_ADJUSTMENT(time_adj)->value, NULL);
sinek.seeking = 0;
}
return FALSE;
@@ -263,7 +263,7 @@
mrl = gtk_entry_get_text(GTK_ENTRY(mrl_wid));
if(!mrl || *mrl == 0) return;
- video_play((char *)mrl);
+ video_play(mrl);
}
@@ -281,7 +281,7 @@
m = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(m_spin));
s = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(s_spin));
secs = h * 3600 + m * 60 + s;
- video_seek(secs);
+ g_object_set(G_OBJECT(sinek.xine), "time", secs, NULL);
gtk_widget_hide(win);
}
Index: gtkxine.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/gtkxine.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- gtkxine.c 26 Jan 2003 20:49:05 -0000 1.12
+++ gtkxine.c 17 Feb 2003 08:26:01 -0000 1.13
@@ -9,6 +9,7 @@
*/
#include "gtkxine.h"
+#include "gtkxine_x11.h"
#include <math.h>
#include <string.h>
#include <libintl.h>
@@ -17,93 +18,58 @@
#include <config.h>
#endif
[...1230 lines suppressed...]
- if (gtk_xine_stream_has_video (GTK_XINE (x))) {
+ g_object_get (G_OBJECT (x), "has_video", &val, NULL);
+ if ((int) val) {
g_print ("'%s' has video, displaying video window\n", argv[1]);
- gtk_widget_show (videowin);
+ gtk_widget_show_all (videowin);
+ gtk_window_fullscreen (GTK_WINDOW (videowin));
}
- gdk_threads_enter ();
- gtk_main();
- gdk_threads_leave ();
- gtk_widget_destroy (x);
+ while (GTK_IS_WIDGET (x))
+ g_main_context_iteration (NULL, TRUE);
+ g_print ("Done. bye-bye!\n");
return 0;
}
Index: guile.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/guile.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- guile.c 16 Jan 2003 07:10:06 -0000 1.8
+++ guile.c 17 Feb 2003 08:26:01 -0000 1.9
@@ -104,7 +104,7 @@
msec = gh_scm2ulong(arg);
SCM_DEFER_INTS;
- video_seek(msec / 100);
+ g_object_set(G_OBJECT(sinek.xine), "time", msec / 100, NULL);
SCM_ALLOW_INTS;
return SCM_EOL;
}
@@ -116,8 +116,9 @@
unsigned long cur, total;
SCM_DEFER_INTS;
- cur = gtk_xine_get_current_time(GTK_XINE(sinek.xine)) * 100;
- total = gtk_xine_get_stream_length(GTK_XINE(sinek.xine)) * 100;
+ g_object_get(G_OBJECT(sinek.xine), "time", &cur, "length", &total, NULL);
+ cur *= 100;
+ total *= 100;
SCM_ALLOW_INTS;
ret = gh_cons(gh_ulong2scm(cur), ret);
ret = gh_cons(gh_ulong2scm(total), ret);
Index: keys.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/keys.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- keys.c 21 Jan 2003 04:52:49 -0000 1.45
+++ keys.c 17 Feb 2003 08:26:01 -0000 1.46
@@ -703,34 +703,26 @@
case CMD_QUIT:
sinek.playing = 0;
- scrsaver_enable();
gtk_widget_destroy(sinek.xine);
gtk_main_quit();
break;
case CMD_PLAY:
- scrsaver_disable();
- if (gtk_xine_get_status(GTK_XINE(sinek.xine)) != GTK_XINE_STATUS_PLAYING) {
- gtk_xine_load(GTK_XINE(sinek.xine), sinek.mrl);
- gtk_xine_play(GTK_XINE(sinek.xine));
- }
- else
- gtk_xine_set_speed(GTK_XINE(sinek.xine), GTK_XINE_PLAYBACK_SPEED_NORMAL);
+ g_object_set(G_OBJECT(sinek.xine), "speed", GTK_XINE_SPEED_NORMAL, NULL);
sinek.pause = 0;
break;
case CMD_PAUSE:
if(sinek.pause)
- gtk_xine_set_speed(GTK_XINE(sinek.xine), GTK_XINE_PLAYBACK_SPEED_NORMAL);
+ gtk_xine_set_speed(GTK_XINE(sinek.xine), GTK_XINE_SPEED_NORMAL);
else
- gtk_xine_set_speed(GTK_XINE(sinek.xine), GTK_XINE_PLAYBACK_SPEED_PAUSE);
+ gtk_xine_set_speed(GTK_XINE(sinek.xine), GTK_XINE_SPEED_PAUSE);
sinek.pause = ~sinek.pause;
break;
case CMD_STOP:
sinek.playing = 0;
- gtk_xine_stop(GTK_XINE(sinek.xine));
- scrsaver_enable();
+ g_object_set(G_OBJECT(sinek.xine), "speed", GTK_XINE_SPEED_STOP, NULL);
break;
case CMD_NEXT:
@@ -751,13 +743,13 @@
case CMD_SPEED_FAST:
tmp = gtk_xine_get_speed(GTK_XINE(sinek.xine));
- if(tmp != GTK_XINE_PLAYBACK_SPEED_PAUSE && tmp < GTK_XINE_PLAYBACK_SPEED_FOUR_FAST)
+ if(tmp != GTK_XINE_SPEED_PAUSE && tmp < GTK_XINE_SPEED_FAST_4)
gtk_xine_set_speed(GTK_XINE(sinek.xine), tmp * 2);
break;
case CMD_SPEED_SLOW:
tmp = gtk_xine_get_speed(GTK_XINE(sinek.xine));
- if(tmp > GTK_XINE_PLAYBACK_SPEED_QUARTER_SLOW)
+ if(tmp > GTK_XINE_SPEED_SLOW_4)
gtk_xine_set_speed(GTK_XINE(sinek.xine), tmp / 2);
break;
@@ -788,7 +780,7 @@
break;
case CMD_SHOW_VIDEO:
- video_show();
+ gtk_widget_show(sinek.videowin);
break;
case CMD_SHOW_CONTROLS:
@@ -808,10 +800,14 @@
break;
case CMD_TOGGLE_FULLSCREEN:
- if(sinek.video_mode == VIDEO_FULLSCREEN)
- gtk_xine_set_fullscreen(GTK_XINE(sinek.xine), 0);
- else
- gtk_xine_set_fullscreen(GTK_XINE(sinek.xine), 1);
+ if (sinek.video_mode == VIDEO_FULLSCREEN) {
+ gtk_window_unfullscreen(GTK_WINDOW(sinek.videowin));
+ sinek.video_mode = VIDEO_WINDOW;
+ }
+ else {
+ gtk_window_fullscreen(GTK_WINDOW(sinek.videowin));
+ sinek.video_mode = VIDEO_FULLSCREEN;
+ }
break;
case CMD_TOGGLE_ASPECT:
@@ -888,21 +884,26 @@
break;
case CMD_WINDOW_1x1:
- gtk_xine_set_fullscreen(GTK_XINE(sinek.xine), 0);
+ gtk_window_unfullscreen(GTK_WINDOW(sinek.xine));
+ if (sinek.video_mode != VIDEO_NONE)
+ sinek.video_mode = VIDEO_WINDOW;
video_scale_abs(1);
break;
case CMD_WINDOW_2x2:
- gtk_xine_set_fullscreen(GTK_XINE(sinek.xine), 0);
+ gtk_window_unfullscreen(GTK_WINDOW(sinek.xine));
+ if (sinek.video_mode != VIDEO_NONE)
+ sinek.video_mode = VIDEO_WINDOW;
video_scale_abs(2);
break;
case CMD_WINDOW_FULLSCREEN:
- gtk_xine_set_fullscreen(GTK_XINE(sinek.xine), 1);
+ gtk_window_fullscreen(GTK_WINDOW(sinek.xine));
break;
case CMD_WINDOW_BACKGROUND:
gtk_widget_hide(sinek.videowin);
+ sinek.video_mode = VIDEO_HIDDEN;
break;
case CMD_WINDOW_REDUCE:
@@ -971,8 +972,8 @@
case CMD_GOTO_MARK_7:
case CMD_GOTO_MARK_8:
case CMD_GOTO_MARK_9:
- video_seek(sinek.marks[cmd - CMD_GOTO_MARK_0]);
- sinek.marks[0] = gtk_xine_get_stream_length(GTK_XINE(sinek.xine));
+ g_object_set(G_OBJECT(sinek.xine), "time", sinek.marks[cmd - CMD_GOTO_MARK_0], NULL);
+ g_object_get(G_OBJECT(sinek.xine), "length", &sinek.marks[0], NULL);
break;
case CMD_SET_MARK_1:
@@ -984,7 +985,7 @@
case CMD_SET_MARK_7:
case CMD_SET_MARK_8:
case CMD_SET_MARK_9:
- sinek.marks[cmd - CMD_SET_MARK_1 + 1] = gtk_xine_get_stream_length(GTK_XINE(sinek.xine));
+ g_object_get(G_OBJECT(sinek.xine), "length", &sinek.marks[cmd - CMD_SET_MARK_1 + 1], NULL);
break;
}
}
Index: main.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/main.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- main.c 26 Jan 2003 20:49:05 -0000 1.26
+++ main.c 17 Feb 2003 08:26:01 -0000 1.27
@@ -37,7 +37,6 @@
{
memset(&sinek, 0, sizeof(sinek));
sinek.repeat_all = ~0;
- sinek.video_mode = VIDEO_WINDOW;
sinek.geo_w = 320;
sinek.geo_h = 180;
@@ -52,15 +51,9 @@
gtk_init(&argc, &argv);
- if(!XInitThreads())
- {
- puts(_("XInitThreads() failed, your X library is not thread-safe."));
- exit(5);
- }
-
+ sinek.xine = gtk_xine_new(NULL);
prefs_init(argc, argv);
-
- sinek.xine = sinek_init();
+ sinek_init();
key_init();
wm_build(control_build);
@@ -69,7 +62,6 @@
gtk_xine_event_listener(GTK_XINE(sinek.xine), event_listener, &sinek);
pl_init();
- scrsaver_init();
g_timeout_add(500, (GSourceFunc)second_update, NULL);
osd_init();
@@ -101,7 +93,7 @@
if(sinek.playing)
{
if(sinek.repeat_one)
- video_seek(0);
+ g_object_set(G_OBJECT(sinek.xine), "time", 0, NULL);
else
pl_next();
}
@@ -114,11 +106,9 @@
{
int pos, length;
- length = gtk_xine_get_stream_length(GTK_XINE(sinek.xine));
- if (length) {
- pos = gtk_xine_get_current_time(GTK_XINE(sinek.xine));
+ g_object_get(G_OBJECT(sinek.xine), "time", &pos, "length", &length, NULL);
+ if (length)
control_update_slider(pos, length);
- }
}
if(sinek.osd_subtitles) osd_update();
if(++sinek.cursor_timer == 3) video_cursor(0);
Index: osd.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/osd.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- osd.c 19 Jan 2003 08:35:35 -0000 1.20
+++ osd.c 17 Feb 2003 08:26:01 -0000 1.21
@@ -107,7 +107,8 @@
}
return;
}
- if (sinek.osd_subtitles && (pos = gtk_xine_get_current_time(GTK_XINE(sinek.xine))))
+ g_object_get(G_OBJECT(sinek.xine), "time", &pos, NULL);
+ if (sinek.osd_subtitles && pos)
{
sub = subtitle_find(pos * 100);
if (sub) {
Index: prefs.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/prefs.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- prefs.c 21 Jan 2003 04:52:49 -0000 1.28
+++ prefs.c 17 Feb 2003 08:26:01 -0000 1.29
@@ -68,13 +68,13 @@
static void print_version(void)
{
+ gpointer maj, min, sub;
+
+ g_object_get (G_OBJECT (sinek.xine), "version_major", &maj, "version_minor", &min, "version_sub", &sub, NULL);
g_print(_("Sinek v%s (Video Player)\n"), VERSION);
g_print(_("built with xine library v%d.%d.%d, using v%d.%d.%d.\n"),
GTK_XINE_MAJOR_VERSION, GTK_XINE_MINOR_VERSION,
- GTK_XINE_SUB_VERSION,
- gtk_xine_get_major_version(GTK_XINE(sinek.xine)),
- gtk_xine_get_minor_version(GTK_XINE(sinek.xine)),
- gtk_xine_get_sub_version(GTK_XINE(sinek.xine)));
+ GTK_XINE_SUB_VERSION, (int) maj, (int) min, (int) sub);
}
static void print_usage(int to_stderr)
@@ -146,7 +146,7 @@
break;
case 'b':
- sinek.video_mode = VIDEO_BACKGROUND;
+ sinek.video_mode = VIDEO_HIDDEN;
break;
case 'g':
@@ -282,12 +282,8 @@
static void cb_ok(GtkWidget *w, GtkWidget *win)
{
- char *tmp;
-
prefs_apply_changes();
- tmp = g_strconcat(g_get_home_dir(), "/.xine/config", NULL);
- gtk_xine_config_save(GTK_XINE(sinek.xine), tmp);
- g_free(tmp);
+ gtk_xine_config_save(GTK_XINE(sinek.xine));
gtk_widget_hide(win);
}
Index: sinek.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/sinek.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- sinek.c 19 Jan 2003 08:35:35 -0000 1.11
+++ sinek.c 17 Feb 2003 08:26:01 -0000 1.12
@@ -11,96 +11,46 @@
#include "common.h"
#include "gtkxine.h"
-extern int translate_point(int x, int y, int *vid_x, int *vid_y);
+static gboolean cb_delete(GtkWidget *window)
+{
+ /* force closing of the video window to merely hide it */
+ gtk_widget_hide(window);
+ return TRUE;
+}
-GtkWidget *sinek_init(void)
+void sinek_init(void)
{
- GtkWidget *videowin, *videoframe;
- GtkXine *xine;
+ GtkWidget *window, *xine;
const char *audio, *video;
- char *conf;
- sinek.mrl = NULL;
+ xine = sinek.xine;
- xine = GTK_XINE(gtk_xine_new());
- conf = g_build_filename(g_get_home_dir(), ".xine", "config", NULL);
- gtk_xine_config_load(xine, conf);
- g_free(conf);
+ window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_title(GTK_WINDOW(window), _("Sinek Video Output"));
+ g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK(cb_delete), NULL);
+ gtk_container_add(GTK_CONTAINER(window), xine);
+ gtk_widget_show(xine);
+ sinek.videowin = window;
/* audio stuff */
- audio = gtk_xine_config_register_string(xine, "audio.driver", "auto");
- audio = gtk_xine_set_audio_driver(xine, audio);
- gtk_xine_config_set(xine, "audio.driver", (void *) audio);
+ audio = gtk_xine_config_register_string(GTK_XINE(xine), "audio.driver", "auto");
+ g_object_set(G_OBJECT(xine), "audio_driver", audio, NULL);
+ g_object_get(G_OBJECT(xine), "audio_driver", &audio, NULL);
+ gtk_xine_config_set(GTK_XINE(xine), "audio.driver", audio);
/* video stuff */
- videoframe = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(videoframe), "Sinek Video Output");
- videowin = gtk_drawing_area_new();
- gtk_container_add(GTK_CONTAINER(videoframe), videowin);
- sinek.videowin = videoframe;
-
- video = gtk_xine_config_register_string(xine, "video.driver", "auto");
- video = gtk_xine_set_video_driver(xine, video, videowin);
- gtk_xine_config_set(xine, "video.driver", (void *) video);
-
- /* post audio/video init stuff */
- gtk_xine_load(xine, NULL);
- gtk_xine_set_audio_channel(xine, sinek.audio_channel);
- gtk_xine_set_spu_channel(xine, sinek.spu_channel);
-
- return GTK_WIDGET(xine);
-}
-
-#if 0
-void sinek_video_event(sinek_type *s, void *event)
-{
- XEvent *ev = (XEvent *)event;
- xine_event_t xinev;
- xine_input_data_t inev;
- int x, y;
-
- switch(ev->type)
- {
- case MotionNotify:
- if(translate_point(((XMotionEvent *)ev)->x, ((XMotionEvent *)ev)->y, &x, &y))
- {
- xinev.type = XINE_EVENT_INPUT_MOUSE_MOVE;
- inev.button = 0;
- inev.x = x;
- inev.y = y;
- xinev.data = (void *) &inev;
- xine_event_send(sinek.stream, &xinev);
- }
- break;
-
- case ButtonPress:
- if(((XButtonEvent *)ev)->button == 1 && translate_point(((XButtonEvent *)ev)->x, ((XButtonEvent *)ev)->y, &x, &y))
- {
- xinev.type = XINE_EVENT_INPUT_MOUSE_BUTTON;
- inev.button = 1;
- inev.x = x;
- inev.y = y;
- xinev.data = (void *) &inev;
- xine_event_send(sinek.stream, &xinev);
- }
- break;
+//g_signal_connect(G_OBJECT(videoframe), "key-press-event", G_CALLBACK(videowin_key_press), NULL);
+//g_signal_connect(G_OBJECT(videowin), "unrealize", G_CALLBACK(videowin_unrealized_cb), NULL);
+//g_signal_connect(G_OBJECT(videowin), "configure-event", G_CALLBACK(videowin_configure_cb), NULL);
- case ConfigureNotify:
- s->display_info->win_x = ((XConfigureEvent *)ev)->x;
- s->display_info->win_y = ((XConfigureEvent *)ev)->y;
- s->display_info->win_w = ((XConfigureEvent *)ev)->width;
- s->display_info->win_h = ((XConfigureEvent *)ev)->height;
- break;
+//g_signal_connect(G_OBJECT(videowin), "clicked", G_CALLBACK(videowin_button_press), NULL);
- case Expose:
- if(((XExposeEvent *)ev)->count == 0)
- {
- xine_gui_send_vo_data(sinek.stream, XINE_GUI_SEND_EXPOSE_EVENT, (void *) ev);
- }
- break;
- }
- if(ev->type == MyShmEvent)
- xine_gui_send_vo_data(sinek.stream, XINE_GUI_SEND_COMPLETION_EVENT, (void *) ev);
+ video = gtk_xine_config_register_string(GTK_XINE(xine), "video.driver", "auto");
+ g_object_set(G_OBJECT(xine), "video_driver", video, NULL);
+ g_object_get(G_OBJECT(xine), "video_driver", &video, NULL);
+ gtk_xine_config_set(GTK_XINE(xine), "video.driver", video);
+ /* post audio/video init stuff */
+ g_object_set(G_OBJECT(xine), "audio_channel", sinek.audio_channel,
+ "spu_channel", sinek.spu_channel, NULL);
}
-#endif
Index: video.c
===================================================================
RCS file: /cvsroot/sinek/sinek/src/video.c,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- video.c 19 Jan 2003 08:35:35 -0000 1.30
+++ video.c 17 Feb 2003 08:26:01 -0000 1.31
@@ -17,37 +17,6 @@
#include <X11/cursorfont.h>
#include <X11/Xatom.h>
-/* missing stuff from X includes */
-#define MWM_HINTS_DECORATIONS (1L << 1)
-#define PROP_MWM_HINTS_ELEMENTS 5
-typedef struct _mwmhints
-{
- uint32_t flags;
- uint32_t functions;
- uint32_t decorations;
- int32_t input_mode;
- uint32_t status;
-} MWMHints;
-
-static int video_visible = 42;
-
-int translate_point(int x, int y, int *vid_x, int *vid_y);
-
-void video_show(void)
-{
- gtk_widget_show(sinek.videowin);
- if(video_visible != 1) sinek.nr_mapped++;
- video_visible = 1;
-}
-
-void video_hide(void)
-{
- gtk_widget_hide(sinek.videowin);
- if(video_visible == 1) sinek.nr_mapped--;
- video_visible = 0;
- if(0 == sinek.nr_mapped) gtk_main_quit();
-}
-
void video_cursor(int show)
{
static int old = 2;
@@ -65,7 +34,7 @@
}
-static int try_subtitle(char *mrl, char *ext)
+static int try_subtitle(const char *mrl, char *ext)
{
gchar *tmp, *tmp2;
struct stat mystat;
@@ -97,14 +66,13 @@
return ret;
}
-
-int video_play(char *mrl)
+int video_play(const char *mrl)
{
+ const char *cur;
+ int x;
int ret;
- if(!mrl) return(0);
-
- if(video_visible == 42) video_show();
+ g_return_val_if_fail(mrl != NULL, 0);
if(NULL == strstr(mrl, "://"))
{
@@ -113,13 +81,37 @@
if(0 == ret) try_subtitle(mrl, ".srt");
}
- if (gtk_xine_load(GTK_XINE(sinek.xine), mrl) && gtk_xine_play(GTK_XINE(sinek.xine)))
- {
- int length;
+ /* load mrl */
+ g_object_set(G_OBJECT(sinek.xine), "mrl", mrl, NULL);
+ g_object_get(G_OBJECT(sinek.xine), "mrl", &cur, NULL);
+ if (strcmp(mrl, cur) != 0)
+ return 0;
- length = gtk_xine_get_stream_length(GTK_XINE(sinek.xine));
- scrsaver_disable();
- control_update_slider(0, length);
+ /* start playing */
+ switch (sinek.video_mode) {
+ /* XXX: what should we do if VIDEO_FULLSCREEN? */
+ case VIDEO_WINDOW:
+ g_object_get(G_OBJECT(sinek.xine), "has_video", &x, NULL);
+ if (!x) {
+ sinek.video_mode = VIDEO_NONE;
+ gtk_widget_hide(sinek.videowin);
+ }
+ break;
+ case VIDEO_NONE:
+ g_object_get(G_OBJECT(sinek.xine), "has_video", &x, NULL);
+ if (x) {
+ sinek.video_mode = VIDEO_WINDOW;
+ gtk_widget_show(sinek.videowin);
+ }
+ break;
+ }
+
+ gtk_xine_set_speed(GTK_XINE(sinek.xine), GTK_XINE_SPEED_NORMAL);
+// g_object_set(G_OBJECT(sinek.xine), "speed", GTK_XINE_SPEED_NORMAL, NULL);
+ g_object_get(G_OBJECT(sinek.xine), "speed", &x, NULL);
+ if (x == GTK_XINE_SPEED_NORMAL) {
+ g_object_get(G_OBJECT(sinek.xine), "length", &x, NULL);
+ control_update_slider(0, x);
control_mrl(mrl);
sinek.playing = -1;
return 1;
@@ -127,14 +119,6 @@
return 0;
}
-
-void video_seek(int secs)
-{
- scrsaver_disable();
- gtk_xine_play_from_time(GTK_XINE(sinek.xine), secs);
-}
-
-
void video_zoom(int val)
{
int tmp;
@@ -261,7 +245,7 @@
case VIDEO_FULLSCREEN:
create_window(1, DisplayWidth(display, screen), DisplayHeight(display, screen));
break;
- case VIDEO_BACKGROUND:
+ case VIDEO_HIDE:
create_bg_window();
XLowerWindow(display, videowin);
break;
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf