[arch-commits] Commit in (16 files)

Eric Bélanger eric at archlinux.org
Tue Jan 20 04:15:38 UTC 2009


    Date: Monday, January 19, 2009 @ 23:15:37
  Author: eric
Revision: 24697

moving xmms to extra from community

Added:
  xmms/
  xmms/repos/
  xmms/trunk/
  xmms/trunk/ChangeLog
  xmms/trunk/PKGBUILD
  xmms/trunk/xmms-1.2.10-crossfade-0.3.9.patch
  xmms/trunk/xmms-1.2.10-fonts.patch
  xmms/trunk/xmms-1.2.10-recode-id3.patch
  xmms/trunk/xmms-1.2.11-3dse.patch
  xmms/trunk/xmms-1.2.11-CVE-2007-0653.0654.patch
  xmms/trunk/xmms-1.2.11-fix-http-title-mpg123.patch
  xmms/trunk/xmms-fix.diff
  xmms/trunk/xmms-menu.patch
  xmms/trunk/xmms.16.png
  xmms/trunk/xmms.32.png
  xmms/trunk/xmms.48.png

-----------------------------------------+
 ChangeLog                               |    8 
 PKGBUILD                                |   72 ++++
 xmms-1.2.10-crossfade-0.3.9.patch       |  101 ++++++
 xmms-1.2.10-fonts.patch                 |   24 +
 xmms-1.2.10-recode-id3.patch            |   11 
 xmms-1.2.11-3dse.patch                  |  503 ++++++++++++++++++++++++++++++
 xmms-1.2.11-CVE-2007-0653.0654.patch    |   43 ++
 xmms-1.2.11-fix-http-title-mpg123.patch |   10 
 xmms-fix.diff                           |   11 
 xmms-menu.patch                         |   35 ++
 10 files changed, 818 insertions(+)

Added: xmms/trunk/ChangeLog
===================================================================
--- xmms/trunk/ChangeLog	                        (rev 0)
+++ xmms/trunk/ChangeLog	2009-01-20 04:15:37 UTC (rev 24697)
@@ -0,0 +1,8 @@
+2009-01-19  Eric Belanger  <eric at archlinux.org>
+
+	* xmms 1.2.11-2
+	* Added to [extra] repo
+	* Added several patches including a security fix from Mandriva
+	* FHS man pages
+	* Added new icons
+	* Added ChangeLog

Added: xmms/trunk/PKGBUILD
===================================================================
--- xmms/trunk/PKGBUILD	                        (rev 0)
+++ xmms/trunk/PKGBUILD	2009-01-20 04:15:37 UTC (rev 24697)
@@ -0,0 +1,72 @@
+# $Id$
+# Maintainer: Eric Belanger <belanger at astro.umontreal.ca>
+
+pkgname=xmms
+pkgver=1.2.11
+pkgrel=2
+pkgdesc="The X MultiMedia System"
+arch=('i686' 'x86_64')
+url="http://www.xmms.org"
+license=('GPL')
+depends=('libsm' 'libxxf86vm' 'zlib' 'gtk' 'libvorbis' 'esound' 'alsa-lib' 'libgl')
+makedepends=('mesa')
+options=('!libtool')
+source=(http://www.xmms.org/files/1.2.x/${pkgname}-${pkgver}.tar.bz2 \
+	xmms-menu.patch xmms-1.2.10-crossfade-0.3.9.patch xmms-fix.diff \
+        xmms-1.2.11-CVE-2007-0653.0654.patch xmms-1.2.11-fix-http-title-mpg123.patch \
+        xmms-1.2.11-3dse.patch xmms-1.2.10-recode-id3.patch \
+        xmms-1.2.10-fonts.patch xmms.16.png xmms.32.png xmms.48.png)
+md5sums=('f3e6dbaf0b3f571a532ab575656be506' 'b7b6f1811bad8d14e4c4534240e45980'\
+         '4eb222111a82a2e1ebe63b5f6109133d' 'd7f9dc3712c486658149c4504f7478a7'\
+         'e59e8c66f4e4077a8096ad98c77f0eb6' '25609a6b5b7632e4c8e6de927f8d70db'\
+         '2b534832b0dbb0d06dbcc829e2b702e6' 'd1715c291d35ee8854e5d926912e8b0d'\
+         '408ea5e28c4c4c221cf3c8ded76fd1f0' '3c328565c99c85d92ac0b9918805da46'\
+         '128406a02c07cd477dc901f2a658add5' 'd022280df4379383732a8a26abea1d08')
+sha1sums=('9d1eae4baab25fd35c9ddfb49321ca60222f672d'
+          '27fb6e21bd6db923a425a8df8bd07a2a93867ddb'
+          'ff5c172752c8bee708d9a9ecd53864cc95a4bcc5'
+          'c227284955f2cc16f027dade670155c0f0fbc4ff'
+          '4ef47c34b27b6c868d4301b7a078b257c8604471'
+          '0c060385561ea2a4b1c7ad3bd35d3646ae9554f5'
+          '6f6db13c780ba4cbddb8613f0abd2db2823f3021'
+          '2a3b1bf17054b6bd8b1e5937de5c0ad49af8dc92'
+          '31abd37c9c57bd13b2088eb11a1e54e5aa312bf3'
+          '0089d11aa3bce67f3496592d68ee65837406e220'
+          'f24071ae484d9b55e61dba076801fa8e7976ff2f'
+          '485c67cb8c8d4678bb3b0b280d2e233b14153b22')
+
+build() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+
+# Fix xmms.desktop
+  patch -p0 < ../xmms-menu.patch || return 1
+# Patch for hang with xmms-crossfade 
+  patch -p1 < ../xmms-1.2.10-crossfade-0.3.9.patch || return 1
+# fix xmms not able to be shown double size,at least needed for x86_64
+  patch -p1 < ../xmms-fix.diff || return 1
+# Several patches from Mandriva
+  patch -p1 < ../xmms-1.2.11-fix-http-title-mpg123.patch || return 1
+  patch -p0 < ../xmms-1.2.10-recode-id3.patch || return 1
+  patch -p1 < ../xmms-1.2.11-3dse.patch || return 1
+  patch -p1 < ../xmms-1.2.10-fonts.patch || return 1
+  patch -p1 < ../xmms-1.2.11-CVE-2007-0653.0654.patch || return 1
+
+  if [ "$CARCH" == "x86_64" ]; then
+    ./configure --prefix=/usr --mandir=/usr/share/man --disable-mikmod --disable-simd || return 1 # for x86_64
+  else 
+    ./configure --prefix=/usr --mandir=/usr/share/man --disable-mikmod --enable-simd || return 1 # for i686
+  fi
+  make || return 1
+  make DESTDIR=${pkgdir} install  || return 1
+
+  install -D -m644 xmms/xmms.desktop ${pkgdir}/usr/share/applications/xmms.desktop
+  install -D -m644 xmms/xmms_mini.xpm ${pkgdir}/usr/share/pixmaps/xmms_mini.xpm
+  install -D -m644 ../xmms.16.png ${pkgdir}/usr/share/pixmaps/xmms16.png
+  install -D -m644 ../xmms.32.png ${pkgdir}/usr/share/pixmaps/xmms32.png
+  install -D -m644 ../xmms.48.png ${pkgdir}/usr/share/pixmaps/xmms48.png
+  ln -s /usr/share/pixmaps/xmms48.png ${pkgdir}/usr/share/pixmaps/xmms.png
+
+  # don't want wmxmms
+  rm -rf ${pkgdir}/usr/bin/wmxmms ${pkgdir}/usr/share/xmms
+  rm -f ${pkgdir}/usr/share/man/man1/{gnomexmms.1,wmxmms.1}
+}


