changeset 3062:192c9ab32c98

Remove almost all of the no longer hooked up config options.
author William Pitcock <nenolod@atheme.org>
date Fri, 24 Apr 2009 06:21:09 -0500
parents 440cb96f005f
children 6a6a731fdaf8
files src/crossfade/configure.c src/crossfade/interface-2.0.c
diffstat 2 files changed, 3 insertions(+), 687 deletions(-) [+]
line wrap: on
line diff
--- a/src/crossfade/configure.c	Fri Apr 24 06:07:28 2009 -0500
+++ b/src/crossfade/configure.c	Fri Apr 24 06:21:09 2009 -0500
@@ -33,10 +33,6 @@
 #include "interface-2.0.h"
 #include "support-2.0.h"
 
-#ifdef HAVE_OSS
-#  include "oss.h"
-#endif
-
 #include <assert.h>
 #include <stdio.h>
 #include <string.h>
@@ -48,14 +44,6 @@
 #include <sys/ioctl.h>
 #include <sys/stat.h>
 
-#ifdef HAVE_OSS
-#  ifdef HAVE_SYS_SOUNDCARD_H
-#    include <sys/soundcard.h>
-#  elif defined(HAVE_MACHINE_SOUNDCARD_H)
-#    include <machine/soundcard.h>
-#  endif
-#endif
-
 #ifdef HAVE_LIBSAMPLERATE
 #  include <samplerate.h>
 #endif
@@ -148,7 +136,6 @@
 static gboolean checking = FALSE;
 static gint op_index;
 static plugin_config_t op_config;
-static gint ep_index;
 
 /* from crossfade.c */
 extern MUTEX buffer_mutex;
@@ -202,27 +189,6 @@
 
 /*-- callbacks --------------------------------------------------------------*/
 
-void
-on_output_oss_radio_toggled(GtkToggleButton *togglebutton, gpointer user_data)
-{
-	SET_PAGE("output_notebook", 0);
-	xfg->output_method = OUTPUT_METHOD_BUILTIN_OSS;
-}
-
-void
-on_output_plugin_radio_toggled(GtkToggleButton *togglebutton, gpointer user_data)
-{
-	SET_PAGE("output_notebook", 1);
-	xfg->output_method = OUTPUT_METHOD_PLUGIN;
-}
-
-void
-on_output_none_radio_toggled(GtkToggleButton *togglebutton, gpointer user_data)
-{
-	SET_PAGE("output_notebook", 2);
-	xfg->output_method = OUTPUT_METHOD_BUILTIN_NULL;
-}
-
 static void
 resampling_rate_cb(GtkWidget *widget, gint index)
 {
@@ -237,176 +203,6 @@
 }
 #endif
 
