changeset 262:5410de731c3c trunk

[svn] Remove last of the internal OSS support and default to ALSA. Squashed a few warnings but it is still messy.
author chainsaw
date Wed, 07 Dec 2005 15:37:52 -0800
parents 5fd398406cf7
children ddb59458d7a9
files Plugins/Output/crossfade/callbacks.h Plugins/Output/crossfade/configure.c Plugins/Output/crossfade/crossfade.c Plugins/Output/crossfade/crossfade.h Plugins/Output/crossfade/interface-2.0.c Plugins/Output/crossfade/interface-2.0.glade
diffstat 6 files changed, 35 insertions(+), 1729 deletions(-) [+]
line wrap: on
line diff
--- a/Plugins/Output/crossfade/callbacks.h	Tue Dec 06 16:09:32 2005 -0800
+++ b/Plugins/Output/crossfade/callbacks.h	Wed Dec 07 15:37:52 2005 -0800
@@ -29,7 +29,6 @@
 /* configure.c*/
 void on_config_ok_clicked(GtkButton *button, gpointer user_data);
 void on_config_apply_clicked(GtkButton *button, gpointer user_data);
-void on_output_oss_radio_toggled(GtkToggleButton *togglebutton, gpointer user_data);
 void on_output_plugin_radio_toggled(GtkToggleButton *togglebutton, gpointer user_data);
 void on_output_none_radio_toggled(GtkToggleButton *togglebutton, gpointer user_data);
 void on_config_adevice_alt_check_toggled(GtkToggleButton *togglebutton, gpointer user_data);
--- a/Plugins/Output/crossfade/configure.c	Tue Dec 06 16:09:32 2005 -0800
+++ b/Plugins/Output/crossfade/configure.c	Wed Dec 07 15:37:52 2005 -0800
@@ -33,9 +33,6 @@
 #include "interface.h"
 #include "monitor.h"
 #include "support.h"
-#ifdef HAVE_OSS
-#  include "oss.h"
-#endif
 
 #include <stdio.h>
 #include <string.h>
@@ -47,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
@@ -282,11 +271,6 @@
 
   if((cfgfile = xmms_cfg_open_default_file())) {
     /* config items used in v0.1 */
-    xmms_cfg_read_int    (cfgfile, section, "output_method",        &config->output_method);
-    xmms_cfg_read_int    (cfgfile, section, "audio_device",         &config->oss_audio_device);
-    xmms_cfg_read_boolean(cfgfile, section, "use_alt_audio_device", &config->oss_use_alt_audio_device);
-    xmms_cfg_read_string (cfgfile, section, "alt_audio_device",     &config->oss_alt_audio_device);
-    xmms_cfg_read_int    (cfgfile, section, "mixer_device",         &config->oss_mixer_device);
     xmms_cfg_read_string (cfgfile, section, "output_plugin",        &config->op_name);
     xmms_cfg_read_string (cfgfile, section, "op_config_string",     &config->op_config_string);
     xmms_cfg_read_int    (cfgfile, section, "buffer_size",          &config->mix_size_ms);
@@ -299,9 +283,6 @@
     xmms_cfg_read_boolean(cfgfile, section, "enable_monitor",       &config->enable_monitor);
 
     /* config items introduced by v0.2 */
-    xmms_cfg_read_int    (cfgfile, section, "oss_buffer_size",      &config->oss_buffer_size_ms);
-    xmms_cfg_read_int    (cfgfile, section, "oss_preload_size",     &config->oss_preload_size_ms);
-    xmms_cfg_read_boolean(cfgfile, section, "oss_mixer_use_master", &config->oss_mixer_use_master);
     xmms_cfg_read_boolean(cfgfile, section, "gap_lead_enable",      &config->gap_lead_enable);
     xmms_cfg_read_int    (cfgfile, section, "gap_lead_len_ms",      &config->gap_lead_len_ms);
     xmms_cfg_read_int    (cfgfile, section, "gap_lead_level",       &config->gap_lead_level);
@@ -326,13 +307,7 @@
     xmms_cfg_read_boolean(cfgfile, section, "effect_enable",        &config->ep_enable);
     xmms_cfg_read_int    (cfgfile, section, "output_rate",          &config->output_rate);
     
-    /* config items introduced by v0.2.7 */
-    xmms_cfg_read_boolean(cfgfile, section, "oss_maxbuf_enable",    &config->oss_maxbuf_enable);
-
     /* config items introduced by v0.3.0 */
-    xmms_cfg_read_boolean(cfgfile, section, "use_alt_mixer_device", &config->oss_use_alt_mixer_device);
-    xmms_cfg_read_int    (cfgfile, section, "oss_fragments",        &config->oss_fragments);
-    xmms_cfg_read_int    (cfgfile, section, "oss_fragment_size",    &config->oss_fragment_size);
     xmms_cfg_read_boolean(cfgfile, section, "volnorm_enable",       &config->volnorm_enable);
     xmms_cfg_read_boolean(cfgfile, section, "volnorm_use_qa",       &config->volnorm_use_qa);
     xmms_cfg_read_int    (cfgfile, section, "volnorm_target",       &config->volnorm_target);
@@ -345,7 +320,6 @@
     xmms_cfg_read_boolean(cfgfile, section, "no_xfade_if_same_file",&config->no_xfade_if_same_file);
 
     /* config items introduced by v0.3.3 */
-    xmms_cfg_read_string (cfgfile, section, "alt_mixer_device",     &config->oss_alt_mixer_device);
     xmms_cfg_read_boolean(cfgfile, section, "gap_crossing",         &config->gap_crossing);
 
     /* config items introduced by v0.3.6 */
@@ -390,11 +364,6 @@
     xmms_cfg_remove_key(cfgfile, section, "gap_lead_length");
       
     /* config items used in v0.1 */
-    xmms_cfg_write_int    (cfgfile, section, "output_method",        config->output_method);
-    xmms_cfg_write_int    (cfgfile, section, "audio_device",         config->oss_audio_device);
-    xmms_cfg_write_boolean(cfgfile, section, "use_alt_audio_device", config->oss_use_alt_audio_device);
-    xmms_cfg_write_string (cfgfile, section, "alt_audio_device",     config->oss_alt_audio_device ? config->oss_alt_audio_device : DEFAULT_OSS_ALT_AUDIO_DEVICE);
-    xmms_cfg_write_int    (cfgfile, section, "mixer_device",         config->oss_mixer_device);
     xmms_cfg_write_string (cfgfile, section, "output_plugin",        config->op_name ? config->op_name : DEFAULT_OP_NAME);
     xmms_cfg_write_string (cfgfile, section, "op_config_string",     config->op_config_string ? config->op_config_string : DEFAULT_OP_CONFIG_STRING);
     xmms_cfg_write_int    (cfgfile, section, "buffer_size",          config->mix_size_ms);
@@ -407,9 +376,6 @@
     xmms_cfg_write_boolean(cfgfile, section, "enable_monitor",       config->enable_monitor);
     
     /* config items introduced by v0.2 */
-    xmms_cfg_write_int    (cfgfile, section, "oss_buffer_size",      config->oss_buffer_size_ms);
-    xmms_cfg_write_int    (cfgfile, section, "oss_preload_size",     config->oss_preload_size_ms);
-    xmms_cfg_write_boolean(cfgfile, section, "oss_mixer_use_master", config->oss_mixer_use_master);
     xmms_cfg_write_boolean(cfgfile, section, "gap_lead_enable",      config->gap_lead_enable);
     xmms_cfg_write_int    (cfgfile, section, "gap_lead_len_ms",      config->gap_lead_len_ms);
     xmms_cfg_write_int    (cfgfile, section, "gap_lead_level",       config->gap_lead_level);
@@ -434,13 +400,7 @@
     xmms_cfg_write_boolean(cfgfile, section, "effect_enable",        config->ep_enable);
     xmms_cfg_write_int    (cfgfile, section, "output_rate",          config->output_rate);
    
-    /* config items introduced by v0.2.7 */
-    xmms_cfg_write_boolean(cfgfile, section, "oss_maxbuf_enable",    config->oss_maxbuf_enable);
-    
     /* config items introduced by v0.3.0 */
-    xmms_cfg_write_boolean(cfgfile, section, "use_alt_mixer_device", config->oss_use_alt_mixer_device);
-    xmms_cfg_write_int    (cfgfile, section, "oss_fragments",        config->oss_fragments);
-    xmms_cfg_write_int    (cfgfile, section, "oss_fragment_size",    config->oss_fragment_size);
 #ifdef VOLUME_NORMALIZER
     xmms_cfg_write_boolean(cfgfile, section, "volnorm_enable",       config->volnorm_enable);
     xmms_cfg_write_boolean(cfgfile, section, "volnorm_use_qa",       config->volnorm_use_qa);
@@ -455,7 +415,6 @@
     xmms_cfg_write_boolean(cfgfile, section, "no_xfade_if_same_file",config->no_xfade_if_same_file);
 
     /* config items introduced by v0.3.2 */
-    xmms_cfg_write_string (cfgfile, section, "alt_mixer_device",     config->oss_alt_mixer_device ? config->oss_alt_mixer_device : DEFAULT_OSS_ALT_MIXER_DEVICE);
     xmms_cfg_write_boolean(cfgfile, section, "gap_crossing",         config->gap_crossing);
 
     /* config items introduced by v0.3.6 */
@@ -483,8 +442,6 @@
 void
 xfade_free_config()
 {
-  SAFE_FREE(cfg->oss_alt_audio_device);
-  SAFE_FREE(cfg->oss_alt_mixer_device);
   SAFE_FREE(cfg->op_config_string);
   SAFE_FREE(cfg->op_name);
 
@@ -685,24 +642,6 @@
 
 /*-- callbacks --------------------------------------------------------------*/
 
-void on_output_oss_radio_toggled(GtkToggleButton *togglebutton, gpointer user_data)
-{
-  SET_PAGE("output_notebook", 0);
-  cfg->output_method = OUTPUT_METHOD_BUILTIN_OSS;
-}
-
-void on_output_plugin_radio_toggled(GtkToggleButton *togglebutton, gpointer user_data)
-{
-  SET_PAGE("output_notebook", 1);
-  cfg->output_method = OUTPUT_METHOD_PLUGIN;
-}
-
-void on_output_none_radio_toggled(GtkToggleButton *togglebutton, gpointer user_data)
-{
-  SET_PAGE("output_notebook", 2);
-  cfg->output_method = OUTPUT_METHOD_BUILTIN_NULL;
-}
-
 static void resampling_rate_cb(GtkWidget *widget, gint index)
 {
   cfg->output_rate = index;
@@ -715,153 +654,6 @@
 }
 #endif
 
-/*** oss output **************************************************************/
-
-static void
-scan_devices(gchar *type, GtkWidget *option_menu, GtkSignalFunc 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;
-  gint  mixer = 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) do 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", GTK_SIGNAL_FUNC(signal_f),
-			   (gpointer)index);
-	gtk_widget_show(item);
-	gtk_menu_append(GTK_MENU(menu), item);
-	index++;
-      }
-      else if(!strcmp(buffer, type))
-	found = TRUE;
-      else if(!strncmp(buffer, type, type_len))
-	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;
-      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", !cfg->oss_use_alt_audio_device);
-  SET_SENSITIVE("oss_adevice_alt_entry",   cfg->oss_use_alt_audio_device);
-
-  SET_SENSITIVE("oss_mdevice_optionmenu", !cfg->oss_use_alt_mixer_device);
-  SET_SENSITIVE("oss_mdevice_alt_entry",   cfg->oss_use_alt_mixer_device);
-
-  SET_SENSITIVE("osshwb_fragments_label", !cfg->oss_maxbuf_enable);
-  SET_SENSITIVE("osshwb_fragments_spin",  !cfg->oss_maxbuf_enable);
-  SET_SENSITIVE("osshwb_fragsize_label",  !cfg->oss_maxbuf_enable);
-  SET_SENSITIVE("osshwb_fragsize_spin",   !cfg->oss_maxbuf_enable);
-
-  checking = FALSE;
-}
-
-void config_adevice_cb(GtkWidget *widget, gint device)
-{
-  cfg->oss_audio_device = device;
-}
-
-void config_mdevice_cb(GtkWidget *widget, gint device)
-{
-  cfg->oss_mixer_device = device;
-}
-
-void on_config_adevice_alt_check_toggled(GtkToggleButton *togglebutton, gpointer user_data)
-{
-  if(checking) return;
-  cfg->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;
-  cfg->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;
-  cfg->oss_maxbuf_enable = gtk_toggle_button_get_active(togglebutton);
-  check_oss_dependencies();
-}
-
 /*** plugin output ***********************************************************/
 
 static gchar *