Property changes on: xmms/trunk/PKGBUILD
___________________________________________________________________
Added: svn:keywords
   + Id

Added: xmms/trunk/xmms-1.2.10-crossfade-0.3.9.patch
===================================================================
--- xmms/trunk/xmms-1.2.10-crossfade-0.3.9.patch	                        (rev 0)
+++ xmms/trunk/xmms-1.2.10-crossfade-0.3.9.patch	2009-01-20 04:15:37 UTC (rev 24697)
@@ -0,0 +1,101 @@
+diff -ur xmms-1.2.10/xmms/input.c xmms-1.2.10.patched/xmms/input.c
+--- xmms-1.2.10/xmms/input.c	2003-08-08 19:10:44.000000000 +0200
++++ xmms-1.2.10.patched/xmms/input.c	2005-11-25 00:12:36.000000000 +0100
+@@ -285,6 +285,14 @@
+ 	}
+ }
+ 
++gboolean input_stopped_for_restart = FALSE;  /* crossfade */
++void input_stop_for_restart()  /* crossfade */
++{
++	input_stopped_for_restart = TRUE;
++	input_stop();
++	input_stopped_for_restart = FALSE;
++}
++
+ void input_stop(void)
+ {
+ 	if (ip_data->playing && get_current_input_plugin())
+diff -ur xmms-1.2.10/xmms/input.h xmms-1.2.10.patched/xmms/input.h
+--- xmms-1.2.10/xmms/input.h	2000-02-16 22:05:57.000000000 +0100
++++ xmms-1.2.10.patched/xmms/input.h	2005-11-25 00:12:36.000000000 +0100
+@@ -34,6 +34,7 @@
+ gboolean input_check_file(gchar * filename);
+ void input_play(char *filename);
+ void input_stop(void);
++void input_stop_for_restart(void);
+ void input_pause(void);
+ int input_get_time(void);
+ void input_set_eq(int on, float preamp, float *bands);
+diff -ur xmms-1.2.10/xmms/main.c xmms-1.2.10.patched/xmms/main.c
+--- xmms-1.2.10/xmms/main.c	2004-02-23 21:31:43.000000000 +0100
++++ xmms-1.2.10.patched/xmms/main.c	2005-11-25 00:12:36.000000000 +0100
+@@ -881,8 +881,10 @@
+ 	mainwin_set_shade(!cfg.player_shaded);
+ }
+ 
++gboolean is_quitting = FALSE;  /* crossfade */
+ void mainwin_quit_cb(void)
+ {
++	is_quitting = TRUE;  /* crossfade */
+ 	input_stop();
+ 	gtk_widget_hide(equalizerwin);
+ 	gtk_widget_hide(playlistwin);
+@@ -1523,7 +1525,8 @@
+ 		int *pos;
+ 
+ 		if (get_input_playing())
+-			input_stop();
++			input_stop_for_restart();
++		
+ 		pos = gtk_clist_get_row_data(clist, GPOINTER_TO_INT(clist->selection->data));
+ 		playlist_set_position(*pos);
+ 		playlist_play();
+diff -ur xmms-1.2.10/xmms/playlist.c xmms-1.2.10.patched/xmms/playlist.c
+--- xmms-1.2.10/xmms/playlist.c	2004-02-23 21:31:43.000000000 +0100
++++ xmms-1.2.10.patched/xmms/playlist.c	2005-11-25 00:12:36.000000000 +0100
+@@ -124,7 +124,7 @@
+ 		if (get_input_playing())
+ 		{
+ 			PL_UNLOCK();
+-			input_stop();
++			input_stop_for_restart();
+ 			PL_LOCK();
+ 			*restart_playing = TRUE;
+ 		}
+@@ -570,7 +570,7 @@
+ 	}
+ 
+ 	if (get_input_playing())
+-		input_stop();
++		input_stop_for_restart();
+ 
+ 	vis_clear_data(mainwin_vis);
+ 	vis_clear_data(playlistwin_vis);
+@@ -668,7 +668,7 @@
+ 	{
+ 		/* We need to stop before changing playlist_position */
+ 		PL_UNLOCK();
+-		input_stop();
++		input_stop_for_restart();
+ 		PL_LOCK();
+ 		restart_playing = TRUE;
+ 	}
+@@ -723,7 +723,7 @@
+ 	{
+ 		/* We need to stop before changing playlist_position */
+ 		PL_UNLOCK();
+-		input_stop();
++		input_stop_for_restart();
+ 		PL_LOCK();
+ 		restart_playing = TRUE;
+ 	}
+@@ -852,7 +852,7 @@
+ 	{
+ 		/* We need to stop before changing playlist_position */
+ 		PL_UNLOCK();
+-		input_stop();
++		input_stop_for_restart();
+ 		PL_LOCK();
+ 		restart_playing = TRUE;
+ 	}