-/*** oss output **************************************************************/
-
-static void
-scan_devices(gchar *type, GtkWidget *option_menu, activate_func_t signal_f)
-{
-#ifdef HAVE_OSS
-	gchar buffer[256];
-	FILE *file;
-
-	GtkWidget *item;
-	gboolean found = FALSE;
-	gint type_len = strlen(type);
-#endif
-
-	GtkWidget *menu;
-	gint index = 0;
-
-	menu = gtk_menu_new();
-
-#ifdef HAVE_OSS
-	/* look for devices in /dev/sndstat or /proc/asound/sndstat (OSS style) */
-	if ((file = fopen("/dev/sndstat",             "r")) ||
-	    (file = fopen("/proc/asound/sndstat",     "r")) ||
-	    (file = fopen("/proc/asound/oss/sndstat", "r")))
-	{
-		while (fgets(buffer, sizeof(buffer), file))
-		{
-			gint i = strlen(buffer) - 1;
-			while ((i >= 0) && isspace(buffer[i]))
-				buffer[i--] = 0;
-				
-			if (found)
-			{
-				if (!buffer[0] || !isdigit(buffer[0]))
-					break;
-					
-				if (index == 0)
-				{
-					gchar *label, *p = strchr(buffer, ':');
-					if (p)
-						while (*++p == ' ');
-					else
-						p = buffer;
-
-					label = g_strdup_printf("Default (%s)", p);
-					item = gtk_menu_item_new_with_label(label);
-					g_free(label);
-				}
-				else
-					item = gtk_menu_item_new_with_label(buffer);
-
-				gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc)signal_f, (gpointer) index);
-				gtk_widget_show(item);
-				gtk_menu_append(GTK_MENU(menu), item);
-				index++;
-			}
-			else if (strcmp(buffer, type) == 0)
-				found = TRUE;
-			else if (strncmp(buffer, type, type_len) == 0)
-				DEBUG(("[crossfade] scan_devices: %s\n", buffer));
-		}
-		fclose(file);
-
-		if (!found)
-			DEBUG(("[crossfade] scan_devices: section \"%s\" not found!\n", type));
-	}
-	else
-	{
-		DEBUG(("[crossfade] scan_devices: no sndstat found!\n"));
-#ifdef SOUND_MIXER_INFO
-		/* from xmms-3dse7 by Frank Cornelis */
-		DEBUG(("[crossfade] scan_devices: using alternate method...\n"));
-		for (;;)
-		{
-			gchar dev_name[32];
-			int fd;
-			gint mixer = 0;
-			mixer_info info;
-			gchar *label;
-
-			if (mixer != 0)
-				sprintf(dev_name, "/dev/mixer%d", mixer);
-			else
-				strcpy(dev_name, "/dev/mixer");
-
-			if ((fd = open(dev_name, O_RDONLY)) != -1)
-			{
-				if (ioctl(fd, SOUND_MIXER_INFO, &info) != -1)
-				{
-					label = g_strdup_printf(index ? "%s" : "Default (%s)", info.name);
-					add_menu_item(menu, label, signal_f, index, NULL);
-					g_free(label);
-					index++;
-				}
-				close(fd);
-			}
-			else
-				break;
-			mixer++;
-		}
-#endif
-	}
-#endif /* HAVE_OSS */
-
-	/* create default entry if no device(s) could be found */
-	if (index == 0)
-		add_menu_item(menu, "Default", signal_f, 0, NULL);
-
-	/* attach menu */
-	gtk_option_menu_set_menu(GTK_OPTION_MENU(option_menu), menu);
-}
-
-/*-- oss output callbacks ---------------------------------------------------*/
-
-void
-check_oss_dependencies()
-{
-	if (checking) return;
-	checking = TRUE;
-
-	SET_SENSITIVE("oss_adevice_optionmenu", !xfg->oss_use_alt_audio_device);
-	SET_SENSITIVE("oss_adevice_alt_entry",   xfg->oss_use_alt_audio_device);
-
-	SET_SENSITIVE("oss_mdevice_optionmenu", !xfg->oss_use_alt_mixer_device);
-	SET_SENSITIVE("oss_mdevice_alt_entry",   xfg->oss_use_alt_mixer_device);
-
-	SET_SENSITIVE("osshwb_fragments_label", !xfg->oss_maxbuf_enable);
-	SET_SENSITIVE("osshwb_fragments_spin",  !xfg->oss_maxbuf_enable);
-	SET_SENSITIVE("osshwb_fragsize_label",  !xfg->oss_maxbuf_enable);
-	SET_SENSITIVE("osshwb_fragsize_spin",   !xfg->oss_maxbuf_enable);
-
-	checking = FALSE;
-}
-
-void
-config_adevice_cb(GtkWidget *widget, gint device)
-{
-	xfg->oss_audio_device = device;
-}
-
-void
-config_mdevice_cb(GtkWidget *widget, gint device)
-{
-	xfg->oss_mixer_device = device;
-}
-
-void
-on_config_adevice_alt_check_toggled(GtkToggleButton *togglebutton, gpointer user_data)
-{
-	if (checking) return;
-	xfg->oss_use_alt_audio_device = gtk_toggle_button_get_active(togglebutton);
-	check_oss_dependencies();
-}
-
-void
-on_config_mdevice_alt_check_toggled(GtkToggleButton *togglebutton, gpointer user_data)
-{
-	if (checking) return;
-	xfg->oss_use_alt_mixer_device = gtk_toggle_button_get_active(togglebutton);
-	check_oss_dependencies();
-}
-
-void
-on_osshwb_maxbuf_check_toggled(GtkToggleButton *togglebutton, gpointer user_data)
-{
-	if (checking) return;
-	xfg->oss_maxbuf_enable = gtk_toggle_button_get_active(togglebutton);
-	check_oss_dependencies();
-}
-
 /*** plugin output ***********************************************************/
 
 static void config_plugin_cb(GtkWidget *widget, gint index);
@@ -543,136 +339,6 @@
 	op_config.max_write_enable = gtk_toggle_button_get_active(togglebutton);
 }
 