@@ -1197,18 +989,18 @@
     for(i=0; i<MAX_FADE_CONFIGS; i++) xf_config_index_map[i] = -1;
     imap = xf_config_index_map;
     menu = gtk_menu_new();
-    add_menu_item(menu, "Start of playback",    xf_config_cb, FADE_CONFIG_START, &imap);
-    add_menu_item(menu, "Automatic songchange", xf_config_cb, FADE_CONFIG_XFADE, &imap);
+    add_menu_item(menu, "Start of playback",    GTK_SIGNAL_FUNC(xf_config_cb), FADE_CONFIG_START, &imap);
+    add_menu_item(menu, "Automatic songchange", GTK_SIGNAL_FUNC(xf_config_cb), FADE_CONFIG_XFADE, &imap);
 #if 0
     /* this should be FADE_TYPE_NONE all the time, anyway,
        so no need to make it configureable by the user */
-    add_menu_item(menu, "Automatic (gapless)",  xf_config_cb, FADE_CONFIG_ALBUM, &imap);
+    add_menu_item(menu, "Automatic (gapless)",  GTK_SIGNAL_FUNC(xf_config_cb), FADE_CONFIG_ALBUM, &imap);
 #endif
-    add_menu_item(menu, "Manual songchange",    xf_config_cb, FADE_CONFIG_MANUAL, &imap);
-    add_menu_item(menu, "Manual stop",          xf_config_cb, FADE_CONFIG_STOP, &imap);
-    add_menu_item(menu, "End of playlist",      xf_config_cb, FADE_CONFIG_EOP, &imap);
-    add_menu_item(menu, "Seeking",              xf_config_cb, FADE_CONFIG_SEEK, &imap);
-    add_menu_item(menu, "Pause",                xf_config_cb, FADE_CONFIG_PAUSE, &imap);
+    add_menu_item(menu, "Manual songchange",    GTK_SIGNAL_FUNC(xf_config_cb), FADE_CONFIG_MANUAL, &imap);
+    add_menu_item(menu, "Manual stop",          GTK_SIGNAL_FUNC(xf_config_cb), FADE_CONFIG_STOP, &imap);
+    add_menu_item(menu, "End of playlist",      GTK_SIGNAL_FUNC(xf_config_cb), FADE_CONFIG_EOP, &imap);
+    add_menu_item(menu, "Seeking",              GTK_SIGNAL_FUNC(xf_config_cb), FADE_CONFIG_SEEK, &imap);
+    add_menu_item(menu, "Pause",                GTK_SIGNAL_FUNC(xf_config_cb), FADE_CONFIG_PAUSE, &imap);
     gtk_option_menu_set_menu(GTK_OPTION_MENU(optionmenu), menu);
   }
 
@@ -1226,16 +1018,16 @@
     imap = xf_type_index_map;
     menu = gtk_menu_new();
     mask = cfg->fc[cfg->xf_index].type_mask;
-    if(mask & (1 << FADE_TYPE_REOPEN))      add_menu_item(menu, "Reopen output device", xf_type_cb, FADE_TYPE_REOPEN, &imap);
-    if(mask & (1 << FADE_TYPE_FLUSH))       add_menu_item(menu, "Flush output device",  xf_type_cb, FADE_TYPE_FLUSH, &imap);
-    if(mask & (1 << FADE_TYPE_NONE))        add_menu_item(menu, "None (gapless/off)",   xf_type_cb, FADE_TYPE_NONE, &imap);
-    if(mask & (1 << FADE_TYPE_PAUSE))       add_menu_item(menu, "Pause",                xf_type_cb, FADE_TYPE_PAUSE, &imap);
-    if(mask & (1 << FADE_TYPE_SIMPLE_XF))   add_menu_item(menu, "Simple crossfade",     xf_type_cb, FADE_TYPE_SIMPLE_XF, &imap);
-    if(mask & (1 << FADE_TYPE_ADVANCED_XF)) add_menu_item(menu, "Advanced crossfade",   xf_type_cb, FADE_TYPE_ADVANCED_XF, &imap);
-    if(mask & (1 << FADE_TYPE_FADEIN))      add_menu_item(menu, "Fadein",               xf_type_cb, FADE_TYPE_FADEIN, &imap);
-    if(mask & (1 << FADE_TYPE_FADEOUT))     add_menu_item(menu, "Fadeout",              xf_type_cb, FADE_TYPE_FADEOUT, &imap);
-    if(mask & (1 << FADE_TYPE_PAUSE_NONE))  add_menu_item(menu, "None",                 xf_type_cb, FADE_TYPE_PAUSE_NONE, &imap);
-    if(mask & (1 << FADE_TYPE_PAUSE_ADV))   add_menu_item(menu, "Fadeout/Fadein",       xf_type_cb, FADE_TYPE_PAUSE_ADV, &imap);
+    if(mask & (1 << FADE_TYPE_REOPEN))      add_menu_item(menu, "Reopen output device", GTK_SIGNAL_FUNC(xf_type_cb), FADE_TYPE_REOPEN, &imap);
+    if(mask & (1 << FADE_TYPE_FLUSH))       add_menu_item(menu, "Flush output device",  GTK_SIGNAL_FUNC(xf_type_cb), FADE_TYPE_FLUSH, &imap);
+    if(mask & (1 << FADE_TYPE_NONE))        add_menu_item(menu, "None (gapless/off)",   GTK_SIGNAL_FUNC(xf_type_cb), FADE_TYPE_NONE, &imap);
+    if(mask & (1 << FADE_TYPE_PAUSE))       add_menu_item(menu, "Pause",                GTK_SIGNAL_FUNC(xf_type_cb), FADE_TYPE_PAUSE, &imap);
+    if(mask & (1 << FADE_TYPE_SIMPLE_XF))   add_menu_item(menu, "Simple crossfade",     GTK_SIGNAL_FUNC(xf_type_cb), FADE_TYPE_SIMPLE_XF, &imap);
+    if(mask & (1 << FADE_TYPE_ADVANCED_XF)) add_menu_item(menu, "Advanced crossfade",   GTK_SIGNAL_FUNC(xf_type_cb), FADE_TYPE_ADVANCED_XF, &imap);
+    if(mask & (1 << FADE_TYPE_FADEIN))      add_menu_item(menu, "Fadein",               GTK_SIGNAL_FUNC(xf_type_cb), FADE_TYPE_FADEIN, &imap);
+    if(mask & (1 << FADE_TYPE_FADEOUT))     add_menu_item(menu, "Fadeout",              GTK_SIGNAL_FUNC(xf_type_cb), FADE_TYPE_FADEOUT, &imap);
+    if(mask & (1 << FADE_TYPE_PAUSE_NONE))  add_menu_item(menu, "None",                 GTK_SIGNAL_FUNC(xf_type_cb), FADE_TYPE_PAUSE_NONE, &imap);
+    if(mask & (1 << FADE_TYPE_PAUSE_ADV))   add_menu_item(menu, "Fadeout/Fadein",       GTK_SIGNAL_FUNC(xf_type_cb), FADE_TYPE_PAUSE_ADV, &imap);
     gtk_option_menu_set_menu(GTK_OPTION_MENU(optionmenu), menu);
   }
 }
