1 diff -urNd gxine-0.4.1/ChangeLog gxine-0.4.1.new/ChangeLog
2 --- gxine-0.4.1/ChangeLog 2004-12-15 23:28:03.000000000 +0000
3 +++ gxine-0.4.1.new/ChangeLog 2005-04-11 22:54:10.033876296 +0100
6 + Chris Lord <cwiiis@handhelds.org>
7 + * Disabled building of the mozilla plug-in, and removed dependency on libXaw
8 + * Use GTK stock icons for as many controls as possible and replace volume
9 + xpms with pngs from rhythmbox.
12 + * Add progress display in Stream info menu (now located in the File menu)
13 + * Change toolbar to left-click rather than middle-click in full-screen
14 + * Toolbar renders at minimum size, so it always looks correct in full-screen
15 + * Disable splash screen
16 + * Move audio stream switcher to Edit menu
17 + * Move Up/Down buttons in playlist dialog to a new row (for low-res display)
18 + * Clear playlist on Open from main window
19 + * Other miscellaneous interface-related changes...
23 * Require at least GTK+ 2.4 and GLib 2.4. (I can't test 2.2.)
24 diff -urNd gxine-0.4.1/configure.ac gxine-0.4.1.new/configure.ac
25 --- gxine-0.4.1/configure.ac 2004-12-15 04:37:01.000000000 +0000
26 +++ gxine-0.4.1.new/configure.ac 2005-04-11 04:43:15.000000000 +0100
30 dnl ---------------------------------------------
31 -dnl Check for Xaw headers
32 -dnl ---------------------------------------------
33 -AC_CHECK_HEADER(X11/Xaw/Form.h,,
34 - [AC_MSG_ERROR([you need to install libxaw header files (-dev package)])])
36 -dnl ---------------------------------------------
38 dnl ---------------------------------------------
39 PKG_CHECK_MODULES(GLIB2, glib-2.0 >= 2.4.0)
41 AC_DEFINE_UNQUOTED(GXINE_PIXMAPDIR,"$GXINE_PIXMAPPATH",[where to install pixmaps])
42 AC_SUBST(GXINE_PIXMAPPATH)
44 +GXINE_ICONDIR="$datadir/pixmaps"
45 +eval GXINE_ICONPATH=`eval echo "$GXINE_ICONDIR"`
46 +AC_DEFINE_UNQUOTED(GXINE_ICONDIR,"$GXINE_ICONPATH",[where to install desktop icons])
47 +AC_SUBST(GXINE_ICONPATH)
49 GXINE_MISCDIR="$datadir/gxine"
50 eval GXINE_MISCPATH=`eval echo "$GXINE_MISCDIR"`
51 AC_DEFINE_UNQUOTED(GXINE_MISCDIR,"$GXINE_MISCPATH",[where to install misc files (e.g. sample mediamarks)])
54 src/spidermonkey/Makefile
55 src/spidermonkey/fdlibm/Makefile
56 -browser-plugin/Makefile
60 diff -urNd gxine-0.4.1/Makefile.am gxine-0.4.1.new/Makefile.am
61 --- gxine-0.4.1/Makefile.am 2004-12-14 21:48:24.000000000 +0000
62 +++ gxine-0.4.1.new/Makefile.am 2005-04-11 04:45:37.000000000 +0100
64 -SUBDIRS = m4 pixmaps include src doc browser-plugin misc po
65 +SUBDIRS = m4 pixmaps include src doc misc po
67 #DEB_FILES = debian/rules debian/changelog debian/control debian/copyright debian/README.Debian debian/menu
68 EXTRA_DIST = config.rpath gxine.desktop autogen.sh @DEPCOMP@
69 diff -urNd gxine-0.4.1/pixmaps/Makefile.am gxine-0.4.1.new/pixmaps/Makefile.am
70 --- gxine-0.4.1/pixmaps/Makefile.am 2004-12-17 02:59:48.000000000 +0000
71 +++ gxine-0.4.1.new/pixmaps/Makefile.am 2005-04-11 14:02:01.000000000 +0100
73 EXTRA_DIST = fast_forward.xpm \
97 + rhythmbox-volume-max.png \
98 + rhythmbox-volume-medium.png \
99 + rhythmbox-volume-min.png \
100 + rhythmbox-volume-zero.png \
110 pixmapdir = $(GXINE_PIXMAPPATH)
111 -pixmap_DATA = gxine-logo.png gxine-icon.xpm wizards.png splash.png
112 +pixmap_DATA = wizards.png splash.png rhythmbox-volume-max.png \
113 + rhythmbox-volume-medium.png rhythmbox-volume-min.png \
114 + rhythmbox-volume-zero.png
116 +icondir = $(GXINE_ICONPATH)
117 +icon_DATA = gxine-logo.png
119 datadir = $(GXINE_LOGOPATH)
121 Binary files gxine-0.4.1/pixmaps/rhythmbox-volume-max.png and gxine-0.4.1.new/pixmaps/rhythmbox-volume-max.png differ
122 Binary files gxine-0.4.1/pixmaps/rhythmbox-volume-medium.png and gxine-0.4.1.new/pixmaps/rhythmbox-volume-medium.png differ
123 Binary files gxine-0.4.1/pixmaps/rhythmbox-volume-min.png and gxine-0.4.1.new/pixmaps/rhythmbox-volume-min.png differ
124 Binary files gxine-0.4.1/pixmaps/rhythmbox-volume-zero.png and gxine-0.4.1.new/pixmaps/rhythmbox-volume-zero.png differ
125 diff -urNd gxine-0.4.1/src/globals.h gxine-0.4.1.new/src/globals.h
126 --- gxine-0.4.1/src/globals.h 2004-12-11 00:40:18.000000000 +0000
127 +++ gxine-0.4.1.new/src/globals.h 2005-04-11 22:56:13.042176192 +0100
129 extern char *video_driver_id;
130 extern xine_audio_port_t *audio_port;
131 extern xine_video_port_t *video_port;
132 +extern GtkLabel *time_label;
134 #define MAX_MRL_LEN 1024
136 diff -urNd gxine-0.4.1/src/key_events.c gxine-0.4.1.new/src/key_events.c
137 --- gxine-0.4.1/src/key_events.c 2004-12-17 00:32:59.000000000 +0000
138 +++ gxine-0.4.1.new/src/key_events.c 2005-04-11 22:21:19.000000000 +0100
140 gtk_menu_popup (GTK_MENU(popup_menu), NULL, NULL, NULL, NULL, 0,
141 gtk_get_current_event_time ());
143 - case GDK_Pointer_Button2:
144 + case GDK_Pointer_Button1:
145 if (gtk_video_is_fullscreen (GTK_VIDEO(gtv)))
146 ui_toolbar_toggle ();
148 diff -urNd gxine-0.4.1/src/main.c gxine-0.4.1.new/src/main.c
149 --- gxine-0.4.1/src/main.c 2004-12-14 23:52:37.000000000 +0000
150 +++ gxine-0.4.1.new/src/main.c 2005-04-11 14:20:30.000000000 +0100
152 * a splash screen for the impatient
156 +/* splash_show ();*/
159 * init xine, set up skript engine, main window
162 gdk_threads_enter ();
164 - gtk_window_set_default_icon (load_icon ("gxine-logo.png"));
165 + gtk_window_set_default_icon (load_icon (GXINE_ICONPATH "/gxine-logo.png"));
173 - gtk_widget_destroy (splash);
174 +/* gtk_widget_destroy (splash);*/
177 * wizards (first run only)
178 diff -urNd gxine-0.4.1/src/Makefile.am gxine-0.4.1.new/src/Makefile.am
179 --- gxine-0.4.1/src/Makefile.am 2004-12-15 03:52:43.000000000 +0000
180 +++ gxine-0.4.1.new/src/Makefile.am 2005-04-11 13:48:19.000000000 +0100
182 INCLUDES = -I../include -I$(top_srcdir)/include -I$(includedir) \
183 -I$(top_srcdir)/pixmaps $(LIRC_INCLUDE)
185 -AM_CFLAGS = $(XINE_CFLAGS) @GTK2_CFLAGS@ @GTHREAD2_CFLAGS@ -DLOCALEDIR=\"$(localedir)\"
186 +AM_CFLAGS = $(XINE_CFLAGS) @GTK2_CFLAGS@ @GTHREAD2_CFLAGS@ -DLOCALEDIR=\"$(localedir)\" -DGXINE_PIXMAPPATH=\"@GXINE_PIXMAPPATH@\" -DGXINE_ICONPATH=\"@GXINE_ICONPATH@\"
189 bin_PROGRAMS = gxine gxine_client
198 diff -urNd gxine-0.4.1/src/menu.c gxine-0.4.1.new/src/menu.c
199 --- gxine-0.4.1/src/menu.c 2004-12-15 19:23:19.000000000 +0000
200 +++ gxine-0.4.1.new/src/menu.c 2005-04-11 20:20:52.000000000 +0100
203 v_engine_exec ("set_video_size (%d);", NULL, NULL, action);
207 static void zoom_in_cb(void) {
208 engine_exec ("set_zoom (get_zoom()+5);", NULL, NULL);
211 static void zoom_100_cb(void) {
212 engine_exec ("set_zoom (100);", NULL, NULL);
216 static void aspect_cb(gpointer data, guint action, GtkWidget *widget)
218 v_engine_exec ("set_aspect (%d);", NULL, NULL, action);
220 engine_exec ("settings_show ();", NULL, NULL);
223 +static void audio_cb (gpointer data, guint action, GtkWidget *widget)
225 + if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)))
226 + v_engine_exec ("set_chan (%d);", NULL, NULL, action);
229 static void sub_cb (gpointer data, guint action, GtkWidget *widget)
231 if (gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget)))
232 @@ -363,29 +369,43 @@
233 { N_("/File/_Open..."), "<control>O", open_cb, 0, STOCK(OPEN) },
234 { N_("/File/Open _MRL..."), "<control>M", open_mrl_cb, 0, NULL },
235 { N_("/File/Play_list..."), NULL, playlist_cb, 0, NULL },
236 - { "/File/sep0", NULL, NULL, 0, "<Separator>" },
237 - { N_("/File/_Preferences..."), NULL, preferences_cb, 0, STOCK(PREFERENCES) },
238 - { N_("/File/_Keybindings..."), NULL, keybindings_cb, 0, NULL },
239 + { N_("/File/Play _disc"), NULL, NULL, 0, "<Branch>" },
240 { "/File/sep1", NULL, NULL, 0, "<Separator>" },
241 + { N_("/File/Stream _Info..."), NULL, stream_info_cb, 0, NULL },
242 { "/File/sep2", NULL, NULL, 0, "<Separator>" },
243 - { N_("/File/_Snapshot..."), "<control>S", snapshot_cb, 0, NULL },
244 - { "/File/sep3", NULL, NULL, 0, "<Separator>" },
245 { N_("/File/_Quit"), "<control>Q", exit_cb, 0, STOCK(QUIT) },
246 + { N_("/_Edit"), NULL, NULL, 0, "<Branch>" },
247 + { N_("/Edit/_Preferences..."), NULL, preferences_cb, 0, STOCK(PREFERENCES) },
248 + { N_("/Edit/_Keybindings..."), NULL, keybindings_cb, 0, NULL },
249 + { "/Edit/sep1", NULL, NULL, 0, "<Separator>" },
250 + { N_("/Edit/A\\/V _settings..."), NULL, settings_cb, 0, NULL },
251 + { N_("/Edit/_Audio"), NULL, NULL, 0, "<Branch>" },
252 + { N_("/Edit/Audio/_Auto"), NULL, audio_cb, -1, "<RadioItem>"},
253 + { N_("/Edit/Audio/_None"), NULL, audio_cb, -2, "/Edit/Audio/Auto"},
254 + { N_("/Edit/Audio/Channel _0"), NULL, audio_cb, 0, "/Edit/Audio/Auto"},
255 + { N_("/Edit/Audio/Channel _1"), NULL, audio_cb, 1, "/Edit/Audio/Auto"},
256 + { N_("/Edit/Audio/Channel _2"), NULL, audio_cb, 2, "/Edit/Audio/Auto"},
257 + { N_("/Edit/Audio/Channel _3"), NULL, audio_cb, 3, "/Edit/Audio/Auto"},
258 + { N_("/Edit/Audio/Channel _4"), NULL, audio_cb, 4, "/Edit/Audio/Auto"},
259 + { N_("/Edit/Audio/Channel _5"), NULL, audio_cb, 5, "/Edit/Audio/Auto"},
260 + { N_("/Edit/Audio/Channel _6"), NULL, audio_cb, 6, "/Edit/Audio/Auto"},
261 + { N_("/Edit/Audio/Channel _7"), NULL, audio_cb, 7, "/Edit/Audio/Auto"},
262 { N_("/_View"), NULL, NULL, 0, "<Branch>" },
263 { N_("/View/_Fullscreen mode"), "<control>F", fullscreen_cb, 0, "<CheckItem>" },
264 { N_("/View/Fullscreen _toolbar"), NULL, NULL, 0, "<Branch>" },
265 { N_("/View/Fullscreen toolbar/_Visible"), NULL, tbar_toggle_cb, 0, "<CheckItem>" },
266 + { N_("/View/_Snapshot..."), "<control>S", snapshot_cb, 0, NULL },
267 { N_("/View/Fullscreen toolbar/At _top"), NULL, tbar_position_cb, 1, "<RadioItem>" },
268 { N_("/View/Fullscreen toolbar/At _bottom"), NULL, tbar_position_cb, 0, "/View/Fullscreen toolbar/At top" },
269 { "/View/sep3", NULL, NULL, 0, "<Separator>" },
270 - { N_("/View/_50%"), NULL, factor_cb, 50, NULL },
271 - { N_("/View/_100%"), NULL, factor_cb, 100, NULL },
272 - { N_("/View/_200%"), NULL, factor_cb, 200, NULL },
273 - { "/View/sep4", NULL, NULL, 0, "<Separator>" },
274 + { N_("/View/_Zoom"), NULL, NULL, 0, "<Branch>" },
275 + { N_("/View/Zoom/_50%"), NULL, factor_cb, 50, NULL },
276 + { N_("/View/Zoom/_100%"), NULL, factor_cb, 100, NULL },
277 + { N_("/View/Zoom/_200%"), NULL, factor_cb, 200, NULL },
278 +/* The following settings don't work anyway...
279 { N_("/View/Zoom _in"), NULL, zoom_in_cb, 0, STOCK(ZOOM_IN) },
280 { N_("/View/Zoom _out"), NULL, zoom_out_cb, 0, STOCK(ZOOM_OUT) },
281 - { N_("/View/_Zoom 100%"), NULL, zoom_100_cb, 0, STOCK(ZOOM_100) },
282 - { "/View/sep5", NULL, NULL, 0, "<Separator>" },
283 + { N_("/View/_Zoom 100%"), NULL, zoom_100_cb, 0, STOCK(ZOOM_100) },*/
284 { N_("/View/_Deinterlace"), "<control>I", deinterlace_cb, 0, "<CheckItem>" },
285 { N_("/View/Auto _resize"), NULL, auto_resize_cb, 0, "<CheckItem>" },
286 { N_("/View/_Aspect ratio"), NULL, NULL, 0, "<Branch>" },
288 { N_("/View/Aspect ratio/_4:3"), NULL, ASPECT(4_3), "/View/Aspect ratio/Auto"},
289 { N_("/View/Aspect ratio/_16:9"), NULL, ASPECT(ANAMORPHIC), "/View/Aspect ratio/Auto"},
290 { N_("/View/Aspect ratio/_2:1"), NULL, ASPECT(DVB), "/View/Aspect ratio/Auto"},
291 - { N_("/View/A\\/V _settings..."), NULL, settings_cb, 0, NULL },
292 { "/View/sep6", NULL, NULL, 0, "<Separator>" },
293 { N_("/View/_Visualisations"), NULL, NULL, 0, "<Branch>" },
294 { N_("/View/Visualisations/_None"), NULL, vis_none_cb, 0, "<RadioItem>"},
296 { N_("/Media/_Manage media marks..."), "<control>B", mediamarks_manage_cb, 0, NULL },
297 { N_("/Media/_Import media marks..."), NULL, mediamarks_import_cb, 0, STOCK(OPEN) },
298 { "/Media/sep8", NULL, NULL, 0, "<Separator>" },
299 - { N_("/_Help"), NULL, NULL, 0, "<LastBranch>" },
300 + { N_("/_Help"), NULL, NULL, 0, "<Branch>" },
301 { N_("/Help/_About..."), NULL, about_cb, 0, NULL },
302 { N_("/Help/Engine _Log..."), "<control>L", log_cb, 0, NULL },
303 - { N_("/Help/Stream _Info..."), NULL, stream_info_cb, 0, NULL },
304 { "/Help/sep6", NULL, NULL, 0, "<Separator>" },
305 { N_("/Help/_Re-run setup wizards..."), NULL, wizards_cb, 0, NULL },
308 aspect_menu_items[i] = gtk_radio_menu_item_get_group (none_item);
310 menu = GTK_MENU_SHELL (gtk_item_factory_get_widget (item_factory[i],
312 - add_autoplay_entries (menu, g_list_index (menu->children,
313 - gtk_item_factory_get_widget (item_factory[i],
315 + "/File/Play disc"));
316 + add_autoplay_entries (menu, g_list_index (menu->children, 0));
318 none_item = GTK_RADIO_MENU_ITEM (gtk_item_factory_get_item (item_factory[i], "/View/Visualisations/None"));
319 add_vis_entries (GTK_MENU_SHELL (gtk_item_factory_get_widget (item_factory[i], "/View/Visualisations")), none_item);
320 diff -urNd gxine-0.4.1/src/noskin_window.c gxine-0.4.1.new/src/noskin_window.c
321 --- gxine-0.4.1/src/noskin_window.c 2004-12-15 23:59:59.000000000 +0000
322 +++ gxine-0.4.1.new/src/noskin_window.c 2005-04-11 22:58:41.125664080 +0100
324 #include "drag_drop.h"
325 #include "gtkvideo.h"
326 #include "gtkflipbutton.h"
327 -#include "infobar.h"
328 -#include "time_widget.h"
329 +/*#include "infobar.h"
330 +#include "time_widget.h"*/
332 +#include "stream_info.h"
334 -#include "playlist.xpm"
335 +/*#include "playlist.xpm"
339 #include "speaker.xpm"
340 #include "nospeaker.xpm"
341 #include "sliders.xpm"
342 -#include "fast_forward.xpm"
343 +#include "fast_forward.xpm"*/
348 gtk_widget_show_all (button);
353 static GtkWidget *new_pixmap (gchar **xpm)
357 (NULL, gdk_colormap_get_system(), &transparent, NULL, xpm);
358 return gtk_pixmap_new (image, transparent);
363 static GtkWidget *add_pix_button (GtkWidget *box, gchar **pixmap_array,
364 char *cmd, char *tip, gboolean toggle,
367 gtk_container_add (GTK_CONTAINER(button), new_pixmap (pixmap_array));
368 return add_pix_button_common (box, button, cmd, tip, start);
372 +static GtkWidget *add_stock_button (GtkWidget *box, const gchar *stock_id,
373 + GtkIconSize size, char *cmd, char *tip,
374 + gboolean toggle, gboolean start)
380 + button = gtk_toggle_button_new ();
381 + g_signal_connect (GTK_OBJECT(button), "toggled",
382 + G_CALLBACK(toggle_cb), NULL);
385 + button = gtk_button_new ();
386 + gtk_container_add (GTK_CONTAINER(button),
387 + gtk_image_new_from_stock (stock_id, size));
388 + return add_pix_button_common (box, button, cmd, tip, start);
391 static GtkWidget *add_pix_flip_button (GtkWidget *box, gchar **inactive,
392 gchar **active, char * cmd, char *tip,
395 G_CALLBACK(toggle_cb), NULL);
396 return add_pix_button_common (box, button, cmd, tip, start);
400 +static GtkWidget *gxine_icon_new_from_file (const gchar *filename,
403 + /* This should do some error checking... */
404 + return gtk_image_new_from_icon_set (gtk_icon_set_new_from_pixbuf (
405 + gdk_pixbuf_new_from_file (filename, NULL)), size);
408 +static GtkWidget *add_file_flip_button (GtkWidget *box, const gchar *inactive,
409 + const gchar *active, GtkIconSize size, char * cmd, char *tip,
412 + GtkWidget *button = gtk_flip_button_new (
413 + gxine_icon_new_from_file (inactive, size),
414 + gxine_icon_new_from_file (active, size));
415 + g_signal_connect (GTK_OBJECT(button), "toggled",
416 + G_CALLBACK(toggle_cb), NULL);
417 + return add_pix_button_common (box, button, cmd, tip, start);
424 static gint update_slider_cb (gpointer data) {
427 gint pos_stream, pos_time, length_time;
431 gtk_widget_hide (gtv);
433 gtk_widget_show (gtv);
434 - gtk_window_resize (GTK_WINDOW(app), 10, 10);
436 +/* This really isn't the way to go about this!
437 + gtk_window_resize (GTK_WINDOW(app), 10, 10);*/
440 if (xine_get_status (stream) != XINE_STATUS_PLAY)
443 /* update the control buttons while we're here */
444 ui_set_status (UI_CURRENT_STATE);
446 + /* Update time label */
447 + snprintf (&buffer, 30, "Progress: %i:%.2i / %i:%.2i", (pos_time/1000)/60,
448 + (pos_time/1000)%60, (length_time/1000)/60, (length_time/1000)%60);
449 + gtk_label_set_text (time_label, &buffer);
454 void noskin_main_init (void) {
457 - GtkWidget *infobox, *infobar, *tw;
458 + GtkWidget *infobox/*, *infobar, *tw*/;
461 xine_post_out_t *vis_out;
463 GtkWidget *scale, *vol_scale;
465 GtkWidget *audio_spinner;
466 - time_widget_t *time_widget;
467 +/* time_widget_t *time_widget;*/
470 tips = gtk_tooltips_new ();
472 gtk_window_set_accept_focus (GTK_WINDOW(controlwindow), FALSE);
474 memset (&cw_geom, 0, sizeof (cw_geom));
475 - cw_geom.max_width = cw_geom.min_width = gdk_screen_width ();
476 + cw_geom.max_width = cw_geom.min_width = -1;
477 cw_geom.max_height = cw_geom.min_height = -1;
478 cw_geom.win_gravity = GDK_GRAVITY_SOUTH_WEST;
479 gtk_window_set_geometry_hints
482 gtv = gtk_video_new (xine, stream, xine_get_video_source (stream),
483 video_driver_id, 480, 300,
484 - 0x04 /* press: button 2 */,
485 + 0x02 /* press: button 1 */,
486 0x08 /* release: button 3 */);
487 drag_drop_setup (gtv);
488 g_signal_connect (GTK_OBJECT (gtv), "keypress",
489 @@ -423,13 +473,13 @@
490 gtk_box_pack_start (GTK_BOX(infobox), vis, FALSE, FALSE, 0);
493 - time_widget = create_time_widget (&tw);
494 +/* time_widget = create_time_widget (&tw);
495 gtk_box_pack_start (GTK_BOX(infobox), tw, FALSE, FALSE, 0);
496 drag_drop_setup (tw);
498 bar = create_infobar (&infobar);
499 gtk_box_pack_start (GTK_BOX(infobox), infobar, TRUE, TRUE, 0);
500 - drag_drop_setup (infobar);
501 + drag_drop_setup (infobar);*/
503 gtk_box_pack_start (GTK_BOX(vbox), infobox, FALSE, FALSE, 2);
506 ctrl = gtk_hbox_new (0, 2);
507 gtk_box_pack_start (GTK_BOX(ctrl), scale, TRUE, TRUE, 4);
508 gtk_box_pack_start (GTK_BOX(sliderbox), ctrl, TRUE, TRUE, 2);
510 gtk_box_pack_start (GTK_BOX(vbox), sliderbox, FALSE, FALSE, 0);
513 @@ -458,35 +509,37 @@
515 ui_register_control_button
517 - add_pix_button (ctrl, play_xpm, "play ();", _("Play"), TRUE, TRUE));
518 + add_stock_button (ctrl, GTK_STOCK_MEDIA_PLAY, GTK_ICON_SIZE_BUTTON,
519 + "play ();", _("Play"), TRUE, TRUE));
520 ui_register_control_button
522 - add_pix_button (ctrl, fast_forward_xpm,
523 + add_stock_button (ctrl, GTK_STOCK_MEDIA_FORWARD, GTK_ICON_SIZE_BUTTON,
524 "if (!is_live_stream ()) set_speed (16);",
525 _("Fast forward"), TRUE, TRUE));
526 ui_register_control_button
528 - add_pix_button (ctrl, pause_xpm,
529 + add_stock_button (ctrl, GTK_STOCK_MEDIA_PAUSE, GTK_ICON_SIZE_BUTTON,
530 "if (!is_live_stream ()) pause ();",
531 _("Pause"), TRUE, TRUE));
532 ui_register_control_button
534 - add_pix_button (ctrl, stop_xpm, "stop ();", _("Stop"), TRUE, TRUE));
535 + add_stock_button (ctrl, GTK_STOCK_MEDIA_STOP, GTK_ICON_SIZE_BUTTON,
536 + "stop ();", _("Stop"), TRUE, TRUE));
538 - add_pix_button (ctrl, playlist_xpm,
539 + add_stock_button (ctrl, GTK_STOCK_EDIT, GTK_ICON_SIZE_BUTTON,
540 "playlist_show ()", _("Playlist"), FALSE, TRUE);
541 - add_pix_button (ctrl, sliders_xpm,
542 - "settings_show ()", _("A/V settings"), FALSE, TRUE);
543 +/* add_pix_button (ctrl, sliders_xpm,
544 + "settings_show ()", _("A/V settings"), FALSE, TRUE);*/
546 /* audio channel selection */
548 - audio_adj = ui_register_control_adjustment (Control_AUDIO_CHANNEL);
549 +/* audio_adj = ui_register_control_adjustment (Control_AUDIO_CHANNEL);
550 audio_spinner = gtk_spin_button_new (GTK_ADJUSTMENT (audio_adj),
552 gtk_spin_button_set_numeric (GTK_SPIN_BUTTON(audio_spinner), TRUE);
553 gtk_tooltips_set_tip (GTK_TOOLTIPS (tips), audio_spinner,
554 _("Audio channel"), NULL);
555 - gtk_box_pack_end (GTK_BOX(ctrl), audio_spinner, FALSE, FALSE, 5);
556 + gtk_box_pack_end (GTK_BOX(ctrl), audio_spinner, FALSE, FALSE, 5);*/
562 ui_register_control_button
564 - add_pix_flip_button (ctrl, nospeaker_xpm, speaker_xpm,
565 + add_file_flip_button (ctrl, GXINE_PIXMAPPATH "/rhythmbox-volume-zero.png",
566 + GXINE_PIXMAPPATH "/rhythmbox-volume-max.png", GTK_ICON_SIZE_BUTTON,
567 "set_mute ();", _("Mute/unmute"), FALSE));
569 gtk_box_pack_end (GTK_BOX(sliderbox), ctrl, FALSE, FALSE, 4);
574 - postinit_infobar (app, bar);
575 - postinit_time_widget (app, time_widget);
577 +/* postinit_infobar (app, bar);
578 + postinit_time_widget (app, time_widget);*/
580 gtk_timeout_add (1000, update_slider_cb, NULL);
582 #endif /* !EXP_STUFF */
583 diff -urNd gxine-0.4.1/src/open_mrl.c gxine-0.4.1.new/src/open_mrl.c
584 --- gxine-0.4.1/src/open_mrl.c 2004-12-02 19:43:11.000000000 +0000
585 +++ gxine-0.4.1.new/src/open_mrl.c 2005-04-11 22:38:39.000000000 +0100
590 + /* Clear playlist on load */
594 while ( (mrl = fnames[i]) ) {
596 diff -urNd gxine-0.4.1/src/player.c gxine-0.4.1.new/src/player.c
597 --- gxine-0.4.1/src/player.c 2004-12-11 00:40:18.000000000 +0000
598 +++ gxine-0.4.1.new/src/player.c 2005-04-11 18:14:37.000000000 +0100
603 +static JSBool js_set_chan (JSContext *cx, JSObject *obj, uintN argc,
604 + jsval *argv, jsval *rval) {
606 + se_t *se = (se_t *) JS_GetContextPrivate(cx);
609 + se_log_fncall ("set_chan");
610 + se_argc_check (1, "set_chan");
611 + se_arg_is_int (0, "set_chan");
613 + JS_ValueToInt32 (cx, argv[0], &channel);
615 + xine_set_param (stream, XINE_PARAM_AUDIO_CHANNEL_LOGICAL, channel);
620 static JSBool js_set_fullscreen (JSContext *cx, JSObject *obj, uintN argc,
621 jsval *argv, jsval *rval) {
624 SE_GROUP_PROPERTIES, N_("[bool]"), NULL },
625 { "set_sub", js_set_sub, 0, 0,
626 SE_GROUP_PROPERTIES, N_("int"), NULL },
627 + { "set_chan", js_set_chan, 0, 0,
628 + SE_GROUP_PROPERTIES, N_("int"), NULL },
629 { "set_deinterlace", js_set_deinterlace, 0, 0,
630 SE_GROUP_PROPERTIES, N_("[bool]"), NULL },
631 { "set_auto_resize", js_set_auto_resize, 0, 0,
632 diff -urNd gxine-0.4.1/src/playlist.c gxine-0.4.1.new/src/playlist.c
633 --- gxine-0.4.1/src/playlist.c 2004-12-17 00:33:00.000000000 +0000
634 +++ gxine-0.4.1.new/src/playlist.c 2005-04-11 19:21:11.000000000 +0100
635 @@ -1218,6 +1218,10 @@
636 gtk_tree_path_free (path);
638 playlist_play (item);
640 + /* Hide the playlist after making a selection */
641 + is_visible = FALSE;
642 + gtk_widget_hide (dlg);
646 @@ -1743,7 +1747,7 @@
649 gtk_box_pack_start (GTK_BOX (hbox), button, TRUE, TRUE, 2);
650 - button = gtk_button_new_with_label (_("Edit"));
651 + button = gtk_button_new_from_stock (GTK_STOCK_EDIT);
652 g_signal_connect (GTK_OBJECT(button), "clicked",
655 @@ -1753,6 +1757,16 @@
658 gtk_box_pack_start (GTK_BOX(hbox), button, TRUE, TRUE, 2);
660 + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), hbox,
667 + hbox = gtk_hbox_new (1, 2);
669 button = gtk_button_new_from_stock (GTK_STOCK_GO_UP);
670 g_signal_connect (GTK_OBJECT(button), "clicked",
672 @@ -1767,6 +1781,7 @@
673 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), hbox,
677 button = gtk_dialog_add_button (GTK_DIALOG (dlg), GTK_STOCK_CLOSE, 1);
678 g_signal_connect (GTK_OBJECT(button), "clicked",
679 G_CALLBACK(close_cb),
680 diff -urNd gxine-0.4.1/src/script_engine.c gxine-0.4.1.new/src/script_engine.c
681 --- gxine-0.4.1/src/script_engine.c 2004-12-13 21:19:23.000000000 +0000
682 +++ gxine-0.4.1.new/src/script_engine.c 2005-04-11 13:53:36.000000000 +0100
683 @@ -178,10 +178,10 @@
685 layout = gtk_table_new (1, 2, FALSE);
687 - file = g_strconcat (pixmapdir, "/gxine-logo.png", NULL);
688 + file = GXINE_ICONDIR "/gxine-logo.png";
689 gtk_table_attach (GTK_TABLE (layout), gtk_image_new_from_file (file),
690 0, 1, 0, 1, 0, 0, 8, 8);
695 content = g_strdup_printf (gettext (content_src), VERSION);
696 diff -urNd gxine-0.4.1/src/stream_info.c gxine-0.4.1.new/src/stream_info.c
697 --- gxine-0.4.1/src/stream_info.c 2004-12-02 02:38:32.000000000 +0000
698 +++ gxine-0.4.1.new/src/stream_info.c 2005-04-11 22:05:00.000000000 +0100
700 static GtkWidget *dlg;
701 static int is_visible;
702 static GtkListStore *meta_store;
703 + GtkLabel *time_label;
705 static void add_meta_entry (const gchar *l, int info) {
708 GTK_POLICY_AUTOMATIC,
709 GTK_POLICY_AUTOMATIC);
710 gtk_container_add (GTK_CONTAINER (scrolled_window), tree_view);
712 + time_label = gtk_label_new ("Progress: 0:00 / 0:00");
714 gtk_box_pack_start (GTK_BOX(GTK_DIALOG (dlg)->vbox), scrolled_window,
716 + gtk_box_pack_start (GTK_BOX(GTK_DIALOG (dlg)->vbox), time_label,
721 diff -urNd gxine-0.4.1/src/utils.c gxine-0.4.1.new/src/utils.c
722 --- gxine-0.4.1/src/utils.c 2004-12-17 00:33:00.000000000 +0000
723 +++ gxine-0.4.1.new/src/utils.c 2005-04-11 14:21:54.000000000 +0100
724 @@ -129,13 +129,13 @@
725 GdkPixbuf *load_icon (const char *filename) {
731 - pathname = g_strconcat (pixmapdir, "/", filename, NULL);
732 + pathname = g_strconcat (pixmapdir, "/", filename, NULL);*/
734 - pix = gdk_pixbuf_new_from_file (pathname, NULL);
735 + pix = gdk_pixbuf_new_from_file (filename, NULL);
738 +/* g_free (pathname);*/