You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
(30) |
Jun
(47) |
Jul
(33) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(2) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(63) |
Feb
(19) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
From: <dil...@us...> - 2003-02-26 08:37:52
|
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); } |
From: <dil...@us...> - 2003-02-26 08:37:52
|
Update of /cvsroot/sinek/sinek/include In directory sc8-pr-cvs1:/tmp/cvs-serv775/include Modified Files: gtkxine.h Log Message: add a few signals Index: gtkxine.h =================================================================== RCS file: /cvsroot/sinek/sinek/include/gtkxine.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- gtkxine.h 17 Feb 2003 09:48:53 -0000 1.10 +++ gtkxine.h 26 Feb 2003 08:37:43 -0000 1.11 @@ -59,6 +59,9 @@ struct _GtkXineClass { GtkDrawingAreaClass parent; + + void (*position_change) (GtkXine *xine, guint time); + void (*mrl_change) (GtkXine *xine, const char *mrl); }; /* properties */ |
From: <dil...@us...> - 2003-02-23 09:30:39
|
Update of /cvsroot/sinek/sinek/pixmaps In directory sc8-pr-cvs1:/tmp/cvs-serv14402/pixmaps Modified Files: Makefile.am Added Files: sinek.png Log Message: use .png instead of .xpm --- NEW FILE: sinek.png --- (This appears to be a binary file; contents omitted.) Index: Makefile.am =================================================================== RCS file: /cvsroot/sinek/sinek/pixmaps/Makefile.am,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Makefile.am 30 Apr 2002 22:27:08 -0000 1.3 +++ Makefile.am 23 Feb 2003 09:30:35 -0000 1.4 @@ -2,16 +2,17 @@ ## Process this file with automake to produce Makefile.in ## -EXTRA_DIST = \ - sinek.xpm \ - nextmrl.xpm \ - prevmrl.xpm \ - play.xpm \ - stop.xpm \ - pause.xpm \ - playlist.xpm \ - fullscreen.xpm \ - mute.xpm \ - nomute.xpm \ - repeat.xpm \ - norepeat.xpm +datadir = ${prefix}/share/sinek + +data_DATA = sinek.png \ + nextmrl.png \ + prevmrl.png \ + play.png \ + stop.png \ + pause.png \ + playlist.png \ + fullscreen.png \ + mute.png \ + nomute.png \ + repeat.png \ + norepeat.png |
From: <dil...@us...> - 2003-02-23 09:30:39
|
Update of /cvsroot/sinek/sinek/src In directory sc8-pr-cvs1:/tmp/cvs-serv14402/src Modified Files: about.c Makefile.am Log Message: use .png instead of .xpm Index: about.c =================================================================== RCS file: /cvsroot/sinek/sinek/src/about.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- about.c 17 Feb 2003 08:26:00 -0000 1.17 +++ about.c 23 Feb 2003 09:30:36 -0000 1.18 @@ -9,15 +9,11 @@ */ #include "common.h" - -#include "sinek.xpm" #include "gtkxine.h" - int about_build(GtkWidget **win) { GtkWidget *w, *vb, *vb2, *vb3, *lab, *hb, *b, *logo; - GdkPixbuf *pb; char *tmp; int major, minor, sub; @@ -45,8 +41,7 @@ gtk_widget_show(hb); gtk_box_pack_start(GTK_BOX(vb2), hb, FALSE, FALSE, 0); - pb = gdk_pixbuf_new_from_xpm_data((const char **)sinek_xpm); - logo = gtk_image_new_from_pixbuf(pb); + logo = gtk_image_new_from_file(DATADIR "/sinek.png"); gtk_widget_show(logo); gtk_box_pack_start(GTK_BOX(hb), logo, FALSE, FALSE, 0); Index: Makefile.am =================================================================== RCS file: /cvsroot/sinek/sinek/src/Makefile.am,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- Makefile.am 17 Feb 2003 08:32:37 -0000 1.14 +++ Makefile.am 23 Feb 2003 09:30:36 -0000 1.15 @@ -3,7 +3,7 @@ ## INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/pixmaps -AM_CFLAGS = @CFLAGS@ $(XINE_CFLAGS) $(GTK_CFLAGS) $(GUILE_CFLAGS) $(INTLDIR) +AM_CFLAGS = @CFLAGS@ -DDATADIR=\"@datadir@/sinek\" $(XINE_CFLAGS) $(GTK_CFLAGS) $(GUILE_CFLAGS) $(INTLDIR) if DO_GUILE guile_c = guile.c |
From: <dil...@us...> - 2003-02-20 06:05:09
|
Update of /cvsroot/sinek/sinek/src In directory sc8-pr-cvs1:/tmp/cvs-serv17355 Modified Files: gtkxine.c Log Message: seeking was fucked, due to time being in seconds instead of milliseconds Index: gtkxine.c =================================================================== RCS file: /cvsroot/sinek/sinek/src/gtkxine.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- gtkxine.c 17 Feb 2003 11:08:36 -0000 1.15 +++ gtkxine.c 20 Feb 2003 06:05:05 -0000 1.16 @@ -695,7 +695,7 @@ int gtk_xine_set_time (GtkXine *xine, int time) { - return gtk_xine_play (xine, 0, time); + return gtk_xine_play (xine, 0, time * 1000); } static void disable_video_output (GtkXine *xine) |
From: <dil...@us...> - 2003-02-20 06:01:52
|
Update of /cvsroot/sinek/sinek/src In directory sc8-pr-cvs1:/tmp/cvs-serv16455 Modified Files: control.c Log Message: cast doubles to ints; this should fix some adjustment problems Index: control.c =================================================================== RCS file: /cvsroot/sinek/sinek/src/control.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- control.c 17 Feb 2003 08:26:00 -0000 1.29 +++ control.c 20 Feb 2003 06:01:46 -0000 1.30 @@ -243,14 +243,14 @@ static void cb_volume(GtkAdjustment *vadj) { - g_object_set(G_OBJECT(sinek.xine), "volume", vadj->value, NULL); + g_object_set(G_OBJECT(sinek.xine), "volume", (int) vadj->value, NULL); } static int cb_lala(GtkWidget *w, GdkEventButton *ev, gpointer data) { if(sinek.seeking) { - g_object_set(G_OBJECT(sinek.xine), "time", GTK_ADJUSTMENT(time_adj)->value, NULL); + g_object_set(G_OBJECT(sinek.xine), "time", (int) GTK_ADJUSTMENT(time_adj)->value, NULL); sinek.seeking = 0; } return FALSE; |
From: <dil...@us...> - 2003-02-20 06:00:28
|
Update of /cvsroot/sinek/sinek/src In directory sc8-pr-cvs1:/tmp/cvs-serv16085a Modified Files: keys.c Log Message: oops, missed that.. compile error Index: keys.c =================================================================== RCS file: /cvsroot/sinek/sinek/src/keys.c,v retrieving revision 1.47 retrieving revision 1.48 diff -u -d -r1.47 -r1.48 --- keys.c 18 Feb 2003 08:29:20 -0000 1.47 +++ keys.c 20 Feb 2003 06:00:22 -0000 1.48 @@ -1040,7 +1040,7 @@ break; default: - g_fatal(_("Unknown key received, programmer error!\n")); + g_error(_("Unknown key received, programmer error!\n")); } } |
From: <dil...@us...> - 2003-02-18 08:29:25
|
Update of /cvsroot/sinek/sinek/src In directory sc8-pr-cvs1:/tmp/cvs-serv2646 Modified Files: keys.c Log Message: use gmarkup instead of xml.c iks stuff Index: keys.c =================================================================== RCS file: /cvsroot/sinek/sinek/src/keys.c,v retrieving revision 1.46 retrieving revision 1.47 diff -u -d -r1.46 -r1.47 --- keys.c 17 Feb 2003 08:26:01 -0000 1.46 +++ keys.c 18 Feb 2003 08:29:20 -0000 1.47 @@ -195,7 +195,7 @@ static action *find_action_by_event(char *key, int modifier); static action *find_action_by_name(char *action); -static int load_keys(void); +static int keys_load(void); static void reset_keys(void); static char *key_name(char *key, int modifier); @@ -208,7 +208,7 @@ { actions[i].label = gettext(actions[i].label); } - if(!load_keys()) reset_keys(); + if(!keys_load()) reset_keys(); } @@ -366,73 +366,120 @@ } } - -static int load_keys(void) +static void keys_save(GtkWidget *but, GtkWidget *win) { - action *act; - char *key; - int modifier; char *fname; - iks *x, *y; + FILE *fp; + binding *kb; + GString *str; - fname = g_strconcat(g_get_home_dir(), "/.xine/keys.xml", NULL); - x = iks_load(fname); + /* generate xml string */ + str = g_string_new("<skb>\n"); + for (kb = bindings; kb != NULL; kb = kb->next) { + g_string_append_printf(str, "<binding action='%s'>\n\t<key>%s</key>\n", + kb->action->name, kb->key); + if (kb->modifier) { + if (kb->modifier & MOD_SHIFT) + g_string_append(str, "\t<shift/>"); + if (kb->modifier & MOD_CONTROL) + g_string_append(str, "\t<control/>"); + if (kb->modifier & MOD_ALT) + g_string_append(str, "\t<alt/>"); + g_string_append(str, "\n"); + } + g_string_append(str, "</binding>\n"); + } + g_string_append(str, "</skb>"); + + /* save to ~/.xine/keys.xml */ + fname = g_build_filename(g_get_home_dir(), ".xine", "keys.xml", NULL); + fp = fopen(fname, "w"); + if (fp) { + fputs(str->str, fp); + fclose(fp); + } g_free(fname); - if(!x || iks_strcmp(iks_name(x), "skb") != 0) return(0); + g_string_free(str, TRUE); - for(y = iks_child(x); y; y = iks_next(y)) - { - if(iks_type(y) == IKS_TAG && iks_strcmp(iks_name(y), "binding") == 0) - { - act = find_action_by_name(iks_find_attrib(y, "action")); - key = iks_strdup(iks_find_cdata(y, "key")); - modifier = 0; - if(iks_find(y, "shift")) modifier += MOD_SHIFT; - if(iks_find(y, "control")) modifier += MOD_CONTROL; - if(iks_find(y, "alt")) modifier += MOD_ALT; - key_add(act, key, modifier, FALSE); + /* done */ + gtk_widget_hide(win); +} + +static void keys_load_open_tag(GMarkupParseContext *c, const gchar *name, + const gchar **attribs, const gchar **attrib_vals, gpointer data, GError **err) +{ + binding *b = (binding *) data; + + if (strcmp(name, "binding") == 0) { + memset((void *) b, 0, sizeof(*b)); + if (attribs[0]) + b->action = find_action_by_name(attribs[0]); + } + else if (strcmp(name, "shift") == 0) + b->modifier += MOD_SHIFT; + else if (strcmp(name, "control") == 0) + b->modifier += MOD_CONTROL; + else if (strcmp(name, "alt") == 0) + b->modifier += MOD_ALT; +} + +static void keys_load_close_tag(GMarkupParseContext *c, const gchar *name, + gpointer data, GError **err) +{ + if (strcmp(name, "binding") == 0) { + binding *b = (binding *) data; + key_add(b->action, b->key, b->modifier, FALSE); + if (b->key) { + g_free(b->key); + b->key = NULL; } } - iks_delete(x); - return 1; } +static void keys_load_text(GMarkupParseContext *c, const char *text, + gsize len, gpointer data, GError **err) +{ + if (strcmp(g_markup_parse_context_get_element(c), "key") == 0) { + binding *b = (binding *) data; + b->key = g_strdup(text); + } +} -static void save_keys(GtkWidget *but, GtkWidget *win) +static int keys_load(void) { char *fname; - iks *x, *y; - binding *kb; - - fname = g_strconcat(g_get_home_dir(), "/.xine/keys.xml", NULL); - x = iks_new("skb"); - iks_insert_cdata(x, "\n", 1); - for(kb = bindings; kb; kb = kb->next) + FILE *fp; + char buf[256]; + binding binding; + GError *error = NULL; + GMarkupParseContext *context; + GMarkupParser parser = { - y = iks_insert(x, "binding"); - iks_insert_attrib(y, "action", kb->action->name); - iks_insert_cdata(y, "\n\t", 2); - iks_insert_cdata(iks_insert(y, "key"), kb->key, -1); - if(kb->modifier) - { - iks_insert_cdata(y, "\n\t", 2); - if(kb->modifier & MOD_SHIFT) iks_insert(y, "shift"); - if(kb->modifier & MOD_CONTROL) iks_insert(y, "control"); - if(kb->modifier & MOD_ALT) iks_insert(y, "alt"); - iks_insert_cdata(y, "\n", 1); - } - else - { - iks_insert_cdata(y, "\n", 1); - } - iks_insert_cdata(x, "\n", 1); - } - iks_save(fname, x); - iks_delete(x); + keys_load_open_tag, + keys_load_close_tag, + keys_load_text, + NULL, + NULL, + }; + + fname = g_build_filename(g_get_home_dir(), ".xine", "keys.xml", NULL); + fp = fopen(fname, "r"); g_free(fname); - gtk_widget_hide(win); -} + if (!fp) + return 0; + context = g_markup_parse_context_new(&parser, 0, &binding, NULL); + while ((fgets(buf, sizeof(buf), fp))) { + if (!g_markup_parse_context_parse(context, buf, -1, &error)) + break; + } + if (error == NULL) + g_markup_parse_context_end_parse(context, &error); + g_markup_parse_context_free(context); + fclose(fp); + + return error == NULL ? 1 : 0; +} static char *key_name(char *key, int modifier) { @@ -680,7 +727,7 @@ t = gtk_button_new_from_stock(GTK_STOCK_SAVE); gtk_widget_show(t); gtk_container_add(GTK_CONTAINER(hb), t); - g_signal_connect(G_OBJECT(t), "clicked", G_CALLBACK(save_keys), (gpointer)self); + g_signal_connect(G_OBJECT(t), "clicked", G_CALLBACK(keys_save), (gpointer)self); t = gtk_button_new_from_stock(GTK_STOCK_CLOSE); gtk_widget_show(t); @@ -856,19 +903,23 @@ break; case CMD_SPU_NEXT: - gtk_xine_set_spu_channel(GTK_XINE(sinek.xine), gtk_xine_get_spu_channel(GTK_XINE(sinek.xine)) + 1); + g_object_get(G_OBJECT(sinek.xine), "spu_channel", &tmp, NULL); + g_object_set(G_OBJECT(sinek.xine), "spu_channel", tmp + 1, NULL); break; case CMD_SPU_PREVIOUS: - gtk_xine_set_spu_channel(GTK_XINE(sinek.xine), gtk_xine_get_spu_channel(GTK_XINE(sinek.xine)) - 1); + g_object_get(G_OBJECT(sinek.xine), "spu_channel", &tmp, NULL); + g_object_set(G_OBJECT(sinek.xine), "spu_channel", tmp - 1, NULL); break; case CMD_AUDIO_NEXT: - gtk_xine_set_audio_channel(GTK_XINE(sinek.xine), gtk_xine_get_audio_channel(GTK_XINE(sinek.xine)) + 1); + g_object_get(G_OBJECT(sinek.xine), "audio_channel", &tmp, NULL); + g_object_set(G_OBJECT(sinek.xine), "audio_channel", tmp + 1, NULL); break; case CMD_AUDIO_PREVIOUS: - gtk_xine_set_audio_channel(GTK_XINE(sinek.xine), gtk_xine_get_audio_channel(GTK_XINE(sinek.xine)) - 1); + g_object_get(G_OBJECT(sinek.xine), "audio_channel", &tmp, NULL); + g_object_set(G_OBJECT(sinek.xine), "audio_channel", tmp - 1, NULL); break; case CMD_ZOOM_IN: @@ -987,5 +1038,9 @@ case CMD_SET_MARK_9: g_object_get(G_OBJECT(sinek.xine), "length", &sinek.marks[cmd - CMD_SET_MARK_1 + 1], NULL); break; + + default: + g_fatal(_("Unknown key received, programmer error!\n")); + } } |
From: <dil...@us...> - 2003-02-18 02:05:53
|
Update of /cvsroot/sinek/sinek/src In directory sc8-pr-cvs1:/tmp/cvs-serv8290 Modified Files: sinek.c Log Message: button presses/clicks work in video window again. needs checking over, of course. Index: sinek.c =================================================================== RCS file: /cvsroot/sinek/sinek/src/sinek.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- sinek.c 17 Feb 2003 08:26:01 -0000 1.12 +++ sinek.c 18 Feb 2003 02:05:49 -0000 1.13 @@ -18,6 +18,35 @@ return TRUE; } +static gboolean cb_clicked (GtkWidget *widget, GdkEventButton *button, gpointer user_data) +{ + int vol; + + video_cursor(1); + sinek.osd_place = 0; + switch (button->button) { + case 3: + popup_pop(button->time); + break; + case 4: + g_object_get(G_OBJECT(sinek.xine), "volume", &vol, NULL); + g_object_set(G_OBJECT(sinek.xine), "volume", vol + 5, NULL); + break; + case 5: + g_object_get(G_OBJECT(sinek.xine), "volume", &vol, NULL); + g_object_set(G_OBJECT(sinek.xine), "volume", vol - 5, NULL); + break; + } + + return FALSE; +} + +static gboolean cb_key_press(GtkWidget *window, GdkEventKey *key, gpointer user_data) +{ + key_handle(key->keyval, key->state); + return FALSE; +} + void sinek_init(void) { GtkWidget *window, *xine; @@ -27,7 +56,10 @@ window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), _("Sinek Video Output")); + gtk_widget_add_events(window, GDK_BUTTON_PRESS_MASK); g_signal_connect(G_OBJECT(window), "delete-event", G_CALLBACK(cb_delete), NULL); + g_signal_connect(G_OBJECT(window), "button-press-event", G_CALLBACK(cb_clicked), NULL); + g_signal_connect(G_OBJECT(window), "key-press-event", G_CALLBACK(cb_key_press), NULL); gtk_container_add(GTK_CONTAINER(window), xine); gtk_widget_show(xine); sinek.videowin = window; @@ -39,12 +71,6 @@ gtk_xine_config_set(GTK_XINE(xine), "audio.driver", audio); /* video stuff */ -//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); - -//g_signal_connect(G_OBJECT(videowin), "clicked", G_CALLBACK(videowin_button_press), NULL); - 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); |
From: <dil...@us...> - 2003-02-17 11:08:40
|
Update of /cvsroot/sinek/sinek/src In directory sc8-pr-cvs1:/tmp/cvs-serv3866/src Modified Files: gtkxine.c gtkxine_x11.c Log Message: stop a few SEGVs Index: gtkxine.c =================================================================== RCS file: /cvsroot/sinek/sinek/src/gtkxine.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- gtkxine.c 17 Feb 2003 09:48:53 -0000 1.14 +++ gtkxine.c 17 Feb 2003 11:08:36 -0000 1.15 @@ -656,8 +656,8 @@ if (event->type == XINE_EVENT_UI_PLAYBACK_FINISHED) { gtk_xine_video_scrsaver_set (xine, TRUE); - xine_event_dispose_queue (xine->event_queue); - xine->event_queue = NULL; + //xine_event_dispose_queue (xine->event_queue); + //xine->event_queue = NULL; } } Index: gtkxine_x11.c =================================================================== RCS file: /cvsroot/sinek/sinek/src/gtkxine_x11.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- gtkxine_x11.c 17 Feb 2003 08:45:12 -0000 1.1 +++ gtkxine_x11.c 17 Feb 2003 11:08:37 -0000 1.2 @@ -121,7 +121,7 @@ case MotionNotify: case ButtonPress: case KeyPress: - send_input_event (xine, ev); + //send_input_event (xine, ev); break; case Expose: |
From: <dil...@us...> - 2003-02-17 09:48:57
|
Update of /cvsroot/sinek/sinek/include In directory sc8-pr-cvs1:/tmp/cvs-serv29321/include Modified Files: gtkxine.h Log Message: clean up some event crap Index: gtkxine.h =================================================================== RCS file: /cvsroot/sinek/sinek/include/gtkxine.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- gtkxine.h 17 Feb 2003 08:25:59 -0000 1.9 +++ gtkxine.h 17 Feb 2003 09:48:53 -0000 1.10 @@ -181,7 +181,6 @@ /** Audio and video drivers default to "auto". A value of "null" will cause ** them to not load. */ -typedef void (*gtk_xine_event_cb) (void *user_data, const GtkXineEvent *event); GType gtk_xine_get_type (void); GtkWidget* gtk_xine_new (const char *conffile); @@ -205,7 +204,6 @@ GtkXineStatus gtk_xine_get_status (GtkXine *xine); -void gtk_xine_event_listener (GtkXine *xine, gtk_xine_event_cb event_cb, void *user_data); void gtk_xine_event_send (GtkXine *xine, GtkXineEventType type, void *user_data); /* properties */ |
From: <dil...@us...> - 2003-02-17 09:48:56
|
Update of /cvsroot/sinek/sinek/src In directory sc8-pr-cvs1:/tmp/cvs-serv29321/src Modified Files: gtkxine.c main.c Log Message: clean up some event crap Index: gtkxine.c =================================================================== RCS file: /cvsroot/sinek/sinek/src/gtkxine.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- gtkxine.c 17 Feb 2003 08:26:01 -0000 1.13 +++ gtkxine.c 17 Feb 2003 09:48:53 -0000 1.14 @@ -517,15 +517,6 @@ return xine_get_status (xine->stream); } -void gtk_xine_event_listener (GtkXine *xine, gtk_xine_event_cb event_cb, void *user_data) -{ - xine_event_queue_t *eventq; - - eventq = xine_event_new_queue (xine->stream); - xine_event_create_listener_thread (eventq, (xine_event_listener_cb_t) event_cb, user_data); - /* XXX: dispose of queue, or keep it around for multiple regs? */ -} - void gtk_xine_event_send (GtkXine *xine, GtkXineEventType type, void *user_data) { xine_event_t event; @@ -659,6 +650,27 @@ return 1; } +static void gtkxine_event (void *user_data, const xine_event_t *event) +{ + GtkXine *xine = GTK_XINE (user_data); + + if (event->type == XINE_EVENT_UI_PLAYBACK_FINISHED) { + gtk_xine_video_scrsaver_set (xine, TRUE); + xine_event_dispose_queue (xine->event_queue); + xine->event_queue = NULL; + } +} + +static int gtk_xine_play (GtkXine *xine, int start_pos, int start_time) +{ + 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); + } + return xine_play (xine->stream, start_pos, start_time); +} + int gtk_xine_set_speed (GtkXine *xine, GtkXineSpeed speed) { if (speed == GTK_XINE_SPEED_STOP) { @@ -669,9 +681,8 @@ else if (xine->mrl[0] == '\0') return 0; else { - gtk_xine_video_scrsaver_set (xine, FALSE);/* TODO: only disable if has_video */ if (xine_get_status (xine->stream) != XINE_STATUS_PLAY) - xine_play (xine->stream, 0, 0); + gtk_xine_play (xine, 0, 0); xine_set_param (xine->stream, XINE_PARAM_SPEED, speed); return speed == xine_get_param (xine->stream, XINE_PARAM_SPEED); } @@ -679,14 +690,12 @@ int gtk_xine_set_position (GtkXine *xine, int position) { - gtk_xine_video_scrsaver_set (xine, FALSE); - return xine_play (xine->stream, position, 0); + return gtk_xine_play (xine, position, 0); } int gtk_xine_set_time (GtkXine *xine, int time) { - gtk_xine_video_scrsaver_set (xine, FALSE); - return xine_play (xine->stream, 0, time); + return gtk_xine_play (xine, 0, time); } static void disable_video_output (GtkXine *xine) Index: main.c =================================================================== RCS file: /cvsroot/sinek/sinek/src/main.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -d -r1.27 -r1.28 --- main.c 17 Feb 2003 08:26:01 -0000 1.27 +++ main.c 17 Feb 2003 09:48:53 -0000 1.28 @@ -13,9 +13,6 @@ struct sinek_globals sinek; -static int stream_finished = 0; - -static void event_listener(void *this, const GtkXineEvent *event); static gboolean second_update(gpointer data); #ifdef USE_GUILE @@ -60,7 +57,6 @@ control_update_slider(0, 0); popup_init(); - gtk_xine_event_listener(GTK_XINE(sinek.xine), event_listener, &sinek); pl_init(); g_timeout_add(500, (GSourceFunc)second_update, NULL); @@ -86,38 +82,34 @@ static gboolean second_update(gpointer data) { - if(stream_finished) - { - if(!guile_stop_hook()) - { - if(sinek.playing) - { - if(sinek.repeat_one) + static GtkXineSpeed last = GTK_XINE_SPEED_STOP; + GtkXineSpeed curr; + + g_object_get(G_OBJECT(sinek.xine), "speed", &curr, NULL); + if (curr == GTK_XINE_SPEED_STOP) { + if (last != GTK_XINE_SPEED_STOP && !guile_stop_hook()) { + if (sinek.playing) { + if (sinek.repeat_one) g_object_set(G_OBJECT(sinek.xine), "time", 0, NULL); else pl_next(); } } - stream_finished = 0; } - if(gtk_xine_get_status(GTK_XINE(sinek.xine)) == GTK_XINE_STATUS_PLAYING) - { - if(!sinek.seeking) - { + else { + if (!sinek.seeking) { int pos, length; - + 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); + if (sinek.osd_subtitles) + osd_update(); + if (++sinek.cursor_timer == 3) + video_cursor(0); } - return TRUE; -} + last = curr; -static void event_listener(void *this, const GtkXineEvent *event) -{ - if (event->type == GTK_XINE_EVENT_TYPE_PLAYBACK_FINISHED) - stream_finished = 1; + return TRUE; } |
From: <dil...@us...> - 2003-02-17 08:45:15
|
Update of /cvsroot/sinek/sinek/src In directory sc8-pr-cvs1:/tmp/cvs-serv31002/src Added Files: gtkxine_x11.c Log Message: x11-specific stuff for gtkxine, broken out into its own file --- NEW FILE: gtkxine_x11.c --- /* ** Sinek (Media Player) ** Copyright (c) 2002 Andres Salomon <dil...@vo...> ** ** This code is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License. ** ** $Id: gtkxine_x11.c,v 1.1 2003/02/17 08:45:12 dilinger Exp $ */ #include "gtkxine.h" #include "gtkxine_x11.h" #include <X11/Xlib.h> #include <X11/extensions/XTest.h> #include <X11/extensions/XShm.h> #include <X11/keysym.h> #include <gdk/gdkx.h> #include <pthread.h> #ifdef HAVE_CONFIG_H #include <config.h> #endif #include "i18n.h" struct gtk_xine_x11_visual_t { x11_visual_t vis; pthread_t event_thread; int complete; /* screensaver stuff */ int keycode; int have_xtest, disabled, timeout, interval; int prefer_blanking, allow_exposures; }; static void frame_output_cb (void *user_data, int vid_w, int vid_h, double vidp_aspect, int *dest_x, int *dest_y, int *dest_w, int *dest_h, double *dest_vidp_aspect, int *win_x, int *win_y) { GtkWidget *widget = (GtkWidget *) user_data; *win_x = widget->allocation.x; *win_y = widget->allocation.y; *dest_x = 0; *dest_y = 0; *dest_w = widget->allocation.width; *dest_h = widget->allocation.height; *dest_vidp_aspect = vidp_aspect; } static void dest_size_cb (void *user_data, int vid_w, int vid_h, double vidp_aspect, int *dest_w, int *dest_h, double *dest_vidp_aspect) { GtkWidget *widget = (GtkWidget *) user_data; *dest_w = widget->allocation.width; *dest_h = widget->allocation.height; *dest_vidp_aspect = vidp_aspect; } static int translate_point (GtkXine *xine, int x, int y, int *vid_x, int *vid_y) { x11_rectangle_t rect; rect.x = x; rect.y = y; rect.w = 0; rect.h = 0; if (xine_gui_send_vo_data (xine->stream, XINE_GUI_SEND_TRANSLATE_GUI_TO_VIDEO, (void *) &rect) != -1) { *vid_x = rect.x; *vid_y = rect.y; return 1; } return 0; } static int send_input_event (GtkXine *xine, XEvent *ev) { xine_event_t xine_event; xine_input_data_t xine_data; int x, y, ret = 0; switch (ev->type) { case MotionNotify: if (translate_point (xine, ((XMotionEvent *) ev)->x, ((XMotionEvent *) ev)->y, &x, &y)) { xine_event.type = XINE_EVENT_INPUT_MOUSE_MOVE; xine_data.button = 0; ret = 1; } break; case ButtonPress: if (((XButtonEvent *) ev)->button == 1 && translate_point (xine, ((XButtonEvent *) ev)->x, ((XButtonEvent *) ev)->y, &x, &y)) { xine_event.type = XINE_EVENT_INPUT_MOUSE_BUTTON; xine_data.button = 1; ret = 1; } break; } if (ret) { xine_event.stream = xine->stream; xine_event.data = (void *) &xine_data; xine_data.event = xine_event; xine_data.x = x; xine_data.y = y; xine_event_send (xine->stream, &xine_event); } return ret; } static void gtk_xine_event_handler (GtkXine *xine, XEvent *ev) { if (ev->type == ((struct gtk_xine_x11_visual_t *) xine->video_driver_data)->complete) { xine_gui_send_vo_data (xine->stream, XINE_GUI_SEND_COMPLETION_EVENT, ev); return; } switch (ev->type) { case MotionNotify: case ButtonPress: case KeyPress: send_input_event (xine, ev); break; case Expose: xine_gui_send_vo_data (xine->stream, XINE_GUI_SEND_EXPOSE_EVENT, (void *) ev); break; } } static void *gtk_xine_input_thread (void *data) { GtkXine *xine = GTK_XINE (data); x11_visual_t *vis = (x11_visual_t *) xine->video_driver_data; XEvent xev; pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL); pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL); while (xine->video_driver_data) { XNextEvent (vis->display, &xev); gtk_xine_event_handler ((GtkXine *) data, &xev); } return NULL; } #if HAVE_XTEST static gboolean fake_event (gpointer data) { struct gtk_xine_x11_visual_t *vis = (struct gtk_xine_x11_visual_t *) ((GtkXine *) data)->video_driver_data; if (vis->disabled) { XTestFakeKeyEvent (vis->vis.display, vis->keycode, True, CurrentTime); XTestFakeKeyEvent (vis->vis.display, vis->keycode, False, CurrentTime); } return TRUE; } #endif static void gtk_xine_x11_scrsaver_init (GtkXine *xine) { struct gtk_xine_x11_visual_t *vis = (struct gtk_xine_x11_visual_t *) xine->video_driver_data; #if HAVE_XTEST int a, b, c, d; vis->have_xtest = XTestQueryExtension (vis->vis.display, &a, &b, &c, &d); if (vis->have_xtest) { vis->keycode = XKeysymToKeycode (vis->vis.display, XK_Shift_L); g_timeout_add (15000, (GSourceFunc) fake_event, xine); } #else vis->have_xtest = 0; #endif } void gtk_xine_x11_video_init (GtkXine *xine) { struct gtk_xine_x11_visual_t *gvis; x11_visual_t *vis; g_return_if_fail (xine != NULL); if (!XInitThreads ()) g_error (_("XInitThreads() failed, your X library is not thread-safe!")); if (!g_thread_supported ()) g_thread_init (NULL); gvis = g_malloc (sizeof (*gvis)); xine->video_driver_data = (void *) gvis; vis = (x11_visual_t *) gvis; vis->display = XOpenDisplay (NULL); XLockDisplay (vis->display); vis->screen = DefaultScreen (vis->display); vis->d = GDK_WINDOW_XID (GTK_WIDGET (xine)->window); vis->user_data = (void *) xine; vis->dest_size_cb = dest_size_cb; vis->frame_output_cb = frame_output_cb; gvis->complete = 0; if (XShmQueryExtension (vis->display)) gvis->complete = XShmGetEventBase (vis->display) + ShmCompletion; XSelectInput (vis->display, vis->d, StructureNotifyMask | ExposureMask | ButtonPressMask | PointerMotionMask | KeyPressMask); gtk_xine_x11_scrsaver_init (xine); XUnlockDisplay (vis->display); pthread_create (&gvis->event_thread, NULL, gtk_xine_input_thread, (void *) xine); } void gtk_xine_x11_video_finalize (GtkXine *xine) { pthread_t thr; g_return_if_fail (xine != NULL); thr = ((struct gtk_xine_x11_visual_t *) xine->video_driver_data)->event_thread; g_free (xine->video_driver_data); xine->video_driver_data = NULL; pthread_cancel (thr); pthread_join (thr, NULL); } int gtk_xine_x11_video_scrsaver_set (GtkXine *xine, gboolean enable) { struct gtk_xine_x11_visual_t *vis = (struct gtk_xine_x11_visual_t *) xine->video_driver_data; if (enable && vis->disabled) { if (!vis->have_xtest) XSetScreenSaver (vis->vis.display, vis->timeout, vis->interval, vis->prefer_blanking, vis->allow_exposures); vis->disabled = 0; } else if (!enable && !vis->disabled) { if (!vis->have_xtest) { XGetScreenSaver (vis->vis.display, &vis->timeout, &vis->interval, &vis->prefer_blanking, &vis->allow_exposures); XSetScreenSaver (vis->vis.display, 0, 0, DontPreferBlanking, DontAllowExposures); } vis->disabled = 1; } return enable; } int gtk_xine_x11_video_visual_type (GtkXine *xine) { return XINE_VISUAL_TYPE_X11; } |
From: <dil...@us...> - 2003-02-17 08:45:13
|
Update of /cvsroot/sinek/sinek/include In directory sc8-pr-cvs1:/tmp/cvs-serv31002/include Added Files: gtkxine_x11.h Log Message: x11-specific stuff for gtkxine, broken out into its own file --- NEW FILE: gtkxine_x11.h --- /* ** Sinek (Media Player) ** Copyright (c) 2002 Andres Salomon <dil...@vo...> ** ** This code is free software; you can redistribute it and/or ** modify it under the terms of the GNU General Public License. ** ** $Id: gtkxine_x11.h,v 1.1 2003/02/17 08:45:05 dilinger Exp $ */ #ifndef GTK_XINE_X11_H #define GTK_XINE_X11_H #include "gtkxine.h" #ifdef HAVE_CONFIG_H #include <config.h> #endif #ifdef __cplusplus extern "C" { #endif #ifdef GTK_XINE_X11 #define gtk_xine_video_init(xine) gtk_xine_x11_video_init ((xine)) #define gtk_xine_video_finalize(xine) gtk_xine_x11_video_finalize ((xine)) #define gtk_xine_video_scrsaver_set(x, e) gtk_xine_x11_video_scrsaver_set ((x), (e)) #define gtk_xine_video_visual_type(xine) gtk_xine_x11_video_visual_type ((xine)) void gtk_xine_x11_video_init (GtkXine *xine); void gtk_xine_x11_video_finalize (GtkXine *xine); int gtk_xine_x11_video_scrsaver_set(GtkXine *xine, gboolean enable); int gtk_xine_x11_video_visual_type (GtkXine *xine); #endif /* GTK_XINE_X11 */ #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* GTK_XINE_X11_H */ |
From: <dil...@us...> - 2003-02-17 08:32:42
|
Update of /cvsroot/sinek/sinek/src In directory sc8-pr-cvs1:/tmp/cvs-serv24372/src Modified Files: Makefile.am Removed Files: scrsaver.c Log Message: o/~ i pledge my grievance to the flag o/~ Index: Makefile.am =================================================================== RCS file: /cvsroot/sinek/sinek/src/Makefile.am,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- Makefile.am 17 Feb 2003 08:25:59 -0000 1.13 +++ Makefile.am 17 Feb 2003 08:32:37 -0000 1.14 @@ -22,7 +22,6 @@ prefs.c \ video.c \ sinek.c \ - scrsaver.c \ control.c \ playlist.c \ keys.c \ --- scrsaver.c DELETED --- |
From: <dil...@us...> - 2003-02-17 08:32:40
|
Update of /cvsroot/sinek/sinek In directory sc8-pr-cvs1:/tmp/cvs-serv24372 Modified Files: ChangeLog Log Message: o/~ i pledge my grievance to the flag o/~ Index: ChangeLog =================================================================== RCS file: /cvsroot/sinek/sinek/ChangeLog,v retrieving revision 1.91 retrieving revision 1.92 diff -u -d -r1.91 -r1.92 --- ChangeLog 26 Jan 2003 20:49:04 -0000 1.91 +++ ChangeLog 17 Feb 2003 08:32:37 -0000 1.92 @@ -1,3 +1,7 @@ +2003-02-17 Andres: + * scrsaver.c: remove; this functionality now provided in gtkxine + widget. + 2003-01-26 Andres: * gtkxine.c: fix time returned by the get_{current_time,stream_length} functions; return seconds instead of milliseconds. |
From: <dil...@us...> - 2003-02-17 08:26:32
|
Update of /cvsroot/sinek/sinek/include In directory sc8-pr-cvs1:/tmp/cvs-serv23278/include Modified Files: common.h gtkxine.h Log Message: fixes all over the place Index: common.h =================================================================== RCS file: /cvsroot/sinek/sinek/include/common.h,v retrieving revision 1.50 retrieving revision 1.51 diff -u -d -r1.50 -r1.51 --- common.h 21 Jan 2003 04:52:48 -0000 1.50 +++ common.h 17 Feb 2003 08:25:57 -0000 1.51 @@ -123,9 +123,11 @@ enum video_modes { + VIDEO_NONE, VIDEO_WINDOW, + VIDEO_HIDDEN, VIDEO_BACKGROUND, - VIDEO_FULLSCREEN + VIDEO_FULLSCREEN, }; struct sinek_globals @@ -133,6 +135,7 @@ /* xine library */ GtkWidget *xine; GtkWidget *videowin; + enum video_modes video_mode; /* command line options */ char *audio_id; @@ -158,7 +161,6 @@ int depth; Window video_win; int vid_w, vid_h; - enum video_modes video_mode; double display_ratio; int marks[10]; @@ -186,17 +188,14 @@ char *text[5]; } subtitle_t; -GtkWidget *sinek_init(void); +void sinek_init(void); int control_build(GtkWidget **win); void control_update_slider(unsigned long cur, unsigned long total); void control_volume(int value); -void control_mrl(char *mrl); +void control_mrl(const char *mrl); -void video_show(void); -void video_hide(void); -int video_play(char *mrl); -void video_seek(int secs); +int video_play(const char *mrl); void video_toggle_fullscreen(void); void video_lift(GtkWidget *win); void video_scale(float factor); @@ -267,10 +266,6 @@ subtitle_t *subtitle_find(unsigned long msec); void subtitle_delete(void); int subtitle_build(GtkWidget **win); - -void scrsaver_init(void); -void scrsaver_enable(void); -void scrsaver_disable(void); #ifdef USE_GUILE void guile_init(void); Index: gtkxine.h =================================================================== RCS file: /cvsroot/sinek/sinek/include/gtkxine.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- gtkxine.h 19 Jan 2003 08:35:34 -0000 1.8 +++ gtkxine.h 17 Feb 2003 08:25:59 -0000 1.9 @@ -29,24 +29,40 @@ typedef struct _GtkXineClass GtkXineClass; typedef enum _GtkXineConfigType GtkXineConfigType; typedef enum _GtkXineStatus GtkXineStatus; -typedef enum _GtkXinePlaybackSpeed GtkXinePlaybackSpeed; -typedef enum _GtkXineVisualType GtkXineVisualType; typedef enum _GtkXineAspectRatio GtkXineAspectRatio; typedef enum _GtkXinePalette GtkXinePalette; typedef enum _GtkXineEventType GtkXineEventType; typedef struct _GtkXineEvent GtkXineEvent; typedef enum _GtkXineVersion GtkXineVersion; +struct _GtkXine +{ + GtkDrawingArea parent; + + /* private */ + xine_t *xine; + xine_audio_port_t *ao_driver; + xine_video_port_t *vo_driver; + xine_stream_t *stream; + xine_event_queue_t *event_queue; + xine_osd_t *osd; + + void *video_driver_data; + + /* properties */ + gchar *mrl; + gchar *video_driver; + gchar *audio_driver; + gchar *conf; +}; + struct _GtkXineClass { - GtkWidgetClass parent; - - void (*reserved1) (void); - void (*reserved2) (void); - void (*reserved3) (void); - void (*reserved4) (void); + GtkDrawingAreaClass parent; }; +/* properties */ + enum _GtkXineStatus { GTK_XINE_STATUS_IDLE = XINE_STATUS_IDLE, @@ -66,15 +82,16 @@ GTK_XINE_CONFIG_TYPE_BOOL, }; -enum _GtkXinePlaybackSpeed +typedef enum { - GTK_XINE_PLAYBACK_SPEED_PAUSE = XINE_SPEED_PAUSE, - GTK_XINE_PLAYBACK_SPEED_QUARTER_SLOW = XINE_SPEED_SLOW_4, - GTK_XINE_PLAYBACK_SPEED_HALF_SLOW = XINE_SPEED_SLOW_2, - GTK_XINE_PLAYBACK_SPEED_NORMAL = XINE_SPEED_NORMAL, - GTK_XINE_PLAYBACK_SPEED_TWICE_FAST = XINE_SPEED_FAST_2, - GTK_XINE_PLAYBACK_SPEED_FOUR_FAST = XINE_SPEED_FAST_4, -}; + GTK_XINE_SPEED_PAUSE = XINE_SPEED_PAUSE, + GTK_XINE_SPEED_SLOW_4 = XINE_SPEED_SLOW_4, + GTK_XINE_SPEED_SLOW_2 = XINE_SPEED_SLOW_2, + GTK_XINE_SPEED_NORMAL = XINE_SPEED_NORMAL, + GTK_XINE_SPEED_FAST_2 = XINE_SPEED_FAST_2, + GTK_XINE_SPEED_FAST_4 = XINE_SPEED_FAST_4, + GTK_XINE_SPEED_STOP +} GtkXineSpeed; enum _GtkXineAspectRatio { @@ -146,20 +163,6 @@ GTK_XINE_EVENT_NUMBER_10_ADD = XINE_EVENT_INPUT_NUMBER_10_ADD, }; -#if 0 -// for now, only support X11 -enum _GtkXineVisualType -{ - GTK_XINE_VISUAL_TYPE_NONE, - GTK_XINE_VISUAL_TYPE_X11, /* you'll most likely want this */ - GTK_XINE_VISUAL_TYPE_AA, - GTK_XINE_VISUAL_TYPE_FB, - GTK_XINE_VISUAL_TYPE_GTK, - GTK_XINE_VISUAL_TYPE_DFB, - GTK_XINE_VISUAL_TYPE_PM, -}; -#endif - struct _GtkXineEvent { GtkXineEventType type; @@ -180,17 +183,10 @@ */ typedef void (*gtk_xine_event_cb) (void *user_data, const GtkXineEvent *event); -GtkType gtk_xine_get_type (void); -GtkWidget* gtk_xine_new (void); - -const char *gtk_xine_set_audio_driver (GtkXine *xine, const char *name); -const char *gtk_xine_set_video_driver (GtkXine *xine, const char *name, GtkWidget *videowin); -/*const char *gtk_xine_set_fb_video_driver (GtkXine *xine, const char *name);*/ - -/* config file */ +GType gtk_xine_get_type (void); +GtkWidget* gtk_xine_new (const char *conffile); -int gtk_xine_config_load (GtkXine *xine, const char *conffile); -int gtk_xine_config_save (GtkXine *xine, const char *conffile); +/* config (deprecated, glib has much better alternatives) */ const char *gtk_xine_config_register_string (GtkXine *xine, const char *key, const char *default_value); int gtk_xine_config_register_range (GtkXine *xine, const char *key, int default_value, int min, int max); @@ -207,32 +203,51 @@ /* media handling */ -int gtk_xine_load (GtkXine *xine, const char *mrl); -const char* gtk_xine_get_current_mrl (GtkXine *xine); -int gtk_xine_play (GtkXine *xine); -int gtk_xine_play_from_position (GtkXine *xine, int start); -int gtk_xine_play_from_time (GtkXine *xine, time_t start); -int gtk_xine_stop (GtkXine *xine); - GtkXineStatus gtk_xine_get_status (GtkXine *xine); void gtk_xine_event_listener (GtkXine *xine, gtk_xine_event_cb event_cb, void *user_data); void gtk_xine_event_send (GtkXine *xine, GtkXineEventType type, void *user_data); -uint32_t gtk_xine_stream_has_audio (GtkXine *xine); -uint32_t gtk_xine_stream_has_video (GtkXine *xine); +/* properties */ -/* stream parameters */ +const char *gtk_xine_get_mrl (GtkXine *xine); +GtkXineSpeed gtk_xine_get_speed (GtkXine *xine); +int gtk_xine_get_position (GtkXine *xine); +int gtk_xine_get_time (GtkXine *xine); +int gtk_xine_get_length (GtkXine *xine); -GtkXinePlaybackSpeed gtk_xine_set_speed (GtkXine *xine, GtkXinePlaybackSpeed speed); -GtkXinePlaybackSpeed gtk_xine_get_speed (GtkXine *xine); +const char *gtk_xine_get_video_driver (GtkXine *xine); +int gtk_xine_get_spu_channel (GtkXine *xine); +gboolean gtk_xine_get_has_video (GtkXine *xine); -int gtk_xine_set_av_offset (GtkXine *xine, int avoffset); -int gtk_xine_get_av_offset (GtkXine *xine); -int gtk_xine_set_audio_channel (GtkXine *xine, int channel); +const char *gtk_xine_get_audio_driver (GtkXine *xine); int gtk_xine_get_audio_channel (GtkXine *xine); +int gtk_xine_get_volume (GtkXine *xine); +gboolean gtk_xine_get_mute (GtkXine *xine); +gboolean gtk_xine_get_has_audio (GtkXine *xine); + +const char *gtk_xine_get_conf (GtkXine *xine); +int gtk_xine_get_version_major (GtkXine *xine); +int gtk_xine_get_version_minor (GtkXine *xine); +int gtk_xine_get_version_sub (GtkXine *xine); + +int gtk_xine_set_mrl (GtkXine *xine, const char *mrl); +int gtk_xine_set_speed (GtkXine *xine, GtkXineSpeed speed); +int gtk_xine_set_position (GtkXine *xine, int position); +int gtk_xine_set_time (GtkXine *xine, int time); + +int gtk_xine_set_video_driver (GtkXine *xine, const char *driver); int gtk_xine_set_spu_channel (GtkXine *xine, int channel); -int gtk_xine_get_spu_channel (GtkXine *xine); + +int gtk_xine_set_audio_driver (GtkXine *xine, const char *driver); +int gtk_xine_set_audio_channel (GtkXine *xine, int channel); +int gtk_xine_set_volume (GtkXine *xine, int volume); +int gtk_xine_set_mute (GtkXine *xine, gboolean mute); + +/* stream parameters */ + +int gtk_xine_set_av_offset (GtkXine *xine, int avoffset); +int gtk_xine_get_av_offset (GtkXine *xine); int gtk_xine_set_video_channel (GtkXine *xine, int channel); int gtk_xine_get_video_channel (GtkXine *xine); int gtk_xine_set_video_contrast (GtkXine *xine, int contrast); @@ -250,13 +265,8 @@ int gtk_xine_get_video_win_size (GtkXine *xine, int *x, int *y, int *width, int *height); -int gtk_xine_set_volume (GtkXine *xine, int volume); -int gtk_xine_get_volume (GtkXine *xine); #define gtk_xine_adjust_volume(x, l) gtk_xine_set_volume ((x), gtk_xine_get_volume ((x)) + l) -int gtk_xine_set_mute (GtkXine *xine, int muted); -int gtk_xine_get_mute (GtkXine *xine); - GtkXineAspectRatio gtk_xine_set_aspect_ratio (GtkXine *xine, GtkXineAspectRatio ratio); GtkXineAspectRatio gtk_xine_get_aspect_ratio (GtkXine *xine); @@ -264,24 +274,14 @@ int gtk_xine_get_deinterlace (GtkXine *xine); int gtk_xine_set_tvmode (GtkXine *xine, int tvmode); int gtk_xine_get_tvmode (GtkXine *xine); -int gtk_xine_set_fullscreen (GtkXine *xine, int fullscreen); -int gtk_xine_get_fullscreen (GtkXine *xine); /* XXX: get_{audio,spu}_lang */ -int gtk_xine_get_current_position (GtkXine *xine); -time_t gtk_xine_get_current_time (GtkXine *xine); -time_t gtk_xine_get_stream_length (GtkXine *xine); - void gtk_xine_eject (GtkXine *xine); int gtk_xine_is_seekable (GtkXine *xine); void gtk_xine_send_videowin_visible (GtkXine *xine, int visible); -int gtk_xine_get_major_version (GtkXine *xine); -int gtk_xine_get_minor_version (GtkXine *xine); -int gtk_xine_get_sub_version (GtkXine *xine); - int gtk_xine_osd_reset (GtkXine *xine, int x, int y, int width, int height, const char *font, int font_size, GtkXinePalette palette); int gtk_xine_osd_set_position (GtkXine *xine, int x, int y); @@ -296,8 +296,17 @@ char** gtk_xine_get_autoplay_input_plugin_ids (GtkXine *xine); char** gtk_xine_get_autoplay_mrls (GtkXine *xine, const char *id, int *count); +/** + * Deprecated. + */ + +static inline void gtk_xine_config_save (GtkXine *xine) +{ + xine_config_save (xine->xine, xine->conf); +} + #ifdef __cplusplus } -#endif +#endif /* __cplusplus */ -#endif +#endif /* GTK_XINE_H */ |
From: <dil...@us...> - 2003-02-17 08:26:30
|
Update of /cvsroot/sinek/sinek In directory sc8-pr-cvs1:/tmp/cvs-serv23278 Modified Files: configure.ac Log Message: fixes all over the place Index: configure.ac =================================================================== RCS file: /cvsroot/sinek/sinek/configure.ac,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- configure.ac 23 Jan 2003 08:05:12 -0000 1.2 +++ configure.ac 17 Feb 2003 08:25:56 -0000 1.3 @@ -39,13 +39,18 @@ dnl Checks for libraries dnl AM_PATH_GLIB_2_0(2.0.0,, AC_MSG_ERROR(*** glib-2.0 or greater is required ***)) -AM_PATH_GTK_2_0(2.0.0,, AC_MSG_ERROR(*** gtk+-2.0 or greater is required ***)) +AM_PATH_GTK_2_0(2.0.0,, AC_MSG_ERROR(*** gtk+-2.0 or greater is required ***), "gthread") AM_PATH_XINE(1.0.0,, AC_MSG_ERROR(*** You should install xine-lib first ***)) XINE_LOCALEDIR="`echo $xine_locale_dir|sed -e 's/\^'$escapedprefix/'\${prefix}'/`" AC_SUBST(XINE_LOCALEDIR) AC_DEFINE_UNQUOTED(XINE_LOCALEDIR, "$XINE_LOCALEDIR", [Path where catalog files will be]) AC_PATH_X +if test "$no_x" != "yes"; then + AC_DEFINE(GTK_XINE_X11, 1, [Define this is you want to compile with x11 support]) +fi +AM_CONDITIONAL(DO_X11, [test "$no_x" != "yes"]) + XTEST_LIBS="" AC_CHECK_LIB(Xtst, XTestFakeKeyEvent, XTEST_LIBS="-lXtst -L$x_libraries" @@ -62,7 +67,6 @@ fi AM_CONDITIONAL(DO_GUILE, test "x$guile" = "xyes") - dnl dnl Checks for functions |
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; |
From: <dil...@us...> - 2003-01-26 20:49:09
|
Update of /cvsroot/sinek/sinek/src In directory sc8-pr-cvs1:/tmp/cvs-serv4963/src Modified Files: gtkxine.c main.c Log Message: This should fix that annoying time display problem Index: gtkxine.c =================================================================== RCS file: /cvsroot/sinek/sinek/src/gtkxine.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- gtkxine.c 21 Jan 2003 04:52:49 -0000 1.11 +++ gtkxine.c 26 Jan 2003 20:49:05 -0000 1.12 @@ -909,7 +909,7 @@ return 0; if (xine_get_pos_length (xine->stream, &a, &time, &b)) - return (time_t) time; + return (time_t) time / 1000; return 0; } @@ -921,7 +921,7 @@ return 0; if (xine_get_pos_length (xine->stream, &a, &b, &len)) - return (time_t) len; + return (time_t) len / 1000; return 0; } Index: main.c =================================================================== RCS file: /cvsroot/sinek/sinek/src/main.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- main.c 21 Jan 2003 04:52:49 -0000 1.25 +++ main.c 26 Jan 2003 20:49:05 -0000 1.26 @@ -116,7 +116,7 @@ length = gtk_xine_get_stream_length(GTK_XINE(sinek.xine)); if (length) { - pos = gtk_xine_get_current_position(GTK_XINE(sinek.xine)); + pos = gtk_xine_get_current_time(GTK_XINE(sinek.xine)); control_update_slider(pos, length); } } |
From: <dil...@us...> - 2003-01-26 20:49:08
|
Update of /cvsroot/sinek/sinek In directory sc8-pr-cvs1:/tmp/cvs-serv4963 Modified Files: ChangeLog Log Message: This should fix that annoying time display problem Index: ChangeLog =================================================================== RCS file: /cvsroot/sinek/sinek/ChangeLog,v retrieving revision 1.90 retrieving revision 1.91 diff -u -d -r1.90 -r1.91 --- ChangeLog 23 Jan 2003 06:31:25 -0000 1.90 +++ ChangeLog 26 Jan 2003 20:49:04 -0000 1.91 @@ -1,3 +1,7 @@ +2003-01-26 Andres: + * gtkxine.c: fix time returned by the get_{current_time,stream_length} + functions; return seconds instead of milliseconds. + 2003-01-23 Andres * autogen.sh: use the same autogen.sh that I use my other projects. * autogen.sh: fix lack of m4/ directory inclusion by aclocal |
From: <dil...@us...> - 2003-01-23 08:13:12
|
Update of /cvsroot/sinek/sinek/po In directory sc8-pr-cvs1:/tmp/cvs-serv15586/po Modified Files: POTFILES.in Log Message: sadly, audio.c is no more Index: POTFILES.in =================================================================== RCS file: /cvsroot/sinek/sinek/po/POTFILES.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- POTFILES.in 3 Jan 2002 22:51:22 -0000 1.1.1.1 +++ POTFILES.in 23 Jan 2003 08:13:06 -0000 1.2 @@ -2,7 +2,6 @@ # head -3 po/POTFILES.in > /tmp/POTFILES.in && grep -l '[^A-Za-z_]_(' src/*.[chy] >> /tmp/POTFILES.in && cp /tmp/POTFILES.in po/ src/about.c -src/audio.c src/control.c src/keys.c src/main.c |
From: <dil...@us...> - 2003-01-23 08:12:10
|
Update of /cvsroot/sinek/sinek/src In directory sc8-pr-cvs1:/tmp/cvs-serv15370/src Modified Files: Makefile.am Log Message: heed automake's warnings about overriding CFLAGS Index: Makefile.am =================================================================== RCS file: /cvsroot/sinek/sinek/src/Makefile.am,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Makefile.am 15 Jan 2003 07:08:23 -0000 1.11 +++ Makefile.am 23 Jan 2003 08:12:06 -0000 1.12 @@ -3,7 +3,7 @@ ## INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/pixmaps -CFLAGS = @CFLAGS@ $(XINE_CFLAGS) $(GTK_CFLAGS) $(GUILE_CFLAGS) $(INTLDIR) +AM_CFLAGS = @CFLAGS@ $(XINE_CFLAGS) $(GTK_CFLAGS) $(GUILE_CFLAGS) $(INTLDIR) if DO_GUILE guile_c = guile.c |
From: <dil...@us...> - 2003-01-23 08:11:51
|
Update of /cvsroot/sinek/sinek In directory sc8-pr-cvs1:/tmp/cvs-serv15295 Modified Files: Makefile.am Log Message: acconfig.h is gone Index: Makefile.am =================================================================== RCS file: /cvsroot/sinek/sinek/Makefile.am,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile.am 9 Feb 2002 20:54:33 -0000 1.4 +++ Makefile.am 23 Jan 2003 08:11:47 -0000 1.5 @@ -4,7 +4,7 @@ SUBDIRS = po m4 pixmaps include intl src -EXTRA_DIST = sinek.desktop acconfig.h\ +EXTRA_DIST = sinek.desktop \ sinek.spec \ debian/changelog debian/control debian/copyright \ debian/dirs debian/docs debian/menu debian/rules \ |
From: <dil...@us...> - 2003-01-23 08:05:15
|
Update of /cvsroot/sinek/sinek In directory sc8-pr-cvs1:/tmp/cvs-serv13535 Modified Files: configure.ac Log Message: updates Index: configure.ac =================================================================== RCS file: /cvsroot/sinek/sinek/configure.ac,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- configure.ac 23 Jan 2003 06:31:25 -0000 1.1 +++ configure.ac 23 Jan 2003 08:05:12 -0000 1.2 @@ -1,7 +1,7 @@ -AC_INIT(src/main.c) -AM_CONFIG_HEADER(include/config.h) - -AM_INIT_AUTOMAKE(sinek,0.8) +AC_INIT(sinek, 0.8, [sin...@li...]) +AM_INIT_AUTOMAKE +AC_CONFIG_HEADERS(include/config.h) +AC_CONFIG_SRCDIR(src/main.c) dnl Checks for programs AC_PROG_CC @@ -58,7 +58,8 @@ [ --disable-guile disable use of guile scripting], guile=$enableval, guile=yes) if test "$guile" = yes; then - AM_PATH_GUILE(lala, AC_DEFINE(USE_GUILE,1,[Define this if you have GUILE installed]), [guile=no]) + GUILE_FLAGS(lala, AC_DEFINE(USE_GUILE,1,[Define this is you have GUILE installed]), [guile=no]) + fi AM_CONDITIONAL(DO_GUILE, test "x$guile" = "xyes") |