@@ -1770,31 +1562,6 @@
 
   /* sample rate */
 
-  /* output method: builtin OSS */
-  if((widget = lookup_widget(config_win, "output_oss_notebook")))
-    cfg->oss_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widget));
-
-  if((widget = lookup_widget(config_win, "oss_adevice_alt_entry"))) {
-    if(cfg->oss_alt_audio_device) g_free(cfg->oss_alt_audio_device);
-    cfg->oss_alt_audio_device = gtk_editable_get_chars(GTK_EDITABLE(widget), 0, -1);
-    g_strstrip(cfg->oss_alt_audio_device);
-  }
-
-  if((widget = lookup_widget(config_win, "oss_mdevice_alt_entry"))) {
-    if(cfg->oss_alt_mixer_device) g_free(cfg->oss_alt_mixer_device);
-    cfg->oss_alt_mixer_device = gtk_editable_get_chars(GTK_EDITABLE(widget), 0, -1);
-    g_strstrip(cfg->oss_alt_mixer_device);
-  }
-
-  cfg->oss_buffer_size_ms  = GET_SPIN  ("ossbuf_buffer_spin");
-  cfg->oss_preload_size_ms = GET_SPIN  ("ossbuf_preload_spin");
-
-  cfg->oss_fragments       = GET_SPIN  ("osshwb_fragments_spin");
-  cfg->oss_fragment_size   = GET_SPIN  ("osshwb_fragsize_spin");
-  cfg->oss_maxbuf_enable   = GET_TOGGLE("osshwb_maxbuf_check");
-
-  cfg->oss_mixer_use_master = GET_TOGGLE("ossmixer_pcm_check");
-
   /* output method: plugin */
   op_config.throttle_enable  = GET_TOGGLE("op_throttle_check");
   op_config.max_write_enable = GET_TOGGLE("op_maxblock_check");
@@ -1842,16 +1609,12 @@
   g_static_mutex_lock(&buffer_mutex);
 
   /* free existing strings */
-  if(config->oss_alt_audio_device) g_free(config->oss_alt_audio_device);
-  if(config->oss_alt_mixer_device) g_free(config->oss_alt_mixer_device);
   if(config->op_config_string)     g_free(config->op_config_string);
   if(config->op_name)              g_free(config->op_name);
   if(config->ep_name)              g_free(config->ep_name);
 
   /* copy current settings (dupping the strings) */
   *config = *cfg;
-  config->oss_alt_audio_device = g_strdup(cfg->oss_alt_audio_device);
-  config->oss_alt_mixer_device = g_strdup(cfg->oss_alt_mixer_device);
   config->op_config_string     = g_strdup(cfg->op_config_string);
   config->op_name              = g_strdup(cfg->op_name);
   config->ep_name              = g_strdup(cfg->ep_name);
@@ -1894,16 +1657,12 @@
 		       GTK_SIGNAL_FUNC(gtk_widget_destroyed), &config_win);
     
     /* free any strings that might be left in our local copy of the config */
-    if(cfg->oss_alt_audio_device) g_free(cfg->oss_alt_audio_device);
-    if(cfg->oss_alt_mixer_device) g_free(cfg->oss_alt_mixer_device);
     if(cfg->op_config_string)     g_free(cfg->op_config_string);
     if(cfg->op_name)              g_free(cfg->op_name);
     if(cfg->ep_name)              g_free(cfg->ep_name);
 
     /* copy current settings (dupping the strings) */
     *cfg = *config;
-    cfg->oss_alt_audio_device = g_strdup(config->oss_alt_audio_device);
-    cfg->oss_alt_mixer_device = g_strdup(config->oss_alt_mixer_device);
     cfg->op_config_string     = g_strdup(config->op_config_string);
     cfg->op_name              = g_strdup(config->op_name);
     cfg->ep_name              = g_strdup(config->ep_name);
@@ -1912,31 +1671,6 @@
     if((widget = lookup_widget(config_win, "config_notebook")))
       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(cfg->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), cfg->output_method);
-
     /* output: resampling rate */
     if((widget = lookup_widget(config_win, "resampling_rate_optionmenu"))) {
       GtkWidget *menu = gtk_menu_new();
@@ -1995,49 +1729,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), cfg->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),
-				  cfg->oss_audio_device);
-      gtk_widget_set_sensitive(widget, !cfg->oss_use_alt_audio_device);
-    }
-    SET_TOGGLE("oss_adevice_alt_check", cfg->oss_use_alt_audio_device);
-    if((widget = lookup_widget(config_win, "oss_adevice_alt_entry"))) {
-      gtk_entry_set_text(GTK_ENTRY(widget), cfg->oss_alt_audio_device
-			 ? cfg->oss_alt_audio_device
-			 : DEFAULT_OSS_ALT_AUDIO_DEVICE);
-      gtk_widget_set_sensitive(widget, cfg->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),
-				  cfg->oss_mixer_device);
-      gtk_widget_set_sensitive(widget, !cfg->oss_use_alt_mixer_device);
-    }
-    SET_TOGGLE("oss_mdevice_alt_check", cfg->oss_use_alt_mixer_device);
-    if((widget = lookup_widget(config_win, "oss_mdevice_alt_entry"))) {
-      gtk_entry_set_text(GTK_ENTRY(widget), cfg->oss_alt_mixer_device
-        		 ? cfg->oss_alt_mixer_device
-        		 : DEFAULT_OSS_ALT_MIXER_DEVICE); 
-      gtk_widget_set_sensitive(widget, cfg->oss_use_alt_mixer_device);
-    }
-
-    SET_SPIN  ("ossbuf_buffer_spin",  cfg->oss_buffer_size_ms);
-    SET_SPIN  ("ossbuf_preload_spin", cfg->oss_preload_size_ms);
-
-    SET_SPIN  ("osshwb_fragments_spin", cfg->oss_fragments);
-    SET_SPIN  ("osshwb_fragsize_spin",  cfg->oss_fragment_size);
-    SET_TOGGLE("osshwb_maxbuf_check",   cfg->oss_maxbuf_enable);
-
-    SET_TOGGLE("ossmixer_pcm_check", cfg->oss_mixer_use_master);
-
-    check_oss_dependencies();
-
     /* output method: plugin */
     xfade_load_plugin_config(cfg->op_config_string, cfg->op_name, &op_config);
     SET_TOGGLE   ("op_throttle_check",    op_config.throttle_enable);