-/*** effects *****************************************************************/
-
-static void config_effect_plugin_cb(GtkWidget *widget, gint index);
-
-static gint
-scan_effect_plugins(GtkWidget *option_menu, gchar *selected)
-{
-	assert(xfplayer_get_effect_list());
-
-	GtkWidget *menu = gtk_menu_new();
-	GList *list = g_list_first(xfplayer_get_effect_list());
-	gint index = 0;
-	gint sel_index = -1;
-	gint def_index = -1;
-
-	/* sanity check */
-	if (selected == NULL)
-		selected = "";
-
-	/* parse module list */
-	while (list)
-	{
-		EffectPlugin *ep = (EffectPlugin *) list->data;
-		GtkWidget  *item = gtk_menu_item_new_with_label(ep->description);
-
-		if (def_index == -1)
-			def_index = index;
-			
-		if (ep->filename && !strcmp(g_basename(ep->filename), selected))
-			sel_index = index;
-
-		/* create menu item */
-		gtk_signal_connect(GTK_OBJECT(item), "activate", (GtkSignalFunc)config_effect_plugin_cb, (gpointer) index++);
-		gtk_widget_show(item);
-		gtk_menu_append(GTK_MENU(menu), item);
-
-		/* advance to next module */
-		list = g_list_next(list);
-	}
-
-	/* attach menu */
-	gtk_option_menu_set_menu(GTK_OPTION_MENU(option_menu), menu);
-
-	if (sel_index == -1)
-	{
-		DEBUG(("[crossfade] scan_effect_plugins: plugin not found (\"%s\")\n", selected));
-		return def_index;	/* use default (first entry) */
-	}
-	return sel_index;
-}
-
-/*-- plugin output callbacks ------------------------------------------------*/
-
-static void
-config_effect_plugin_cb(GtkWidget *widget, gint index)
-{
-	assert(xfplayer_get_effect_list());
-	EffectPlugin *ep = g_list_nth_data(xfplayer_get_effect_list(), index);
-
-	/* select new plugin */
-	ep_index = index;
-
-	/* get new plugin's name */
-	if (xfg->ep_name) g_free(xfg->ep_name);
-	xfg->ep_name = (ep && ep->filename) ? g_strdup(g_basename(ep->filename)) : NULL;
-
-	/* update gui */
-	SET_SENSITIVE("ep_configure_button", ep && (ep->configure != NULL));
-	SET_SENSITIVE("ep_about_button",     ep && (ep->about     != NULL));
-
-	/* 0.3.5: apply effect config immediatelly */
-	if (config->ep_name) g_free(config->ep_name);
-	config->ep_name = g_strdup(xfg->ep_name);
-}
-
-void
-on_ep_configure_button_clicked(GtkButton *button, gpointer user_data)
-{
-	assert(xfplayer_get_effect_list());
-
-	EffectPlugin *ep = g_list_nth_data(xfplayer_get_effect_list(), ep_index);
-	if ((ep == NULL) || (ep->configure == NULL))
-		return;
-		
-	ep->configure();
-}
-
-void
-on_ep_about_button_clicked(GtkButton *button, gpointer user_data)
-{
-	assert(xfplayer_get_effect_list());
-
-	EffectPlugin *ep = g_list_nth_data(xfplayer_get_effect_list(), ep_index);
-	if ((ep == NULL) || (ep->about == NULL))
-		return;
-		
-	ep->about();
-}
-
-void
-on_ep_enable_check_toggled(GtkToggleButton *togglebutton, gpointer user_data)
-{
-	/* 0.3.5: apply effect config immediatelly */
-	config->ep_enable = xfg->ep_enable = GET_TOGGLE("ep_enable_check");
-}
-
-/*-- volume normalizer ------------------------------------------------------*/
-
-void
-check_effects_dependencies()
-{
-	if (checking) return;
-	checking = TRUE;
-
-	SET_SENSITIVE("volnorm_target_spin",      xfg->volnorm_enable);
-	SET_SENSITIVE("volnorm_target_label",     xfg->volnorm_enable);
-	SET_SENSITIVE("volnorm_quantaudio_check", xfg->volnorm_enable);
-	SET_SENSITIVE("volnorm_target_spin",      xfg->volnorm_enable);
-
-	checking = FALSE;
-}
-
-void
-on_volnorm_enable_check_toggled(GtkToggleButton *togglebutton, gpointer user_data)
-{
-	if (checking) return;
-	xfg->volnorm_enable = gtk_toggle_button_get_active(togglebutton);
-	check_effects_dependencies();
-}
-
 /*** crossfader **************************************************************/
 
 static void xf_config_cb(GtkWidget *widget, gint index);
@@ -1345,22 +1011,6 @@
 	if ((widget = lookup_widget(config_win, "output_oss_notebook")))
 		xfg->oss_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widget));
 
-	if ((widget = lookup_widget(config_win, "oss_adevice_alt_entry")))
-	{
-		if (xfg->oss_alt_audio_device)
-			g_free(xfg->oss_alt_audio_device);
-		xfg->oss_alt_audio_device = gtk_editable_get_chars(GTK_EDITABLE(widget), 0, -1);
-		g_strstrip(xfg->oss_alt_audio_device);
-	}
-
-	if ((widget = lookup_widget(config_win, "oss_mdevice_alt_entry")))
-	{
-		if (xfg->oss_alt_mixer_device)
-			g_free(xfg->oss_alt_mixer_device);
-		xfg->oss_alt_mixer_device = gtk_editable_get_chars(GTK_EDITABLE(widget), 0, -1);
-		g_strstrip(xfg->oss_alt_mixer_device);
-	}
-
 	xfg->oss_buffer_size_ms = GET_SPIN("ossbuf_buffer_spin");
 	xfg->oss_preload_size_ms = GET_SPIN("ossbuf_preload_spin");
 
@@ -1383,8 +1033,6 @@
 	/* effects: pre-mixing effect plugin */
 
 	/* effects: volume normalizer */
-	xfg->volnorm_target = GET_SPIN("volnorm_target_spin");
-	xfg->volnorm_use_qa = GET_TOGGLE("volnorm_quantaudio_check");
 
 	/* crossfader */
 	xfg->mix_size_auto = GET_TOGGLE("xf_autobuf_check");
@@ -1491,32 +1139,6 @@
 			gtk_notebook_set_page(GTK_NOTEBOOK(widget), config->page);
 
 		/* output: method */
-#ifdef HAVE_OSS
-		SET_SENSITIVE("output_oss_radio", TRUE);
-#else
-		SET_SENSITIVE("output_oss_radio", FALSE);
-#endif
-
-		switch (xfg->output_method)
-		{
-			case OUTPUT_METHOD_BUILTIN_OSS:
-				widget = lookup_widget(config_win, "output_oss_radio");
-				break;
-				
-			case OUTPUT_METHOD_PLUGIN:
-				widget = lookup_widget(config_win, "output_plugin_radio");
-				break;
-				
-			case OUTPUT_METHOD_BUILTIN_NULL:
-				widget = lookup_widget(config_win, "output_none_radio");
-				break;
-				
-			default:
-				widget = NULL;
-		}
-		if (widget)
-			gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
-
 		if ((widget = lookup_widget(config_win, "output_notebook")))
 			gtk_notebook_set_page(GTK_NOTEBOOK(widget), xfg->output_method);
 