Added: xmms/trunk/xmms-1.2.10-fonts.patch
===================================================================
--- xmms/trunk/xmms-1.2.10-fonts.patch	                        (rev 0)
+++ xmms/trunk/xmms-1.2.10-fonts.patch	2009-01-20 04:15:37 UTC (rev 24697)
@@ -0,0 +1,24 @@
+--- xmms-1.2.10/xmms/main.c.fonts	2004-08-10 22:16:06.000000000 +0200
++++ xmms-1.2.10/xmms/main.c	2004-08-12 11:49:17.905598843 +0200
+@@ -351,7 +351,8 @@
+ 	cfg.no_playlist_advance = FALSE;
+ 	cfg.smooth_title_scroll = TRUE;
+ 	cfg.random_skin_on_play = FALSE;
+-	cfg.mainwin_use_xfont = FALSE;
++	cfg.mainwin_use_xfont = TRUE;
++	cfg.use_fontsets = TRUE;
+ 	cfg.use_pl_metadata = TRUE;
+ 
+ 	cfg.playlist_x = 295;
+@@ -499,9 +500,9 @@
+ 		cfg.mainwin_font = NULL;
+ 	}
+ 	if (cfg.playlist_font == NULL)
+-		cfg.playlist_font = g_strdup("-adobe-helvetica-bold-r-*-*-10-*");
++		cfg.playlist_font = g_strdup("-*-helvetica-bold-r-*-*-10-*,*");
+ 	if (cfg.mainwin_font == NULL)
+-		cfg.mainwin_font = g_strdup("-adobe-helvetica-medium-r-*-*-8-*");
++		cfg.mainwin_font = g_strdup("-*-helvetica-medium-r-*-*-8-*,*");
+ 	if (cfg.gentitle_format == NULL)
+ 		cfg.gentitle_format = g_strdup("%p - %t");
+ 	if (cfg.outputplugin == NULL)