@@ -2140,6 +1831,8 @@
 {
   if(!about_win) {
     gchar *about_text = 
+      "Audacious crossfading plugin\n"
+      "Code adapted for Audacious usage by Tony Vroon <chainsaw@gentoo.org> from:\n"
       "XMMS Crossfade Plugin "VERSION"\n"
       "Copyright (C) 2000-2004  Peter Eisenlohr <peter@eisenlohr.org>\n"
       "\n"
--- a/Plugins/Output/crossfade/crossfade.c	Tue Dec 06 16:09:32 2005 -0800
+++ b/Plugins/Output/crossfade/crossfade.c	Wed Dec 07 15:37:52 2005 -0800
@@ -426,10 +426,6 @@
   xfade_load_config();
 
   /* set default strings if there is no existing config */
-  if(!config->oss_alt_audio_device)
-    config->oss_alt_audio_device = g_strdup(DEFAULT_OSS_ALT_AUDIO_DEVICE);
-  if(!config->oss_alt_mixer_device)
-    config->oss_alt_mixer_device = g_strdup(DEFAULT_OSS_ALT_MIXER_DEVICE);
   if(!config->op_config_string)
     config->op_config_string = g_strdup(DEFAULT_OP_CONFIG_STRING);
   if(!config->op_name)
@@ -566,7 +562,6 @@
   xfade_save_config();
 
   /* free resources */
-  if(config->oss_alt_audio_device) g_free(config->oss_alt_audio_device);
   if(config->op_name) g_free(config->op_name);
   xfade_free_config();
   if(last_filename) g_free(last_filename);
@@ -836,8 +831,8 @@
     return 0;
   }
 
-  old_track = extract_track(g_basename(old));
-  new_track = extract_track(g_basename(new));
+  old_track = extract_track(g_path_get_basename(old));
+  new_track = extract_track(g_path_get_basename(new));
   
   if(new_track <= 0) {
     DEBUG(("[crossfade] album_match: can't parse track number:\n"));
--- a/Plugins/Output/crossfade/crossfade.h	Tue Dec 06 16:09:32 2005 -0800
+++ b/Plugins/Output/crossfade/crossfade.h	Wed Dec 07 15:37:52 2005 -0800
@@ -47,9 +47,8 @@
 
 #define SYNC_OUTPUT_TIMEOUT 2000
 
-#define OUTPUT_METHOD_BUILTIN_OSS  0
-#define OUTPUT_METHOD_PLUGIN       1
-#define OUTPUT_METHOD_BUILTIN_NULL 2
+#define OUTPUT_METHOD_PLUGIN       0
+#define OUTPUT_METHOD_BUILTIN_NULL 1
 
 #define FADE_CONFIG_XFADE   0
 #define FADE_CONFIG_MANUAL  1
@@ -112,31 +111,16 @@
 #define FC_OFFSET_LOCK_OUT 2
 #define FC_OFFSET_CUSTOM   3
 
-#define DEFAULT_OSS_ALT_AUDIO_DEVICE "/dev/dsp"
-#define DEFAULT_OSS_ALT_MIXER_DEVICE "/dev/mixer"
-#define DEFAULT_OP_CONFIG_STRING     "libOSS.so=0,1,2304,0; libdisk_writer.so=1,0,2304,1"
-#define DEFAULT_OP_NAME              "libOSS.so"
+#define DEFAULT_OP_CONFIG_STRING     "libALSA.so=0,1,2304,0; libdisk_writer.so=1,0,2304,1"
+#define DEFAULT_OP_NAME              "libALSA.so"
 #define DEFAULT_EP_NAME              "libnormvol.so"
 
 #define DEFAULT_OP_CONFIG			\
 { FALSE, FALSE, 2304, FALSE }
 
 #define CONFIG_DEFAULT							\
-{ 0,                            /* output_method */			\
-  44100,                        /* output_rate */			\
+{ 44100,                        /* output_rate */			\
   2,                            /* output_quality */			\
-  0,                            /* oss_audio_device */			\
-  FALSE,                        /* oss_use_alt_audio_device */		\
-  NULL,                         /* oss_alt_audio_device */		\
-  0,                            /* oss_mixer_device */			\
-  FALSE,                        /* oss_use_alt_mixer_device */		\
-  NULL,                         /* oss_alt_mixer_device */		\
-  FALSE,                        /* oss_mixer_use_master */		\
-  0,                            /* oss_buffer_size_ms */		\
-  250,                          /* oss_preload_size_ms */		\
-  22,                           /* oss_fragments */			\
-  12,                           /* oss_fragment_size */			\
-  FALSE,                        /* oss_maxbuf_enable */			\
   NULL,                         /* op_config_string */			\
   NULL,                         /* op_name */				\
   NULL,                         /* ep_name */				\
@@ -442,27 +426,9 @@
 typedef struct
 {
   /* output: method */
-  gint output_method;
   gint output_rate;
   gint output_quality;
 
-  /* output: builtin OSS */
-  gint     oss_audio_device;
-  gboolean oss_use_alt_audio_device;
-  gchar   *oss_alt_audio_device;
-
-  gint     oss_mixer_device;
-  gboolean oss_use_alt_mixer_device;
-  gchar   *oss_alt_mixer_device;
-  gboolean oss_mixer_use_master;
-
-  gint     oss_buffer_size_ms;
-  gint     oss_preload_size_ms;
-
-  gint     oss_fragments;
-  gint     oss_fragment_size;
-  gboolean oss_maxbuf_enable;
-
   /* output: plugin */
   gchar   *op_config_string;  /* stores configs for all plugins */
   gchar   *op_name;           /* name of the current plugin */
@@ -518,7 +484,6 @@
 
   /* additional stuff which is not saved to the config file */
   gint     page;
-  gint     oss_page;
   gint     xf_index;
 }
 config_t;
--- a/Plugins/Output/crossfade/interface-2.0.c	Tue Dec 06 16:09:32 2005 -0800
+++ b/Plugins/Output/crossfade/interface-2.0.c	Wed Dec 07 15:37:52 2005 -0800
@@ -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 *label1;
   GtkWidget *output_resampling_frame;
   GtkWidget *output_resampling_table;
   GtkWidget *resampling_rate_hbox;
@@ -51,62 +44,6 @@
   GtkWidget *resampling_quality_optionmenu;
   GtkWidget *output_resampling_label;
   GtkWidget *output_notebook;
-  GtkWidget *output_oss_page;
-  GtkWidget *output_oss_notebook;
-  GtkWidget *oss_device_page;
-  GtkWidget *oss_adevice_frame;
-  GtkWidget *oss_adevice_vbox;
-  GtkWidget *oss_adevice_hbox;
-  GtkWidget *oss_adevice_optionmenu;
-  GtkWidget *convertwidget1;
-  GtkWidget *convertwidget2;
-  GtkWidget *oss_adevice_alt_hbox;
-  GtkWidget *oss_adevice_alt_check;
-  GtkWidget *oss_adevice_alt_entry;
-  GtkWidget *label3;
-  GtkWidget *oss_mdevice_frame;
-  GtkWidget *oss_mdevice_vbox;
-  GtkWidget *oss_mdevice_hbox;
-  GtkWidget *oss_mdevice_optionmenu;
-  GtkWidget *convertwidget3;
-  GtkWidget *convertwidget4;
-  GtkWidget *oss_mdevice_alt_hbox;
-  GtkWidget *oss_mdevice_alt_check;
-  GtkWidget *oss_mdevice_alt_entry;
-  GtkWidget *label4;
-  GtkWidget *oss_device_label;
-  GtkWidget *oss_buffer_page;
-  GtkWidget *oss_buffer_frame;
-  GtkWidget *oss_buffer_vbox;
-  GtkWidget *ossbuf_buffer_hbox;
-  GtkWidget *ossbuf_buffer_label;
-  GtkObject *ossbuf_buffer_spin_adj;
-  GtkWidget *ossbuf_buffer_spin;
-  GtkWidget *ossbuf_preload_hbox;
-  GtkWidget *ossbuf_preload_label;
-  GtkObject *ossbuf_preload_spin_adj;
-  GtkWidget *ossbuf_preload_spin;
-  GtkWidget *label5;
-  GtkWidget *oss_hwbuf_frame;
-  GtkWidget *oss_hwbuf_vbox;
-  GtkWidget *osshwb_maxbuf_check;
-  GtkWidget *osshwb_fragments_hbox;
-  GtkWidget *osshwb_fragments_label;
-  GtkObject *osshwb_fragments_spin_adj;
-  GtkWidget *osshwb_fragments_spin;
-  GtkWidget *osshwb_fragsize_hbox;
-  GtkWidget *osshwb_fragsize_label;
-  GtkObject *osshwb_fragsize_spin_adj;
-  GtkWidget *osshwb_fragsize_spin;
-  GtkWidget *label6;
-  GtkWidget *oss_buffer_label;
-  GtkWidget *oss_mixer_page;
-  GtkWidget *oss_mixer_frame;
-  GtkWidget *oss_mixer_vbox;
-  GtkWidget *ossmixer_pcm_check;
-  GtkWidget *label7;
-  GtkWidget *oss_mixer_label;
-  GtkWidget *label29;
   GtkWidget *output_plugin_page;
   GtkWidget *op_plugin_frame;
   GtkWidget *op_plugin_vbox;
@@ -411,39 +348,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));
-
-  label1 = gtk_label_new ("Output method");
-  gtk_widget_show (label1);
-  gtk_frame_set_label_widget (GTK_FRAME (output_method_frame), label1);
-
   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);
@@ -498,233 +402,6 @@
   gtk_notebook_set_show_tabs (GTK_NOTEBOOK (output_notebook), FALSE);
   gtk_notebook_set_show_border (GTK_NOTEBOOK (output_notebook), FALSE);
 
-  output_oss_page = gtk_vbox_new (FALSE, 5);
-  gtk_widget_show (output_oss_page);
-  gtk_container_add (GTK_CONTAINER (output_notebook), output_oss_page);
-
-  output_oss_notebook = gtk_notebook_new ();
-  gtk_widget_show (output_oss_notebook);
-  gtk_box_pack_start (GTK_BOX (output_oss_page), output_oss_notebook, FALSE, FALSE, 0);
-
-  oss_device_page = gtk_vbox_new (FALSE, 5);
-  gtk_widget_show (oss_device_page);
-  gtk_container_add (GTK_CONTAINER (output_oss_notebook), oss_device_page);
-  gtk_container_set_border_width (GTK_CONTAINER (oss_device_page), 5);
-
-  oss_adevice_frame = gtk_frame_new (NULL);
-  gtk_widget_show (oss_adevice_frame);
-  gtk_box_pack_start (GTK_BOX (oss_device_page), oss_adevice_frame, FALSE, FALSE, 0);
-
-  oss_adevice_vbox = gtk_vbox_new (FALSE, 2);
-  gtk_widget_show (oss_adevice_vbox);
-  gtk_container_add (GTK_CONTAINER (oss_adevice_frame), oss_adevice_vbox);
-  gtk_container_set_border_width (GTK_CONTAINER (oss_adevice_vbox), 5);
-
-  oss_adevice_hbox = gtk_hbox_new (FALSE, 0);
-  gtk_widget_show (oss_adevice_hbox);
-  gtk_box_pack_start (GTK_BOX (oss_adevice_vbox), oss_adevice_hbox, TRUE, TRUE, 0);
-
-  oss_adevice_optionmenu = gtk_option_menu_new ();
-  gtk_widget_show (oss_adevice_optionmenu);
-  gtk_box_pack_start (GTK_BOX (oss_adevice_hbox), oss_adevice_optionmenu, TRUE, TRUE, 0);
-
-  convertwidget1 = gtk_menu_new ();
-
-  convertwidget2 = gtk_menu_item_new_with_mnemonic ("dummy");
-  gtk_widget_show (convertwidget2);
-  gtk_container_add (GTK_CONTAINER (convertwidget1), convertwidget2);
-
-  gtk_option_menu_set_menu (GTK_OPTION_MENU (oss_adevice_optionmenu), convertwidget1);
-
-  oss_adevice_alt_hbox = gtk_hbox_new (FALSE, 0);
-  gtk_widget_show (oss_adevice_alt_hbox);
-  gtk_box_pack_start (GTK_BOX (oss_adevice_vbox), oss_adevice_alt_hbox, TRUE, TRUE, 0);
-
-  oss_adevice_alt_check = gtk_check_button_new_with_mnemonic ("Use alternate device:");
-  gtk_widget_show (oss_adevice_alt_check);
-  gtk_box_pack_start (GTK_BOX (oss_adevice_alt_hbox), oss_adevice_alt_check, FALSE, FALSE, 0);
-
-  oss_adevice_alt_entry = gtk_entry_new ();
-  gtk_widget_show (oss_adevice_alt_entry);
-  gtk_box_pack_start (GTK_BOX (oss_adevice_alt_hbox), oss_adevice_alt_entry, TRUE, TRUE, 0);
-
-  label3 = gtk_label_new ("Audio device");
-  gtk_widget_show (label3);
-  gtk_frame_set_label_widget (GTK_FRAME (oss_adevice_frame), label3);
-
-  oss_mdevice_frame = gtk_frame_new (NULL);
-  gtk_widget_show (oss_mdevice_frame);
-  gtk_box_pack_start (GTK_BOX (oss_device_page), oss_mdevice_frame, FALSE, FALSE, 0);
-
-  oss_mdevice_vbox = gtk_vbox_new (FALSE, 2);
-  gtk_widget_show (oss_mdevice_vbox);
-  gtk_container_add (GTK_CONTAINER (oss_mdevice_frame), oss_mdevice_vbox);
-  gtk_container_set_border_width (GTK_CONTAINER (oss_mdevice_vbox), 5);
-
-  oss_mdevice_hbox = gtk_hbox_new (FALSE, 0);
-  gtk_widget_show (oss_mdevice_hbox);
-  gtk_box_pack_start (GTK_BOX (oss_mdevice_vbox), oss_mdevice_hbox, TRUE, TRUE, 0);
-
-  oss_mdevice_optionmenu = gtk_option_menu_new ();
-  gtk_widget_show (oss_mdevice_optionmenu);
-  gtk_box_pack_start (GTK_BOX (oss_mdevice_hbox), oss_mdevice_optionmenu, TRUE, TRUE, 0);
-
-  convertwidget3 = gtk_menu_new ();
-
-  convertwidget4 = gtk_menu_item_new_with_mnemonic ("dummy");
-  gtk_widget_show (convertwidget4);
-  gtk_container_add (GTK_CONTAINER (convertwidget3), convertwidget4);
-
-  gtk_option_menu_set_menu (GTK_OPTION_MENU (oss_mdevice_optionmenu), convertwidget3);
-
-  oss_mdevice_alt_hbox = gtk_hbox_new (FALSE, 0);
-  gtk_widget_show (oss_mdevice_alt_hbox);
-  gtk_box_pack_start (GTK_BOX (oss_mdevice_vbox), oss_mdevice_alt_hbox, FALSE, FALSE, 0);
-
-  oss_mdevice_alt_check = gtk_check_button_new_with_mnemonic ("Use alternate device:");
-  gtk_widget_show (oss_mdevice_alt_check);
-  gtk_box_pack_start (GTK_BOX (oss_mdevice_alt_hbox), oss_mdevice_alt_check, FALSE, FALSE, 0);
-
-  oss_mdevice_alt_entry = gtk_entry_new ();
-  gtk_widget_show (oss_mdevice_alt_entry);
-  gtk_box_pack_start (GTK_BOX (oss_mdevice_alt_hbox), oss_mdevice_alt_entry, TRUE, TRUE, 0);
-
-  label4 = gtk_label_new ("Mixer device");
-  gtk_widget_show (label4);
-  gtk_frame_set_label_widget (GTK_FRAME (oss_mdevice_frame), label4);
-
-  oss_device_label = gtk_label_new ("Device");
-  gtk_widget_show (oss_device_label);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (output_oss_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (output_oss_notebook), 0), oss_device_label);
-  gtk_label_set_justify (GTK_LABEL (oss_device_label), GTK_JUSTIFY_CENTER);
-
-  oss_buffer_page = gtk_vbox_new (FALSE, 5);
-  gtk_widget_show (oss_buffer_page);
-  gtk_container_add (GTK_CONTAINER (output_oss_notebook), oss_buffer_page);
-  gtk_container_set_border_width (GTK_CONTAINER (oss_buffer_page), 5);
-
-  oss_buffer_frame = gtk_frame_new (NULL);
-  gtk_widget_show (oss_buffer_frame);
-  gtk_box_pack_start (GTK_BOX (oss_buffer_page), oss_buffer_frame, FALSE, FALSE, 0);
-
-  oss_buffer_vbox = gtk_vbox_new (FALSE, 2);
-  gtk_widget_show (oss_buffer_vbox);
-  gtk_container_add (GTK_CONTAINER (oss_buffer_frame), oss_buffer_vbox);
-  gtk_container_set_border_width (GTK_CONTAINER (oss_buffer_vbox), 5);
-
-  ossbuf_buffer_hbox = gtk_hbox_new (FALSE, 5);
-  gtk_widget_show (ossbuf_buffer_hbox);
-  gtk_box_pack_start (GTK_BOX (oss_buffer_vbox), ossbuf_buffer_hbox, FALSE, FALSE, 0);
-
-  ossbuf_buffer_label = gtk_label_new ("Buffer size (ms):");
-  gtk_widget_show (ossbuf_buffer_label);
-  gtk_box_pack_start (GTK_BOX (ossbuf_buffer_hbox), ossbuf_buffer_label, FALSE, FALSE, 0);
-
-  ossbuf_buffer_spin_adj = gtk_adjustment_new (0, 0, 60000, 10, 100, 10);
-  ossbuf_buffer_spin = gtk_spin_button_new (GTK_ADJUSTMENT (ossbuf_buffer_spin_adj), 0, 0);
-  gtk_widget_show (ossbuf_buffer_spin);
-  gtk_box_pack_start (GTK_BOX (ossbuf_buffer_hbox), ossbuf_buffer_spin, TRUE, TRUE, 0);
-  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (ossbuf_buffer_spin), TRUE);
-
-  ossbuf_preload_hbox = gtk_hbox_new (FALSE, 5);
-  gtk_widget_show (ossbuf_preload_hbox);
-  gtk_box_pack_start (GTK_BOX (oss_buffer_vbox), ossbuf_preload_hbox, TRUE, TRUE, 0);
-
-  ossbuf_preload_label = gtk_label_new ("Preload size (ms):");
-  gtk_widget_show (ossbuf_preload_label);
-  gtk_box_pack_start (GTK_BOX (ossbuf_preload_hbox), ossbuf_preload_label, FALSE, FALSE, 0);
-
-  ossbuf_preload_spin_adj = gtk_adjustment_new (1500, 0, 60000, 10, 100, 10);
-  ossbuf_preload_spin = gtk_spin_button_new (GTK_ADJUSTMENT (ossbuf_preload_spin_adj), 0, 0);
-  gtk_widget_show (ossbuf_preload_spin);
-  gtk_box_pack_start (GTK_BOX (ossbuf_preload_hbox), ossbuf_preload_spin, TRUE, TRUE, 0);
-  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (ossbuf_preload_spin), TRUE);
-
-  label5 = gtk_label_new ("Software buffer");
-  gtk_widget_show (label5);
-  gtk_frame_set_label_widget (GTK_FRAME (oss_buffer_frame), label5);
-
-  oss_hwbuf_frame = gtk_frame_new (NULL);
-  gtk_widget_show (oss_hwbuf_frame);
-  gtk_box_pack_start (GTK_BOX (oss_buffer_page), oss_hwbuf_frame, TRUE, TRUE, 0);
-
-  oss_hwbuf_vbox = gtk_vbox_new (FALSE, 2);
-  gtk_widget_show (oss_hwbuf_vbox);
-  gtk_container_add (GTK_CONTAINER (oss_hwbuf_frame), oss_hwbuf_vbox);
-  gtk_container_set_border_width (GTK_CONTAINER (oss_hwbuf_vbox), 5);
-
-  osshwb_maxbuf_check = gtk_check_button_new_with_mnemonic ("Maximum device buffer size");
-  gtk_widget_show (osshwb_maxbuf_check);
-  gtk_box_pack_start (GTK_BOX (oss_hwbuf_vbox), osshwb_maxbuf_check, FALSE, FALSE, 0);
-
-  osshwb_fragments_hbox = gtk_hbox_new (FALSE, 5);
-  gtk_widget_show (osshwb_fragments_hbox);
-  gtk_box_pack_start (GTK_BOX (oss_hwbuf_vbox), osshwb_fragments_hbox, FALSE, FALSE, 0);
-
-  osshwb_fragments_label = gtk_label_new ("Number of Fragments:");
-  gtk_widget_show (osshwb_fragments_label);
-  gtk_box_pack_start (GTK_BOX (osshwb_fragments_hbox), osshwb_fragments_label, FALSE, FALSE, 0);
-
-  osshwb_fragments_spin_adj = gtk_adjustment_new (50, 2, 65535, 1, 10, 10);
-  osshwb_fragments_spin = gtk_spin_button_new (GTK_ADJUSTMENT (osshwb_fragments_spin_adj), 0, 0);
-  gtk_widget_show (osshwb_fragments_spin);
-  gtk_box_pack_start (GTK_BOX (osshwb_fragments_hbox), osshwb_fragments_spin, TRUE, TRUE, 0);
-  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (osshwb_fragments_spin), TRUE);
-
-  osshwb_fragsize_hbox = gtk_hbox_new (FALSE, 5);
-  gtk_widget_show (osshwb_fragsize_hbox);
-  gtk_box_pack_start (GTK_BOX (oss_hwbuf_vbox), osshwb_fragsize_hbox, TRUE, TRUE, 0);
-
-  osshwb_fragsize_label = gtk_label_new ("Fragment size (2^x bytes):");
-  gtk_widget_show (osshwb_fragsize_label);
-  gtk_box_pack_start (GTK_BOX (osshwb_fragsize_hbox), osshwb_fragsize_label, FALSE, FALSE, 0);
-
-  osshwb_fragsize_spin_adj = gtk_adjustment_new (11, 4, 16, 1, 10, 10);
-  osshwb_fragsize_spin = gtk_spin_button_new (GTK_ADJUSTMENT (osshwb_fragsize_spin_adj), 0, 0);
-  gtk_widget_show (osshwb_fragsize_spin);
-  gtk_box_pack_start (GTK_BOX (osshwb_fragsize_hbox), osshwb_fragsize_spin, TRUE, TRUE, 0);
-  gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (osshwb_fragsize_spin), TRUE);
-
-  label6 = gtk_label_new ("Hardware device buffer");
-  gtk_widget_show (label6);
-  gtk_frame_set_label_widget (GTK_FRAME (oss_hwbuf_frame), label6);
-
-  oss_buffer_label = gtk_label_new ("Buffer");
-  gtk_widget_show (oss_buffer_label);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (output_oss_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (output_oss_notebook), 1), oss_buffer_label);
-  gtk_label_set_justify (GTK_LABEL (oss_buffer_label), GTK_JUSTIFY_CENTER);
-
-  oss_mixer_page = gtk_vbox_new (FALSE, 5);
-  gtk_widget_show (oss_mixer_page);
-  gtk_container_add (GTK_CONTAINER (output_oss_notebook), oss_mixer_page);
-  gtk_container_set_border_width (GTK_CONTAINER (oss_mixer_page), 5);
-
-  oss_mixer_frame = gtk_frame_new (NULL);
-  gtk_widget_show (oss_mixer_frame);
-  gtk_box_pack_start (GTK_BOX (oss_mixer_page), oss_mixer_frame, FALSE, FALSE, 0);
-
-  oss_mixer_vbox = gtk_vbox_new (FALSE, 2);
-  gtk_widget_show (oss_mixer_vbox);
-  gtk_container_add (GTK_CONTAINER (oss_mixer_frame), oss_mixer_vbox);
-  gtk_container_set_border_width (GTK_CONTAINER (oss_mixer_vbox), 5);
-
-  ossmixer_pcm_check = gtk_check_button_new_with_mnemonic ("Volume controls Master not PCM");
-  gtk_widget_show (ossmixer_pcm_check);
-  gtk_box_pack_start (GTK_BOX (oss_mixer_vbox), ossmixer_pcm_check, FALSE, FALSE, 0);
-
-  label7 = gtk_label_new ("Mixer options");
-  gtk_widget_show (label7);
-  gtk_frame_set_label_widget (GTK_FRAME (oss_mixer_frame), label7);
-
-  oss_mixer_label = gtk_label_new ("Mixer");
-  gtk_widget_show (oss_mixer_label);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (output_oss_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (output_oss_notebook), 2), oss_mixer_label);
-  gtk_label_set_justify (GTK_LABEL (oss_mixer_label), GTK_JUSTIFY_CENTER);
-
-  label29 = gtk_label_new ("");
-  gtk_widget_show (label29);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (output_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (output_notebook), 0), label29);
-
   output_plugin_page = gtk_vbox_new (FALSE, 5);
   gtk_widget_show (output_plugin_page);
   gtk_container_add (GTK_CONTAINER (output_notebook), output_plugin_page);