@@ -1584,47 +1206,6 @@
 		HIDE("resampling_quality_optionmenu");
 #endif
 
-		/* output method: builtin OSS */
-		if ((widget = lookup_widget(config_win, "output_oss_notebook")))
-			gtk_notebook_set_page(GTK_NOTEBOOK(widget), xfg->oss_page);
-
-		if ((widget = lookup_widget(config_win, "oss_adevice_optionmenu")))
-		{
-			scan_devices("Audio devices:", widget, config_adevice_cb);
-			gtk_option_menu_set_history(GTK_OPTION_MENU(widget), xfg->oss_audio_device);
-			gtk_widget_set_sensitive(widget, !xfg->oss_use_alt_audio_device);
-		}
-		SET_TOGGLE("oss_adevice_alt_check", xfg->oss_use_alt_audio_device);
-		if ((widget = lookup_widget(config_win, "oss_adevice_alt_entry")))
-		{
-			gtk_entry_set_text(GTK_ENTRY(widget), xfg->oss_alt_audio_device ? xfg->oss_alt_audio_device : DEFAULT_OSS_ALT_AUDIO_DEVICE);
-			gtk_widget_set_sensitive(widget, xfg->oss_use_alt_audio_device);
-		}
-
-		if ((widget = lookup_widget(config_win, "oss_mdevice_optionmenu")))
-		{
-			scan_devices("Mixers:", widget, config_mdevice_cb);
-			gtk_option_menu_set_history(GTK_OPTION_MENU(widget), xfg->oss_mixer_device);
-			gtk_widget_set_sensitive(widget, !xfg->oss_use_alt_mixer_device);
-		}
-		SET_TOGGLE("oss_mdevice_alt_check", xfg->oss_use_alt_mixer_device);
-		if ((widget = lookup_widget(config_win, "oss_mdevice_alt_entry")))
-		{
-			gtk_entry_set_text(GTK_ENTRY(widget), xfg->oss_alt_mixer_device ? xfg->oss_alt_mixer_device : DEFAULT_OSS_ALT_MIXER_DEVICE);
-			gtk_widget_set_sensitive(widget, xfg->oss_use_alt_mixer_device);
-		}
-
-		SET_SPIN("ossbuf_buffer_spin",    xfg->oss_buffer_size_ms);
-		SET_SPIN("ossbuf_preload_spin",   xfg->oss_preload_size_ms);
-
-		SET_SPIN("osshwb_fragments_spin", xfg->oss_fragments);
-		SET_SPIN("osshwb_fragsize_spin",  xfg->oss_fragment_size);
-		SET_TOGGLE("osshwb_maxbuf_check", xfg->oss_maxbuf_enable);
-
-		SET_TOGGLE("ossmixer_pcm_check",  xfg->oss_mixer_use_master);
-
-		check_oss_dependencies();
-
 		/* output method: plugin */
 		xfade_load_plugin_config(xfg->op_config_string, xfg->op_name, &op_config);
 		SET_TOGGLE   ("op_throttle_check",    op_config.throttle_enable);
@@ -1645,33 +1226,6 @@
 			SET_SENSITIVE("op_about_button",     op && (op->about     != NULL));
 		}
 
-		/* output method: none */
-
-		/* effects: pre-mixing effect plugin */
-		if (!xfplayer_get_effect_list())
-			HIDE("config_effects_page")
-		else if ((widget = lookup_widget(config_win, "ep_plugin_optionmenu")))
-		{
-			EffectPlugin *ep = NULL;
-			if ((ep_index = scan_effect_plugins(widget, xfg->ep_name)) >= 0)
-			{
-				gtk_option_menu_set_history(GTK_OPTION_MENU(widget), ep_index);
-				ep = g_list_nth_data(xfplayer_get_effect_list(), ep_index);
-			}
-			SET_SENSITIVE("ep_configure_button",  ep && (ep->configure != NULL));
-			SET_SENSITIVE("ep_about_button",      ep && (ep->about     != NULL));
-			SET_TOGGLE   ("ep_enable_check",      xfg->ep_enable);
-			SET_SENSITIVE("ep_enable_check",      ep_index != -1);
-			SET_SENSITIVE("ep_plugin_optionmenu", ep_index != -1);
-		}
-
-		/* effects: volume normalizer */
-		SET_TOGGLE("volnorm_enable_check",     xfg->volnorm_enable);
-		SET_TOGGLE("volnorm_quantaudio_check", xfg->volnorm_use_qa);
-		SET_SPIN  ("volnorm_target_spin",      xfg->volnorm_target);
-
-		check_effects_dependencies();
-
 		/* crossfader */
 		create_crossfader_config_menu();
 
--- a/src/crossfade/interface-2.0.c	Fri Apr 24 06:07:28 2009 -0500
+++ b/src/crossfade/interface-2.0.c	Fri Apr 24 06:21:09 2009 -0500
@@ -34,13 +34,6 @@
   GtkWidget *config_notebook;
   GtkWidget *config_output_page;
   GtkWidget *output_options_hbox;
-  GtkWidget *output_method_frame;
-  GtkWidget *output_method_vbox;
-  GtkWidget *output_oss_radio;
-  GSList *output_oss_radio_group = NULL;
-  GtkWidget *output_plugin_radio;
-  GtkWidget *output_none_radio;
-  GtkWidget *output_method_frame_label;
   GtkWidget *output_resampling_frame;
   GtkWidget *output_resampling_table;
   GtkWidget *resampling_rate_optionmenu;