Added: xmms/trunk/xmms-1.2.10-recode-id3.patch
===================================================================
--- xmms/trunk/xmms-1.2.10-recode-id3.patch	                        (rev 0)
+++ xmms/trunk/xmms-1.2.10-recode-id3.patch	2009-01-20 04:15:37 UTC (rev 24697)
@@ -0,0 +1,11 @@
+--- xmms/playlist.c.orig	2005-03-05 17:26:11.685992552 +0200
++++ xmms/playlist.c	2005-03-05 17:28:01.524294592 +0200
+@@ -1341,7 +1341,7 @@
+ 
+ 	filename = g_strdup(entry->filename);
+ 	
+-	if (entry->title == NULL && entry->length == -1)
++	if (entry->title == NULL)
+ 	{
+ 		if (playlist_get_info_entry(entry)&&(entry->title)) {
+ 			title = xmms_charset_recode_id3(entry->title,0,NULL);

Added: xmms/trunk/xmms-1.2.11-3dse.patch
===================================================================
--- xmms/trunk/xmms-1.2.11-3dse.patch	                        (rev 0)
+++ xmms/trunk/xmms-1.2.11-3dse.patch	2009-01-20 04:15:37 UTC (rev 24697)
@@ -0,0 +1,503 @@
+--- xmms-1.2.11/Output/OSS/OSS.h.3dse	2003-06-11 20:44:17.000000000 +0200
++++ xmms-1.2.11/Output/OSS/OSS.h	2007-11-18 20:51:57.000000000 +0100
+@@ -48,6 +48,11 @@
+ # define IS_BIG_ENDIAN FALSE
+ #endif
+ 
++#define AWE_3DSE		0x90
++#define MIXER_BASE_DEFAULT	0x220
++#define MIXER_REG_OFFSET	4
++#define MIXER_DATA_OFFSET	5
++
+ extern OutputPlugin op;
+ 
+ typedef struct
+@@ -59,6 +64,8 @@ typedef struct
+ 	gboolean use_master;
+ 	gboolean use_alt_audio_device, use_alt_mixer_device;
+ 	gchar *alt_audio_device, *alt_mixer_device;
++	gint stereo;
++	gboolean hardware_access;
+ }
+ OSSConfig;
+ 
+@@ -82,6 +89,12 @@ int oss_get_output_time(void);
+ int oss_get_written_time(void);
+ void oss_set_audio_params(void);
+ 
++int oss_set_3dse(int stat);
++int oss_get_3dse(void);
++void oss_hw_set_3dse(int stat);
++int oss_hw_get_3dse(void);  
++int initHardwareAccess ();
++
+ void oss_free_convert_buffer(void);
+ int (*oss_get_convert_func(int output, int input))(void **, int);
+ int (*oss_get_stereo_convert_func(int output, int input))(void **, int, int);
+--- xmms-1.2.11/Output/OSS/configure.c.3dse	2005-05-15 02:01:20.000000000 +0200
++++ xmms-1.2.11/Output/OSS/configure.c	2007-11-18 20:51:57.000000000 +0100
+@@ -24,6 +24,10 @@ static GtkWidget *mixer_usemaster_check,
+ static GtkWidget *adevice_use_alt_check, *audio_alt_device_entry;
+ static GtkWidget *mdevice_use_alt_check, *mixer_alt_device_entry;
+ static gint audio_device, mixer_device;
++static GtkWidget *stereo_check_button, *stereo_frame, *stereo_box;
++static GtkWidget *stereo_label, *stereo_align_button, *stereo_align_label;
++static GtkWidget *save3dse_check_button, *stereo_table, *hw_check_button; 
++
+ 
+ static void configure_win_ok_cb(GtkWidget * w, gpointer data)
+ {
+@@ -69,6 +73,8 @@ static void configure_win_ok_cb(GtkWidge
+ 	xmms_cfg_write_string(cfgfile, "OSS", "alt_audio_device", oss_cfg.alt_audio_device);
+ 	xmms_cfg_write_boolean(cfgfile, "OSS", "use_alt_mixer_device", oss_cfg.use_alt_mixer_device);
+ 	xmms_cfg_write_string(cfgfile, "OSS", "alt_mixer_device", oss_cfg.alt_mixer_device);
++	xmms_cfg_write_int(cfgfile, "OSS", "stereo", oss_cfg.stereo);
++	xmms_cfg_write_boolean(cfgfile, "OSS", "hardware", oss_cfg.hardware_access);
+ 	xmms_cfg_write_default_file(cfgfile);
+ 	xmms_cfg_free(cfgfile);
+ 
+@@ -85,6 +91,98 @@ static void configure_win_mixer_dev_cb(G
+ 	mixer_device = device;
+ }
+ 
++static void stereo_check_button_cb(GtkWidget * widget, gpointer data) 
++{
++	if (GTK_TOGGLE_BUTTON(widget)->active)
++	{
++		if (oss_cfg.stereo != -1)
++			oss_cfg.stereo = 1;
++		if (oss_cfg.hardware_access)
++			oss_hw_set_3dse(1);
++		else
++			oss_set_3dse(1);
++	}
++	else
++	{
++		if (oss_cfg.stereo != -1)
++			oss_cfg.stereo = 0;
++		if (oss_cfg.hardware_access)
++			oss_hw_set_3dse(0);
++		else
++			oss_set_3dse(0);
++	}	
++}
++
++static void save3dse_check_button_cb(GtkWidget * widget, gpointer data) 
++{
++	if (GTK_TOGGLE_BUTTON(widget)->active)
++	{
++		if (GTK_TOGGLE_BUTTON(data)->active)
++			oss_cfg.stereo = 1;
++		else
++			oss_cfg.stereo = 0;	
++	}
++	else
++	{
++		oss_cfg.stereo = -1;
++	}	
++}
++
++void warning_dialog(void)
++{
++	GtkWidget *dialog_window, *button, *label;
++  	dialog_window = gtk_dialog_new();
++  	gtk_window_set_title(GTK_WINDOW(dialog_window), 
++		"WARNING: DIRECT ACCESS");
++  	gtk_window_set_policy(GTK_WINDOW(dialog_window), FALSE, FALSE, TRUE);
++  	gtk_window_set_position(GTK_WINDOW(dialog_window), GTK_WIN_POS_MOUSE);
++  	button = gtk_button_new_with_label("Dismiss");
++  	gtk_signal_connect_object(GTK_OBJECT(button), "clicked",
++		GTK_SIGNAL_FUNC(gtk_widget_destroy), (gpointer)dialog_window);
++  	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->action_area),
++		button, TRUE, FALSE, 0);
++  	gtk_widget_show(button);
++  	label = gtk_label_new(
++		"Direct hardware access can cause damage to your sound card.\n"
++		"Only use this option when you are using OSS drivers that\n"
++		"doesn't support the SND_MIXER_3DSE ioctl.\n"
++		"USE THIS OPTION AT YOUR OWN RISK !!!\n"
++		"You can use the environment variable \"BLASTER\" to manual\n"
++		"set the port of the mixer of your sound card. Only use this\n"
++		"option when you really know the mixer address. The default\n"
++		"value is 0x220. Example:\n"
++		"    BLASTER=M230 ; export BLASTER\n"
++		"SETTING THE WRONG BLASTER ENVIRONMENT CAN\n"
++		"CAUSE YOUR SYSTEM TO CRASH AND CAN CAUSE\n"
++		"PERMANENT DAMAGE !!!");
++	gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
++  	gtk_misc_set_padding(GTK_MISC(label), 10, 10);
++  	gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->vbox),
++		label, TRUE, TRUE, 0);
++  	gtk_widget_show(label);
++  	gtk_grab_add(dialog_window);
++  	GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT);
++  	gtk_widget_grab_default(button);
++  	gtk_widget_show(dialog_window);
++}
++
++static void hw_check_button_cb(GtkWidget * widget, gpointer data)
++{
++	if (GTK_TOGGLE_BUTTON(widget)->active)
++		{
++			if (oss_cfg.hardware_access == 0)
++				warning_dialog();
++			oss_cfg.hardware_access = 1;
++			initHardwareAccess ();
++			gtk_widget_set_sensitive(stereo_check_button, TRUE);
++			gtk_widget_set_sensitive(save3dse_check_button, TRUE);
++		}
++	else
++		{
++			oss_cfg.hardware_access = 0;
++		}
++}
++
+ static void audio_device_toggled(GtkToggleButton * widget, gpointer data)
+ {
+ 	gboolean use_alt_audio_device = gtk_toggle_button_get_active(widget);
+@@ -148,10 +246,38 @@ static void scan_devices(gchar * type, G
+ 	}
+ 	else
+ 	{
+-		item = gtk_menu_item_new_with_label(_("Default"));
+-		gtk_signal_connect(GTK_OBJECT(item), "activate", sigfunc, (gpointer) 0);
+-		gtk_widget_show(item);
+-		gtk_menu_append(GTK_MENU(menu), item);
++#ifdef SOUND_MIXER_INFO
++		int i, fd;
++		gchar *dev_name;
++		mixer_info info;
++		for (i = 0; i < 10; i++) {
++			if (i)
++				dev_name = g_strdup_printf ("/dev/mixer%d", i);
++			else
++				dev_name = g_strdup_printf ("/dev/mixer");
++			if ((fd = open (dev_name, O_RDONLY)) != -1) {
++				if (ioctl (fd, SOUND_MIXER_INFO, &info) != -1) {
++					if (!index) 
++						temp = g_strdup_printf ("Default (%s)", info.name);
++					else 
++						temp = g_strdup_printf ("%s", info.name);
++					item = gtk_menu_item_new_with_label (temp);
++					g_free (temp);
++					gtk_signal_connect(GTK_OBJECT(item), "activate", sigfunc, (gpointer) index++);
++					gtk_widget_show(item);
++					gtk_menu_append(GTK_MENU(menu), item);
++				}
++				close(fd);
++			}
++			g_free(dev_name);
++		}
++#endif
++		if (!index) {
++			item = gtk_menu_item_new_with_label(_("Default"));
++			gtk_signal_connect(GTK_OBJECT(item), "activate", sigfunc, (gpointer) 0);
++			gtk_widget_show(item);
++			gtk_menu_append(GTK_MENU(menu), item);
++		}
+ 	}
+ 	gtk_option_menu_set_menu(GTK_OPTION_MENU(option_menu), menu);
+ }
+@@ -300,6 +426,69 @@ void oss_configure(void)
+ 	gtk_table_attach_defaults(GTK_TABLE(mixer_table), mixer_usemaster_check, 0, 1, 0, 1);
+ 	gtk_notebook_append_page(GTK_NOTEBOOK(notebook), mixer_frame, gtk_label_new(_("Mixer")));
+ 
++	stereo_frame = gtk_frame_new("3D Stereo Enhancement:");
++	gtk_container_set_border_width(GTK_CONTAINER(stereo_frame), 5);
++	gtk_widget_show(stereo_frame);
++	stereo_box = gtk_vbox_new(FALSE, 0);
++	gtk_widget_show(stereo_box);
++	stereo_table = gtk_table_new(3, 1, FALSE);
++	gtk_widget_show(stereo_table);
++	stereo_check_button = gtk_check_button_new_with_label("3D Stereo Enhancement");
++	gtk_signal_connect(GTK_OBJECT(stereo_check_button), "toggled",
++	GTK_SIGNAL_FUNC(stereo_check_button_cb), NULL);
++	save3dse_check_button = gtk_check_button_new_with_label("Save 3DSE setting");
++	gtk_signal_connect(GTK_OBJECT(save3dse_check_button), "toggled",
++	GTK_SIGNAL_FUNC(save3dse_check_button_cb), stereo_check_button);
++	hw_check_button = gtk_check_button_new_with_label("Direct hardware access");
++	gtk_signal_connect(GTK_OBJECT(hw_check_button), "toggled",
++	GTK_SIGNAL_FUNC(hw_check_button_cb), hw_check_button);
++	if (oss_cfg.stereo != -1) 
++		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(save3dse_check_button), TRUE);
++	if (oss_cfg.hardware_access) 
++		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(hw_check_button), TRUE);
++	if (getuid () != 0 || geteuid () != 0)
++		gtk_widget_set_sensitive(hw_check_button, FALSE);
++	switch(oss_get_3dse())
++	{
++	case 1:
++		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(stereo_check_button), TRUE);
++	case 0:
++		gtk_widget_set_sensitive(hw_check_button, FALSE);
++		oss_cfg.hardware_access = FALSE;
++		break;
++	case -1:
++		if (!oss_cfg.hardware_access) 
++			{
++				gtk_widget_set_sensitive(stereo_check_button, FALSE);
++				gtk_widget_set_sensitive(save3dse_check_button, FALSE);
++			}
++		else
++			if(oss_hw_get_3dse())
++				gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(stereo_check_button), TRUE);
++		break;
++	}
++	gtk_table_attach_defaults(GTK_TABLE(stereo_table), stereo_check_button, 0, 1, 0, 1);
++	gtk_widget_show(stereo_check_button);
++	gtk_table_attach_defaults(GTK_TABLE(stereo_table), save3dse_check_button, 0, 1, 1, 2);
++	gtk_widget_show(save3dse_check_button);
++	gtk_table_attach_defaults(GTK_TABLE(stereo_table), hw_check_button, 0, 1, 2, 3);
++	gtk_widget_show(hw_check_button);
++	stereo_align_button = gtk_alignment_new(0.2, 0.5, 0, 0);
++	gtk_container_add(GTK_CONTAINER(stereo_align_button), stereo_table);
++	gtk_widget_show(stereo_align_button);
++	stereo_label = gtk_label_new("Please note that not all sound cards support this feature.\n"
++		"Supported: SoundBlaster 16, ViBRA, AWE32/64.");
++	gtk_label_set_justify(GTK_LABEL(stereo_label), GTK_JUSTIFY_LEFT);
++	gtk_misc_set_padding(GTK_MISC(stereo_label), 5, 5);
++	gtk_widget_show(stereo_label);
++	stereo_align_label = gtk_alignment_new(0, 0, 0, 0);
++	gtk_container_add(GTK_CONTAINER(stereo_align_label), stereo_label);
++	gtk_widget_show(stereo_align_label);
++	gtk_box_pack_end(GTK_BOX(stereo_box), stereo_align_label, FALSE, FALSE, 0);
++	gtk_box_pack_end(GTK_BOX(stereo_box), stereo_align_button, TRUE, FALSE, 0);
++	gtk_container_add(GTK_CONTAINER(stereo_frame), stereo_box);
++	gtk_notebook_append_page(GTK_NOTEBOOK(notebook), stereo_frame, gtk_label_new("3DSE"));
++
+ 	bbox = gtk_hbutton_box_new();
+ 	gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
+ 	gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5);
+@@ -317,4 +506,5 @@ void oss_configure(void)
+ 	gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0);
+ 
+ 	gtk_widget_show_all(configure_win);
++	gtk_notebook_set_page(GTK_NOTEBOOK(notebook), 0);
+ }
+--- xmms-1.2.11/Output/OSS/init.c.3dse	2001-03-08 06:49:47.000000000 +0100
++++ xmms-1.2.11/Output/OSS/init.c	2007-11-18 20:51:57.000000000 +0100
+@@ -33,6 +33,8 @@ void oss_init(void)
+ 	oss_cfg.use_alt_audio_device = FALSE;
+ 	oss_cfg.alt_audio_device = NULL;
+ 	oss_cfg.use_master=0;
++	oss_cfg.stereo = -1; /* = 3dse setting not saved */
++	oss_cfg.hardware_access = FALSE;
+ 	
+ 	if ((cfgfile = xmms_cfg_open_default_file()))
+ 	{
+@@ -45,6 +47,32 @@ void oss_init(void)
+ 		xmms_cfg_read_string(cfgfile, "OSS", "alt_audio_device", &oss_cfg.alt_audio_device);
+ 		xmms_cfg_read_boolean(cfgfile, "OSS", "use_alt_mixer_device", &oss_cfg.use_alt_mixer_device);
+ 		xmms_cfg_read_string(cfgfile, "OSS", "alt_mixer_device", &oss_cfg.alt_mixer_device);
++		xmms_cfg_read_int(cfgfile, "OSS", "stereo", &oss_cfg.stereo);
++		xmms_cfg_read_boolean(cfgfile, "OSS", "hardware", &oss_cfg.hardware_access);
+ 		xmms_cfg_free(cfgfile);
+ 	}
++	if (oss_cfg.hardware_access)
++		if (initHardwareAccess() == -1)
++			oss_cfg.hardware_access = FALSE;
++
++	if (oss_cfg.hardware_access)
++		switch(oss_cfg.stereo)
++		{
++		case 0:
++			oss_hw_set_3dse(0);
++			break;
++		case 1:
++			oss_hw_set_3dse(1);
++			break;
++		}
++	else
++		switch(oss_cfg.stereo)
++		{
++		case 0:
++			oss_set_3dse(0);
++			break;
++		case 1:
++			oss_set_3dse(1);
++			break;
++		}
+ }
+--- xmms-1.2.11/Output/OSS/mixer.c.3dse	2001-06-16 15:30:35.000000000 +0200
++++ xmms-1.2.11/Output/OSS/mixer.c	2007-11-18 20:51:57.000000000 +0100
+@@ -32,6 +32,10 @@ static char* get_mixer_device(void)
+ 	return name;
+ }
+ 
++#include <sys/io.h>
++
++static int mixer_reg = 0, mixer_data = 0;
++
+ void oss_get_volume(int *l, int *r)
+ {
+ 	int fd, v, cmd, devs;
+@@ -64,6 +68,156 @@ void oss_get_volume(int *l, int *r)
+ 	}
+ }
+ 
++int oss_set_3dse(int stat)
++{
++	int fd;
++	gchar *devname;
++
++	if ((stat != 0) && (stat != 1))
++		return -1;
++
++	if (oss_cfg.mixer_device > 0)
++		devname = g_strdup_printf("/dev/mixer%d", oss_cfg.mixer_device);
++	else
++		devname = g_strdup("/dev/mixer");
++	fd = open(devname, O_RDONLY);
++	g_free(devname);
++
++	if (fd != -1)
++	{
++		if (ioctl(fd, SOUND_MIXER_3DSE, &stat) < 0)
++		{
++			close(fd);
++			return -1;
++		}
++		else
++		{
++			close(fd);
++			return stat;
++		}
++	}
++	return -1;
++}
++
++int oss_get_3dse(void) 
++{
++	int fd, test_stat;
++	gchar *devname;
++
++	if (oss_cfg.mixer_device > 0)
++		devname = g_strdup_printf("/dev/mixer%d", oss_cfg.mixer_device);
++	else
++		devname = g_strdup("/dev/mixer");
++	fd = open(devname, O_RDONLY);
++	g_free(devname);
++
++	if (fd != -1)
++	{
++		test_stat = 2; /* code 2 will request status */
++		if (ioctl(fd, SOUND_MIXER_3DSE, &test_stat) < 0)
++		{
++			close(fd);
++			return -1;
++		}
++		else
++		{
++			close(fd);
++			return test_stat;
++		}
++	}
++	return -1;	
++}
++
++static void check_legal_mixer ()
++{
++	if (!mixer_reg || !mixer_data)
++	{
++		fprintf(stderr, "Illegal mixer settings...\n");
++		exit(1);
++	}
++}
++
++void oss_hw_set_3dse(int stat)
++{
++	unsigned char b;
++	check_legal_mixer ();
++	switch(stat)
++	{
++	case 1:
++		outb(AWE_3DSE, mixer_reg);
++		b = inb(mixer_data);
++		b |= 1;
++		outb(b, mixer_data);
++		break;
++	case 0:
++		outb(AWE_3DSE, mixer_reg);
++		b = inb(mixer_data);
++		b &= 0xff - 1;
++		outb(b, mixer_data);
++		break;
++	}
++}
++
++int oss_hw_get_3dse(void) 
++{
++	unsigned char b;
++	check_legal_mixer ();
++	outb(AWE_3DSE, mixer_reg);
++	b = inb(mixer_data);
++	return (b & 1);
++}
++
++int initHardwareAccess () 
++{
++	char *blasterEnv, *Aptr, *Mptr;
++	int tmp, mixer_base = 0;
++
++	if ((blasterEnv = getenv ("BLASTER"))) 
++	{
++		Aptr = blasterEnv;
++		while ((Aptr = strchr(Aptr, 'A')))
++			if ((tmp = strtol(++Aptr, &Aptr, 16)))
++				mixer_base = tmp;
++		Mptr = blasterEnv;
++		while ((Mptr = strchr(Mptr, 'M')))
++			if ((tmp = strtol(++Mptr, &Mptr, 16)))
++				mixer_base = tmp;
++	}
++	if (!mixer_base) 
++	{
++		mixer_base = MIXER_BASE_DEFAULT;
++	}
++	else 
++	{
++		switch (mixer_base)
++		{
++		case 0x210:
++		case 0x220:
++		case 0x230:
++		case 0x240:
++		case 0x250:
++		case 0x260:
++		case 0x280:
++			break;
++		default:
++			fprintf (stderr, "Illegal mixer base.\n");
++			exit (1);
++		}
++	}
++	mixer_reg = mixer_base + MIXER_REG_OFFSET;
++	mixer_data = mixer_base + MIXER_DATA_OFFSET;
++	if (getuid () == 0 && geteuid () == 0)
++	{
++		ioperm (mixer_reg, 1, 1);
++		ioperm (mixer_data, 1, 1);
++		return 0;
++	}
++	else
++	{
++		return -1;
++ 	}
++}
++
+ void oss_set_volume(int l, int r)
+ {
+ 	int fd, v, cmd, devs;
+--- xmms-1.2.11/Output/OSS/soundcard.h.3dse	2003-06-11 23:01:12.000000000 +0200
++++ xmms-1.2.11/Output/OSS/soundcard.h	2007-11-18 20:51:57.000000000 +0100
+@@ -1151,8 +1151,8 @@ typedef unsigned char mixer_record[128];
+ /*
+  * Two ioctls for special souncard function (OSS/Free only)
+  */
+-#define SOUND_MIXER_AGC  _SIOWR('M', 103, int)
+-#define SOUND_MIXER_3DSE  _SIOWR('M', 104, int)
++#define SOUND_MIXER_AGC  __SIOWR('M', 103, int)
++#define SOUND_MIXER_3DSE  __SIOWR('M', 104, int)
+ /*
+  * The SOUND_MIXER_PRIVATE# commands can be redefined by low level drivers.
+  * These features can be used when accessing device specific features.

Added: xmms/trunk/xmms-1.2.11-CVE-2007-0653.0654.patch
===================================================================
--- xmms/trunk/xmms-1.2.11-CVE-2007-0653.0654.patch	                        (rev 0)
+++ xmms/trunk/xmms-1.2.11-CVE-2007-0653.0654.patch	2009-01-20 04:15:37 UTC (rev 24697)
@@ -0,0 +1,43 @@
+--- xmms-1.2.11/xmms/bmp.c.CVE-2007-0653.0654	2006-07-16 15:40:04.000000000 +0200
++++ xmms-1.2.11/xmms/bmp.c	2007-11-18 21:23:11.000000000 +0100
+@@ -19,6 +19,12 @@
+  */
+ #include "xmms.h"
+ 
++#if HAVE_STDINT_H
++#include <stdint.h>
++#elif !defined(UINT32_MAX)
++#define UINT32_MAX 0xffffffffU
++#endif
++
+ struct rgb_quad
+ {
+ 	guchar rgbBlue;
+@@ -183,7 +189,7 @@ GdkPixmap *read_bmp(gchar * filename)
+ 	}
+ 	else if (bitcount != 24 && bitcount != 16 && bitcount != 32)
+ 	{
+-		gint ncols, i;
++		guint32 ncols, i;
+ 
+ 		ncols = offset - headSize - 14;
+ 		if (headSize == 12)
+@@ -201,9 +207,17 @@ GdkPixmap *read_bmp(gchar * filename)
+ 		}
+ 	}
+ 	fseek(file, offset, SEEK_SET);
++	/* verify buffer size */
++	if (!h || !w ||
++	    w > (((UINT32_MAX - 3) / 3) / h) ||
++	    h > (((UINT32_MAX - 3) / 3) / w)) {
++		g_warning("read_bmp(): width(%u)*height(%u) too large", w, h);
++		fclose(file);
++		return NULL;
++	}
++	data = g_malloc0((w * 3 * h) + 3);	/* +3 is just for safety */
+ 	buffer = g_malloc(imgsize);
+ 	fread(buffer, imgsize, 1, file);
+-	data = g_malloc0((w * 3 * h) + 3);	/* +3 is just for safety */
+ 
+ 	if (bitcount == 1)
+ 		read_1b_rgb(buffer, imgsize, data, w, h, rgb_quads);