@@ -808,7 +485,7 @@
 
   label31 = gtk_label_new ("");
   gtk_widget_show (label31);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (output_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (output_notebook), 1), label31);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (output_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (output_notebook), 0), label31);
 
   empty_notebook_page = gtk_vbox_new (FALSE, 0);
   gtk_widget_show (empty_notebook_page);
@@ -816,7 +493,7 @@
 
   label32 = gtk_label_new ("");
   gtk_widget_show (label32);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (output_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (output_notebook), 2), label32);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (output_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (output_notebook), 1), label32);
 
   empty_notebook_page = gtk_vbox_new (FALSE, 0);
   gtk_widget_show (empty_notebook_page);
@@ -824,7 +501,7 @@
 
   label33 = gtk_label_new ("");
   gtk_widget_show (label33);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (output_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (output_notebook), 3), label33);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (output_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (output_notebook), 2), label33);
 
   empty_notebook_page = gtk_vbox_new (FALSE, 0);
   gtk_widget_show (empty_notebook_page);
@@ -832,7 +509,7 @@
 
   label34 = gtk_label_new ("");
   gtk_widget_show (label34);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (output_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (output_notebook), 4), label34);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (output_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (output_notebook), 3), label34);
 
   output_help_label = gtk_label_new ("When modifying the Output Options or the Mixing buffer size, you need to stop/restart playback for the settings to take effect.");
   gtk_widget_show (output_help_label);