@@ -135,29 +128,6 @@
   GtkWidget *output_null_label;
   GtkWidget *output_help_label;
   GtkWidget *config_devices_label;
-  GtkWidget *config_effects_page;
-  GtkWidget *ep_plugin_frame;
-  GtkWidget *ep_plugin_vbox;
-  GtkWidget *ep_plugin_optionmenu;
-  GtkWidget *ep_plugin_optionmenu_menu;
-  GtkWidget *ep_plugin_optionmenu_dummy;
-  GtkWidget *ep_plugin_buttonbox;
-  GtkWidget *ep_configure_button;
-  GtkWidget *ep_about_button;
-  GtkWidget *ep_enable_check;
-  GtkWidget *ep_plugin_frame_label;
-  GtkWidget *effects_volnorm_frame;
-  GtkWidget *effects_volnorm_table;
-  GtkWidget *volnorm_quantaudio_check;
-  GtkObject *volnorm_target_spin_adj;
-  GtkWidget *volnorm_target_spin;
-  GtkWidget *volnorm_target_hbox;
-  GtkWidget *volnorm_target_label;
-  GtkWidget *volnorm_enable_check;
-  GtkWidget *volnorm_rva2_check;
-  GtkWidget *label11;
-  GtkWidget *effects_help_label;
-  GtkWidget *config_effects_label;
   GtkWidget *config_crossfader_page;
   GtkWidget *xf_bufsize_hbox;
   GtkWidget *xf_bufsize_label;
@@ -413,39 +383,6 @@
   gtk_widget_show (output_options_hbox);
   gtk_box_pack_start (GTK_BOX (config_output_page), output_options_hbox, FALSE, TRUE, 0);
 
-  output_method_frame = gtk_frame_new (NULL);
-  gtk_widget_show (output_method_frame);
-  gtk_box_pack_start (GTK_BOX (output_options_hbox), output_method_frame, TRUE, TRUE, 0);
-
-  output_method_vbox = gtk_vbox_new (FALSE, 2);
-  gtk_widget_show (output_method_vbox);
-  gtk_container_add (GTK_CONTAINER (output_method_frame), output_method_vbox);
-  gtk_container_set_border_width (GTK_CONTAINER (output_method_vbox), 5);
-
-  output_oss_radio = gtk_radio_button_new_with_mnemonic (NULL, "Builtin OSS driver");
-  gtk_widget_show (output_oss_radio);
-  gtk_box_pack_start (GTK_BOX (output_method_vbox), output_oss_radio, FALSE, FALSE, 0);
-  gtk_tooltips_set_tip (tooltips, output_oss_radio, "Use XMMS-crossfade's builtin OSS driver for output.", NULL);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (output_oss_radio), output_oss_radio_group);
-  output_oss_radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (output_oss_radio));
-
-  output_plugin_radio = gtk_radio_button_new_with_mnemonic (NULL, "Output plugin");
-  gtk_widget_show (output_plugin_radio);
-  gtk_box_pack_start (GTK_BOX (output_method_vbox), output_plugin_radio, FALSE, FALSE, 0);
-  gtk_tooltips_set_tip (tooltips, output_plugin_radio, "Use an existing plugin for output.", NULL);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (output_plugin_radio), output_oss_radio_group);
-  output_oss_radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (output_plugin_radio));
-
-  output_none_radio = gtk_radio_button_new_with_mnemonic (NULL, "None [not implemented]");
-  gtk_box_pack_start (GTK_BOX (output_method_vbox), output_none_radio, FALSE, FALSE, 0);
-  gtk_widget_set_sensitive (output_none_radio, FALSE);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (output_none_radio), output_oss_radio_group);
-  output_oss_radio_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (output_none_radio));
-
-  output_method_frame_label = gtk_label_new ("Output method");
-  gtk_widget_show (output_method_frame_label);
-  gtk_frame_set_label_widget (GTK_FRAME (output_method_frame), output_method_frame_label);
-
   output_resampling_frame = gtk_frame_new (NULL);
   gtk_widget_show (output_resampling_frame);
   gtk_box_pack_start (GTK_BOX (output_options_hbox), output_resampling_frame, FALSE, FALSE, 0);
@@ -850,123 +787,6 @@
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (config_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (config_notebook), 0), config_devices_label);
   gtk_label_set_justify (GTK_LABEL (config_devices_label), GTK_JUSTIFY_CENTER);
 
