diff options
author | tnut <thierryn1 at hispeed dot ch> | 2010-10-15 23:55:14 +0200 |
---|---|---|
committer | tnut <thierryn1 at hispeed dot ch> | 2010-10-15 23:55:14 +0200 |
commit | 0b3733a79bd1b9bad449424c3fc409ffcbb72a3c (patch) | |
tree | 6bae5c337fef3d9e755c5042cbb20a725db2ea27 /extra/xmms/xmms-1.2.11-3dse.patch | |
parent | ef8da0f04c5aacb2b7950c8daea0ce342c650605 (diff) | |
download | nutyx-extra-0b3733a79bd1b9bad449424c3fc409ffcbb72a3c.tar.gz nutyx-extra-0b3733a79bd1b9bad449424c3fc409ffcbb72a3c.tar.bz2 nutyx-extra-0b3733a79bd1b9bad449424c3fc409ffcbb72a3c.tar.xz nutyx-extra-0b3733a79bd1b9bad449424c3fc409ffcbb72a3c.zip |
xmms, port nettoyé
Diffstat (limited to 'extra/xmms/xmms-1.2.11-3dse.patch')
-rw-r--r-- | extra/xmms/xmms-1.2.11-3dse.patch | 503 |
1 files changed, 0 insertions, 503 deletions
diff --git a/extra/xmms/xmms-1.2.11-3dse.patch b/extra/xmms/xmms-1.2.11-3dse.patch deleted file mode 100644 index 099bf23b1..000000000 --- a/extra/xmms/xmms-1.2.11-3dse.patch +++ /dev/null @@ -1,503 +0,0 @@ ---- 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. |