@@ -2085,24 +1762,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);
@@ -2281,12 +1940,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, label1, "label1");
   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_hbox, "resampling_rate_hbox");
@@ -2297,58 +1950,6 @@
   GLADE_HOOKUP_OBJECT (config_win, resampling_quality_optionmenu, "resampling_quality_optionmenu");
   GLADE_HOOKUP_OBJECT (config_win, output_resampling_label, "output_resampling_label");
   GLADE_HOOKUP_OBJECT (config_win, output_notebook, "output_notebook");
-  GLADE_HOOKUP_OBJECT (config_win, output_oss_page, "output_oss_page");
-  GLADE_HOOKUP_OBJECT (config_win, output_oss_notebook, "output_oss_notebook");
-  GLADE_HOOKUP_OBJECT (config_win, oss_device_page, "oss_device_page");
-  GLADE_HOOKUP_OBJECT (config_win, oss_adevice_frame, "oss_adevice_frame");
-  GLADE_HOOKUP_OBJECT (config_win, oss_adevice_vbox, "oss_adevice_vbox");
-  GLADE_HOOKUP_OBJECT (config_win, oss_adevice_hbox, "oss_adevice_hbox");
-  GLADE_HOOKUP_OBJECT (config_win, oss_adevice_optionmenu, "oss_adevice_optionmenu");
-  GLADE_HOOKUP_OBJECT (config_win, convertwidget1, "convertwidget1");
-  GLADE_HOOKUP_OBJECT (config_win, convertwidget2, "convertwidget2");
-  GLADE_HOOKUP_OBJECT (config_win, oss_adevice_alt_hbox, "oss_adevice_alt_hbox");
-  GLADE_HOOKUP_OBJECT (config_win, oss_adevice_alt_check, "oss_adevice_alt_check");
-  GLADE_HOOKUP_OBJECT (config_win, oss_adevice_alt_entry, "oss_adevice_alt_entry");
-  GLADE_HOOKUP_OBJECT (config_win, label3, "label3");
-  GLADE_HOOKUP_OBJECT (config_win, oss_mdevice_frame, "oss_mdevice_frame");
-  GLADE_HOOKUP_OBJECT (config_win, oss_mdevice_vbox, "oss_mdevice_vbox");
-  GLADE_HOOKUP_OBJECT (config_win, oss_mdevice_hbox, "oss_mdevice_hbox");
-  GLADE_HOOKUP_OBJECT (config_win, oss_mdevice_optionmenu, "oss_mdevice_optionmenu");
-  GLADE_HOOKUP_OBJECT (config_win, convertwidget3, "convertwidget3");
-  GLADE_HOOKUP_OBJECT (config_win, convertwidget4, "convertwidget4");
-  GLADE_HOOKUP_OBJECT (config_win, oss_mdevice_alt_hbox, "oss_mdevice_alt_hbox");
-  GLADE_HOOKUP_OBJECT (config_win, oss_mdevice_alt_check, "oss_mdevice_alt_check");
-  GLADE_HOOKUP_OBJECT (config_win, oss_mdevice_alt_entry, "oss_mdevice_alt_entry");
-  GLADE_HOOKUP_OBJECT (config_win, label4, "label4");
-  GLADE_HOOKUP_OBJECT (config_win, oss_device_label, "oss_device_label");
-  GLADE_HOOKUP_OBJECT (config_win, oss_buffer_page, "oss_buffer_page");
-  GLADE_HOOKUP_OBJECT (config_win, oss_buffer_frame, "oss_buffer_frame");
-  GLADE_HOOKUP_OBJECT (config_win, oss_buffer_vbox, "oss_buffer_vbox");
-  GLADE_HOOKUP_OBJECT (config_win, ossbuf_buffer_hbox, "ossbuf_buffer_hbox");
-  GLADE_HOOKUP_OBJECT (config_win, ossbuf_buffer_label, "ossbuf_buffer_label");
-  GLADE_HOOKUP_OBJECT (config_win, ossbuf_buffer_spin, "ossbuf_buffer_spin");
-  GLADE_HOOKUP_OBJECT (config_win, ossbuf_preload_hbox, "ossbuf_preload_hbox");
-  GLADE_HOOKUP_OBJECT (config_win, ossbuf_preload_label, "ossbuf_preload_label");
-  GLADE_HOOKUP_OBJECT (config_win, ossbuf_preload_spin, "ossbuf_preload_spin");
-  GLADE_HOOKUP_OBJECT (config_win, label5, "label5");
-  GLADE_HOOKUP_OBJECT (config_win, oss_hwbuf_frame, "oss_hwbuf_frame");
-  GLADE_HOOKUP_OBJECT (config_win, oss_hwbuf_vbox, "oss_hwbuf_vbox");
-  GLADE_HOOKUP_OBJECT (config_win, osshwb_maxbuf_check, "osshwb_maxbuf_check");
-  GLADE_HOOKUP_OBJECT (config_win, osshwb_fragments_hbox, "osshwb_fragments_hbox");
-  GLADE_HOOKUP_OBJECT (config_win, osshwb_fragments_label, "osshwb_fragments_label");
-  GLADE_HOOKUP_OBJECT (config_win, osshwb_fragments_spin, "osshwb_fragments_spin");
-  GLADE_HOOKUP_OBJECT (config_win, osshwb_fragsize_hbox, "osshwb_fragsize_hbox");
-  GLADE_HOOKUP_OBJECT (config_win, osshwb_fragsize_label, "osshwb_fragsize_label");
-  GLADE_HOOKUP_OBJECT (config_win, osshwb_fragsize_spin, "osshwb_fragsize_spin");
-  GLADE_HOOKUP_OBJECT (config_win, label6, "label6");
-  GLADE_HOOKUP_OBJECT (config_win, oss_buffer_label, "oss_buffer_label");
-  GLADE_HOOKUP_OBJECT (config_win, oss_mixer_page, "oss_mixer_page");
-  GLADE_HOOKUP_OBJECT (config_win, oss_mixer_frame, "oss_mixer_frame");
-  GLADE_HOOKUP_OBJECT (config_win, oss_mixer_vbox, "oss_mixer_vbox");
-  GLADE_HOOKUP_OBJECT (config_win, ossmixer_pcm_check, "ossmixer_pcm_check");
-  GLADE_HOOKUP_OBJECT (config_win, label7, "label7");
-  GLADE_HOOKUP_OBJECT (config_win, oss_mixer_label, "oss_mixer_label");
-  GLADE_HOOKUP_OBJECT (config_win, label29, "label29");
   GLADE_HOOKUP_OBJECT (config_win, output_plugin_page, "output_plugin_page");
   GLADE_HOOKUP_OBJECT (config_win, op_plugin_frame, "op_plugin_frame");
   GLADE_HOOKUP_OBJECT (config_win, op_plugin_vbox, "op_plugin_vbox");