Added: xmms/trunk/xmms-1.2.11-fix-http-title-mpg123.patch
===================================================================
--- xmms/trunk/xmms-1.2.11-fix-http-title-mpg123.patch	                        (rev 0)
+++ xmms/trunk/xmms-1.2.11-fix-http-title-mpg123.patch	2009-01-20 04:15:37 UTC (rev 24697)
@@ -0,0 +1,10 @@
+--- xmms-1.2.11/Input/mpg123/common.c~	2007-11-18 20:37:41.000000000 +0100
++++ xmms-1.2.11/Input/mpg123/common.c	2007-11-18 20:40:10.000000000 +0100
+@@ -274,6 +274,7 @@ static gboolean read_id3v2_tag(unsigned 
+ 			char *songname = mpg123_title;
+ 			mpg123_title =
+ 				mpg123_format_song_title(tag, mpg123_filename);
++			if (filept)
+ 			mpg123_ip.set_info(mpg123_title, mpg123_length,
+ 					   mpg123_bitrate * 1000,
+ 					   mpg123_frequency, mpg123_stereo);

Added: xmms/trunk/xmms-fix.diff
===================================================================
--- xmms/trunk/xmms-fix.diff	                        (rev 0)
+++ xmms/trunk/xmms-fix.diff	2009-01-20 04:15:37 UTC (rev 24697)
@@ -0,0 +1,11 @@
+--- xmms-1.2.10+cvs20060429/xmms/util.c.orig	2006-11-05 12:29:59.000000000 +0800
++++ xmms-1.2.10+cvs20060429/xmms/util.c	2006-11-05 12:30:01.000000000 +0800
+@@ -175,7 +175,7 @@ GdkImage *create_dblsize_image(GdkImage 
+ 	 * This needs to be optimized
+ 	 */
+ 
+-	dblimg = gdk_image_new(GDK_IMAGE_NORMAL, gdk_visual_get_best(), img->width << 1, img->height << 1);
++	dblimg = gdk_image_new(GDK_IMAGE_NORMAL, gdk_visual_get_best_with_depth(img->depth), img->width << 1, img->height << 1);
+ 	if (dblimg->bpp == 1)
+ 	{
+ 		register guint8 *srcptr, *ptr, *ptr2, pix;

Added: xmms/trunk/xmms-menu.patch
===================================================================
--- xmms/trunk/xmms-menu.patch	                        (rev 0)
+++ xmms/trunk/xmms-menu.patch	2009-01-20 04:15:37 UTC (rev 24697)
@@ -0,0 +1,35 @@
+--- xmms/xmms.desktop	2002-02-11 23:15:56.000000000 +0000
++++ xmms.desktop	2006-02-25 14:21:03.000000000 +0000
+@@ -1,21 +1,16 @@
+ [Desktop Entry]
+ Name=XMMS
+ Comment=X Multimedia System
+-comment[az]=X Multimedya Sistemi
+-comment[ca]=Sistema Multimèdia per a X
+-comment[cs]=Multimediální pøehrávaè
+-comment[es]=Sistema Multimedia para X
+-comment[gl]=Sistema Multimedia para X
+-comment[hr]=X Multimedijski Sustav
+-comment[nn]=X Multimedia-system
+-comment[pt_BR]=X Multimedia System
+-comment[ro]=X MultiMedia Sistem
+-comment[th]=ÃкºÁÑŵÔÁÕà´Õº¹ X
+-comment[tr]=X Multimedya Sistem
+-comment[zh_TW]=X ¦h´CÅé¨t²Î
+-Encoding=Legacy-Mixed
++Comment[es]=Sistema Multimedia para X
++Comment[gl]=Sistema Multimedia para X
++Comment[hr]=X Multimedijski Sustav
++Comment[pt_BR]=X Multimedia System
++Comment[ro]=X MultiMedia Sistem
++Comment[tr]=X Multimedya Sistem
++Encoding=UTF-8
+ Exec=xmms
+-Icon=xmms_mini.xpm
+-MimeType=audio/x-scpls;audio/x-mpegurl;audio/mpegurl;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/x-wav;application/x-ogg
+-Terminal=0
++Icon=xmms
+ Type=Application
++Categories=Application;AudioVideo;
++MimeType=audio/x-scpls;audio/x-mpegurl;audio/mpegurl;audio/mp3;audio/x-mp3;audio/mpeg;audio/x-mpeg;audio/x-wav;application/x-ogg
++Terminal=false

Added: xmms/trunk/xmms.16.png
===================================================================
(Binary files differ)


Property changes on: xmms/trunk/xmms.16.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: xmms/trunk/xmms.32.png
===================================================================
(Binary files differ)


Property changes on: xmms/trunk/xmms.32.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: xmms/trunk/xmms.48.png
===================================================================
(Binary files differ)


Property changes on: xmms/trunk/xmms.48.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream




More information about the arch-commits mailing list