-  config_effects_page = gtk_vbox_new (FALSE, 5);
-  gtk_widget_show (config_effects_page);
-  gtk_container_add (GTK_CONTAINER (config_notebook), config_effects_page);
-  gtk_container_set_border_width (GTK_CONTAINER (config_effects_page), 5);
-
-  ep_plugin_frame = gtk_frame_new (NULL);
-  gtk_widget_show (ep_plugin_frame);
-  gtk_box_pack_start (GTK_BOX (config_effects_page), ep_plugin_frame, FALSE, TRUE, 0);
-
-  ep_plugin_vbox = gtk_vbox_new (FALSE, 2);
-  gtk_widget_show (ep_plugin_vbox);
-  gtk_container_add (GTK_CONTAINER (ep_plugin_frame), ep_plugin_vbox);
-  gtk_container_set_border_width (GTK_CONTAINER (ep_plugin_vbox), 5);
-
-  ep_plugin_optionmenu = gtk_option_menu_new ();
-  gtk_widget_show (ep_plugin_optionmenu);
-  gtk_box_pack_start (GTK_BOX (ep_plugin_vbox), ep_plugin_optionmenu, FALSE, FALSE, 0);
-  gtk_tooltips_set_tip (tooltips, ep_plugin_optionmenu, "Select an effect plugin. Take care not to use the same plugin as selected in XMMS' configuration dialog.", NULL);
-
-  ep_plugin_optionmenu_menu = gtk_menu_new ();
-
-  ep_plugin_optionmenu_dummy = gtk_menu_item_new_with_mnemonic ("dummy");
-  gtk_widget_show (ep_plugin_optionmenu_dummy);
-  gtk_container_add (GTK_CONTAINER (ep_plugin_optionmenu_menu), ep_plugin_optionmenu_dummy);
-
-  gtk_option_menu_set_menu (GTK_OPTION_MENU (ep_plugin_optionmenu), ep_plugin_optionmenu_menu);
-
-  ep_plugin_buttonbox = gtk_hbutton_box_new ();
-  gtk_widget_show (ep_plugin_buttonbox);
-  gtk_box_pack_start (GTK_BOX (ep_plugin_vbox), ep_plugin_buttonbox, FALSE, TRUE, 0);
-  gtk_button_box_set_layout (GTK_BUTTON_BOX (ep_plugin_buttonbox), GTK_BUTTONBOX_START);
-  gtk_box_set_spacing (GTK_BOX (ep_plugin_buttonbox), 5);
-
-  ep_configure_button = gtk_button_new_with_mnemonic ("Configure");
-  gtk_widget_show (ep_configure_button);
-  gtk_container_add (GTK_CONTAINER (ep_plugin_buttonbox), ep_configure_button);
-  GTK_WIDGET_SET_FLAGS (ep_configure_button, GTK_CAN_DEFAULT);
-  gtk_tooltips_set_tip (tooltips, ep_configure_button, "Open the configuration dialog of the plugin selected above.", NULL);
-
-  ep_about_button = gtk_button_new_with_mnemonic ("About");
-  gtk_widget_show (ep_about_button);
-  gtk_container_add (GTK_CONTAINER (ep_plugin_buttonbox), ep_about_button);
-  GTK_WIDGET_SET_FLAGS (ep_about_button, GTK_CAN_DEFAULT);
-  gtk_tooltips_set_tip (tooltips, ep_about_button, "Open the about dialog of the plugin selected above.", NULL);
-
-  ep_enable_check = gtk_check_button_new_with_mnemonic ("Use plugin");
-  gtk_widget_show (ep_enable_check);
-  gtk_container_add (GTK_CONTAINER (ep_plugin_buttonbox), ep_enable_check);
-  gtk_tooltips_set_tip (tooltips, ep_enable_check, "Enable the selected plugin. Note that after pressing 'Apply' it may take a while until you can hear the effect, since it is applied before the audio data goes into the buffer.", NULL);
-
-  ep_plugin_frame_label = gtk_label_new ("Pre-mixing effect plugin");
-  gtk_widget_show (ep_plugin_frame_label);
-  gtk_frame_set_label_widget (GTK_FRAME (ep_plugin_frame), ep_plugin_frame_label);
-
-  effects_volnorm_frame = gtk_frame_new (NULL);
-  gtk_box_pack_start (GTK_BOX (config_effects_page), effects_volnorm_frame, FALSE, FALSE, 0);
-
-  effects_volnorm_table = gtk_table_new (4, 2, FALSE);
-  gtk_widget_show (effects_volnorm_table);
-  gtk_container_add (GTK_CONTAINER (effects_volnorm_frame), effects_volnorm_table);
-  gtk_container_set_border_width (GTK_CONTAINER (effects_volnorm_table), 5);
-  gtk_table_set_row_spacings (GTK_TABLE (effects_volnorm_table), 2);
-  gtk_table_set_col_spacings (GTK_TABLE (effects_volnorm_table), 5);
-
-  volnorm_quantaudio_check = gtk_check_button_new_with_mnemonic ("Read Quantaudio comment field");
-  gtk_widget_show (volnorm_quantaudio_check);
-  gtk_table_attach (GTK_TABLE (effects_volnorm_table), volnorm_quantaudio_check, 1, 2, 2, 3,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-
-  volnorm_target_spin_adj = gtk_adjustment_new (8000, 0, 32768, 100, 1000, 10);
-  volnorm_target_spin = gtk_spin_button_new (GTK_ADJUSTMENT (volnorm_target_spin_adj), 0, 0);
-  gtk_widget_show (volnorm_target_spin);
-  gtk_table_attach (GTK_TABLE (effects_volnorm_table), volnorm_target_spin, 1, 2, 3, 4,
-                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-  gtk_tooltips_set_tip (tooltips, volnorm_target_spin, "Set the maximum length for gaps at the end of a stream.\nDefault: 500", NULL);
-  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (volnorm_target_spin), TRUE);
-
-  volnorm_target_hbox = gtk_hbox_new (FALSE, 0);
-  gtk_widget_show (volnorm_target_hbox);
-  gtk_table_attach (GTK_TABLE (effects_volnorm_table), volnorm_target_hbox, 0, 1, 3, 4,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (GTK_FILL), 0, 0);
-
-  volnorm_target_label = gtk_label_new ("Target RMS:");
-  gtk_widget_show (volnorm_target_label);
-  gtk_box_pack_start (GTK_BOX (volnorm_target_hbox), volnorm_target_label, FALSE, FALSE, 0);
-  gtk_label_set_justify (GTK_LABEL (volnorm_target_label), GTK_JUSTIFY_CENTER);
-
-  volnorm_enable_check = gtk_check_button_new_with_mnemonic ("Enable");
-  gtk_widget_show (volnorm_enable_check);
-  gtk_table_attach (GTK_TABLE (effects_volnorm_table), volnorm_enable_check, 1, 2, 0, 1,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-
-  volnorm_rva2_check = gtk_check_button_new_with_mnemonic ("Read ID3V2 RVA2 Tag");
-  gtk_widget_show (volnorm_rva2_check);
-  gtk_table_attach (GTK_TABLE (effects_volnorm_table), volnorm_rva2_check, 1, 2, 1, 2,
-                    (GtkAttachOptions) (GTK_FILL),
-                    (GtkAttachOptions) (0), 0, 0);
-
-  label11 = gtk_label_new ("Volume normalizer");
-  gtk_widget_show (label11);
-  gtk_frame_set_label_widget (GTK_FRAME (effects_volnorm_frame), label11);
-
-  effects_help_label = gtk_label_new ("You do not need to press <b>Apply</b> after making changes to the effect plugin settings. It may take a while though until you can hear the change, since the plugin is applied before the mixing buffer.");
-  gtk_widget_show (effects_help_label);
-  gtk_box_pack_start (GTK_BOX (config_effects_page), effects_help_label, TRUE, TRUE, 0);
-  gtk_label_set_use_markup (GTK_LABEL (effects_help_label), TRUE);
-  gtk_label_set_line_wrap (GTK_LABEL (effects_help_label), TRUE);
-
-  config_effects_label = gtk_label_new ("Effects");
-  gtk_widget_show (config_effects_label);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (config_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (config_notebook), 1), config_effects_label);
-  gtk_label_set_justify (GTK_LABEL (config_effects_label), GTK_JUSTIFY_CENTER);
-
   config_crossfader_page = gtk_vbox_new (FALSE, 2);
   gtk_widget_show (config_crossfader_page);
   gtk_container_add (GTK_CONTAINER (config_notebook), config_crossfader_page);
@@ -1702,7 +1522,7 @@
 
   config_crossfade_label = gtk_label_new ("Crossfader");
   gtk_widget_show (config_crossfade_label);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (config_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (config_notebook), 2), config_crossfade_label);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (config_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (config_notebook), 1), config_crossfade_label);
   gtk_label_set_justify (GTK_LABEL (config_crossfade_label), GTK_JUSTIFY_CENTER);
 
   config_gapkiller_page = gtk_vbox_new (FALSE, 5);