--- a/Plugins/Output/crossfade/interface-2.0.glade	Tue Dec 06 16:09:32 2005 -0800
+++ b/Plugins/Output/crossfade/interface-2.0.glade	Wed Dec 07 15:37:52 2005 -0800
@@ -17,6 +17,7 @@
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
   <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
 
   <child>
     <widget class="GtkVBox" id="config_vbox">
@@ -49,116 +50,6 @@
 		  <property name="spacing">6</property>
 
 		  <child>
-		    <widget class="GtkFrame" id="output_method_frame">
-		      <property name="visible">True</property>
-		      <property name="label_xalign">0</property>
-		      <property name="label_yalign">0.5</property>
-		      <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
-		      <child>
-			<widget class="GtkVBox" id="output_method_vbox">
-			  <property name="border_width">5</property>
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">2</property>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="output_oss_radio">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Use XMMS-crossfade's builtin OSS driver for output.</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Builtin OSS driver</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <signal name="toggled" handler="on_output_oss_radio_toggled"/>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="output_plugin_radio">
-			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">Use an existing plugin for output.</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Output plugin</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <property name="group">output_oss_radio</property>
-			      <signal name="toggled" handler="on_output_plugin_radio_toggled"/>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkRadioButton" id="output_none_radio">
-			      <property name="sensitive">False</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">None [not implemented]</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <property name="group">output_oss_radio</property>
-			      <signal name="toggled" handler="on_output_none_radio_toggled"/>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label1">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">Output method</property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="type">label_item</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
 		    <widget class="GtkFrame" id="output_resampling_frame">
 		      <property name="visible">True</property>
 		      <property name="label_xalign">0</property>
@@ -337,847 +228,6 @@
 		  <property name="enable_popup">False</property>
 
 		  <child>
-		    <widget class="GtkVBox" id="output_oss_page">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">5</property>
-
-		      <child>
-			<widget class="GtkNotebook" id="output_oss_notebook">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="show_tabs">True</property>
-			  <property name="show_border">True</property>
-			  <property name="tab_pos">GTK_POS_TOP</property>
-			  <property name="scrollable">False</property>
-			  <property name="enable_popup">False</property>
-
-			  <child>
-			    <widget class="GtkVBox" id="oss_device_page">
-			      <property name="border_width">5</property>
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">5</property>
-
-			      <child>
-				<widget class="GtkFrame" id="oss_adevice_frame">
-				  <property name="visible">True</property>
-				  <property name="label_xalign">0</property>
-				  <property name="label_yalign">0.5</property>
-				  <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
-				  <child>
-				    <widget class="GtkVBox" id="oss_adevice_vbox">
-				      <property name="border_width">5</property>
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">2</property>
-
-				      <child>
-					<widget class="GtkHBox" id="oss_adevice_hbox">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">0</property>
-
-					  <child>
-					    <widget class="GtkOptionMenu" id="oss_adevice_optionmenu">
-					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="history">0</property>
-
-					      <child internal-child="menu">
-						<widget class="GtkMenu" id="convertwidget1">
-						  <property name="visible">True</property>
-
-						  <child>
-						    <widget class="GtkMenuItem" id="convertwidget2">
-						      <property name="visible">True</property>
-						      <property name="label" translatable="yes">dummy</property>
-						      <property name="use_underline">True</property>
-						    </widget>
-						  </child>
-						</widget>
-					      </child>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">True</property>
-					      <property name="fill">True</property>
-					    </packing>
-					  </child>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">True</property>
-					  <property name="fill">True</property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkHBox" id="oss_adevice_alt_hbox">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">0</property>
-
-					  <child>
-					    <widget class="GtkCheckButton" id="oss_adevice_alt_check">
-					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="label" translatable="yes">Use alternate device:</property>
-					      <property name="use_underline">True</property>
-					      <property name="relief">GTK_RELIEF_NORMAL</property>
-					      <property name="focus_on_click">True</property>
-					      <property name="active">False</property>
-					      <property name="inconsistent">False</property>
-					      <property name="draw_indicator">True</property>
-					      <signal name="toggled" handler="on_config_adevice_alt_check_toggled"/>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkEntry" id="oss_adevice_alt_entry">
-					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="editable">True</property>
-					      <property name="visibility">True</property>
-					      <property name="max_length">0</property>
-					      <property name="text" translatable="yes"></property>
-					      <property name="has_frame">True</property>
-					      <property name="invisible_char">*</property>
-					      <property name="activates_default">False</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">True</property>
-					      <property name="fill">True</property>
-					    </packing>
-					  </child>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">True</property>
-					  <property name="fill">True</property>
-					</packing>
-				      </child>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label3">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Audio device</property>
-				      <property name="use_underline">False</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-				      <property name="width_chars">-1</property>
-				      <property name="single_line_mode">False</property>
-				      <property name="angle">0</property>
-				    </widget>
-				    <packing>
-				      <property name="type">label_item</property>
-				    </packing>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkFrame" id="oss_mdevice_frame">
-				  <property name="visible">True</property>
-				  <property name="label_xalign">0</property>
-				  <property name="label_yalign">0.5</property>
-				  <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
-				  <child>
-				    <widget class="GtkVBox" id="oss_mdevice_vbox">
-				      <property name="border_width">5</property>
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">2</property>
-
-				      <child>
-					<widget class="GtkHBox" id="oss_mdevice_hbox">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">0</property>
-
-					  <child>
-					    <widget class="GtkOptionMenu" id="oss_mdevice_optionmenu">
-					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="history">0</property>
-
-					      <child internal-child="menu">
-						<widget class="GtkMenu" id="convertwidget3">
-						  <property name="visible">True</property>
-
-						  <child>
-						    <widget class="GtkMenuItem" id="convertwidget4">
-						      <property name="visible">True</property>
-						      <property name="label" translatable="yes">dummy</property>
-						      <property name="use_underline">True</property>
-						    </widget>
-						  </child>
-						</widget>
-					      </child>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">True</property>
-					      <property name="fill">True</property>
-					    </packing>
-					  </child>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">True</property>
-					  <property name="fill">True</property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkHBox" id="oss_mdevice_alt_hbox">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">0</property>
-
-					  <child>
-					    <widget class="GtkCheckButton" id="oss_mdevice_alt_check">
-					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="label" translatable="yes">Use alternate device:</property>
-					      <property name="use_underline">True</property>
-					      <property name="relief">GTK_RELIEF_NORMAL</property>
-					      <property name="focus_on_click">True</property>
-					      <property name="active">False</property>
-					      <property name="inconsistent">False</property>
-					      <property name="draw_indicator">True</property>
-					      <signal name="toggled" handler="on_config_mdevice_alt_check_toggled"/>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkEntry" id="oss_mdevice_alt_entry">
-					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="editable">True</property>
-					      <property name="visibility">True</property>
-					      <property name="max_length">0</property>
-					      <property name="text" translatable="yes"></property>
-					      <property name="has_frame">True</property>
-					      <property name="invisible_char">*</property>
-					      <property name="activates_default">False</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">True</property>
-					      <property name="fill">True</property>
-					    </packing>
-					  </child>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label4">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Mixer device</property>
-				      <property name="use_underline">False</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-				      <property name="width_chars">-1</property>
-				      <property name="single_line_mode">False</property>
-				      <property name="angle">0</property>
-				    </widget>
-				    <packing>
-				      <property name="type">label_item</property>
-				    </packing>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="tab_expand">False</property>
-			      <property name="tab_fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="oss_device_label">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Device</property>
-			      <property name="use_underline">False</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_CENTER</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
-			    </widget>
-			    <packing>
-			      <property name="type">tab</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVBox" id="oss_buffer_page">
-			      <property name="border_width">5</property>
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">5</property>
-
-			      <child>
-				<widget class="GtkFrame" id="oss_buffer_frame">
-				  <property name="visible">True</property>
-				  <property name="label_xalign">0</property>
-				  <property name="label_yalign">0.5</property>
-				  <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
-				  <child>
-				    <widget class="GtkVBox" id="oss_buffer_vbox">
-				      <property name="border_width">5</property>
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">2</property>
-
-				      <child>
-					<widget class="GtkHBox" id="ossbuf_buffer_hbox">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">5</property>
-
-					  <child>
-					    <widget class="GtkLabel" id="ossbuf_buffer_label">
-					      <property name="visible">True</property>
-					      <property name="label" translatable="yes">Buffer size (ms):</property>
-					      <property name="use_underline">False</property>
-					      <property name="use_markup">False</property>
-					      <property name="justify">GTK_JUSTIFY_LEFT</property>
-					      <property name="wrap">False</property>
-					      <property name="selectable">False</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					      <property name="width_chars">-1</property>
-					      <property name="single_line_mode">False</property>
-					      <property name="angle">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkSpinButton" id="ossbuf_buffer_spin">
-					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="climb_rate">0</property>
-					      <property name="digits">0</property>
-					      <property name="numeric">True</property>
-					      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-					      <property name="snap_to_ticks">False</property>
-					      <property name="wrap">False</property>
-					      <property name="adjustment">0 0 60000 10 100 10</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">True</property>
-					      <property name="fill">True</property>
-					    </packing>
-					  </child>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkHBox" id="ossbuf_preload_hbox">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">5</property>
-
-					  <child>
-					    <widget class="GtkLabel" id="ossbuf_preload_label">
-					      <property name="visible">True</property>
-					      <property name="label" translatable="yes">Preload size (ms):</property>
-					      <property name="use_underline">False</property>
-					      <property name="use_markup">False</property>
-					      <property name="justify">GTK_JUSTIFY_LEFT</property>
-					      <property name="wrap">False</property>
-					      <property name="selectable">False</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					      <property name="width_chars">-1</property>
-					      <property name="single_line_mode">False</property>
-					      <property name="angle">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkSpinButton" id="ossbuf_preload_spin">
-					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="climb_rate">0</property>
-					      <property name="digits">0</property>
-					      <property name="numeric">True</property>
-					      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-					      <property name="snap_to_ticks">False</property>
-					      <property name="wrap">False</property>
-					      <property name="adjustment">1500 0 60000 10 100 10</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">True</property>
-					      <property name="fill">True</property>
-					    </packing>
-					  </child>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">True</property>
-					  <property name="fill">True</property>
-					</packing>
-				      </child>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label5">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Software buffer</property>
-				      <property name="use_underline">False</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-				      <property name="width_chars">-1</property>
-				      <property name="single_line_mode">False</property>
-				      <property name="angle">0</property>
-				    </widget>
-				    <packing>
-				      <property name="type">label_item</property>
-				    </packing>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkFrame" id="oss_hwbuf_frame">
-				  <property name="visible">True</property>
-				  <property name="label_xalign">0</property>
-				  <property name="label_yalign">0.5</property>
-				  <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
-				  <child>
-				    <widget class="GtkVBox" id="oss_hwbuf_vbox">
-				      <property name="border_width">5</property>
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">2</property>
-
-				      <child>
-					<widget class="GtkCheckButton" id="osshwb_maxbuf_check">
-					  <property name="visible">True</property>
-					  <property name="can_focus">True</property>
-					  <property name="label" translatable="yes">Maximum device buffer size</property>
-					  <property name="use_underline">True</property>
-					  <property name="relief">GTK_RELIEF_NORMAL</property>
-					  <property name="focus_on_click">True</property>
-					  <property name="active">False</property>
-					  <property name="inconsistent">False</property>
-					  <property name="draw_indicator">True</property>
-					  <signal name="toggled" handler="on_osshwb_maxbuf_check_toggled"/>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkHBox" id="osshwb_fragments_hbox">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">5</property>
-
-					  <child>
-					    <widget class="GtkLabel" id="osshwb_fragments_label">
-					      <property name="visible">True</property>
-					      <property name="label" translatable="yes">Number of Fragments:</property>
-					      <property name="use_underline">False</property>
-					      <property name="use_markup">False</property>
-					      <property name="justify">GTK_JUSTIFY_LEFT</property>
-					      <property name="wrap">False</property>
-					      <property name="selectable">False</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					      <property name="width_chars">-1</property>
-					      <property name="single_line_mode">False</property>
-					      <property name="angle">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkSpinButton" id="osshwb_fragments_spin">
-					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="climb_rate">0</property>
-					      <property name="digits">0</property>
-					      <property name="numeric">True</property>
-					      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-					      <property name="snap_to_ticks">False</property>
-					      <property name="wrap">False</property>
-					      <property name="adjustment">50 2 65535 1 10 10</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">True</property>
-					      <property name="fill">True</property>
-					    </packing>
-					  </child>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkHBox" id="osshwb_fragsize_hbox">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">5</property>
-
-					  <child>
-					    <widget class="GtkLabel" id="osshwb_fragsize_label">
-					      <property name="visible">True</property>
-					      <property name="label" translatable="yes">Fragment size (2^x bytes):</property>
-					      <property name="use_underline">False</property>
-					      <property name="use_markup">False</property>
-					      <property name="justify">GTK_JUSTIFY_LEFT</property>
-					      <property name="wrap">False</property>
-					      <property name="selectable">False</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					      <property name="width_chars">-1</property>
-					      <property name="single_line_mode">False</property>
-					      <property name="angle">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkSpinButton" id="osshwb_fragsize_spin">
-					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="climb_rate">0</property>
-					      <property name="digits">0</property>
-					      <property name="numeric">True</property>
-					      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-					      <property name="snap_to_ticks">False</property>
-					      <property name="wrap">False</property>
-					      <property name="adjustment">11 4 16 1 10 10</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">True</property>
-					      <property name="fill">True</property>
-					    </packing>
-					  </child>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">True</property>
-					  <property name="fill">True</property>
-					</packing>
-				      </child>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label6">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Hardware device buffer</property>
-				      <property name="use_underline">False</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-				      <property name="width_chars">-1</property>
-				      <property name="single_line_mode">False</property>
-				      <property name="angle">0</property>
-				    </widget>
-				    <packing>
-				      <property name="type">label_item</property>
-				    </packing>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="tab_expand">False</property>
-			      <property name="tab_fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="oss_buffer_label">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Buffer</property>
-			      <property name="use_underline">False</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_CENTER</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
-			    </widget>
-			    <packing>
-			      <property name="type">tab</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVBox" id="oss_mixer_page">
-			      <property name="border_width">5</property>
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">5</property>
-
-			      <child>
-				<widget class="GtkFrame" id="oss_mixer_frame">
-				  <property name="visible">True</property>
-				  <property name="label_xalign">0</property>
-				  <property name="label_yalign">0.5</property>
-				  <property name="shadow_type">GTK_SHADOW_ETCHED_IN</property>
-
-				  <child>
-				    <widget class="GtkVBox" id="oss_mixer_vbox">
-				      <property name="border_width">5</property>
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">2</property>
-
-				      <child>
-					<widget class="GtkCheckButton" id="ossmixer_pcm_check">
-					  <property name="visible">True</property>
-					  <property name="can_focus">True</property>
-					  <property name="label" translatable="yes">Volume controls Master not PCM</property>
-					  <property name="use_underline">True</property>
-					  <property name="relief">GTK_RELIEF_NORMAL</property>
-					  <property name="focus_on_click">True</property>
-					  <property name="active">False</property>
-					  <property name="inconsistent">False</property>
-					  <property name="draw_indicator">True</property>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="label7">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">Mixer options</property>
-				      <property name="use_underline">False</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-				      <property name="width_chars">-1</property>
-				      <property name="single_line_mode">False</property>
-				      <property name="angle">0</property>
-				    </widget>
-				    <packing>
-				      <property name="type">label_item</property>
-				    </packing>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="tab_expand">False</property>
-			      <property name="tab_fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="oss_mixer_label">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Mixer</property>
-			      <property name="use_underline">False</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_CENTER</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0.5</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			      <property name="width_chars">-1</property>
-			      <property name="single_line_mode">False</property>
-			      <property name="angle">0</property>
-			    </widget>
-			    <packing>
-			      <property name="type">tab</property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="tab_expand">False</property>
-		      <property name="tab_fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkLabel" id="label29">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="type">tab</property>
-		    </packing>
-		  </child>
-
-		  <child>
 		    <widget class="GtkVBox" id="output_plugin_page">
 		      <property name="visible">True</property>
 		      <property name="homogeneous">False</property>
@@ -5830,6 +4880,7 @@
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
   <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
   <signal name="delete_event" handler="on_monitor_win_delete_event"/>
 
   <child>
@@ -6307,6 +5358,7 @@
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
   <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -6384,6 +5436,7 @@
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
   <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
 
   <child>
     <widget class="GtkVBox" id="help_vbox">