@@ -1859,7 +1679,7 @@
 
   config_gapkiller_label = gtk_label_new ("Gap Killer");
   gtk_widget_show (config_gapkiller_label);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (config_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (config_notebook), 3), config_gapkiller_label);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (config_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (config_notebook), 2), config_gapkiller_label);
   gtk_label_set_justify (GTK_LABEL (config_gapkiller_label), GTK_JUSTIFY_CENTER);
 
   config_misc_page = gtk_vbox_new (FALSE, 5);
@@ -2014,7 +1834,7 @@
 
   config_misc_label = gtk_label_new ("Advanced");
   gtk_widget_show (config_misc_label);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (config_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (config_notebook), 4), config_misc_label);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (config_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (config_notebook), 3), config_misc_label);
   gtk_label_set_justify (GTK_LABEL (config_misc_label), GTK_JUSTIFY_CENTER);
 
   config_presets_page = gtk_vbox_new (FALSE, 5);
@@ -2090,24 +1910,6 @@
   gtk_container_add (GTK_CONTAINER (config_bbox), config_apply);
   GTK_WIDGET_SET_FLAGS (config_apply, GTK_CAN_DEFAULT);
 
-  g_signal_connect ((gpointer) output_oss_radio, "toggled",
-                    G_CALLBACK (on_output_oss_radio_toggled),
-                    NULL);
-  g_signal_connect ((gpointer) output_plugin_radio, "toggled",
-                    G_CALLBACK (on_output_plugin_radio_toggled),
-                    NULL);
-  g_signal_connect ((gpointer) output_none_radio, "toggled",
-                    G_CALLBACK (on_output_none_radio_toggled),
-                    NULL);
-  g_signal_connect ((gpointer) oss_adevice_alt_check, "toggled",
-                    G_CALLBACK (on_config_adevice_alt_check_toggled),
-                    NULL);
-  g_signal_connect ((gpointer) oss_mdevice_alt_check, "toggled",
-                    G_CALLBACK (on_config_mdevice_alt_check_toggled),
-                    NULL);
-  g_signal_connect ((gpointer) osshwb_maxbuf_check, "toggled",
-                    G_CALLBACK (on_osshwb_maxbuf_check_toggled),
-                    NULL);
   g_signal_connect ((gpointer) op_configure_button, "clicked",
                     G_CALLBACK (on_output_plugin_configure_button_clicked),
                     NULL);
@@ -2126,18 +1928,6 @@
   g_signal_connect ((gpointer) op_forcereopen_check, "toggled",
                     G_CALLBACK (on_op_forcereopen_check_toggled),
                     NULL);
-  g_signal_connect ((gpointer) ep_configure_button, "clicked",
-                    G_CALLBACK (on_ep_configure_button_clicked),
-                    NULL);
-  g_signal_connect ((gpointer) ep_about_button, "clicked",
-                    G_CALLBACK (on_ep_about_button_clicked),
-                    NULL);
-  g_signal_connect ((gpointer) ep_enable_check, "toggled",
-                    G_CALLBACK (on_ep_enable_check_toggled),
-                    NULL);
-  g_signal_connect ((gpointer) volnorm_enable_check, "toggled",
-                    G_CALLBACK (on_volnorm_enable_check_toggled),
-                    NULL);
   g_signal_connect ((gpointer) xf_buffer_spin, "changed",
                     G_CALLBACK (on_xf_buffer_spin_changed),
                     NULL);
@@ -2283,12 +2073,6 @@
   GLADE_HOOKUP_OBJECT (config_win, config_notebook, "config_notebook");
   GLADE_HOOKUP_OBJECT (config_win, config_output_page, "config_output_page");
   GLADE_HOOKUP_OBJECT (config_win, output_options_hbox, "output_options_hbox");
-  GLADE_HOOKUP_OBJECT (config_win, output_method_frame, "output_method_frame");
-  GLADE_HOOKUP_OBJECT (config_win, output_method_vbox, "output_method_vbox");
-  GLADE_HOOKUP_OBJECT (config_win, output_oss_radio, "output_oss_radio");
-  GLADE_HOOKUP_OBJECT (config_win, output_plugin_radio, "output_plugin_radio");
-  GLADE_HOOKUP_OBJECT (config_win, output_none_radio, "output_none_radio");
-  GLADE_HOOKUP_OBJECT (config_win, output_method_frame_label, "output_method_frame_label");
   GLADE_HOOKUP_OBJECT (config_win, output_resampling_frame, "output_resampling_frame");
   GLADE_HOOKUP_OBJECT (config_win, output_resampling_table, "output_resampling_table");
   GLADE_HOOKUP_OBJECT (config_win, resampling_rate_optionmenu, "resampling_rate_optionmenu");
@@ -2377,28 +2161,6 @@
   GLADE_HOOKUP_OBJECT (config_win, output_null_label, "output_null_label");
   GLADE_HOOKUP_OBJECT (config_win, output_help_label, "output_help_label");
   GLADE_HOOKUP_OBJECT (config_win, config_devices_label, "config_devices_label");
-  GLADE_HOOKUP_OBJECT (config_win, config_effects_page, "config_effects_page");
-  GLADE_HOOKUP_OBJECT (config_win, ep_plugin_frame, "ep_plugin_frame");
-  GLADE_HOOKUP_OBJECT (config_win, ep_plugin_vbox, "ep_plugin_vbox");
-  GLADE_HOOKUP_OBJECT (config_win, ep_plugin_optionmenu, "ep_plugin_optionmenu");
-  GLADE_HOOKUP_OBJECT (config_win, ep_plugin_optionmenu_menu, "ep_plugin_optionmenu_menu");
-  GLADE_HOOKUP_OBJECT (config_win, ep_plugin_optionmenu_dummy, "ep_plugin_optionmenu_dummy");
-  GLADE_HOOKUP_OBJECT (config_win, ep_plugin_buttonbox, "ep_plugin_buttonbox");
-  GLADE_HOOKUP_OBJECT (config_win, ep_configure_button, "ep_configure_button");
-  GLADE_HOOKUP_OBJECT (config_win, ep_about_button, "ep_about_button");
-  GLADE_HOOKUP_OBJECT (config_win, ep_enable_check, "ep_enable_check");
-  GLADE_HOOKUP_OBJECT (config_win, ep_plugin_frame_label, "ep_plugin_frame_label");
-  GLADE_HOOKUP_OBJECT (config_win, effects_volnorm_frame, "effects_volnorm_frame");
-  GLADE_HOOKUP_OBJECT (config_win, effects_volnorm_table, "effects_volnorm_table");
-  GLADE_HOOKUP_OBJECT (config_win, volnorm_quantaudio_check, "volnorm_quantaudio_check");
-  GLADE_HOOKUP_OBJECT (config_win, volnorm_target_spin, "volnorm_target_spin");
-  GLADE_HOOKUP_OBJECT (config_win, volnorm_target_hbox, "volnorm_target_hbox");
-  GLADE_HOOKUP_OBJECT (config_win, volnorm_target_label, "volnorm_target_label");
-  GLADE_HOOKUP_OBJECT (config_win, volnorm_enable_check, "volnorm_enable_check");
-  GLADE_HOOKUP_OBJECT (config_win, volnorm_rva2_check, "volnorm_rva2_check");
-  GLADE_HOOKUP_OBJECT (config_win, label11, "label11");
-  GLADE_HOOKUP_OBJECT (config_win, effects_help_label, "effects_help_label");
-  GLADE_HOOKUP_OBJECT (config_win, config_effects_label, "config_effects_label");
   GLADE_HOOKUP_OBJECT (config_win, config_crossfader_page, "config_crossfader_page");
   GLADE_HOOKUP_OBJECT (config_win, xf_bufsize_hbox, "xf_bufsize_hbox");
   GLADE_HOOKUP_OBJECT (config_win, xf_bufsize_label, "xf_bufsize_label");