changeset 1711:1359a81e4674

Automated merge with ssh://hg.atheme.org//hg/audacious-plugins.
author William Pitcock <nenolod@atheme.org>
date Thu, 13 Sep 2007 12:10:39 -0500
parents 5dfa4fc721b0 (current diff) 0d5f7629171f (diff)
children bf2ec8f4289b fd9e63473e56
files scripts/makerelease.sh
diffstat 137 files changed, 9846 insertions(+), 9523 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Thu Sep 13 12:09:38 2007 -0500
+++ b/.hgtags	Thu Sep 13 12:10:39 2007 -0500
@@ -1,3 +1,4 @@
 fbeb9446aa2e626eb1944fd872c4995cf3182b43 audacious-plugins-1.4.0-DR1
 76c778a3a5fe18c8ea5ddb0c361270a38452edc7 audacious-plugins-1.4.0-dr1
 5f892afeb8e1ff5e60f32449359a59eda383f14a audacious-plugins-1.4.0-dr2
+49704b7f41db4070965a16fd6856a7e4760dbc1c audacious-plugins-1.4.0-dr3
--- a/po/audacious-plugins.pot	Thu Sep 13 12:09:38 2007 -0500
+++ b/po/audacious-plugins.pot	Thu Sep 13 12:10:39 2007 -0500
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n"
-"POT-Creation-Date: 2007-08-30 18:23+0200\n"
+"POT-Creation-Date: 2007-09-05 00:28+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -38,7 +38,7 @@
 #: src/audiocompress/audacious-glue.c:556 src/cdaudio-ng/configure.c:144
 #: src/console/Audacious_Driver.cxx:500 src/echo_plugin/gui.c:27
 #: src/echo_plugin/gui.c:138 src/esd/about.c:49
-#: src/filewriter/filewriter.c:182 src/jack/configure.c:140
+#: src/filewriter/filewriter.c:184 src/jack/configure.c:140
 #: src/jack/jack.c:602 src/madplug/fileinfo.c:158 src/madplug/fileinfo.c:236
 #: src/madplug/plugin.c:597 src/madplug/plugin.c:620
 #: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:45
@@ -81,8 +81,8 @@
 #: src/audiocompress/audacious-glue.c:561 src/cdaudio-ng/configure.c:148
 #: src/echo_plugin/gui.c:146 src/jack/configure.c:147
 #: src/modplug/gui/interface.cxx:741 src/musepack/libmpc.cxx:236
-#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:3599
-#: src/sid/xs_interface.c:1345 src/stereo_plugin/stereo.c:128
+#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:2930
+#: src/sid/xs_interface.c:1192 src/stereo_plugin/stereo.c:128
 #: src/sun/configure.c:567 src/timidity/src/interface.c:232
 #: src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561
 msgid "Cancel"
@@ -116,14 +116,14 @@
 msgstr ""
 
 #: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:899
-#: src/sid/xmms-sid.glade:156 src/sid/xs_interface.c:302
+#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:280
 #: src/timidity/src/interface.c:167
 msgid "Mono"
 msgstr ""
 
 #: src/adplug/adplug-xmms.cc:333 src/filewriter/mp3.c:894
-#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:175
-#: src/sid/xs_interface.c:309 src/timidity/src/interface.c:175
+#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:176
+#: src/sid/xs_interface.c:287 src/timidity/src/interface.c:175
 msgid "Stereo"
 msgstr ""
 
@@ -228,28 +228,28 @@
 msgid "Subsong selection"
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:688
+#: src/adplug/adplug-xmms.cc:730
 msgid "Order: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:689
+#: src/adplug/adplug-xmms.cc:731
 msgid "Pattern: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:691
+#: src/adplug/adplug-xmms.cc:733
 msgid "Row: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:692
+#: src/adplug/adplug-xmms.cc:734
 msgid "Speed: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:693
+#: src/adplug/adplug-xmms.cc:735
 msgid "Timer: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:694 src/console/Audacious_Config.cxx:226
-#: src/sid/xmms-sid.glade:513 src/sid/xs_interface.c:361
+#: src/adplug/adplug-xmms.cc:736 src/console/Audacious_Config.cxx:226
+#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:333
 msgid "Hz"
 msgstr ""
 
@@ -284,8 +284,8 @@
 msgstr ""
 
 #: src/alarm/interface.c:73 src/lirc/about.c:116
-#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:4262
-#: src/sid/xs_interface.c:1882
+#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:3493
+#: src/sid/xs_interface.c:1671
 msgid "Close"
 msgstr ""
 
@@ -299,10 +299,10 @@
 
 #: src/alarm/interface.c:126 src/alarm/interface.c:1391 src/alsa/about.c:46
 #: src/alsa/configure.c:405 src/cdaudio-ng/cdaudio-ng.c:206
-#: src/filewriter/filewriter.c:199 src/flacng/plugin.c:743
+#: src/filewriter/filewriter.c:201 src/flacng/plugin.c:743
 #: src/modplug/gui/interface.cxx:725 src/pulse_audio/pulse_audio.c:694
-#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:3585
-#: src/sid/xs_interface.c:1338
+#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:2916
+#: src/sid/xs_interface.c:1185
 msgid "OK"
 msgstr ""
 
@@ -352,6 +352,10 @@
 msgid "h"
 msgstr ""
 
+#: src/alarm/interface.c:538
+msgid "minutes"
+msgstr ""
+
 #: src/alarm/interface.c:556
 msgid "Quiet after:"
 msgstr ""
@@ -411,10 +415,10 @@
 msgid "Fading"
 msgstr ""
 
-#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2271
-#: src/sid/xmms-sid.glade:2442 src/sid/xmms-sid.glade:3408
-#: src/sid/xs_interface.c:923 src/sid/xs_interface.c:977
-#: src/sid/xs_interface.c:1289
+#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2007
+#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2526
+#: src/sid/xs_interface.c:900 src/sid/xs_interface.c:954
+#: src/sid/xs_interface.c:1064
 msgid "seconds"
 msgstr ""
 
@@ -1180,8 +1184,8 @@
 "backend</span>"
 msgstr ""
 
-#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:4084
-#: src/sid/xs_interface.c:1828 src/vorbis/fileinfo.c:562
+#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3315
+#: src/sid/xs_interface.c:1615 src/vorbis/fileinfo.c:562
 msgid "Name:"
 msgstr ""
 
@@ -1422,10 +1426,10 @@
 msgid "Skin file:"
 msgstr ""
 
-#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2595
-#: src/sid/xmms-sid.glade:2801 src/sid/xmms-sid.glade:2907
-#: src/sid/xs_interface.c:1024 src/sid/xs_interface.c:1093
-#: src/sid/xs_interface.c:1128
+#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2331
+#: src/sid/xmms-sid.glade:2706 src/sid/xmms-sid.glade:2812
+#: src/sid/xs_interface.c:1002 src/sid/xs_interface.c:1124
+#: src/sid/xs_interface.c:1160
 msgid "Browse"
 msgstr ""
 
@@ -1506,7 +1510,7 @@
 msgstr ""
 
 #: src/aosd/aosd_ui.c:1073 src/cdaudio-ng/configure.c:87
-#: src/sid/xmms-sid.glade:3545 src/sid/xs_interface.c:1324
+#: src/sid/xmms-sid.glade:2876 src/sid/xs_interface.c:1171
 msgid "Misc"
 msgstr ""
 
@@ -1771,7 +1775,7 @@
 msgstr ""
 
 #: src/console/Audacious_Config.cxx:201 src/modplug/gui/interface.cxx:264
-#: src/sid/xmms-sid.glade:1424 src/sid/xs_interface.c:673
+#: src/sid/xmms-sid.glade:1243 src/sid/xs_interface.c:645
 msgid "Resampling"
 msgstr ""
 
@@ -2070,7 +2074,7 @@
 "Ensure that the device has been correctly plugged in."
 msgstr ""
 
-#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:196
+#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:198
 #: src/madplug/plugin.c:620
 msgid "Error"
 msgstr ""
@@ -2189,11 +2193,11 @@
 "written by Giacomo Lozito\n"
 msgstr ""
 
-#: src/filewriter/filewriter.c:167
+#: src/filewriter/filewriter.c:169
 msgid "About FileWriter-Plugin"
 msgstr ""
 
-#: src/filewriter/filewriter.c:168
+#: src/filewriter/filewriter.c:170
 msgid ""
 "FileWriter-Plugin\n"
 "\n"
@@ -2213,63 +2217,63 @@
 "USA."
 msgstr ""
 
-#: src/filewriter/filewriter.c:197
+#: src/filewriter/filewriter.c:199
 msgid ""
 "You cannot use the FileWriter plugin\n"
 "when you're running in realtime mode."
 msgstr ""
 
-#: src/filewriter/filewriter.c:512
+#: src/filewriter/filewriter.c:514
 msgid "File Writer Configuration"
 msgstr ""
 
-#: src/filewriter/filewriter.c:524
+#: src/filewriter/filewriter.c:526
 msgid "Output file format:"
 msgstr ""
 
-#: src/filewriter/filewriter.c:542 src/ladspa/ladspa.c:962
+#: src/filewriter/filewriter.c:544 src/ladspa/ladspa.c:962
 msgid "Configure"
 msgstr ""
 
-#: src/filewriter/filewriter.c:557
+#: src/filewriter/filewriter.c:559
 msgid "Save into original directory"
 msgstr ""
 
-#: src/filewriter/filewriter.c:562
+#: src/filewriter/filewriter.c:564
 msgid "Save into custom directory"
 msgstr ""
 
-#: src/filewriter/filewriter.c:574
+#: src/filewriter/filewriter.c:576
 msgid "Output file folder:"
 msgstr ""
 
-#: src/filewriter/filewriter.c:578
+#: src/filewriter/filewriter.c:580
 msgid "Pick a folder"
 msgstr ""
 
-#: src/filewriter/filewriter.c:598
+#: src/filewriter/filewriter.c:600
 msgid "Get filename from:"
 msgstr ""
 
-#: src/filewriter/filewriter.c:601
+#: src/filewriter/filewriter.c:603
 msgid "original file tags"
 msgstr ""
 
-#: src/filewriter/filewriter.c:607
+#: src/filewriter/filewriter.c:609
 msgid "original filename"
 msgstr ""
 
-#: src/filewriter/filewriter.c:617
+#: src/filewriter/filewriter.c:619
 msgid "Don't strip file name extension"
 msgstr ""
 
-#: src/filewriter/filewriter.c:621
+#: src/filewriter/filewriter.c:623
 msgid ""
 "If enabled, the extension from the original filename will not be stripped "
 "before adding the new file extension to the end."
 msgstr ""
 
-#: src/filewriter/filewriter.c:635
+#: src/filewriter/filewriter.c:637
 msgid "Prepend track number to filename"
 msgstr ""
 
@@ -2675,8 +2679,7 @@
 msgid "ID3 format:"
 msgstr ""
 
-#: src/madplug/configure.c:261 src/sid/xmms-sid.glade:3144
-#: src/sid/xs_interface.c:1189 src/vorbis/configure.c:160
+#: src/madplug/configure.c:261 src/vorbis/configure.c:160
 msgid "Title"
 msgstr ""
 
@@ -3103,8 +3106,8 @@
 msgid "Use Album Gain"
 msgstr ""
 
-#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:3755
-#: src/sid/xs_interface.c:1708 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
+#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:2994
+#: src/sid/xs_interface.c:1495 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
 msgid "Filename:"
 msgstr ""
 
@@ -3116,8 +3119,8 @@
 msgid "Track:"
 msgstr ""
 
-#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1996
-#: src/sid/xs_interface.c:835 src/wavpack/ui.cxx:265
+#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1732
+#: src/sid/xs_interface.c:812 src/wavpack/ui.cxx:265
 msgid "Save"
 msgstr ""
 
@@ -3365,152 +3368,133 @@
 msgid "Scrobbler Error"
 msgstr ""
 
-#: src/sid/xmms-sid.c:207
+#: src/sid/xmms-sid.c:203
 msgid "Error initializing song-length database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:213
+#: src/sid/xmms-sid.c:209
 msgid "Error initializing STIL database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:327
+#: src/sid/xmms-sid.c:414
 msgid "Couldn't allocate memory for audio data buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:334
+#: src/sid/xmms-sid.c:421
 msgid "Couldn't allocate memory for audio oversampling buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:409
+#: src/sid/xmms-sid.c:436
 #, c-format
 msgid "Couldn't initialize SID-tune '%s' (sub-tune #%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:420
+#: src/sid/xmms-sid.c:446
 #, c-format
 msgid "Couldn't open XMMS audio output (fmt=%x, freq=%i, nchan=%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:466
+#: src/sid/xmms-sid.c:491
 msgid "Oversampling rate-conversion pass failed.\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:770
-msgid "Subtune Control"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1001
-#, c-format
-msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1008
-#, c-format
-msgid "Could not allocate sidFilename ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1017
-#, c-format
-msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:235
-msgid "Audacious-SID Configuration"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:70 src/sid/xs_interface.c:271
+#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:213
+msgid "Audacious-SID configuration"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:249
 msgid "8-bit"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:89 src/sid/xs_interface.c:278
+#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:256
 msgid "16-bit"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:110 src/sid/xs_interface.c:285
+#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:263
 msgid "Resolution:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:195 src/sid/xs_interface.c:316
+#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:294
 msgid "Autopanning"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:216 src/sid/xs_interface.c:323
+#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:301
 #: src/vorbis/fileinfo.c:867 src/vorbis/fileinfo.c:924
 msgid "Channels:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:565 src/sid/xs_interface.c:373
+#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:345
 msgid "Samplerate:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:611 src/sid/xs_interface.c:390
+#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:362
 msgid "Use oversampling"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:637 src/sid/xs_interface.c:401
+#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:373
 msgid "Factor:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:681 src/sid/xs_interface.c:413
+#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:385
 msgid "Large factors require more CPU-power"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:715 src/sid/xs_interface.c:419
+#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:391
 msgid "Oversampling:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:751 src/sid/xs_interface.c:424
+#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:396
 msgid "Audio"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:801 src/sid/xs_interface.c:456
+#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:428
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "clock speed/frequency. Otherwise the speed is determined from played file "
 "itself."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:803 src/sid/xs_interface.c:452
+#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:424
 msgid "Force speed"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:821 src/sid/xs_interface.c:462
+#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:434
 msgid ""
 "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. "
 "Most of SID-tunes have been made for PAL computers."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:823 src/sid/xs_interface.c:458
+#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:430
 msgid "PAL (50 Hz)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:841 src/sid/xs_interface.c:470
+#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:442
 msgid ""
 "NTSC is the TV standard with 60Hz vertical refresh rate (and other features "
 "that differ from PAL). It is mainly used in United States, Japan and certain "
 "other countries."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:843 src/sid/xs_interface.c:466
+#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:438
 msgid "NTSC (60 Hz)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:864 src/sid/xs_interface.c:474
+#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:446
 msgid "Clock speed:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:909 src/sid/xs_interface.c:495
+#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:467
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "SID-chip model. Otherwise the preferred SID model is determined from the "
 "file (if PSIDv2NG type) or if not available, this setting is used."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:911 src/sid/xs_interface.c:491
+#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:463
 msgid "Force model"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:929 src/sid/xs_interface.c:501
+#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:473
 msgid ""
 "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 "
 "in few ways, having much fuller filter (which, due to design error, is never "
@@ -3518,89 +3502,89 @@
 "which enables playing of digital samples."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:931 src/sid/xs_interface.c:497
+#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:469
 msgid "MOS 6581"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:950 src/sid/xs_interface.c:505
+#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:477
 msgid "MOS 8580"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:971 src/sid/xs_interface.c:512
+#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:484
 msgid "SID model:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1023 src/sid/xs_interface.c:533
+#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:505
 msgid ""
 "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most "
 "cases, though."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1025 src/sid/xs_interface.c:529
+#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:501
 msgid "SIDPlay 1 (frame-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1044 src/sid/xs_interface.c:541
+#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:513
 msgid ""
 "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact "
 "emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1046 src/sid/xs_interface.c:537
+#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:509
 msgid "SIDPlay 2 (cycle-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1068 src/sid/xs_interface.c:545
+#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:517
 msgid "Emulation library selection:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1114 src/sid/xs_interface.c:562
+#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:534
 msgid "Real C64 (SIDPlay 2 only)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:569
+#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:541
 msgid "Bank switching"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1153 src/sid/xs_interface.c:576
+#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:548
 msgid "Transparent ROM"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1173 src/sid/xs_interface.c:583
+#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:555
 msgid "PlaySID environment"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1194 src/sid/xs_interface.c:590
+#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:562
 msgid "Memory mode:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1230 src/sid/xs_interface.c:595
+#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:567
 msgid "Emu#1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1274 src/sid/xs_interface.c:622
+#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:594
 msgid ""
 "This setting can be used to enable libSIDPlay2's \"optimization mode\", "
 "which in downgrades the emulation from cycle-exact to something similar to "
 "frame-exact. The result is lower CPU usage, but worse accuracy."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1276 src/sid/xs_interface.c:618
+#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:590
 msgid "Optimization mode (faster, inaccurate)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1294 src/sid/xs_interface.c:628
+#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:600
 msgid ""
 "reSID is the software SID-chip simulator based on SID reverse-engineering, "
 "created by Dag Lem. It is probably the closest thing to real SID available "
 "as software-only emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1296 src/sid/xs_interface.c:624
+#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:596
 msgid "reSID-emulation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1314 src/sid/xs_interface.c:636
+#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:608
 msgid ""
 "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a "
 "real SID-chip. Software can be used to control the HardSID and combined with "
@@ -3609,47 +3593,47 @@
 "http://www.hardsid.com/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1316 src/sid/xs_interface.c:632
+#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:604
 msgid "HardSID"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1337 src/sid/xs_interface.c:640
+#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:612
 msgid "SIDPlay 2 options:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1382 src/sid/xs_interface.c:661
+#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:633
 msgid ""
 "Fastest and also worst sounding sampling method, simply picks nearest "
 "neighbouring sample."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1384 src/sid/xs_interface.c:657
+#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:629
 msgid "Fast (nearest neighbour)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1402 src/sid/xs_interface.c:669
+#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:641
 msgid ""
 "Uses linear interpolation between samples, yielding higher audio quality "
 "with less sampling noise."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1404 src/sid/xs_interface.c:665
+#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:637
 msgid "Linear interpolation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1444 src/sid/xs_interface.c:680
+#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:652
 msgid "Resampling (FIR)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1465 src/sid/xs_interface.c:687
+#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:659
 msgid "reSID sampling options:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1501 src/sid/xs_interface.c:692
+#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:664
 msgid "Emu#2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1531 src/sid/xs_interface.c:708
+#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:680
 msgid ""
 "This option enables emulation of SID filter. The filter is an essential part "
 "of SID's sound capacity, but accurate emulation of it may require quite much "
@@ -3657,367 +3641,271 @@
 "authentic at all if they utilize the filter."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1533 src/sid/xs_interface.c:704
+#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:676
 msgid "Emulate filters"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1590 src/sid/xs_interface.c:733
+#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:705
 msgid "FS"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1641 src/sid/xs_interface.c:750
+#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:722
 msgid "FM"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1692 src/sid/xs_interface.c:767
+#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:739
 msgid "FT"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1730 src/sid/xs_interface.c:778
+#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:750
 msgid "Reset values"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1759 src/sid/xs_interface.c:783
+#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:755
 msgid "SIDPlay1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1828 src/sid/xs_interface.c:807
-msgid "6581 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1854 src/sid/xs_interface.c:808
-msgid "8580 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1880 src/sid/xs_interface.c:809
-msgid "6581R1 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1906 src/sid/xs_interface.c:810
-msgid "6581R4 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1975 src/sid/xs_interface.c:827
-msgid "Load"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2017 src/sid/xs_interface.c:843
+#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:796
+msgid "Export"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:804
+msgid "Use"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:820
 msgid "Import"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2038 src/sid/xs_interface.c:851
-msgid "Export"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2083 src/sid/xs_interface.c:865
+#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:828
+msgid "Delete"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:842
 msgid "Filter curve:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2119 src/sid/xs_interface.c:870
+#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:847
 msgid "SIDPlay2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2155 src/sid/xs_interface.c:876
+#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:853
 msgid "Filters"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2199 src/sid/xs_interface.c:903
+#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:880
 msgid ""
 "If enabled, the tune is played at least for the specified time, adding "
 "silence to the end if necessary."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2201 src/sid/xs_interface.c:899
+#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:876
 msgid "Play at least for specified time"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2226 src/sid/xmms-sid.glade:2397
-#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:910
-#: src/sid/xs_interface.c:964 src/sid/xs_interface.c:1276
+#: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133
+#: src/sid/xmms-sid.glade:2482 src/sid/xs_interface.c:887
+#: src/sid/xs_interface.c:941 src/sid/xs_interface.c:1051
 msgid "Playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2305 src/sid/xs_interface.c:930
+#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:907
 msgid "Minimum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2350 src/sid/xs_interface.c:951
+#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:928
 msgid ""
 "If enabled, tune is played until specified duration is reached (aka maximum "
 "playtime)."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2352 src/sid/xs_interface.c:947
+#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:924
 msgid "Play for specified time maximum"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2371 src/sid/xs_interface.c:957
+#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:934
 msgid ""
 "If enabled, the maximum playtime is applied only if song/tune length is not "
 "known."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2373 src/sid/xs_interface.c:953
+#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:930
 msgid "Only when song length is unknown"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2476 src/sid/xs_interface.c:984
+#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:961
 msgid "Maximum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2521 src/sid/xs_interface.c:1005
+#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:982
 msgid ""
 "This option enables using of XSIDPLAY compatible song length database. "
 "(Refer to Audacious-SID documentation for more information)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2523 src/sid/xs_interface.c:1001
+#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:978
 msgid "Use XSIDPLAY-compatible database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2548 src/sid/xs_interface.c:1012
+#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:989
 msgid "DB-file:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2573 src/sid/xs_interface.c:1022
+#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:999
 msgid "Database path and filename"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2593 src/sid/xs_interface.c:1028
+#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1006
 msgid "Browse for song length-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2620 src/sid/xs_interface.c:1030
+#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1008
 msgid "Song length database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1035
+#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1013
 msgid "Songlength"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2700 src/sid/xs_interface.c:1062
+#: src/sid/xmms-sid.glade:2437 src/sid/xs_interface.c:1036
+msgid "Add sub-tunes to playlist"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1041
+msgid "Only tunes with specified minimum length "
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2560 src/sid/xs_interface.c:1071
+msgid "Sub-tune handling:"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1092
 msgid ""
 "If this option is enabled (and the database & HVSC settings below are "
 "correctly set), Audacious-SID will use and display additional information "
 "from STIL database when HVSC SIDs are played."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:1058
+#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1088
 msgid "Use STIL database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2727 src/sid/xs_interface.c:1069
+#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:1099
 msgid "STIL file:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2764 src/sid/xs_interface.c:1085
+#: src/sid/xmms-sid.glade:2669 src/sid/xs_interface.c:1115
 msgid ""
 "Path and filename of STIL database file (STIL.txt), usually found from "
 "HVSC's DOCUMENTS-subdirectory."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2799 src/sid/xs_interface.c:1097
+#: src/sid/xmms-sid.glade:2704 src/sid/xs_interface.c:1128
 msgid "Browse for STIL-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2833 src/sid/xs_interface.c:1104
+#: src/sid/xmms-sid.glade:2738 src/sid/xs_interface.c:1135
 msgid "HVSC path:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2870 src/sid/xs_interface.c:1120
+#: src/sid/xmms-sid.glade:2775 src/sid/xs_interface.c:1151
 msgid ""
 "Path to base-directory of your High Voltage SID Collection (HVSC), for "
 "example /media/C64Music/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2905 src/sid/xs_interface.c:1132
+#: src/sid/xmms-sid.glade:2810 src/sid/xs_interface.c:1164
 msgid "Browse for HVSC path"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2935 src/sid/xs_interface.c:1134
+#: src/sid/xmms-sid.glade:2840 src/sid/xs_interface.c:1166
 msgid "SID Tune Information List (STIL) database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2980 src/sid/xs_interface.c:1155
-msgid ""
-"XMMS v1.2.5 and later support generic titlestring formatting (see XMMS "
-"preferences). This option can be enabled to override those generic titles "
-"with Audacious-SID specific ones. Formatting mnemonics are explained briefly "
-"below."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2982 src/sid/xs_interface.c:1151
-msgid "Override generic XMMS titles"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3032 src/sid/xs_interface.c:1172
-msgid ""
-"%% - '%' character\n"
-"%p - Performer/composer\n"
-"%t - Song name (title)\n"
-"%c - Copyright\n"
-"%s - File type\n"
-"%m - SID model"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3062 src/sid/xs_interface.c:1178
-msgid ""
-"%C - Speed/clock (PAL/NTSC)\n"
-"%n - Subtune\n"
-"%N - Number of subtunes\n"
-"%f - Filename\n"
-"%F - File path\n"
-"%e - File extension"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3108 src/sid/xs_interface.c:1184
-msgid "Song name/title format:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3188 src/sid/xs_interface.c:1216
-msgid "No sub-tune control."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3190 src/sid/xs_interface.c:1212
-msgid "Disabled"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3208 src/sid/xs_interface.c:1224
-msgid ""
-"Seeking backwards/forwards selects previous/next sub-tune, similar to "
-"selector used in XMMS-SidPlay."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3210 src/sid/xs_interface.c:1220
-msgid "Seek back/forward changes sub-tune"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3229 src/sid/xs_interface.c:1232
-msgid ""
-"By pressing the seekbar a sub-tune control window pops up, in style of UADE "
-"(Unix Amiga Delitracker Emulator)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3231 src/sid/xs_interface.c:1228
-msgid "Pop-up via seekbar (UADE-style)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3250 src/sid/xs_interface.c:1240
-msgid ""
-"Seekbar works as a sub-tune selector (Best option if you have patched your "
-"XMMS with the song-position patch.)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3252 src/sid/xs_interface.c:1236
-msgid "Song-position patch"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3273 src/sid/xs_interface.c:1244
-msgid "Sub-tune control:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3319 src/sid/xs_interface.c:1261
-msgid "Go through all sub-tunes in file"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3339 src/sid/xs_interface.c:1266
-msgid "Only tunes with specified minimum length "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3442 src/sid/xs_interface.c:1296
-msgid "Automatic sub-tune changes:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3487 src/sid/xs_interface.c:1317
-msgid ""
-"Determine if file is a SID-tune by checking the file contents. If NOT "
-"selected, filetype is determined by checking filename extension (.sid, ."
-"dat, ...)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3489 src/sid/xs_interface.c:1313
-msgid "Detect file by contents (slower)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3509 src/sid/xs_interface.c:1319
-msgid "Miscellaneous options:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3582 src/sid/xs_interface.c:1343
+#: src/sid/xmms-sid.glade:2913 src/sid/xs_interface.c:1190
 msgid "Accept and update changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1350
+#: src/sid/xmms-sid.glade:2927 src/sid/xs_interface.c:1197
 msgid "Cancel any changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3620 src/sid/xs_interface.c:1651
+#: src/sid/xmms-sid.glade:2952 src/sid/xs_interface.c:1474
 msgid "Audacious-SID Fileinfo"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3674 src/sid/xs_interface.c:1677
-msgid " < "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3710 src/sid/xs_interface.c:1689
-msgid " > "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3783 src/sid/xs_interface.c:1716
+#: src/sid/xmms-sid.glade:3022 src/sid/xs_interface.c:1503
 msgid "Songname:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3811 src/sid/xs_interface.c:1724
+#: src/sid/xmms-sid.glade:3050 src/sid/xs_interface.c:1511
 msgid "Composer:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3839 src/sid/xs_interface.c:1732
+#: src/sid/xmms-sid.glade:3078 src/sid/xs_interface.c:1519
 #: src/vorbis/fileinfo.c:723
 msgid "Copyright:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3953 src/sid/xs_interface.c:1772
+#: src/sid/xmms-sid.glade:3192 src/sid/xs_interface.c:1563
 msgid "Song Information:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4008 src/sid/xs_interface.c:1797
-msgid " "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4035 src/sid/xs_interface.c:1812
+#: src/sid/xmms-sid.glade:3266 src/sid/xs_interface.c:1598
 msgid "Author:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4133 src/sid/xs_interface.c:1844
+#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:1632
 msgid "Duration:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4227 src/sid/xs_interface.c:1877
+#: src/sid/xmms-sid.glade:3458 src/sid/xs_interface.c:1666
 msgid "Sub-tune Information:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4281 src/sid/xs_interface.c:1951
+#: src/sid/xmms-sid.glade:3512 src/sid/xs_interface.c:1727
 msgid "Select HVSC song length database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4322 src/sid/xs_interface.c:1989
-msgid "Select STIL-database "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4363 src/sid/xs_interface.c:2027
+#: src/sid/xmms-sid.glade:3554 src/sid/xs_interface.c:1768
+msgid "Select STIL-database"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1809
 msgid "Select HVSC location prefix"
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:315
+#: src/sid/xmms-sid.glade:3638 src/sid/xs_interface.c:1850
+msgid "Select SIDPlay2 filters file for importing"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3680 src/sid/xs_interface.c:1891
+msgid "Select SIDPlay2 filters file for exporting"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3721 src/sid/xmms-sid.glade:3803
+#: src/sid/xs_interface.c:1939 src/sid/xs_interface.c:1952
+msgid "Confirm selected action"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3759 src/sid/xs_interface.c:1969
+msgid "Yes"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3771 src/sid/xs_interface.c:1975
+msgid "No"
+msgstr ""
+
+#: src/sid/xs_fileinfo.c:238
 msgid "General info"
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:325
+#: src/sid/xs_fileinfo.c:248
 #, c-format
 msgid "Tune #%i: "
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:336
+#: src/sid/xs_fileinfo.c:259
 #, c-format
 msgid "Tune #%i"
 msgstr ""
@@ -4040,32 +3928,32 @@
 msgid "Could not open SongLengthDB '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:225
+#: src/sid/xs_length.c:224
 #, c-format
 msgid "Invalid MD5-hash in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:232
+#: src/sid/xs_length.c:231
 #, c-format
 msgid "Invalid entry in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:237
+#: src/sid/xs_length.c:236
 #, c-format
 msgid "Invalid line in SongLengthDB file '%s' line #%d\n"
 msgstr ""
 
-#: src/sid/xs_length.c:399
+#: src/sid/xs_length.c:398
 #, c-format
 msgid "Not a PSID or RSID file '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:418
+#: src/sid/xs_length.c:417
 #, c-format
 msgid "Error reading SID file header from '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:437
+#: src/sid/xs_length.c:436
 #, c-format
 msgid "Error allocating temp data buffer for file '%s'\n"
 msgstr ""
@@ -4102,72 +3990,77 @@
 msgid "[SIDPlay2] Could not initialize emulation engine.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:224
+#: src/sid/xs_sidplay2.cc:208
+#, c-format
+msgid "[SIDPlay2] Invalid number of filter curve points (%d > %d)\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:229
 msgid "reSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:230
+#: src/sid/xs_sidplay2.cc:235
 #, c-format
 msgid "reSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:238
+#: src/sid/xs_sidplay2.cc:243
 #, c-format
 msgid "reSID->sampling(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:248
+#: src/sid/xs_sidplay2.cc:253
 msgid "reSID->filter(NULL) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:262
+#: src/sid/xs_sidplay2.cc:267
 msgid "hardSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:268
+#: src/sid/xs_sidplay2.cc:273
 #, c-format
 msgid "hardSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:276
+#: src/sid/xs_sidplay2.cc:281
 msgid "[SIDPlay2] Could not initialize SIDBuilder object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:290
+#: src/sid/xs_sidplay2.cc:295
 #, c-format
 msgid "[SIDPlay2] Invalid clockSpeed=%d, falling back to PAL.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:314
+#: src/sid/xs_sidplay2.cc:319
 #, c-format
 msgid "Invalid sid2OptLevel=%d, falling back to %d.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:338
+#: src/sid/xs_sidplay2.cc:343
 msgid "[SIDPlay2] Emulator engine configuration failed!\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:345
+#: src/sid/xs_sidplay2.cc:350
 msgid "[SIDPlay2] Could not initialize SIDTune object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:396
-msgid "[SIDPlay2] currTune->selectSong() failed\n"
-msgstr ""
-
 #: src/sid/xs_sidplay2.cc:401
+msgid "[SIDPlay2] currTune->selectSong() failed\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:406
 msgid "[SIDPlay2] currEng->load() failed\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:44
+#: src/sid/xs_stil.c:46
 msgid "SubTune pointer structure realloc failed.\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:61
+#: src/sid/xs_stil.c:69
 msgid "SubTune structure malloc failed!\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:168
+#: src/sid/xs_stil.c:176
 #, c-format
 msgid "Could not open STILDB '%s'\n"
 msgstr ""
--- a/po/ca.po	Thu Sep 13 12:09:38 2007 -0500
+++ b/po/ca.po	Thu Sep 13 12:10:39 2007 -0500
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: audacious-plugins 1.3.0-alpha4\n"
 "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n"
-"POT-Creation-Date: 2007-08-30 18:23+0200\n"
+"POT-Creation-Date: 2007-09-05 00:28+0200\n"
 "PO-Revision-Date: 2007-02-09 21:12+0100\n"
 "Last-Translator: Ernest Adrogué <eadrogue@gmx.net>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
@@ -38,7 +38,7 @@
 #: src/audiocompress/audacious-glue.c:556 src/cdaudio-ng/configure.c:144
 #: src/console/Audacious_Driver.cxx:500 src/echo_plugin/gui.c:27
 #: src/echo_plugin/gui.c:138 src/esd/about.c:49
-#: src/filewriter/filewriter.c:182 src/jack/configure.c:140
+#: src/filewriter/filewriter.c:184 src/jack/configure.c:140
 #: src/jack/jack.c:602 src/madplug/fileinfo.c:158 src/madplug/fileinfo.c:236
 #: src/madplug/plugin.c:597 src/madplug/plugin.c:620
 #: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:45
@@ -92,8 +92,8 @@
 #: src/audiocompress/audacious-glue.c:561 src/cdaudio-ng/configure.c:148
 #: src/echo_plugin/gui.c:146 src/jack/configure.c:147
 #: src/modplug/gui/interface.cxx:741 src/musepack/libmpc.cxx:236
-#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:3599
-#: src/sid/xs_interface.c:1345 src/stereo_plugin/stereo.c:128
+#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:2930
+#: src/sid/xs_interface.c:1192 src/stereo_plugin/stereo.c:128
 #: src/sun/configure.c:567 src/timidity/src/interface.c:232
 #: src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561
 msgid "Cancel"
@@ -131,14 +131,14 @@
 msgstr "Canals"
 
 #: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:899
-#: src/sid/xmms-sid.glade:156 src/sid/xs_interface.c:302
+#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:280
 #: src/timidity/src/interface.c:167
 msgid "Mono"
 msgstr "Mono"
 
 #: src/adplug/adplug-xmms.cc:333 src/filewriter/mp3.c:894
-#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:175
-#: src/sid/xs_interface.c:309 src/timidity/src/interface.c:175
+#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:176
+#: src/sid/xs_interface.c:287 src/timidity/src/interface.c:175
 msgid "Stereo"
 msgstr "Estèreo"
 
@@ -249,30 +249,30 @@
 msgid "Subsong selection"
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:688
+#: src/adplug/adplug-xmms.cc:730
 msgid "Order: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:689
+#: src/adplug/adplug-xmms.cc:731
 msgid "Pattern: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:691
+#: src/adplug/adplug-xmms.cc:733
 msgid "Row: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:692
+#: src/adplug/adplug-xmms.cc:734
 #, fuzzy
 msgid "Speed: "
 msgstr "Parlat"
 
-#: src/adplug/adplug-xmms.cc:693
+#: src/adplug/adplug-xmms.cc:735
 #, fuzzy
 msgid "Timer: "
 msgstr "Títol:"
 
-#: src/adplug/adplug-xmms.cc:694 src/console/Audacious_Config.cxx:226
-#: src/sid/xmms-sid.glade:513 src/sid/xs_interface.c:361
+#: src/adplug/adplug-xmms.cc:736 src/console/Audacious_Config.cxx:226
+#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:333
 msgid "Hz"
 msgstr "Hz"
 
@@ -308,8 +308,8 @@
 msgstr ""
 
 #: src/alarm/interface.c:73 src/lirc/about.c:116
-#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:4262
-#: src/sid/xs_interface.c:1882
+#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:3493
+#: src/sid/xs_interface.c:1671
 msgid "Close"
 msgstr "Tanca"
 
@@ -323,10 +323,10 @@
 
 #: src/alarm/interface.c:126 src/alarm/interface.c:1391 src/alsa/about.c:46
 #: src/alsa/configure.c:405 src/cdaudio-ng/cdaudio-ng.c:206
-#: src/filewriter/filewriter.c:199 src/flacng/plugin.c:743
+#: src/filewriter/filewriter.c:201 src/flacng/plugin.c:743
 #: src/modplug/gui/interface.cxx:725 src/pulse_audio/pulse_audio.c:694
-#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:3585
-#: src/sid/xs_interface.c:1338
+#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:2916
+#: src/sid/xs_interface.c:1185
 msgid "OK"
 msgstr "D'acord"
 
@@ -379,6 +379,10 @@
 msgid "h"
 msgstr ""
 
+#: src/alarm/interface.c:538
+msgid "minutes"
+msgstr ""
+
 #: src/alarm/interface.c:556
 #, fuzzy
 msgid "Quiet after:"
@@ -441,10 +445,10 @@
 msgid "Fading"
 msgstr ""
 
-#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2271
-#: src/sid/xmms-sid.glade:2442 src/sid/xmms-sid.glade:3408
-#: src/sid/xs_interface.c:923 src/sid/xs_interface.c:977
-#: src/sid/xs_interface.c:1289
+#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2007
+#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2526
+#: src/sid/xs_interface.c:900 src/sid/xs_interface.c:954
+#: src/sid/xs_interface.c:1064
 #, fuzzy
 msgid "seconds"
 msgstr "segons"
@@ -1263,8 +1267,8 @@
 "backend</span>"
 msgstr ""
 
-#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:4084
-#: src/sid/xs_interface.c:1828 src/vorbis/fileinfo.c:562
+#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3315
+#: src/sid/xs_interface.c:1615 src/vorbis/fileinfo.c:562
 msgid "Name:"
 msgstr "Nom:"
 
@@ -1511,10 +1515,10 @@
 msgid "Skin file:"
 msgstr ""
 
-#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2595
-#: src/sid/xmms-sid.glade:2801 src/sid/xmms-sid.glade:2907
-#: src/sid/xs_interface.c:1024 src/sid/xs_interface.c:1093
-#: src/sid/xs_interface.c:1128
+#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2331
+#: src/sid/xmms-sid.glade:2706 src/sid/xmms-sid.glade:2812
+#: src/sid/xs_interface.c:1002 src/sid/xs_interface.c:1124
+#: src/sid/xs_interface.c:1160
 msgid "Browse"
 msgstr ""
 
@@ -1600,7 +1604,7 @@
 msgstr "Tràiler"
 
 #: src/aosd/aosd_ui.c:1073 src/cdaudio-ng/configure.c:87
-#: src/sid/xmms-sid.glade:3545 src/sid/xs_interface.c:1324
+#: src/sid/xmms-sid.glade:2876 src/sid/xs_interface.c:1171
 #, fuzzy
 msgid "Misc"
 msgstr "Disco"
@@ -1885,7 +1889,7 @@
 msgstr "Duració per defecte:"
 
 #: src/console/Audacious_Config.cxx:201 src/modplug/gui/interface.cxx:264
-#: src/sid/xmms-sid.glade:1424 src/sid/xs_interface.c:673
+#: src/sid/xmms-sid.glade:1243 src/sid/xs_interface.c:645
 msgid "Resampling"
 msgstr "Remostreig"
 
@@ -2220,7 +2224,7 @@
 "Ensure that the device has been correctly plugged in."
 msgstr ""
 
-#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:196
+#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:198
 #: src/madplug/plugin.c:620
 msgid "Error"
 msgstr "Error"
@@ -2349,12 +2353,12 @@
 "written by Giacomo Lozito\n"
 msgstr ""
 
-#: src/filewriter/filewriter.c:167
+#: src/filewriter/filewriter.c:169
 #, fuzzy
 msgid "About FileWriter-Plugin"
 msgstr "Quant al plugin per a Scrobbler"
 
-#: src/filewriter/filewriter.c:168
+#: src/filewriter/filewriter.c:170
 #, fuzzy
 msgid ""
 "FileWriter-Plugin\n"
@@ -2391,7 +2395,7 @@
 "Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\n"
 "Boston, MA 02110-1301, USA."
 
-#: src/filewriter/filewriter.c:197
+#: src/filewriter/filewriter.c:199
 #, fuzzy
 msgid ""
 "You cannot use the FileWriter plugin\n"
@@ -2400,60 +2404,60 @@
 "No podeu utilitzar el plugin d'escriptura\n"
 "al disc en mode de temps real."
 
-#: src/filewriter/filewriter.c:512
+#: src/filewriter/filewriter.c:514
 #, fuzzy
 msgid "File Writer Configuration"
 msgstr "Configuració de l'escriptura al disc"
 
-#: src/filewriter/filewriter.c:524
+#: src/filewriter/filewriter.c:526
 #, fuzzy
 msgid "Output file format:"
 msgstr "Directori de sortida:"
 
-#: src/filewriter/filewriter.c:542 src/ladspa/ladspa.c:962
+#: src/filewriter/filewriter.c:544 src/ladspa/ladspa.c:962
 #, fuzzy
 msgid "Configure"
 msgstr "Configuració de l'eco"
 
-#: src/filewriter/filewriter.c:557
+#: src/filewriter/filewriter.c:559
 msgid "Save into original directory"
 msgstr ""
 
-#: src/filewriter/filewriter.c:562
+#: src/filewriter/filewriter.c:564
 msgid "Save into custom directory"
 msgstr ""
 
-#: src/filewriter/filewriter.c:574
+#: src/filewriter/filewriter.c:576
 msgid "Output file folder:"
 msgstr "Directori de sortida:"
 
-#: src/filewriter/filewriter.c:578
+#: src/filewriter/filewriter.c:580
 msgid "Pick a folder"
 msgstr "Trieu un directori"
 
-#: src/filewriter/filewriter.c:598
+#: src/filewriter/filewriter.c:600
 msgid "Get filename from:"
 msgstr ""
 
-#: src/filewriter/filewriter.c:601
+#: src/filewriter/filewriter.c:603
 msgid "original file tags"
 msgstr ""
 
-#: src/filewriter/filewriter.c:607
+#: src/filewriter/filewriter.c:609
 msgid "original filename"
 msgstr ""
 
-#: src/filewriter/filewriter.c:617
+#: src/filewriter/filewriter.c:619
 msgid "Don't strip file name extension"
 msgstr "Deixa l'extensió del fitxer"
 
-#: src/filewriter/filewriter.c:621
+#: src/filewriter/filewriter.c:623
 msgid ""
 "If enabled, the extension from the original filename will not be stripped "
 "before adding the new file extension to the end."
 msgstr ""
 
-#: src/filewriter/filewriter.c:635
+#: src/filewriter/filewriter.c:637
 msgid "Prepend track number to filename"
 msgstr ""
 
@@ -2904,8 +2908,7 @@
 msgid "ID3 format:"
 msgstr "Format ID3:"
 
-#: src/madplug/configure.c:261 src/sid/xmms-sid.glade:3144
-#: src/sid/xs_interface.c:1189 src/vorbis/configure.c:160
+#: src/madplug/configure.c:261 src/vorbis/configure.c:160
 msgid "Title"
 msgstr "Títol"
 
@@ -3359,8 +3362,8 @@
 msgid "Use Album Gain"
 msgstr "usa el guany/pic del disc"
 
-#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:3755
-#: src/sid/xs_interface.c:1708 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
+#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:2994
+#: src/sid/xs_interface.c:1495 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
 #, fuzzy
 msgid "Filename:"
 msgstr "Nom d'usuari:"
@@ -3374,8 +3377,8 @@
 msgid "Track:"
 msgstr "Guany de la pista:"
 
-#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1996
-#: src/sid/xs_interface.c:835 src/wavpack/ui.cxx:265
+#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1732
+#: src/sid/xs_interface.c:812 src/wavpack/ui.cxx:265
 #, fuzzy
 msgid "Save"
 msgstr "Rave"
@@ -3684,159 +3687,139 @@
 msgid "Scrobbler Error"
 msgstr "Plugin per a Scrobbler"
 
-#: src/sid/xmms-sid.c:207
+#: src/sid/xmms-sid.c:203
 msgid "Error initializing song-length database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:213
+#: src/sid/xmms-sid.c:209
 msgid "Error initializing STIL database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:327
+#: src/sid/xmms-sid.c:414
 msgid "Couldn't allocate memory for audio data buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:334
+#: src/sid/xmms-sid.c:421
 msgid "Couldn't allocate memory for audio oversampling buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:409
+#: src/sid/xmms-sid.c:436
 #, c-format
 msgid "Couldn't initialize SID-tune '%s' (sub-tune #%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:420
+#: src/sid/xmms-sid.c:446
 #, c-format
 msgid "Couldn't open XMMS audio output (fmt=%x, freq=%i, nchan=%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:466
+#: src/sid/xmms-sid.c:491
 msgid "Oversampling rate-conversion pass failed.\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:770
-#, fuzzy
-msgid "Subtune Control"
-msgstr "Control del volum:"
-
-#: src/sid/xmms-sid.c:1001
-#, c-format
-msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1008
-#, c-format
-msgid "Could not allocate sidFilename ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1017
-#, c-format
-msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:235
-#, fuzzy
-msgid "Audacious-SID Configuration"
+#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:213
+#, fuzzy
+msgid "Audacious-SID configuration"
 msgstr "Configuració del plugin d'àudio MPEG"
 
-#: src/sid/xmms-sid.glade:70 src/sid/xs_interface.c:271
+#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:249
 #, fuzzy
 msgid "8-bit"
 msgstr "8 bits"
 
-#: src/sid/xmms-sid.glade:89 src/sid/xs_interface.c:278
+#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:256
 #, fuzzy
 msgid "16-bit"
 msgstr "16 bits"
 
-#: src/sid/xmms-sid.glade:110 src/sid/xs_interface.c:285
+#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:263
 msgid "Resolution:"
 msgstr "Resolució:"
 
-#: src/sid/xmms-sid.glade:195 src/sid/xs_interface.c:316
+#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:294
 msgid "Autopanning"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:216 src/sid/xs_interface.c:323
+#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:301
 #: src/vorbis/fileinfo.c:867 src/vorbis/fileinfo.c:924
 msgid "Channels:"
 msgstr "Canals:"
 
-#: src/sid/xmms-sid.glade:565 src/sid/xs_interface.c:373
+#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:345
 #, fuzzy
 msgid "Samplerate:"
 msgstr "Freqüència de mostreig:"
 
-#: src/sid/xmms-sid.glade:611 src/sid/xs_interface.c:390
+#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:362
 #, fuzzy
 msgid "Use oversampling"
 msgstr "Remostreig"
 
-#: src/sid/xmms-sid.glade:637 src/sid/xs_interface.c:401
+#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:373
 msgid "Factor:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:681 src/sid/xs_interface.c:413
+#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:385
 msgid "Large factors require more CPU-power"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:715 src/sid/xs_interface.c:419
+#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:391
 #, fuzzy
 msgid "Oversampling:"
 msgstr "Remostreig"
 
-#: src/sid/xmms-sid.glade:751 src/sid/xs_interface.c:424
+#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:396
 msgid "Audio"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:801 src/sid/xs_interface.c:456
+#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:428
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "clock speed/frequency. Otherwise the speed is determined from played file "
 "itself."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:803 src/sid/xs_interface.c:452
+#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:424
 msgid "Force speed"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:821 src/sid/xs_interface.c:462
+#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:434
 msgid ""
 "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. "
 "Most of SID-tunes have been made for PAL computers."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:823 src/sid/xs_interface.c:458
+#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:430
 msgid "PAL (50 Hz)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:841 src/sid/xs_interface.c:470
+#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:442
 msgid ""
 "NTSC is the TV standard with 60Hz vertical refresh rate (and other features "
 "that differ from PAL). It is mainly used in United States, Japan and certain "
 "other countries."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:843 src/sid/xs_interface.c:466
+#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:438
 msgid "NTSC (60 Hz)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:864 src/sid/xs_interface.c:474
+#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:446
 msgid "Clock speed:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:909 src/sid/xs_interface.c:495
+#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:467
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "SID-chip model. Otherwise the preferred SID model is determined from the "
 "file (if PSIDv2NG type) or if not available, this setting is used."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:911 src/sid/xs_interface.c:491
+#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:463
 msgid "Force model"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:929 src/sid/xs_interface.c:501
+#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:473
 msgid ""
 "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 "
 "in few ways, having much fuller filter (which, due to design error, is never "
@@ -3844,91 +3827,91 @@
 "which enables playing of digital samples."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:931 src/sid/xs_interface.c:497
+#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:469
 msgid "MOS 6581"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:950 src/sid/xs_interface.c:505
+#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:477
 msgid "MOS 8580"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:971 src/sid/xs_interface.c:512
+#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:484
 #, fuzzy
 msgid "SID model:"
 msgstr "Mode de reproducció:"
 
-#: src/sid/xmms-sid.glade:1023 src/sid/xs_interface.c:533
+#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:505
 msgid ""
 "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most "
 "cases, though."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1025 src/sid/xs_interface.c:529
+#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:501
 msgid "SIDPlay 1 (frame-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1044 src/sid/xs_interface.c:541
+#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:513
 msgid ""
 "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact "
 "emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1046 src/sid/xs_interface.c:537
+#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:509
 msgid "SIDPlay 2 (cycle-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1068 src/sid/xs_interface.c:545
+#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:517
 msgid "Emulation library selection:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1114 src/sid/xs_interface.c:562
+#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:534
 msgid "Real C64 (SIDPlay 2 only)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:569
+#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:541
 msgid "Bank switching"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1153 src/sid/xs_interface.c:576
+#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:548
 msgid "Transparent ROM"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1173 src/sid/xs_interface.c:583
+#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:555
 msgid "PlaySID environment"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1194 src/sid/xs_interface.c:590
+#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:562
 #, fuzzy
 msgid "Memory mode:"
 msgstr "Mode de reproducció:"
 
-#: src/sid/xmms-sid.glade:1230 src/sid/xs_interface.c:595
+#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:567
 msgid "Emu#1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1274 src/sid/xs_interface.c:622
+#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:594
 msgid ""
 "This setting can be used to enable libSIDPlay2's \"optimization mode\", "
 "which in downgrades the emulation from cycle-exact to something similar to "
 "frame-exact. The result is lower CPU usage, but worse accuracy."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1276 src/sid/xs_interface.c:618
+#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:590
 msgid "Optimization mode (faster, inaccurate)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1294 src/sid/xs_interface.c:628
+#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:600
 msgid ""
 "reSID is the software SID-chip simulator based on SID reverse-engineering, "
 "created by Dag Lem. It is probably the closest thing to real SID available "
 "as software-only emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1296 src/sid/xs_interface.c:624
+#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:596
 msgid "reSID-emulation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1314 src/sid/xs_interface.c:636
+#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:608
 msgid ""
 "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a "
 "real SID-chip. Software can be used to control the HardSID and combined with "
@@ -3937,49 +3920,49 @@
 "http://www.hardsid.com/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1316 src/sid/xs_interface.c:632
+#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:604
 msgid "HardSID"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1337 src/sid/xs_interface.c:640
+#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:612
 msgid "SIDPlay 2 options:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1382 src/sid/xs_interface.c:661
+#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:633
 msgid ""
 "Fastest and also worst sounding sampling method, simply picks nearest "
 "neighbouring sample."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1384 src/sid/xs_interface.c:657
+#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:629
 msgid "Fast (nearest neighbour)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1402 src/sid/xs_interface.c:669
+#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:641
 msgid ""
 "Uses linear interpolation between samples, yielding higher audio quality "
 "with less sampling noise."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1404 src/sid/xs_interface.c:665
+#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:637
 msgid "Linear interpolation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1444 src/sid/xs_interface.c:680
+#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:652
 #, fuzzy
 msgid "Resampling (FIR)"
 msgstr "Remostreig"
 
-#: src/sid/xmms-sid.glade:1465 src/sid/xs_interface.c:687
+#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:659
 #, fuzzy
 msgid "reSID sampling options:"
 msgstr "Taxa de remostreig:"
 
-#: src/sid/xmms-sid.glade:1501 src/sid/xs_interface.c:692
+#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:664
 msgid "Emu#2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1531 src/sid/xs_interface.c:708
+#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:680
 msgid ""
 "This option enables emulation of SID filter. The filter is an essential part "
 "of SID's sound capacity, but accurate emulation of it may require quite much "
@@ -3987,377 +3970,280 @@
 "authentic at all if they utilize the filter."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1533 src/sid/xs_interface.c:704
+#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:676
 msgid "Emulate filters"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1590 src/sid/xs_interface.c:733
+#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:705
 msgid "FS"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1641 src/sid/xs_interface.c:750
+#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:722
 msgid "FM"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1692 src/sid/xs_interface.c:767
+#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:739
 msgid "FT"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1730 src/sid/xs_interface.c:778
+#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:750
 msgid "Reset values"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1759 src/sid/xs_interface.c:783
+#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:755
 msgid "SIDPlay1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1828 src/sid/xs_interface.c:807
-msgid "6581 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1854 src/sid/xs_interface.c:808
-msgid "8580 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1880 src/sid/xs_interface.c:809
-msgid "6581R1 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1906 src/sid/xs_interface.c:810
-msgid "6581R4 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1975 src/sid/xs_interface.c:827
-msgid "Load"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2017 src/sid/xs_interface.c:843
+#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:796
+msgid "Export"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:804
+msgid "Use"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:820
 msgid "Import"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2038 src/sid/xs_interface.c:851
-msgid "Export"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2083 src/sid/xs_interface.c:865
+#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:828
+#, fuzzy
+msgid "Delete"
+msgstr "Per defecte"
+
+#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:842
 #, fuzzy
 msgid "Filter curve:"
 msgstr "Mida del fitxer:"
 
-#: src/sid/xmms-sid.glade:2119 src/sid/xs_interface.c:870
+#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:847
 msgid "SIDPlay2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2155 src/sid/xs_interface.c:876
+#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:853
 msgid "Filters"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2199 src/sid/xs_interface.c:903
+#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:880
 msgid ""
 "If enabled, the tune is played at least for the specified time, adding "
 "silence to the end if necessary."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2201 src/sid/xs_interface.c:899
+#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:876
 msgid "Play at least for specified time"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2226 src/sid/xmms-sid.glade:2397
-#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:910
-#: src/sid/xs_interface.c:964 src/sid/xs_interface.c:1276
+#: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133
+#: src/sid/xmms-sid.glade:2482 src/sid/xs_interface.c:887
+#: src/sid/xs_interface.c:941 src/sid/xs_interface.c:1051
 #, fuzzy
 msgid "Playtime:"
 msgstr "Mode de reproducció:"
 
-#: src/sid/xmms-sid.glade:2305 src/sid/xs_interface.c:930
+#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:907
 msgid "Minimum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2350 src/sid/xs_interface.c:951
+#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:928
 msgid ""
 "If enabled, tune is played until specified duration is reached (aka maximum "
 "playtime)."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2352 src/sid/xs_interface.c:947
+#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:924
 msgid "Play for specified time maximum"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2371 src/sid/xs_interface.c:957
+#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:934
 msgid ""
 "If enabled, the maximum playtime is applied only if song/tune length is not "
 "known."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2373 src/sid/xs_interface.c:953
+#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:930
 msgid "Only when song length is unknown"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2476 src/sid/xs_interface.c:984
+#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:961
 msgid "Maximum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2521 src/sid/xs_interface.c:1005
+#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:982
 msgid ""
 "This option enables using of XSIDPLAY compatible song length database. "
 "(Refer to Audacious-SID documentation for more information)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2523 src/sid/xs_interface.c:1001
+#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:978
 msgid "Use XSIDPLAY-compatible database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2548 src/sid/xs_interface.c:1012
+#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:989
 msgid "DB-file:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2573 src/sid/xs_interface.c:1022
+#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:999
 msgid "Database path and filename"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2593 src/sid/xs_interface.c:1028
+#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1006
 msgid "Browse for song length-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2620 src/sid/xs_interface.c:1030
+#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1008
 msgid "Song length database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1035
+#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1013
 #, fuzzy
 msgid "Songlength"
 msgstr "Duració per defecte:"
 
-#: src/sid/xmms-sid.glade:2700 src/sid/xs_interface.c:1062
+#: src/sid/xmms-sid.glade:2437 src/sid/xs_interface.c:1036
+msgid "Add sub-tunes to playlist"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1041
+msgid "Only tunes with specified minimum length "
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2560 src/sid/xs_interface.c:1071
+#, fuzzy
+msgid "Sub-tune handling:"
+msgstr "Control del volum:"
+
+#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1092
 msgid ""
 "If this option is enabled (and the database & HVSC settings below are "
 "correctly set), Audacious-SID will use and display additional information "
 "from STIL database when HVSC SIDs are played."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:1058
+#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1088
 msgid "Use STIL database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2727 src/sid/xs_interface.c:1069
+#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:1099
 #, fuzzy
 msgid "STIL file:"
 msgstr "Títol:"
 
-#: src/sid/xmms-sid.glade:2764 src/sid/xs_interface.c:1085
+#: src/sid/xmms-sid.glade:2669 src/sid/xs_interface.c:1115
 msgid ""
 "Path and filename of STIL database file (STIL.txt), usually found from "
 "HVSC's DOCUMENTS-subdirectory."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2799 src/sid/xs_interface.c:1097
+#: src/sid/xmms-sid.glade:2704 src/sid/xs_interface.c:1128
 msgid "Browse for STIL-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2833 src/sid/xs_interface.c:1104
+#: src/sid/xmms-sid.glade:2738 src/sid/xs_interface.c:1135
 msgid "HVSC path:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2870 src/sid/xs_interface.c:1120
+#: src/sid/xmms-sid.glade:2775 src/sid/xs_interface.c:1151
 msgid ""
 "Path to base-directory of your High Voltage SID Collection (HVSC), for "
 "example /media/C64Music/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2905 src/sid/xs_interface.c:1132
+#: src/sid/xmms-sid.glade:2810 src/sid/xs_interface.c:1164
 msgid "Browse for HVSC path"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2935 src/sid/xs_interface.c:1134
+#: src/sid/xmms-sid.glade:2840 src/sid/xs_interface.c:1166
 msgid "SID Tune Information List (STIL) database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2980 src/sid/xs_interface.c:1155
-msgid ""
-"XMMS v1.2.5 and later support generic titlestring formatting (see XMMS "
-"preferences). This option can be enabled to override those generic titles "
-"with Audacious-SID specific ones. Formatting mnemonics are explained briefly "
-"below."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2982 src/sid/xs_interface.c:1151
-#, fuzzy
-msgid "Override generic XMMS titles"
-msgstr "Ignora els títols genèrics"
-
-#: src/sid/xmms-sid.glade:3032 src/sid/xs_interface.c:1172
-msgid ""
-"%% - '%' character\n"
-"%p - Performer/composer\n"
-"%t - Song name (title)\n"
-"%c - Copyright\n"
-"%s - File type\n"
-"%m - SID model"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3062 src/sid/xs_interface.c:1178
-msgid ""
-"%C - Speed/clock (PAL/NTSC)\n"
-"%n - Subtune\n"
-"%N - Number of subtunes\n"
-"%f - Filename\n"
-"%F - File path\n"
-"%e - File extension"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3108 src/sid/xs_interface.c:1184
-#, fuzzy
-msgid "Song name/title format:"
-msgstr "Format del títol:"
-
-#: src/sid/xmms-sid.glade:3188 src/sid/xs_interface.c:1216
-#, fuzzy
-msgid "No sub-tune control."
-msgstr "Control del volum:"
-
-#: src/sid/xmms-sid.glade:3190 src/sid/xs_interface.c:1212
-msgid "Disabled"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3208 src/sid/xs_interface.c:1224
-msgid ""
-"Seeking backwards/forwards selects previous/next sub-tune, similar to "
-"selector used in XMMS-SidPlay."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3210 src/sid/xs_interface.c:1220
-msgid "Seek back/forward changes sub-tune"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3229 src/sid/xs_interface.c:1232
-msgid ""
-"By pressing the seekbar a sub-tune control window pops up, in style of UADE "
-"(Unix Amiga Delitracker Emulator)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3231 src/sid/xs_interface.c:1228
-msgid "Pop-up via seekbar (UADE-style)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3250 src/sid/xs_interface.c:1240
-msgid ""
-"Seekbar works as a sub-tune selector (Best option if you have patched your "
-"XMMS with the song-position patch.)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3252 src/sid/xs_interface.c:1236
-msgid "Song-position patch"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3273 src/sid/xs_interface.c:1244
-#, fuzzy
-msgid "Sub-tune control:"
-msgstr "Control del volum:"
-
-#: src/sid/xmms-sid.glade:3319 src/sid/xs_interface.c:1261
-msgid "Go through all sub-tunes in file"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3339 src/sid/xs_interface.c:1266
-msgid "Only tunes with specified minimum length "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3442 src/sid/xs_interface.c:1296
-msgid "Automatic sub-tune changes:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3487 src/sid/xs_interface.c:1317
-msgid ""
-"Determine if file is a SID-tune by checking the file contents. If NOT "
-"selected, filetype is determined by checking filename extension (.sid, ."
-"dat, ...)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3489 src/sid/xs_interface.c:1313
-msgid "Detect file by contents (slower)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3509 src/sid/xs_interface.c:1319
-msgid "Miscellaneous options:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3582 src/sid/xs_interface.c:1343
+#: src/sid/xmms-sid.glade:2913 src/sid/xs_interface.c:1190
 msgid "Accept and update changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1350
+#: src/sid/xmms-sid.glade:2927 src/sid/xs_interface.c:1197
 msgid "Cancel any changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3620 src/sid/xs_interface.c:1651
+#: src/sid/xmms-sid.glade:2952 src/sid/xs_interface.c:1474
 msgid "Audacious-SID Fileinfo"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3674 src/sid/xs_interface.c:1677
-msgid " < "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3710 src/sid/xs_interface.c:1689
-msgid " > "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3783 src/sid/xs_interface.c:1716
+#: src/sid/xmms-sid.glade:3022 src/sid/xs_interface.c:1503
 msgid "Songname:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3811 src/sid/xs_interface.c:1724
+#: src/sid/xmms-sid.glade:3050 src/sid/xs_interface.c:1511
 msgid "Composer:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3839 src/sid/xs_interface.c:1732
+#: src/sid/xmms-sid.glade:3078 src/sid/xs_interface.c:1519
 #: src/vorbis/fileinfo.c:723
 msgid "Copyright:"
 msgstr "Copyright:"
 
-#: src/sid/xmms-sid.glade:3953 src/sid/xs_interface.c:1772
+#: src/sid/xmms-sid.glade:3192 src/sid/xs_interface.c:1563
 msgid "Song Information:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4008 src/sid/xs_interface.c:1797
-msgid " "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4035 src/sid/xs_interface.c:1812
+#: src/sid/xmms-sid.glade:3266 src/sid/xs_interface.c:1598
 msgid "Author:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4133 src/sid/xs_interface.c:1844
+#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:1632
 #, fuzzy
 msgid "Duration:"
 msgstr "Descripció:"
 
-#: src/sid/xmms-sid.glade:4227 src/sid/xs_interface.c:1877
+#: src/sid/xmms-sid.glade:3458 src/sid/xs_interface.c:1666
 msgid "Sub-tune Information:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4281 src/sid/xs_interface.c:1951
+#: src/sid/xmms-sid.glade:3512 src/sid/xs_interface.c:1727
 msgid "Select HVSC song length database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4322 src/sid/xs_interface.c:1989
-msgid "Select STIL-database "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4363 src/sid/xs_interface.c:2027
+#: src/sid/xmms-sid.glade:3554 src/sid/xs_interface.c:1768
+msgid "Select STIL-database"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1809
 msgid "Select HVSC location prefix"
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:315
+#: src/sid/xmms-sid.glade:3638 src/sid/xs_interface.c:1850
+msgid "Select SIDPlay2 filters file for importing"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3680 src/sid/xs_interface.c:1891
+msgid "Select SIDPlay2 filters file for exporting"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3721 src/sid/xmms-sid.glade:3803
+#: src/sid/xs_interface.c:1939 src/sid/xs_interface.c:1952
+msgid "Confirm selected action"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3759 src/sid/xs_interface.c:1969
+#, fuzzy
+msgid "Yes"
+msgstr "Sí"
+
+#: src/sid/xmms-sid.glade:3771 src/sid/xs_interface.c:1975
+msgid "No"
+msgstr "No"
+
+#: src/sid/xs_fileinfo.c:238
 #, fuzzy
 msgid "General info"
 msgstr "General"
 
-#: src/sid/xs_fileinfo.c:325
+#: src/sid/xs_fileinfo.c:248
 #, c-format
 msgid "Tune #%i: "
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:336
+#: src/sid/xs_fileinfo.c:259
 #, c-format
 msgid "Tune #%i"
 msgstr ""
@@ -4380,32 +4266,32 @@
 msgid "Could not open SongLengthDB '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:225
+#: src/sid/xs_length.c:224
 #, c-format
 msgid "Invalid MD5-hash in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:232
+#: src/sid/xs_length.c:231
 #, c-format
 msgid "Invalid entry in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:237
+#: src/sid/xs_length.c:236
 #, c-format
 msgid "Invalid line in SongLengthDB file '%s' line #%d\n"
 msgstr ""
 
-#: src/sid/xs_length.c:399
+#: src/sid/xs_length.c:398
 #, c-format
 msgid "Not a PSID or RSID file '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:418
+#: src/sid/xs_length.c:417
 #, c-format
 msgid "Error reading SID file header from '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:437
+#: src/sid/xs_length.c:436
 #, c-format
 msgid "Error allocating temp data buffer for file '%s'\n"
 msgstr ""
@@ -4442,72 +4328,77 @@
 msgid "[SIDPlay2] Could not initialize emulation engine.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:224
+#: src/sid/xs_sidplay2.cc:208
+#, c-format
+msgid "[SIDPlay2] Invalid number of filter curve points (%d > %d)\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:229
 msgid "reSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:230
+#: src/sid/xs_sidplay2.cc:235
 #, c-format
 msgid "reSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:238
+#: src/sid/xs_sidplay2.cc:243
 #, c-format
 msgid "reSID->sampling(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:248
+#: src/sid/xs_sidplay2.cc:253
 msgid "reSID->filter(NULL) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:262
+#: src/sid/xs_sidplay2.cc:267
 msgid "hardSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:268
+#: src/sid/xs_sidplay2.cc:273
 #, c-format
 msgid "hardSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:276
+#: src/sid/xs_sidplay2.cc:281
 msgid "[SIDPlay2] Could not initialize SIDBuilder object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:290
+#: src/sid/xs_sidplay2.cc:295
 #, c-format
 msgid "[SIDPlay2] Invalid clockSpeed=%d, falling back to PAL.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:314
+#: src/sid/xs_sidplay2.cc:319
 #, c-format
 msgid "Invalid sid2OptLevel=%d, falling back to %d.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:338
+#: src/sid/xs_sidplay2.cc:343
 msgid "[SIDPlay2] Emulator engine configuration failed!\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:345
+#: src/sid/xs_sidplay2.cc:350
 msgid "[SIDPlay2] Could not initialize SIDTune object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:396
-msgid "[SIDPlay2] currTune->selectSong() failed\n"
-msgstr ""
-
 #: src/sid/xs_sidplay2.cc:401
+msgid "[SIDPlay2] currTune->selectSong() failed\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:406
 msgid "[SIDPlay2] currEng->load() failed\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:44
+#: src/sid/xs_stil.c:46
 msgid "SubTune pointer structure realloc failed.\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:61
+#: src/sid/xs_stil.c:69
 msgid "SubTune structure malloc failed!\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:168
+#: src/sid/xs_stil.c:176
 #, c-format
 msgid "Could not open STILDB '%s'\n"
 msgstr ""
@@ -5792,6 +5683,22 @@
 msgstr "Quant a %s"
 
 #, fuzzy
+#~ msgid "Subtune Control"
+#~ msgstr "Control del volum:"
+
+#, fuzzy
+#~ msgid "Override generic XMMS titles"
+#~ msgstr "Ignora els títols genèrics"
+
+#, fuzzy
+#~ msgid "Song name/title format:"
+#~ msgstr "Format del títol:"
+
+#, fuzzy
+#~ msgid "No sub-tune control."
+#~ msgstr "Control del volum:"
+
+#, fuzzy
 #~ msgid "22050"
 #~ msgstr "22000 Hz"
 
@@ -6006,9 +5913,6 @@
 #~ msgid "CCIT J.17"
 #~ msgstr "CCIT J.17"
 
-#~ msgid "No"
-#~ msgstr "No"
-
 #~ msgid "MPEG Level:"
 #~ msgstr "Nivell d'MPEG:"
 
--- a/po/cs.po	Thu Sep 13 12:09:38 2007 -0500
+++ b/po/cs.po	Thu Sep 13 12:10:39 2007 -0500
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: audacious-plugins svn-1563\n"
 "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n"
-"POT-Creation-Date: 2007-08-30 18:23+0200\n"
+"POT-Creation-Date: 2007-09-05 00:28+0200\n"
 "PO-Revision-Date: 2007-02-27 23:34+0100\n"
 "Last-Translator: Petr Písař <petr.pisar@atlas.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -40,7 +40,7 @@
 #: src/audiocompress/audacious-glue.c:556 src/cdaudio-ng/configure.c:144
 #: src/console/Audacious_Driver.cxx:500 src/echo_plugin/gui.c:27
 #: src/echo_plugin/gui.c:138 src/esd/about.c:49
-#: src/filewriter/filewriter.c:182 src/jack/configure.c:140
+#: src/filewriter/filewriter.c:184 src/jack/configure.c:140
 #: src/jack/jack.c:602 src/madplug/fileinfo.c:158 src/madplug/fileinfo.c:236
 #: src/madplug/plugin.c:597 src/madplug/plugin.c:620
 #: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:45
@@ -92,8 +92,8 @@
 #: src/audiocompress/audacious-glue.c:561 src/cdaudio-ng/configure.c:148
 #: src/echo_plugin/gui.c:146 src/jack/configure.c:147
 #: src/modplug/gui/interface.cxx:741 src/musepack/libmpc.cxx:236
-#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:3599
-#: src/sid/xs_interface.c:1345 src/stereo_plugin/stereo.c:128
+#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:2930
+#: src/sid/xs_interface.c:1192 src/stereo_plugin/stereo.c:128
 #: src/sun/configure.c:567 src/timidity/src/interface.c:232
 #: src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561
 msgid "Cancel"
@@ -130,14 +130,14 @@
 msgstr "Kanálů"
 
 #: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:899
-#: src/sid/xmms-sid.glade:156 src/sid/xs_interface.c:302
+#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:280
 #: src/timidity/src/interface.c:167
 msgid "Mono"
 msgstr "Mono"
 
 #: src/adplug/adplug-xmms.cc:333 src/filewriter/mp3.c:894
-#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:175
-#: src/sid/xs_interface.c:309 src/timidity/src/interface.c:175
+#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:176
+#: src/sid/xs_interface.c:287 src/timidity/src/interface.c:175
 msgid "Stereo"
 msgstr "Stereo"
 
@@ -253,30 +253,30 @@
 msgid "Subsong selection"
 msgstr "Výběr backendu"
 
-#: src/adplug/adplug-xmms.cc:688
+#: src/adplug/adplug-xmms.cc:730
 msgid "Order: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:689
+#: src/adplug/adplug-xmms.cc:731
 msgid "Pattern: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:691
+#: src/adplug/adplug-xmms.cc:733
 msgid "Row: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:692
+#: src/adplug/adplug-xmms.cc:734
 #, fuzzy
 msgid "Speed: "
 msgstr "Mluvené"
 
-#: src/adplug/adplug-xmms.cc:693
+#: src/adplug/adplug-xmms.cc:735
 #, fuzzy
 msgid "Timer: "
 msgstr "Filtr: "
 
-#: src/adplug/adplug-xmms.cc:694 src/console/Audacious_Config.cxx:226
-#: src/sid/xmms-sid.glade:513 src/sid/xs_interface.c:361
+#: src/adplug/adplug-xmms.cc:736 src/console/Audacious_Config.cxx:226
+#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:333
 msgid "Hz"
 msgstr "Hz"
 
@@ -312,8 +312,8 @@
 msgstr ""
 
 #: src/alarm/interface.c:73 src/lirc/about.c:116
-#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:4262
-#: src/sid/xs_interface.c:1882
+#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:3493
+#: src/sid/xs_interface.c:1671
 msgid "Close"
 msgstr "Zavřít"
 
@@ -328,10 +328,10 @@
 
 #: src/alarm/interface.c:126 src/alarm/interface.c:1391 src/alsa/about.c:46
 #: src/alsa/configure.c:405 src/cdaudio-ng/cdaudio-ng.c:206
-#: src/filewriter/filewriter.c:199 src/flacng/plugin.c:743
+#: src/filewriter/filewriter.c:201 src/flacng/plugin.c:743
 #: src/modplug/gui/interface.cxx:725 src/pulse_audio/pulse_audio.c:694
-#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:3585
-#: src/sid/xs_interface.c:1338
+#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:2916
+#: src/sid/xs_interface.c:1185
 msgid "OK"
 msgstr "Budiž"
 
@@ -385,6 +385,11 @@
 msgid "h"
 msgstr ""
 
+#: src/alarm/interface.c:538
+#, fuzzy
+msgid "minutes"
+msgstr "Čáry"
+
 #: src/alarm/interface.c:556
 #, fuzzy
 msgid "Quiet after:"
@@ -449,10 +454,10 @@
 msgid "Fading"
 msgstr "Rozsvícení:"
 
-#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2271
-#: src/sid/xmms-sid.glade:2442 src/sid/xmms-sid.glade:3408
-#: src/sid/xs_interface.c:923 src/sid/xs_interface.c:977
-#: src/sid/xs_interface.c:1289
+#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2007
+#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2526
+#: src/sid/xs_interface.c:900 src/sid/xs_interface.c:954
+#: src/sid/xs_interface.c:1064
 #, fuzzy
 msgid "seconds"
 msgstr "s"
@@ -1391,8 +1396,8 @@
 "backend</span>"
 msgstr "<span size=\"small\">def</span>"
 
-#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:4084
-#: src/sid/xs_interface.c:1828 src/vorbis/fileinfo.c:562
+#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3315
+#: src/sid/xs_interface.c:1615 src/vorbis/fileinfo.c:562
 msgid "Name:"
 msgstr "Jméno:"
 
@@ -1647,10 +1652,10 @@
 msgid "Skin file:"
 msgstr "Soubor se skinem:"
 
-#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2595
-#: src/sid/xmms-sid.glade:2801 src/sid/xmms-sid.glade:2907
-#: src/sid/xs_interface.c:1024 src/sid/xs_interface.c:1093
-#: src/sid/xs_interface.c:1128
+#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2331
+#: src/sid/xmms-sid.glade:2706 src/sid/xmms-sid.glade:2812
+#: src/sid/xs_interface.c:1002 src/sid/xs_interface.c:1124
+#: src/sid/xs_interface.c:1160
 msgid "Browse"
 msgstr "Procházet"
 
@@ -1733,7 +1738,7 @@
 msgstr "SpouÅ¡tÄ›Ä"
 
 #: src/aosd/aosd_ui.c:1073 src/cdaudio-ng/configure.c:87
-#: src/sid/xmms-sid.glade:3545 src/sid/xs_interface.c:1324
+#: src/sid/xmms-sid.glade:2876 src/sid/xs_interface.c:1171
 #, fuzzy
 msgid "Misc"
 msgstr "Disko"
@@ -2033,7 +2038,7 @@
 msgstr "Implicitní délka skladby:"
 
 #: src/console/Audacious_Config.cxx:201 src/modplug/gui/interface.cxx:264
-#: src/sid/xmms-sid.glade:1424 src/sid/xs_interface.c:673
+#: src/sid/xmms-sid.glade:1243 src/sid/xs_interface.c:645
 msgid "Resampling"
 msgstr "Převzorkování"
 
@@ -2388,7 +2393,7 @@
 "Nelze otevřít okno s vazbami pro nerozpoznané zařízení.\n"
 "Ujistěte se, že zařízení bylo správně zapojeno."
 
-#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:196
+#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:198
 #: src/madplug/plugin.c:620
 msgid "Error"
 msgstr "Chyba"
@@ -2532,12 +2537,12 @@
 "< james@develia.org >\n"
 "\n"
 
-#: src/filewriter/filewriter.c:167
+#: src/filewriter/filewriter.c:169
 #, fuzzy
 msgid "About FileWriter-Plugin"
 msgstr "O modulu Flac"
 
-#: src/filewriter/filewriter.c:168
+#: src/filewriter/filewriter.c:170
 #, fuzzy
 msgid ""
 "FileWriter-Plugin\n"
@@ -2572,7 +2577,7 @@
 "tak nestalo, obraťte se na Free Software Foundation, Inc.,\n"
 "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA."
 
-#: src/filewriter/filewriter.c:197
+#: src/filewriter/filewriter.c:199
 #, fuzzy
 msgid ""
 "You cannot use the FileWriter plugin\n"
@@ -2581,60 +2586,60 @@
 "Disk writer nelze použít, pokud\n"
 "jste v režimu reálného Äasu."
 
-#: src/filewriter/filewriter.c:512
+#: src/filewriter/filewriter.c:514
 #, fuzzy
 msgid "File Writer Configuration"
 msgstr "Nastavení Disk Writeru"
 
-#: src/filewriter/filewriter.c:524
+#: src/filewriter/filewriter.c:526
 #, fuzzy
 msgid "Output file format:"
 msgstr "Složka s výstupními soubory:"
 
-#: src/filewriter/filewriter.c:542 src/ladspa/ladspa.c:962
+#: src/filewriter/filewriter.c:544 src/ladspa/ladspa.c:962
 #, fuzzy
 msgid "Configure"
 msgstr "Nastavit ozvěnu"
 
-#: src/filewriter/filewriter.c:557
+#: src/filewriter/filewriter.c:559
 msgid "Save into original directory"
 msgstr ""
 
-#: src/filewriter/filewriter.c:562
+#: src/filewriter/filewriter.c:564
 msgid "Save into custom directory"
 msgstr ""
 
-#: src/filewriter/filewriter.c:574
+#: src/filewriter/filewriter.c:576
 msgid "Output file folder:"
 msgstr "Složka s výstupními soubory:"
 
-#: src/filewriter/filewriter.c:578
+#: src/filewriter/filewriter.c:580
 msgid "Pick a folder"
 msgstr ""
 
-#: src/filewriter/filewriter.c:598
+#: src/filewriter/filewriter.c:600
 msgid "Get filename from:"
 msgstr ""
 
-#: src/filewriter/filewriter.c:601
+#: src/filewriter/filewriter.c:603
 msgid "original file tags"
 msgstr ""
 
-#: src/filewriter/filewriter.c:607
+#: src/filewriter/filewriter.c:609
 msgid "original filename"
 msgstr ""
 
-#: src/filewriter/filewriter.c:617
+#: src/filewriter/filewriter.c:619
 msgid "Don't strip file name extension"
 msgstr "Nezkracovat příponu jména souboru"
 
-#: src/filewriter/filewriter.c:621
+#: src/filewriter/filewriter.c:623
 msgid ""
 "If enabled, the extension from the original filename will not be stripped "
 "before adding the new file extension to the end."
 msgstr ""
 
-#: src/filewriter/filewriter.c:635
+#: src/filewriter/filewriter.c:637
 msgid "Prepend track number to filename"
 msgstr ""
 
@@ -3095,8 +3100,7 @@
 msgid "ID3 format:"
 msgstr "Formát ID3:"
 
-#: src/madplug/configure.c:261 src/sid/xmms-sid.glade:3144
-#: src/sid/xs_interface.c:1189 src/vorbis/configure.c:160
+#: src/madplug/configure.c:261 src/vorbis/configure.c:160
 msgid "Title"
 msgstr "Název"
 
@@ -3560,8 +3564,8 @@
 msgid "Use Album Gain"
 msgstr "použít zesílení/vrchol alba"
 
-#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:3755
-#: src/sid/xs_interface.c:1708 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
+#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:2994
+#: src/sid/xs_interface.c:1495 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
 msgid "Filename:"
 msgstr "Jméno souboru:"
 
@@ -3574,8 +3578,8 @@
 msgid "Track:"
 msgstr "Zesílení skladby:"
 
-#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1996
-#: src/sid/xs_interface.c:835 src/wavpack/ui.cxx:265
+#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1732
+#: src/sid/xs_interface.c:812 src/wavpack/ui.cxx:265
 msgid "Save"
 msgstr "Uložit"
 
@@ -3877,161 +3881,141 @@
 msgid "Scrobbler Error"
 msgstr "Modul Scrobbler"
 
-#: src/sid/xmms-sid.c:207
+#: src/sid/xmms-sid.c:203
 msgid "Error initializing song-length database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:213
+#: src/sid/xmms-sid.c:209
 msgid "Error initializing STIL database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:327
+#: src/sid/xmms-sid.c:414
 msgid "Couldn't allocate memory for audio data buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:334
+#: src/sid/xmms-sid.c:421
 msgid "Couldn't allocate memory for audio oversampling buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:409
+#: src/sid/xmms-sid.c:436
 #, c-format
 msgid "Couldn't initialize SID-tune '%s' (sub-tune #%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:420
+#: src/sid/xmms-sid.c:446
 #, c-format
 msgid "Couldn't open XMMS audio output (fmt=%x, freq=%i, nchan=%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:466
+#: src/sid/xmms-sid.c:491
 msgid "Oversampling rate-conversion pass failed.\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:770
-#, fuzzy
-msgid "Subtune Control"
-msgstr "Ovládání hlasitosti:"
-
-#: src/sid/xmms-sid.c:1001
-#, c-format
-msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1008
-#, fuzzy, c-format
-msgid "Could not allocate sidFilename ('%s')\n"
-msgstr "Nepodařilo se vytvořit adresář (%s): %s\n"
-
-#: src/sid/xmms-sid.c:1017
-#, c-format
-msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:235
-#, fuzzy
-msgid "Audacious-SID Configuration"
+#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:213
+#, fuzzy
+msgid "Audacious-SID configuration"
 msgstr "OSD pro Audacious – nastavení"
 
-#: src/sid/xmms-sid.glade:70 src/sid/xs_interface.c:271
+#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:249
 #, fuzzy
 msgid "8-bit"
 msgstr "8 bitů"
 
-#: src/sid/xmms-sid.glade:89 src/sid/xs_interface.c:278
+#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:256
 #, fuzzy
 msgid "16-bit"
 msgstr "16 bitů"
 
-#: src/sid/xmms-sid.glade:110 src/sid/xs_interface.c:285
+#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:263
 msgid "Resolution:"
 msgstr "Rozlišení:"
 
-#: src/sid/xmms-sid.glade:195 src/sid/xs_interface.c:316
+#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:294
 msgid "Autopanning"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:216 src/sid/xs_interface.c:323
+#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:301
 #: src/vorbis/fileinfo.c:867 src/vorbis/fileinfo.c:924
 msgid "Channels:"
 msgstr "Kanálů"
 
-#: src/sid/xmms-sid.glade:565 src/sid/xs_interface.c:373
+#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:345
 #, fuzzy
 msgid "Samplerate:"
 msgstr "Vzorkovací kmitoÄet:"
 
-#: src/sid/xmms-sid.glade:611 src/sid/xs_interface.c:390
+#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:362
 #, fuzzy
 msgid "Use oversampling"
 msgstr "Převzorkování"
 
-#: src/sid/xmms-sid.glade:637 src/sid/xs_interface.c:401
+#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:373
 msgid "Factor:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:681 src/sid/xs_interface.c:413
+#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:385
 msgid "Large factors require more CPU-power"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:715 src/sid/xs_interface.c:419
+#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:391
 #, fuzzy
 msgid "Oversampling:"
 msgstr "Převzorkování"
 
-#: src/sid/xmms-sid.glade:751 src/sid/xs_interface.c:424
+#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:396
 msgid "Audio"
 msgstr "Zvuk"
 
-#: src/sid/xmms-sid.glade:801 src/sid/xs_interface.c:456
+#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:428
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "clock speed/frequency. Otherwise the speed is determined from played file "
 "itself."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:803 src/sid/xs_interface.c:452
+#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:424
 msgid "Force speed"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:821 src/sid/xs_interface.c:462
+#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:434
 msgid ""
 "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. "
 "Most of SID-tunes have been made for PAL computers."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:823 src/sid/xs_interface.c:458
+#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:430
 msgid "PAL (50 Hz)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:841 src/sid/xs_interface.c:470
+#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:442
 msgid ""
 "NTSC is the TV standard with 60Hz vertical refresh rate (and other features "
 "that differ from PAL). It is mainly used in United States, Japan and certain "
 "other countries."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:843 src/sid/xs_interface.c:466
+#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:438
 msgid "NTSC (60 Hz)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:864 src/sid/xs_interface.c:474
+#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:446
 #, fuzzy
 msgid "Clock speed:"
 msgstr "Tempo přehrávání"
 
-#: src/sid/xmms-sid.glade:909 src/sid/xs_interface.c:495
+#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:467
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "SID-chip model. Otherwise the preferred SID model is determined from the "
 "file (if PSIDv2NG type) or if not available, this setting is used."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:911 src/sid/xs_interface.c:491
+#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:463
 #, fuzzy
 msgid "Force model"
 msgstr "Režim stopy"
 
-#: src/sid/xmms-sid.glade:929 src/sid/xs_interface.c:501
+#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:473
 msgid ""
 "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 "
 "in few ways, having much fuller filter (which, due to design error, is never "
@@ -4039,92 +4023,92 @@
 "which enables playing of digital samples."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:931 src/sid/xs_interface.c:497
+#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:469
 msgid "MOS 6581"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:950 src/sid/xs_interface.c:505
+#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:477
 msgid "MOS 8580"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:971 src/sid/xs_interface.c:512
+#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:484
 #, fuzzy
 msgid "SID model:"
 msgstr "Způsob přehrávání:"
 
-#: src/sid/xmms-sid.glade:1023 src/sid/xs_interface.c:533
+#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:505
 msgid ""
 "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most "
 "cases, though."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1025 src/sid/xs_interface.c:529
+#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:501
 msgid "SIDPlay 1 (frame-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1044 src/sid/xs_interface.c:541
+#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:513
 msgid ""
 "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact "
 "emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1046 src/sid/xs_interface.c:537
+#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:509
 msgid "SIDPlay 2 (cycle-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1068 src/sid/xs_interface.c:545
+#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:517
 msgid "Emulation library selection:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1114 src/sid/xs_interface.c:562
+#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:534
 msgid "Real C64 (SIDPlay 2 only)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:569
+#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:541
 msgid "Bank switching"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1153 src/sid/xs_interface.c:576
+#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:548
 #, fuzzy
 msgid "Transparent ROM"
 msgstr "Transponovat: "
 
-#: src/sid/xmms-sid.glade:1173 src/sid/xs_interface.c:583
+#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:555
 msgid "PlaySID environment"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1194 src/sid/xs_interface.c:590
+#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:562
 #, fuzzy
 msgid "Memory mode:"
 msgstr "Mód mmap"
 
-#: src/sid/xmms-sid.glade:1230 src/sid/xs_interface.c:595
+#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:567
 msgid "Emu#1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1274 src/sid/xs_interface.c:622
+#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:594
 msgid ""
 "This setting can be used to enable libSIDPlay2's \"optimization mode\", "
 "which in downgrades the emulation from cycle-exact to something similar to "
 "frame-exact. The result is lower CPU usage, but worse accuracy."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1276 src/sid/xs_interface.c:618
+#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:590
 msgid "Optimization mode (faster, inaccurate)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1294 src/sid/xs_interface.c:628
+#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:600
 msgid ""
 "reSID is the software SID-chip simulator based on SID reverse-engineering, "
 "created by Dag Lem. It is probably the closest thing to real SID available "
 "as software-only emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1296 src/sid/xs_interface.c:624
+#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:596
 msgid "reSID-emulation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1314 src/sid/xs_interface.c:636
+#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:608
 msgid ""
 "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a "
 "real SID-chip. Software can be used to control the HardSID and combined with "
@@ -4133,50 +4117,50 @@
 "http://www.hardsid.com/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1316 src/sid/xs_interface.c:632
+#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:604
 msgid "HardSID"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1337 src/sid/xs_interface.c:640
+#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:612
 #, fuzzy
 msgid "SIDPlay 2 options:"
 msgstr "Hrát z adresy"
 
-#: src/sid/xmms-sid.glade:1382 src/sid/xs_interface.c:661
+#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:633
 msgid ""
 "Fastest and also worst sounding sampling method, simply picks nearest "
 "neighbouring sample."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1384 src/sid/xs_interface.c:657
+#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:629
 msgid "Fast (nearest neighbour)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1402 src/sid/xs_interface.c:669
+#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:641
 msgid ""
 "Uses linear interpolation between samples, yielding higher audio quality "
 "with less sampling noise."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1404 src/sid/xs_interface.c:665
+#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:637
 msgid "Linear interpolation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1444 src/sid/xs_interface.c:680
+#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:652
 #, fuzzy
 msgid "Resampling (FIR)"
 msgstr "Převzorkování"
 
-#: src/sid/xmms-sid.glade:1465 src/sid/xs_interface.c:687
+#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:659
 #, fuzzy
 msgid "reSID sampling options:"
 msgstr "Převzorkovat na:"
 
-#: src/sid/xmms-sid.glade:1501 src/sid/xs_interface.c:692
+#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:664
 msgid "Emu#2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1531 src/sid/xs_interface.c:708
+#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:680
 msgid ""
 "This option enables emulation of SID filter. The filter is an essential part "
 "of SID's sound capacity, but accurate emulation of it may require quite much "
@@ -4184,391 +4168,293 @@
 "authentic at all if they utilize the filter."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1533 src/sid/xs_interface.c:704
+#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:676
 #, fuzzy
 msgid "Emulate filters"
 msgstr "Přehrát soubory"
 
-#: src/sid/xmms-sid.glade:1590 src/sid/xs_interface.c:733
+#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:705
 msgid "FS"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1641 src/sid/xs_interface.c:750
+#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:722
 msgid "FM"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1692 src/sid/xs_interface.c:767
+#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:739
 msgid "FT"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1730 src/sid/xs_interface.c:778
+#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:750
 msgid "Reset values"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1759 src/sid/xs_interface.c:783
+#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:755
 #, fuzzy
 msgid "SIDPlay1"
 msgstr "Hrát"
 
-#: src/sid/xmms-sid.glade:1828 src/sid/xs_interface.c:807
-msgid "6581 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1854 src/sid/xs_interface.c:808
-msgid "8580 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1880 src/sid/xs_interface.c:809
-msgid "6581R1 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1906 src/sid/xs_interface.c:810
-msgid "6581R4 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1975 src/sid/xs_interface.c:827
-msgid "Load"
-msgstr "NaÄíst"
-
-#: src/sid/xmms-sid.glade:2017 src/sid/xs_interface.c:843
-msgid "Import"
-msgstr "Importovat"
-
-#: src/sid/xmms-sid.glade:2038 src/sid/xs_interface.c:851
+#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:796
 #, fuzzy
 msgid "Export"
 msgstr "Importovat"
 
-#: src/sid/xmms-sid.glade:2083 src/sid/xs_interface.c:865
+#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:804
+msgid "Use"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:820
+msgid "Import"
+msgstr "Importovat"
+
+#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:828
+msgid "Delete"
+msgstr "Smazat"
+
+#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:842
 #, fuzzy
 msgid "Filter curve:"
 msgstr "Filtr: "
 
-#: src/sid/xmms-sid.glade:2119 src/sid/xs_interface.c:870
+#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:847
 #, fuzzy
 msgid "SIDPlay2"
 msgstr "Hrát"
 
-#: src/sid/xmms-sid.glade:2155 src/sid/xs_interface.c:876
+#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:853
 #, fuzzy
 msgid "Filters"
 msgstr "Filtr: "
 
-#: src/sid/xmms-sid.glade:2199 src/sid/xs_interface.c:903
+#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:880
 msgid ""
 "If enabled, the tune is played at least for the specified time, adding "
 "silence to the end if necessary."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2201 src/sid/xs_interface.c:899
+#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:876
 #, fuzzy
 msgid "Play at least for specified time"
 msgstr "Hrát normální rychlostí"
 
-#: src/sid/xmms-sid.glade:2226 src/sid/xmms-sid.glade:2397
-#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:910
-#: src/sid/xs_interface.c:964 src/sid/xs_interface.c:1276
+#: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133
+#: src/sid/xmms-sid.glade:2482 src/sid/xs_interface.c:887
+#: src/sid/xs_interface.c:941 src/sid/xs_interface.c:1051
 #, fuzzy
 msgid "Playtime:"
 msgstr "Způsob přehrávání:"
 
-#: src/sid/xmms-sid.glade:2305 src/sid/xs_interface.c:930
+#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:907
 msgid "Minimum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2350 src/sid/xs_interface.c:951
+#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:928
 msgid ""
 "If enabled, tune is played until specified duration is reached (aka maximum "
 "playtime)."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2352 src/sid/xs_interface.c:947
+#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:924
 msgid "Play for specified time maximum"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2371 src/sid/xs_interface.c:957
+#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:934
 msgid ""
 "If enabled, the maximum playtime is applied only if song/tune length is not "
 "known."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2373 src/sid/xs_interface.c:953
+#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:930
 msgid "Only when song length is unknown"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2476 src/sid/xs_interface.c:984
+#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:961
 msgid "Maximum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2521 src/sid/xs_interface.c:1005
+#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:982
 msgid ""
 "This option enables using of XSIDPLAY compatible song length database. "
 "(Refer to Audacious-SID documentation for more information)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2523 src/sid/xs_interface.c:1001
+#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:978
 msgid "Use XSIDPLAY-compatible database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2548 src/sid/xs_interface.c:1012
+#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:989
 #, fuzzy
 msgid "DB-file:"
 msgstr "Soubor zařízení:"
 
-#: src/sid/xmms-sid.glade:2573 src/sid/xs_interface.c:1022
+#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:999
 msgid "Database path and filename"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2593 src/sid/xs_interface.c:1028
+#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1006
 msgid "Browse for song length-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2620 src/sid/xs_interface.c:1030
+#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1008
 msgid "Song length database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1035
+#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1013
 #, fuzzy
 msgid "Songlength"
 msgstr "Implicitní délka skladby:"
 
-#: src/sid/xmms-sid.glade:2700 src/sid/xs_interface.c:1062
+#: src/sid/xmms-sid.glade:2437 src/sid/xs_interface.c:1036
+#, fuzzy
+msgid "Add sub-tunes to playlist"
+msgstr "Do seznamu skladeb přidá soubory."
+
+#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1041
+msgid "Only tunes with specified minimum length "
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2560 src/sid/xs_interface.c:1071
+#, fuzzy
+msgid "Sub-tune handling:"
+msgstr "Ovládání hlasitosti:"
+
+#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1092
 msgid ""
 "If this option is enabled (and the database & HVSC settings below are "
 "correctly set), Audacious-SID will use and display additional information "
 "from STIL database when HVSC SIDs are played."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:1058
+#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1088
 msgid "Use STIL database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2727 src/sid/xs_interface.c:1069
+#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:1099
 #, fuzzy
 msgid "STIL file:"
 msgstr "Do soubu"
 
-#: src/sid/xmms-sid.glade:2764 src/sid/xs_interface.c:1085
+#: src/sid/xmms-sid.glade:2669 src/sid/xs_interface.c:1115
 msgid ""
 "Path and filename of STIL database file (STIL.txt), usually found from "
 "HVSC's DOCUMENTS-subdirectory."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2799 src/sid/xs_interface.c:1097
+#: src/sid/xmms-sid.glade:2704 src/sid/xs_interface.c:1128
 msgid "Browse for STIL-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2833 src/sid/xs_interface.c:1104
+#: src/sid/xmms-sid.glade:2738 src/sid/xs_interface.c:1135
 msgid "HVSC path:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2870 src/sid/xs_interface.c:1120
+#: src/sid/xmms-sid.glade:2775 src/sid/xs_interface.c:1151
 msgid ""
 "Path to base-directory of your High Voltage SID Collection (HVSC), for "
 "example /media/C64Music/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2905 src/sid/xs_interface.c:1132
+#: src/sid/xmms-sid.glade:2810 src/sid/xs_interface.c:1164
 msgid "Browse for HVSC path"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2935 src/sid/xs_interface.c:1134
+#: src/sid/xmms-sid.glade:2840 src/sid/xs_interface.c:1166
 msgid "SID Tune Information List (STIL) database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2980 src/sid/xs_interface.c:1155
-msgid ""
-"XMMS v1.2.5 and later support generic titlestring formatting (see XMMS "
-"preferences). This option can be enabled to override those generic titles "
-"with Audacious-SID specific ones. Formatting mnemonics are explained briefly "
-"below."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2982 src/sid/xs_interface.c:1151
-#, fuzzy
-msgid "Override generic XMMS titles"
-msgstr "Přepsat původní názvy"
-
-#: src/sid/xmms-sid.glade:3032 src/sid/xs_interface.c:1172
-msgid ""
-"%% - '%' character\n"
-"%p - Performer/composer\n"
-"%t - Song name (title)\n"
-"%c - Copyright\n"
-"%s - File type\n"
-"%m - SID model"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3062 src/sid/xs_interface.c:1178
-msgid ""
-"%C - Speed/clock (PAL/NTSC)\n"
-"%n - Subtune\n"
-"%N - Number of subtunes\n"
-"%f - Filename\n"
-"%F - File path\n"
-"%e - File extension"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3108 src/sid/xs_interface.c:1184
-#, fuzzy
-msgid "Song name/title format:"
-msgstr "Formát názvu:"
-
-#: src/sid/xmms-sid.glade:3188 src/sid/xs_interface.c:1216
-#, fuzzy
-msgid "No sub-tune control."
-msgstr "Ovládání hlasitosti:"
-
-#: src/sid/xmms-sid.glade:3190 src/sid/xs_interface.c:1212
-#, fuzzy
-msgid "Disabled"
-msgstr "Povolený"
-
-#: src/sid/xmms-sid.glade:3208 src/sid/xs_interface.c:1224
-msgid ""
-"Seeking backwards/forwards selects previous/next sub-tune, similar to "
-"selector used in XMMS-SidPlay."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3210 src/sid/xs_interface.c:1220
-msgid "Seek back/forward changes sub-tune"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3229 src/sid/xs_interface.c:1232
-msgid ""
-"By pressing the seekbar a sub-tune control window pops up, in style of UADE "
-"(Unix Amiga Delitracker Emulator)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3231 src/sid/xs_interface.c:1228
-msgid "Pop-up via seekbar (UADE-style)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3250 src/sid/xs_interface.c:1240
-msgid ""
-"Seekbar works as a sub-tune selector (Best option if you have patched your "
-"XMMS with the song-position patch.)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3252 src/sid/xs_interface.c:1236
-msgid "Song-position patch"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3273 src/sid/xs_interface.c:1244
-#, fuzzy
-msgid "Sub-tune control:"
-msgstr "Ovládání hlasitosti:"
-
-#: src/sid/xmms-sid.glade:3319 src/sid/xs_interface.c:1261
-msgid "Go through all sub-tunes in file"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3339 src/sid/xs_interface.c:1266
-msgid "Only tunes with specified minimum length "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3442 src/sid/xs_interface.c:1296
-msgid "Automatic sub-tune changes:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3487 src/sid/xs_interface.c:1317
-msgid ""
-"Determine if file is a SID-tune by checking the file contents. If NOT "
-"selected, filetype is determined by checking filename extension (.sid, ."
-"dat, ...)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3489 src/sid/xs_interface.c:1313
-msgid "Detect file by contents (slower)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3509 src/sid/xs_interface.c:1319
-#, fuzzy
-msgid "Miscellaneous options:"
-msgstr "<b>Různé</b>"
-
-#: src/sid/xmms-sid.glade:3582 src/sid/xs_interface.c:1343
+#: src/sid/xmms-sid.glade:2913 src/sid/xs_interface.c:1190
 msgid "Accept and update changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1350
+#: src/sid/xmms-sid.glade:2927 src/sid/xs_interface.c:1197
 msgid "Cancel any changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3620 src/sid/xs_interface.c:1651
+#: src/sid/xmms-sid.glade:2952 src/sid/xs_interface.c:1474
 #, fuzzy
 msgid "Audacious-SID Fileinfo"
 msgstr "Modul Audacious"
 
-#: src/sid/xmms-sid.glade:3674 src/sid/xs_interface.c:1677
-msgid " < "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3710 src/sid/xs_interface.c:1689
-msgid " > "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3783 src/sid/xs_interface.c:1716
+#: src/sid/xmms-sid.glade:3022 src/sid/xs_interface.c:1503
 #, fuzzy
 msgid "Songname:"
 msgstr "Snížit vzorkovací kmitoÄet:"
 
-#: src/sid/xmms-sid.glade:3811 src/sid/xs_interface.c:1724
+#: src/sid/xmms-sid.glade:3050 src/sid/xs_interface.c:1511
 msgid "Composer:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3839 src/sid/xs_interface.c:1732
+#: src/sid/xmms-sid.glade:3078 src/sid/xs_interface.c:1519
 #: src/vorbis/fileinfo.c:723
 msgid "Copyright:"
 msgstr "Autorská práva:"
 
-#: src/sid/xmms-sid.glade:3953 src/sid/xs_interface.c:1772
+#: src/sid/xmms-sid.glade:3192 src/sid/xs_interface.c:1563
 #, fuzzy
 msgid "Song Information:"
 msgstr "Podrobnosti"
 
-#: src/sid/xmms-sid.glade:4008 src/sid/xs_interface.c:1797
-msgid " "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4035 src/sid/xs_interface.c:1812
+#: src/sid/xmms-sid.glade:3266 src/sid/xs_interface.c:1598
 #, fuzzy
 msgid "Author:"
 msgstr "Autor:"
 
-#: src/sid/xmms-sid.glade:4133 src/sid/xs_interface.c:1844
+#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:1632
 #, fuzzy
 msgid "Duration:"
 msgstr "Výzdoba"
 
-#: src/sid/xmms-sid.glade:4227 src/sid/xs_interface.c:1877
+#: src/sid/xmms-sid.glade:3458 src/sid/xs_interface.c:1666
 #, fuzzy
 msgid "Sub-tune Information:"
 msgstr "Podrobnosti"
 
-#: src/sid/xmms-sid.glade:4281 src/sid/xs_interface.c:1951
+#: src/sid/xmms-sid.glade:3512 src/sid/xs_interface.c:1727
 msgid "Select HVSC song length database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4322 src/sid/xs_interface.c:1989
-msgid "Select STIL-database "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4363 src/sid/xs_interface.c:2027
+#: src/sid/xmms-sid.glade:3554 src/sid/xs_interface.c:1768
+msgid "Select STIL-database"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1809
 msgid "Select HVSC location prefix"
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:315
+#: src/sid/xmms-sid.glade:3638 src/sid/xs_interface.c:1850
+msgid "Select SIDPlay2 filters file for importing"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3680 src/sid/xs_interface.c:1891
+msgid "Select SIDPlay2 filters file for exporting"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3721 src/sid/xmms-sid.glade:3803
+#: src/sid/xs_interface.c:1939 src/sid/xs_interface.c:1952
+#, fuzzy
+msgid "Confirm selected action"
+msgstr "<b>Rozpoznávání formátu</b>"
+
+#: src/sid/xmms-sid.glade:3759 src/sid/xs_interface.c:1969
+#, fuzzy
+msgid "Yes"
+msgstr "ano"
+
+#: src/sid/xmms-sid.glade:3771 src/sid/xs_interface.c:1975
+msgid "No"
+msgstr "Ne"
+
+#: src/sid/xs_fileinfo.c:238
 #, fuzzy
 msgid "General info"
 msgstr "Obecné"
 
-#: src/sid/xs_fileinfo.c:325
+#: src/sid/xs_fileinfo.c:248
 #, c-format
 msgid "Tune #%i: "
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:336
+#: src/sid/xs_fileinfo.c:259
 #, c-format
 msgid "Tune #%i"
 msgstr ""
@@ -4592,32 +4478,32 @@
 msgid "Could not open SongLengthDB '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:225
+#: src/sid/xs_length.c:224
 #, c-format
 msgid "Invalid MD5-hash in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:232
+#: src/sid/xs_length.c:231
 #, c-format
 msgid "Invalid entry in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:237
+#: src/sid/xs_length.c:236
 #, c-format
 msgid "Invalid line in SongLengthDB file '%s' line #%d\n"
 msgstr ""
 
-#: src/sid/xs_length.c:399
+#: src/sid/xs_length.c:398
 #, c-format
 msgid "Not a PSID or RSID file '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:418
+#: src/sid/xs_length.c:417
 #, c-format
 msgid "Error reading SID file header from '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:437
+#: src/sid/xs_length.c:436
 #, c-format
 msgid "Error allocating temp data buffer for file '%s'\n"
 msgstr ""
@@ -4654,72 +4540,77 @@
 msgid "[SIDPlay2] Could not initialize emulation engine.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:224
+#: src/sid/xs_sidplay2.cc:208
+#, c-format
+msgid "[SIDPlay2] Invalid number of filter curve points (%d > %d)\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:229
 msgid "reSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:230
+#: src/sid/xs_sidplay2.cc:235
 #, c-format
 msgid "reSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:238
+#: src/sid/xs_sidplay2.cc:243
 #, c-format
 msgid "reSID->sampling(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:248
+#: src/sid/xs_sidplay2.cc:253
 msgid "reSID->filter(NULL) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:262
+#: src/sid/xs_sidplay2.cc:267
 msgid "hardSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:268
+#: src/sid/xs_sidplay2.cc:273
 #, c-format
 msgid "hardSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:276
+#: src/sid/xs_sidplay2.cc:281
 msgid "[SIDPlay2] Could not initialize SIDBuilder object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:290
+#: src/sid/xs_sidplay2.cc:295
 #, c-format
 msgid "[SIDPlay2] Invalid clockSpeed=%d, falling back to PAL.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:314
+#: src/sid/xs_sidplay2.cc:319
 #, c-format
 msgid "Invalid sid2OptLevel=%d, falling back to %d.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:338
+#: src/sid/xs_sidplay2.cc:343
 msgid "[SIDPlay2] Emulator engine configuration failed!\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:345
+#: src/sid/xs_sidplay2.cc:350
 msgid "[SIDPlay2] Could not initialize SIDTune object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:396
-msgid "[SIDPlay2] currTune->selectSong() failed\n"
-msgstr ""
-
 #: src/sid/xs_sidplay2.cc:401
+msgid "[SIDPlay2] currTune->selectSong() failed\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:406
 msgid "[SIDPlay2] currEng->load() failed\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:44
+#: src/sid/xs_stil.c:46
 msgid "SubTune pointer structure realloc failed.\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:61
+#: src/sid/xs_stil.c:69
 msgid "SubTune structure malloc failed!\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:168
+#: src/sid/xs_stil.c:176
 #, c-format
 msgid "Could not open STILDB '%s'\n"
 msgstr ""
@@ -6011,6 +5902,37 @@
 msgstr "O %s"
 
 #, fuzzy
+#~ msgid "Subtune Control"
+#~ msgstr "Ovládání hlasitosti:"
+
+#, fuzzy
+#~ msgid "Could not allocate sidFilename ('%s')\n"
+#~ msgstr "Nepodařilo se vytvořit adresář (%s): %s\n"
+
+#~ msgid "Load"
+#~ msgstr "NaÄíst"
+
+#, fuzzy
+#~ msgid "Override generic XMMS titles"
+#~ msgstr "Přepsat původní názvy"
+
+#, fuzzy
+#~ msgid "Song name/title format:"
+#~ msgstr "Formát názvu:"
+
+#, fuzzy
+#~ msgid "No sub-tune control."
+#~ msgstr "Ovládání hlasitosti:"
+
+#, fuzzy
+#~ msgid "Disabled"
+#~ msgstr "Povolený"
+
+#, fuzzy
+#~ msgid "Miscellaneous options:"
+#~ msgstr "<b>Různé</b>"
+
+#, fuzzy
 #~ msgid "22050"
 #~ msgstr "22000 Hz"
 
@@ -6971,9 +6893,6 @@
 #~ msgid "Vertical Lines"
 #~ msgstr "Svislé Äáry"
 
-#~ msgid "Lines"
-#~ msgstr "Čáry"
-
 #~ msgid "Line Scope"
 #~ msgstr "Čárová vlnovka"
 
@@ -7100,9 +7019,6 @@
 #~ msgid "Add Files..."
 #~ msgstr "Přidat soubory…"
 
-#~ msgid "Adds files to the playlist."
-#~ msgstr "Do seznamu skladeb přidá soubory."
-
 #~ msgid "Search and Select"
 #~ msgstr "Hledání a výběr"
 
@@ -7267,9 +7183,6 @@
 #~ msgid "Enables/disables the entry in the playlist's queue."
 #~ msgstr "Povolí/zakáže položku ve frontě seznamu skladeb."
 
-#~ msgid "Delete"
-#~ msgstr "Smazat"
-
 #~ msgid "Load preset"
 #~ msgstr "NaÄíst pÅ™edvolbu"
 
@@ -8200,9 +8113,6 @@
 #~ msgid "CCIT J.17"
 #~ msgstr "CCIT J.17"
 
-#~ msgid "No"
-#~ msgstr "Ne"
-
 #~ msgid "MPEG Level:"
 #~ msgstr "MPEG:"
 
--- a/po/cy.po	Thu Sep 13 12:09:38 2007 -0500
+++ b/po/cy.po	Thu Sep 13 12:10:39 2007 -0500
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: audacious-plugins 1.3\n"
 "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n"
-"POT-Creation-Date: 2007-08-30 18:23+0200\n"
+"POT-Creation-Date: 2007-09-05 00:28+0200\n"
 "PO-Revision-Date: 2007-02-12 03:37-0600\n"
 "Last-Translator: William Pitcock <nenolod@sacredspiral.co.uk>\n"
 "Language-Team: Welsh <i18n+cy@sacredspiral.co.uk>\n"
@@ -38,7 +38,7 @@
 #: src/audiocompress/audacious-glue.c:556 src/cdaudio-ng/configure.c:144
 #: src/console/Audacious_Driver.cxx:500 src/echo_plugin/gui.c:27
 #: src/echo_plugin/gui.c:138 src/esd/about.c:49
-#: src/filewriter/filewriter.c:182 src/jack/configure.c:140
+#: src/filewriter/filewriter.c:184 src/jack/configure.c:140
 #: src/jack/jack.c:602 src/madplug/fileinfo.c:158 src/madplug/fileinfo.c:236
 #: src/madplug/plugin.c:597 src/madplug/plugin.c:620
 #: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:45
@@ -91,8 +91,8 @@
 #: src/audiocompress/audacious-glue.c:561 src/cdaudio-ng/configure.c:148
 #: src/echo_plugin/gui.c:146 src/jack/configure.c:147
 #: src/modplug/gui/interface.cxx:741 src/musepack/libmpc.cxx:236
-#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:3599
-#: src/sid/xs_interface.c:1345 src/stereo_plugin/stereo.c:128
+#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:2930
+#: src/sid/xs_interface.c:1192 src/stereo_plugin/stereo.c:128
 #: src/sun/configure.c:567 src/timidity/src/interface.c:232
 #: src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561
 msgid "Cancel"
@@ -130,14 +130,14 @@
 msgstr "Sianeli:"
 
 #: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:899
-#: src/sid/xmms-sid.glade:156 src/sid/xs_interface.c:302
+#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:280
 #: src/timidity/src/interface.c:167
 msgid "Mono"
 msgstr "Mono"
 
 #: src/adplug/adplug-xmms.cc:333 src/filewriter/mp3.c:894
-#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:175
-#: src/sid/xs_interface.c:309 src/timidity/src/interface.c:175
+#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:176
+#: src/sid/xs_interface.c:287 src/timidity/src/interface.c:175
 msgid "Stereo"
 msgstr "Stereo"
 
@@ -250,30 +250,30 @@
 msgid "Subsong selection"
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:688
+#: src/adplug/adplug-xmms.cc:730
 msgid "Order: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:689
+#: src/adplug/adplug-xmms.cc:731
 msgid "Pattern: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:691
+#: src/adplug/adplug-xmms.cc:733
 msgid "Row: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:692
+#: src/adplug/adplug-xmms.cc:734
 #, fuzzy
 msgid "Speed: "
 msgstr "Llais"
 
-#: src/adplug/adplug-xmms.cc:693
+#: src/adplug/adplug-xmms.cc:735
 #, fuzzy
 msgid "Timer: "
 msgstr "Teitl:"
 
-#: src/adplug/adplug-xmms.cc:694 src/console/Audacious_Config.cxx:226
-#: src/sid/xmms-sid.glade:513 src/sid/xs_interface.c:361
+#: src/adplug/adplug-xmms.cc:736 src/console/Audacious_Config.cxx:226
+#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:333
 msgid "Hz"
 msgstr "Hz"
 
@@ -309,8 +309,8 @@
 msgstr ""
 
 #: src/alarm/interface.c:73 src/lirc/about.c:116
-#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:4262
-#: src/sid/xs_interface.c:1882
+#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:3493
+#: src/sid/xs_interface.c:1671
 msgid "Close"
 msgstr "Cau"
 
@@ -324,10 +324,10 @@
 
 #: src/alarm/interface.c:126 src/alarm/interface.c:1391 src/alsa/about.c:46
 #: src/alsa/configure.c:405 src/cdaudio-ng/cdaudio-ng.c:206
-#: src/filewriter/filewriter.c:199 src/flacng/plugin.c:743
+#: src/filewriter/filewriter.c:201 src/flacng/plugin.c:743
 #: src/modplug/gui/interface.cxx:725 src/pulse_audio/pulse_audio.c:694
-#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:3585
-#: src/sid/xs_interface.c:1338
+#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:2916
+#: src/sid/xs_interface.c:1185
 msgid "OK"
 msgstr "Iawn"
 
@@ -380,6 +380,10 @@
 msgid "h"
 msgstr ""
 
+#: src/alarm/interface.c:538
+msgid "minutes"
+msgstr ""
+
 #: src/alarm/interface.c:556
 #, fuzzy
 msgid "Quiet after:"
@@ -443,10 +447,10 @@
 msgid "Fading"
 msgstr "cynnydd"
 
-#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2271
-#: src/sid/xmms-sid.glade:2442 src/sid/xmms-sid.glade:3408
-#: src/sid/xs_interface.c:923 src/sid/xs_interface.c:977
-#: src/sid/xs_interface.c:1289
+#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2007
+#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2526
+#: src/sid/xs_interface.c:900 src/sid/xs_interface.c:954
+#: src/sid/xs_interface.c:1064
 #, fuzzy
 msgid "seconds"
 msgstr "eiliad"
@@ -1241,8 +1245,8 @@
 "backend</span>"
 msgstr ""
 
-#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:4084
-#: src/sid/xs_interface.c:1828 src/vorbis/fileinfo.c:562
+#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3315
+#: src/sid/xs_interface.c:1615 src/vorbis/fileinfo.c:562
 msgid "Name:"
 msgstr "Enw:"
 
@@ -1487,10 +1491,10 @@
 msgid "Skin file:"
 msgstr ""
 
-#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2595
-#: src/sid/xmms-sid.glade:2801 src/sid/xmms-sid.glade:2907
-#: src/sid/xs_interface.c:1024 src/sid/xs_interface.c:1093
-#: src/sid/xs_interface.c:1128
+#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2331
+#: src/sid/xmms-sid.glade:2706 src/sid/xmms-sid.glade:2812
+#: src/sid/xs_interface.c:1002 src/sid/xs_interface.c:1124
+#: src/sid/xs_interface.c:1160
 msgid "Browse"
 msgstr ""
 
@@ -1574,7 +1578,7 @@
 msgstr "Trailer"
 
 #: src/aosd/aosd_ui.c:1073 src/cdaudio-ng/configure.c:87
-#: src/sid/xmms-sid.glade:3545 src/sid/xs_interface.c:1324
+#: src/sid/xmms-sid.glade:2876 src/sid/xs_interface.c:1171
 #, fuzzy
 msgid "Misc"
 msgstr "Disgo"
@@ -1869,7 +1873,7 @@
 msgstr "Hyd cân rhagosodedig:"
 
 #: src/console/Audacious_Config.cxx:201 src/modplug/gui/interface.cxx:264
-#: src/sid/xmms-sid.glade:1424 src/sid/xs_interface.c:673
+#: src/sid/xmms-sid.glade:1243 src/sid/xs_interface.c:645
 msgid "Resampling"
 msgstr "Samplo"
 
@@ -2203,7 +2207,7 @@
 "Ensure that the device has been correctly plugged in."
 msgstr ""
 
-#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:196
+#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:198
 #: src/madplug/plugin.c:620
 msgid "Error"
 msgstr "Gwall"
@@ -2332,12 +2336,12 @@
 "written by Giacomo Lozito\n"
 msgstr ""
 
-#: src/filewriter/filewriter.c:167
+#: src/filewriter/filewriter.c:169
 #, fuzzy
 msgid "About FileWriter-Plugin"
 msgstr "Ynghylch Ategyn Echo"
 
-#: src/filewriter/filewriter.c:168
+#: src/filewriter/filewriter.c:170
 #, fuzzy
 msgid ""
 "FileWriter-Plugin\n"
@@ -2374,7 +2378,7 @@
 " MA 02111-1307,\n"
 "USA."
 
-#: src/filewriter/filewriter.c:197
+#: src/filewriter/filewriter.c:199
 #, fuzzy
 msgid ""
 "You cannot use the FileWriter plugin\n"
@@ -2384,60 +2388,60 @@
 "\n"
 "pan fyddwch yn rhedeg ym modd realtime."
 
-#: src/filewriter/filewriter.c:512
+#: src/filewriter/filewriter.c:514
 #, fuzzy
 msgid "File Writer Configuration"
 msgstr "Ffurfweddiad Disk Writer"
 
-#: src/filewriter/filewriter.c:524
+#: src/filewriter/filewriter.c:526
 #, fuzzy
 msgid "Output file format:"
 msgstr "Ffeil cyfeiriadur allbwn:"
 
-#: src/filewriter/filewriter.c:542 src/ladspa/ladspa.c:962
+#: src/filewriter/filewriter.c:544 src/ladspa/ladspa.c:962
 #, fuzzy
 msgid "Configure"
 msgstr "Ffurfweddu Echo"
 
-#: src/filewriter/filewriter.c:557
+#: src/filewriter/filewriter.c:559
 msgid "Save into original directory"
 msgstr ""
 
-#: src/filewriter/filewriter.c:562
+#: src/filewriter/filewriter.c:564
 msgid "Save into custom directory"
 msgstr ""
 
-#: src/filewriter/filewriter.c:574
+#: src/filewriter/filewriter.c:576
 msgid "Output file folder:"
 msgstr "Ffeil cyfeiriadur allbwn:"
 
-#: src/filewriter/filewriter.c:578
+#: src/filewriter/filewriter.c:580
 msgid "Pick a folder"
 msgstr "Dewis cyfeiriadur"
 
-#: src/filewriter/filewriter.c:598
+#: src/filewriter/filewriter.c:600
 msgid "Get filename from:"
 msgstr ""
 
-#: src/filewriter/filewriter.c:601
+#: src/filewriter/filewriter.c:603
 msgid "original file tags"
 msgstr ""
 
-#: src/filewriter/filewriter.c:607
+#: src/filewriter/filewriter.c:609
 msgid "original filename"
 msgstr ""
 
-#: src/filewriter/filewriter.c:617
+#: src/filewriter/filewriter.c:619
 msgid "Don't strip file name extension"
 msgstr "Cadw enw ffeil estyniad"
 
-#: src/filewriter/filewriter.c:621
+#: src/filewriter/filewriter.c:623
 msgid ""
 "If enabled, the extension from the original filename will not be stripped "
 "before adding the new file extension to the end."
 msgstr ""
 
-#: src/filewriter/filewriter.c:635
+#: src/filewriter/filewriter.c:637
 msgid "Prepend track number to filename"
 msgstr ""
 
@@ -2879,8 +2883,7 @@
 msgid "ID3 format:"
 msgstr "Fformat ID3:"
 
-#: src/madplug/configure.c:261 src/sid/xmms-sid.glade:3144
-#: src/sid/xs_interface.c:1189 src/vorbis/configure.c:160
+#: src/madplug/configure.c:261 src/vorbis/configure.c:160
 msgid "Title"
 msgstr "Teitl"
 
@@ -3335,8 +3338,8 @@
 msgid "Use Album Gain"
 msgstr "defnyddio Cynnydd/Brig Albwm"
 
-#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:3755
-#: src/sid/xs_interface.c:1708 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
+#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:2994
+#: src/sid/xs_interface.c:1495 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
 #, fuzzy
 msgid "Filename:"
 msgstr "Enw Defnyddiwr:"
@@ -3350,8 +3353,8 @@
 msgid "Track:"
 msgstr "Cynnydd trac:"
 
-#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1996
-#: src/sid/xs_interface.c:835 src/wavpack/ui.cxx:265
+#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1732
+#: src/sid/xs_interface.c:812 src/wavpack/ui.cxx:265
 #, fuzzy
 msgid "Save"
 msgstr "Rave"
@@ -3660,162 +3663,142 @@
 msgid "Scrobbler Error"
 msgstr "Ategyn Scrobbler"
 
-#: src/sid/xmms-sid.c:207
+#: src/sid/xmms-sid.c:203
 msgid "Error initializing song-length database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:213
+#: src/sid/xmms-sid.c:209
 msgid "Error initializing STIL database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:327
+#: src/sid/xmms-sid.c:414
 msgid "Couldn't allocate memory for audio data buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:334
+#: src/sid/xmms-sid.c:421
 msgid "Couldn't allocate memory for audio oversampling buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:409
+#: src/sid/xmms-sid.c:436
 #, c-format
 msgid "Couldn't initialize SID-tune '%s' (sub-tune #%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:420
+#: src/sid/xmms-sid.c:446
 #, c-format
 msgid "Couldn't open XMMS audio output (fmt=%x, freq=%i, nchan=%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:466
+#: src/sid/xmms-sid.c:491
 msgid "Oversampling rate-conversion pass failed.\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:770
-#, fuzzy
-msgid "Subtune Control"
-msgstr "Rheolwr sain"
-
-#: src/sid/xmms-sid.c:1001
-#, c-format
-msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1008
-#, c-format
-msgid "Could not allocate sidFilename ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1017
-#, c-format
-msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:235
-#, fuzzy
-msgid "Audacious-SID Configuration"
+#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:213
+#, fuzzy
+msgid "Audacious-SID configuration"
 msgstr "Audacious OSD - ffurfweddiad"
 
-#: src/sid/xmms-sid.glade:70 src/sid/xs_interface.c:271
+#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:249
 #, fuzzy
 msgid "8-bit"
 msgstr "8 did"
 
-#: src/sid/xmms-sid.glade:89 src/sid/xs_interface.c:278
+#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:256
 #, fuzzy
 msgid "16-bit"
 msgstr "16 did"
 
-#: src/sid/xmms-sid.glade:110 src/sid/xs_interface.c:285
+#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:263
 #, fuzzy
 msgid "Resolution:"
 msgstr "Cydraniad:"
 
-#: src/sid/xmms-sid.glade:195 src/sid/xs_interface.c:316
+#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:294
 msgid "Autopanning"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:216 src/sid/xs_interface.c:323
+#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:301
 #: src/vorbis/fileinfo.c:867 src/vorbis/fileinfo.c:924
 msgid "Channels:"
 msgstr "Sianeli:"
 
-#: src/sid/xmms-sid.glade:565 src/sid/xs_interface.c:373
+#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:345
 #, fuzzy
 msgid "Samplerate:"
 msgstr "Graddfa samplo:"
 
-#: src/sid/xmms-sid.glade:611 src/sid/xs_interface.c:390
+#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:362
 #, fuzzy
 msgid "Use oversampling"
 msgstr "Samplo"
 
-#: src/sid/xmms-sid.glade:637 src/sid/xs_interface.c:401
+#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:373
 msgid "Factor:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:681 src/sid/xs_interface.c:413
+#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:385
 msgid "Large factors require more CPU-power"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:715 src/sid/xs_interface.c:419
+#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:391
 #, fuzzy
 msgid "Oversampling:"
 msgstr "Samplo"
 
-#: src/sid/xmms-sid.glade:751 src/sid/xs_interface.c:424
+#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:396
 msgid "Audio"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:801 src/sid/xs_interface.c:456
+#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:428
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "clock speed/frequency. Otherwise the speed is determined from played file "
 "itself."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:803 src/sid/xs_interface.c:452
+#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:424
 msgid "Force speed"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:821 src/sid/xs_interface.c:462
+#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:434
 msgid ""
 "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. "
 "Most of SID-tunes have been made for PAL computers."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:823 src/sid/xs_interface.c:458
+#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:430
 msgid "PAL (50 Hz)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:841 src/sid/xs_interface.c:470
+#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:442
 msgid ""
 "NTSC is the TV standard with 60Hz vertical refresh rate (and other features "
 "that differ from PAL). It is mainly used in United States, Japan and certain "
 "other countries."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:843 src/sid/xs_interface.c:466
+#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:438
 msgid "NTSC (60 Hz)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:864 src/sid/xs_interface.c:474
+#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:446
 #, fuzzy
 msgid "Clock speed:"
 msgstr "Chwarae cyflymedd"
 
-#: src/sid/xmms-sid.glade:909 src/sid/xs_interface.c:495
+#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:467
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "SID-chip model. Otherwise the preferred SID model is determined from the "
 "file (if PSIDv2NG type) or if not available, this setting is used."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:911 src/sid/xs_interface.c:491
+#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:463
 #, fuzzy
 msgid "Force model"
 msgstr "Enwau'r Traciau:"
 
-#: src/sid/xmms-sid.glade:929 src/sid/xs_interface.c:501
+#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:473
 msgid ""
 "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 "
 "in few ways, having much fuller filter (which, due to design error, is never "
@@ -3823,91 +3806,91 @@
 "which enables playing of digital samples."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:931 src/sid/xs_interface.c:497
+#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:469
 msgid "MOS 6581"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:950 src/sid/xs_interface.c:505
+#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:477
 msgid "MOS 8580"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:971 src/sid/xs_interface.c:512
+#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:484
 #, fuzzy
 msgid "SID model:"
 msgstr "Modd chwarae:"
 
-#: src/sid/xmms-sid.glade:1023 src/sid/xs_interface.c:533
+#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:505
 msgid ""
 "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most "
 "cases, though."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1025 src/sid/xs_interface.c:529
+#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:501
 msgid "SIDPlay 1 (frame-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1044 src/sid/xs_interface.c:541
+#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:513
 msgid ""
 "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact "
 "emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1046 src/sid/xs_interface.c:537
+#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:509
 msgid "SIDPlay 2 (cycle-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1068 src/sid/xs_interface.c:545
+#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:517
 msgid "Emulation library selection:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1114 src/sid/xs_interface.c:562
+#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:534
 msgid "Real C64 (SIDPlay 2 only)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:569
+#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:541
 msgid "Bank switching"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1153 src/sid/xs_interface.c:576
+#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:548
 msgid "Transparent ROM"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1173 src/sid/xs_interface.c:583
+#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:555
 msgid "PlaySID environment"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1194 src/sid/xs_interface.c:590
+#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:562
 #, fuzzy
 msgid "Memory mode:"
 msgstr "Modd chwarae:"
 
-#: src/sid/xmms-sid.glade:1230 src/sid/xs_interface.c:595
+#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:567
 msgid "Emu#1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1274 src/sid/xs_interface.c:622
+#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:594
 msgid ""
 "This setting can be used to enable libSIDPlay2's \"optimization mode\", "
 "which in downgrades the emulation from cycle-exact to something similar to "
 "frame-exact. The result is lower CPU usage, but worse accuracy."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1276 src/sid/xs_interface.c:618
+#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:590
 msgid "Optimization mode (faster, inaccurate)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1294 src/sid/xs_interface.c:628
+#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:600
 msgid ""
 "reSID is the software SID-chip simulator based on SID reverse-engineering, "
 "created by Dag Lem. It is probably the closest thing to real SID available "
 "as software-only emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1296 src/sid/xs_interface.c:624
+#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:596
 msgid "reSID-emulation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1314 src/sid/xs_interface.c:636
+#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:608
 msgid ""
 "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a "
 "real SID-chip. Software can be used to control the HardSID and combined with "
@@ -3916,49 +3899,49 @@
 "http://www.hardsid.com/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1316 src/sid/xs_interface.c:632
+#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:604
 msgid "HardSID"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1337 src/sid/xs_interface.c:640
+#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:612
 msgid "SIDPlay 2 options:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1382 src/sid/xs_interface.c:661
+#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:633
 msgid ""
 "Fastest and also worst sounding sampling method, simply picks nearest "
 "neighbouring sample."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1384 src/sid/xs_interface.c:657
+#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:629
 msgid "Fast (nearest neighbour)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1402 src/sid/xs_interface.c:669
+#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:641
 msgid ""
 "Uses linear interpolation between samples, yielding higher audio quality "
 "with less sampling noise."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1404 src/sid/xs_interface.c:665
+#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:637
 msgid "Linear interpolation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1444 src/sid/xs_interface.c:680
+#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:652
 #, fuzzy
 msgid "Resampling (FIR)"
 msgstr "Samplo"
 
-#: src/sid/xmms-sid.glade:1465 src/sid/xs_interface.c:687
+#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:659
 #, fuzzy
 msgid "reSID sampling options:"
 msgstr "Graddfa Samplo"
 
-#: src/sid/xmms-sid.glade:1501 src/sid/xs_interface.c:692
+#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:664
 msgid "Emu#2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1531 src/sid/xs_interface.c:708
+#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:680
 msgid ""
 "This option enables emulation of SID filter. The filter is an essential part "
 "of SID's sound capacity, but accurate emulation of it may require quite much "
@@ -3966,385 +3949,288 @@
 "authentic at all if they utilize the filter."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1533 src/sid/xs_interface.c:704
+#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:676
 msgid "Emulate filters"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1590 src/sid/xs_interface.c:733
+#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:705
 msgid "FS"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1641 src/sid/xs_interface.c:750
+#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:722
 msgid "FM"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1692 src/sid/xs_interface.c:767
+#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:739
 msgid "FT"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1730 src/sid/xs_interface.c:778
+#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:750
 msgid "Reset values"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1759 src/sid/xs_interface.c:783
+#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:755
 msgid "SIDPlay1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1828 src/sid/xs_interface.c:807
-msgid "6581 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1854 src/sid/xs_interface.c:808
-msgid "8580 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1880 src/sid/xs_interface.c:809
-msgid "6581R1 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1906 src/sid/xs_interface.c:810
-msgid "6581R4 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1975 src/sid/xs_interface.c:827
-msgid "Load"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2017 src/sid/xs_interface.c:843
+#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:796
+#, fuzzy
+msgid "Export"
+msgstr "Porth"
+
+#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:804
+msgid "Use"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:820
 #, fuzzy
 msgid "Import"
 msgstr "Porth"
 
-#: src/sid/xmms-sid.glade:2038 src/sid/xs_interface.c:851
-#, fuzzy
-msgid "Export"
-msgstr "Porth"
-
-#: src/sid/xmms-sid.glade:2083 src/sid/xs_interface.c:865
+#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:828
+#, fuzzy
+msgid "Delete"
+msgstr "Rhagosodedig"
+
+#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:842
 #, fuzzy
 msgid "Filter curve:"
 msgstr "Maint ffeil:"
 
-#: src/sid/xmms-sid.glade:2119 src/sid/xs_interface.c:870
+#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:847
 msgid "SIDPlay2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2155 src/sid/xs_interface.c:876
+#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:853
 msgid "Filters"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2199 src/sid/xs_interface.c:903
+#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:880
 msgid ""
 "If enabled, the tune is played at least for the specified time, adding "
 "silence to the end if necessary."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2201 src/sid/xs_interface.c:899
+#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:876
 msgid "Play at least for specified time"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2226 src/sid/xmms-sid.glade:2397
-#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:910
-#: src/sid/xs_interface.c:964 src/sid/xs_interface.c:1276
+#: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133
+#: src/sid/xmms-sid.glade:2482 src/sid/xs_interface.c:887
+#: src/sid/xs_interface.c:941 src/sid/xs_interface.c:1051
 #, fuzzy
 msgid "Playtime:"
 msgstr "Modd chwarae:"
 
-#: src/sid/xmms-sid.glade:2305 src/sid/xs_interface.c:930
+#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:907
 msgid "Minimum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2350 src/sid/xs_interface.c:951
+#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:928
 msgid ""
 "If enabled, tune is played until specified duration is reached (aka maximum "
 "playtime)."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2352 src/sid/xs_interface.c:947
+#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:924
 msgid "Play for specified time maximum"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2371 src/sid/xs_interface.c:957
+#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:934
 msgid ""
 "If enabled, the maximum playtime is applied only if song/tune length is not "
 "known."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2373 src/sid/xs_interface.c:953
+#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:930
 msgid "Only when song length is unknown"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2476 src/sid/xs_interface.c:984
+#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:961
 msgid "Maximum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2521 src/sid/xs_interface.c:1005
+#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:982
 msgid ""
 "This option enables using of XSIDPLAY compatible song length database. "
 "(Refer to Audacious-SID documentation for more information)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2523 src/sid/xs_interface.c:1001
+#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:978
 msgid "Use XSIDPLAY-compatible database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2548 src/sid/xs_interface.c:1012
+#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:989
 #, fuzzy
 msgid "DB-file:"
 msgstr "Dyfais:"
 
-#: src/sid/xmms-sid.glade:2573 src/sid/xs_interface.c:1022
+#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:999
 msgid "Database path and filename"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2593 src/sid/xs_interface.c:1028
+#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1006
 msgid "Browse for song length-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2620 src/sid/xs_interface.c:1030
+#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1008
 msgid "Song length database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1035
+#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1013
 #, fuzzy
 msgid "Songlength"
 msgstr "Hyd cân rhagosodedig:"
 
-#: src/sid/xmms-sid.glade:2700 src/sid/xs_interface.c:1062
+#: src/sid/xmms-sid.glade:2437 src/sid/xs_interface.c:1036
+msgid "Add sub-tunes to playlist"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1041
+msgid "Only tunes with specified minimum length "
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2560 src/sid/xs_interface.c:1071
+#, fuzzy
+msgid "Sub-tune handling:"
+msgstr "Rheolwr sain"
+
+#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1092
 msgid ""
 "If this option is enabled (and the database & HVSC settings below are "
 "correctly set), Audacious-SID will use and display additional information "
 "from STIL database when HVSC SIDs are played."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:1058
+#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1088
 msgid "Use STIL database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2727 src/sid/xs_interface.c:1069
+#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:1099
 #, fuzzy
 msgid "STIL file:"
 msgstr "Teitl:"
 
-#: src/sid/xmms-sid.glade:2764 src/sid/xs_interface.c:1085
+#: src/sid/xmms-sid.glade:2669 src/sid/xs_interface.c:1115
 msgid ""
 "Path and filename of STIL database file (STIL.txt), usually found from "
 "HVSC's DOCUMENTS-subdirectory."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2799 src/sid/xs_interface.c:1097
+#: src/sid/xmms-sid.glade:2704 src/sid/xs_interface.c:1128
 msgid "Browse for STIL-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2833 src/sid/xs_interface.c:1104
+#: src/sid/xmms-sid.glade:2738 src/sid/xs_interface.c:1135
 msgid "HVSC path:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2870 src/sid/xs_interface.c:1120
+#: src/sid/xmms-sid.glade:2775 src/sid/xs_interface.c:1151
 msgid ""
 "Path to base-directory of your High Voltage SID Collection (HVSC), for "
 "example /media/C64Music/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2905 src/sid/xs_interface.c:1132
+#: src/sid/xmms-sid.glade:2810 src/sid/xs_interface.c:1164
 msgid "Browse for HVSC path"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2935 src/sid/xs_interface.c:1134
+#: src/sid/xmms-sid.glade:2840 src/sid/xs_interface.c:1166
 msgid "SID Tune Information List (STIL) database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2980 src/sid/xs_interface.c:1155
-msgid ""
-"XMMS v1.2.5 and later support generic titlestring formatting (see XMMS "
-"preferences). This option can be enabled to override those generic titles "
-"with Audacious-SID specific ones. Formatting mnemonics are explained briefly "
-"below."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2982 src/sid/xs_interface.c:1151
-#, fuzzy
-msgid "Override generic XMMS titles"
-msgstr "Diystyru'r teitlau cyffredinol"
-
-#: src/sid/xmms-sid.glade:3032 src/sid/xs_interface.c:1172
-msgid ""
-"%% - '%' character\n"
-"%p - Performer/composer\n"
-"%t - Song name (title)\n"
-"%c - Copyright\n"
-"%s - File type\n"
-"%m - SID model"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3062 src/sid/xs_interface.c:1178
-msgid ""
-"%C - Speed/clock (PAL/NTSC)\n"
-"%n - Subtune\n"
-"%N - Number of subtunes\n"
-"%f - Filename\n"
-"%F - File path\n"
-"%e - File extension"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3108 src/sid/xs_interface.c:1184
-#, fuzzy
-msgid "Song name/title format:"
-msgstr "Fformat y teitl:"
-
-#: src/sid/xmms-sid.glade:3188 src/sid/xs_interface.c:1216
-#, fuzzy
-msgid "No sub-tune control."
-msgstr "Rheolwr sain"
-
-#: src/sid/xmms-sid.glade:3190 src/sid/xs_interface.c:1212
-msgid "Disabled"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3208 src/sid/xs_interface.c:1224
-msgid ""
-"Seeking backwards/forwards selects previous/next sub-tune, similar to "
-"selector used in XMMS-SidPlay."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3210 src/sid/xs_interface.c:1220
-msgid "Seek back/forward changes sub-tune"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3229 src/sid/xs_interface.c:1232
-msgid ""
-"By pressing the seekbar a sub-tune control window pops up, in style of UADE "
-"(Unix Amiga Delitracker Emulator)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3231 src/sid/xs_interface.c:1228
-msgid "Pop-up via seekbar (UADE-style)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3250 src/sid/xs_interface.c:1240
-msgid ""
-"Seekbar works as a sub-tune selector (Best option if you have patched your "
-"XMMS with the song-position patch.)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3252 src/sid/xs_interface.c:1236
-msgid "Song-position patch"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3273 src/sid/xs_interface.c:1244
-#, fuzzy
-msgid "Sub-tune control:"
-msgstr "Rheolwr sain"
-
-#: src/sid/xmms-sid.glade:3319 src/sid/xs_interface.c:1261
-msgid "Go through all sub-tunes in file"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3339 src/sid/xs_interface.c:1266
-msgid "Only tunes with specified minimum length "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3442 src/sid/xs_interface.c:1296
-msgid "Automatic sub-tune changes:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3487 src/sid/xs_interface.c:1317
-msgid ""
-"Determine if file is a SID-tune by checking the file contents. If NOT "
-"selected, filetype is determined by checking filename extension (.sid, ."
-"dat, ...)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3489 src/sid/xs_interface.c:1313
-msgid "Detect file by contents (slower)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3509 src/sid/xs_interface.c:1319
-msgid "Miscellaneous options:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3582 src/sid/xs_interface.c:1343
+#: src/sid/xmms-sid.glade:2913 src/sid/xs_interface.c:1190
 msgid "Accept and update changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1350
+#: src/sid/xmms-sid.glade:2927 src/sid/xs_interface.c:1197
 msgid "Cancel any changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3620 src/sid/xs_interface.c:1651
+#: src/sid/xmms-sid.glade:2952 src/sid/xs_interface.c:1474
 #, fuzzy
 msgid "Audacious-SID Fileinfo"
 msgstr ""
 "\n"
 "Audacious OSD"
 
-#: src/sid/xmms-sid.glade:3674 src/sid/xs_interface.c:1677
-msgid " < "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3710 src/sid/xs_interface.c:1689
-msgid " > "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3783 src/sid/xs_interface.c:1716
+#: src/sid/xmms-sid.glade:3022 src/sid/xs_interface.c:1503
 msgid "Songname:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3811 src/sid/xs_interface.c:1724
+#: src/sid/xmms-sid.glade:3050 src/sid/xs_interface.c:1511
 msgid "Composer:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3839 src/sid/xs_interface.c:1732
+#: src/sid/xmms-sid.glade:3078 src/sid/xs_interface.c:1519
 #: src/vorbis/fileinfo.c:723
 msgid "Copyright:"
 msgstr "Hawlfraint:"
 
-#: src/sid/xmms-sid.glade:3953 src/sid/xs_interface.c:1772
+#: src/sid/xmms-sid.glade:3192 src/sid/xs_interface.c:1563
 #, fuzzy
 msgid "Song Information:"
 msgstr "Fformat ID3:"
 
-#: src/sid/xmms-sid.glade:4008 src/sid/xs_interface.c:1797
-msgid " "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4035 src/sid/xs_interface.c:1812
+#: src/sid/xmms-sid.glade:3266 src/sid/xs_interface.c:1598
 msgid "Author:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4133 src/sid/xs_interface.c:1844
+#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:1632
 #, fuzzy
 msgid "Duration:"
 msgstr "Addurniad"
 
-#: src/sid/xmms-sid.glade:4227 src/sid/xs_interface.c:1877
+#: src/sid/xmms-sid.glade:3458 src/sid/xs_interface.c:1666
 #, fuzzy
 msgid "Sub-tune Information:"
 msgstr "Fformat ID3:"
 
-#: src/sid/xmms-sid.glade:4281 src/sid/xs_interface.c:1951
+#: src/sid/xmms-sid.glade:3512 src/sid/xs_interface.c:1727
 msgid "Select HVSC song length database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4322 src/sid/xs_interface.c:1989
-msgid "Select STIL-database "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4363 src/sid/xs_interface.c:2027
+#: src/sid/xmms-sid.glade:3554 src/sid/xs_interface.c:1768
+msgid "Select STIL-database"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1809
 msgid "Select HVSC location prefix"
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:315
+#: src/sid/xmms-sid.glade:3638 src/sid/xs_interface.c:1850
+msgid "Select SIDPlay2 filters file for importing"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3680 src/sid/xs_interface.c:1891
+msgid "Select SIDPlay2 filters file for exporting"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3721 src/sid/xmms-sid.glade:3803
+#: src/sid/xs_interface.c:1939 src/sid/xs_interface.c:1952
+msgid "Confirm selected action"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3759 src/sid/xs_interface.c:1969
+#, fuzzy
+msgid "Yes"
+msgstr "iawn"
+
+#: src/sid/xmms-sid.glade:3771 src/sid/xs_interface.c:1975
+msgid "No"
+msgstr "Na"
+
+#: src/sid/xs_fileinfo.c:238
 #, fuzzy
 msgid "General info"
 msgstr "Cyffredinol"
 
-#: src/sid/xs_fileinfo.c:325
+#: src/sid/xs_fileinfo.c:248
 #, c-format
 msgid "Tune #%i: "
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:336
+#: src/sid/xs_fileinfo.c:259
 #, c-format
 msgid "Tune #%i"
 msgstr ""
@@ -4367,32 +4253,32 @@
 msgid "Could not open SongLengthDB '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:225
+#: src/sid/xs_length.c:224
 #, c-format
 msgid "Invalid MD5-hash in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:232
+#: src/sid/xs_length.c:231
 #, c-format
 msgid "Invalid entry in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:237
+#: src/sid/xs_length.c:236
 #, c-format
 msgid "Invalid line in SongLengthDB file '%s' line #%d\n"
 msgstr ""
 
-#: src/sid/xs_length.c:399
+#: src/sid/xs_length.c:398
 #, c-format
 msgid "Not a PSID or RSID file '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:418
+#: src/sid/xs_length.c:417
 #, c-format
 msgid "Error reading SID file header from '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:437
+#: src/sid/xs_length.c:436
 #, c-format
 msgid "Error allocating temp data buffer for file '%s'\n"
 msgstr ""
@@ -4429,72 +4315,77 @@
 msgid "[SIDPlay2] Could not initialize emulation engine.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:224
+#: src/sid/xs_sidplay2.cc:208
+#, c-format
+msgid "[SIDPlay2] Invalid number of filter curve points (%d > %d)\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:229
 msgid "reSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:230
+#: src/sid/xs_sidplay2.cc:235
 #, c-format
 msgid "reSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:238
+#: src/sid/xs_sidplay2.cc:243
 #, c-format
 msgid "reSID->sampling(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:248
+#: src/sid/xs_sidplay2.cc:253
 msgid "reSID->filter(NULL) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:262
+#: src/sid/xs_sidplay2.cc:267
 msgid "hardSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:268
+#: src/sid/xs_sidplay2.cc:273
 #, c-format
 msgid "hardSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:276
+#: src/sid/xs_sidplay2.cc:281
 msgid "[SIDPlay2] Could not initialize SIDBuilder object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:290
+#: src/sid/xs_sidplay2.cc:295
 #, c-format
 msgid "[SIDPlay2] Invalid clockSpeed=%d, falling back to PAL.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:314
+#: src/sid/xs_sidplay2.cc:319
 #, c-format
 msgid "Invalid sid2OptLevel=%d, falling back to %d.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:338
+#: src/sid/xs_sidplay2.cc:343
 msgid "[SIDPlay2] Emulator engine configuration failed!\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:345
+#: src/sid/xs_sidplay2.cc:350
 msgid "[SIDPlay2] Could not initialize SIDTune object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:396
-msgid "[SIDPlay2] currTune->selectSong() failed\n"
-msgstr ""
-
 #: src/sid/xs_sidplay2.cc:401
+msgid "[SIDPlay2] currTune->selectSong() failed\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:406
 msgid "[SIDPlay2] currEng->load() failed\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:44
+#: src/sid/xs_stil.c:46
 msgid "SubTune pointer structure realloc failed.\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:61
+#: src/sid/xs_stil.c:69
 msgid "SubTune structure malloc failed!\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:168
+#: src/sid/xs_stil.c:176
 #, c-format
 msgid "Could not open STILDB '%s'\n"
 msgstr ""
@@ -5770,6 +5661,22 @@
 msgstr "Ynghylch %s"
 
 #, fuzzy
+#~ msgid "Subtune Control"
+#~ msgstr "Rheolwr sain"
+
+#, fuzzy
+#~ msgid "Override generic XMMS titles"
+#~ msgstr "Diystyru'r teitlau cyffredinol"
+
+#, fuzzy
+#~ msgid "Song name/title format:"
+#~ msgstr "Fformat y teitl:"
+
+#, fuzzy
+#~ msgid "No sub-tune control."
+#~ msgstr "Rheolwr sain"
+
+#, fuzzy
 #~ msgid "22050"
 #~ msgstr "22000 Hz"
 
@@ -6286,9 +6193,6 @@
 #~ msgid "CCIT J.17"
 #~ msgstr "CCIT J.17"
 
-#~ msgid "No"
-#~ msgstr "Na"
-
 #~ msgid "MPEG Level:"
 #~ msgstr "Lefel MPEG:"
 
--- a/po/de.po	Thu Sep 13 12:09:38 2007 -0500
+++ b/po/de.po	Thu Sep 13 12:10:39 2007 -0500
@@ -2,8 +2,8 @@
 msgstr ""
 "Project-Id-Version: de\n"
 "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n"
-"POT-Creation-Date: 2007-08-30 18:23+0200\n"
-"PO-Revision-Date: 2007-09-03 01:00+0100\n"
+"POT-Creation-Date: 2007-09-05 00:28+0200\n"
+"PO-Revision-Date: 2007-09-09 21:45+0100\n"
 "Last-Translator: Michael Färber <0102@gmx.at>\n"
 "Language-Team: german <0102@gmx.at>\n"
 "MIME-Version: 1.0\n"
@@ -43,7 +43,7 @@
 #: src/echo_plugin/gui.c:27
 #: src/echo_plugin/gui.c:138
 #: src/esd/about.c:49
-#: src/filewriter/filewriter.c:182
+#: src/filewriter/filewriter.c:184
 #: src/jack/configure.c:140
 #: src/jack/jack.c:602
 #: src/madplug/fileinfo.c:158
@@ -96,6 +96,14 @@
 "This plugin uses the AdPlug library, which is copyright (C) Simon Peter, et al.\n"
 "Linked AdPlug library version: "
 msgstr ""
+"\n"
+"Copyright (C) 2002, 2003 Simon Peter <dn.tlp@gmx.net>\n"
+"\n"
+"Dieses Plugin wurde veröffentlicht unter den Bedingungen und Auflagen der GNU LGPL.\n"
+"http://www.gnu.org/licenses/lgpl.html für Details.\n"
+"\n"
+"Dieses Plugin benützt die AdPlug-Bibliothek; diese ist copyright (C) Simon Peter, et al.\n"
+"Gelinkte AdPlug-Bibliotheks-Version: "
 
 #: src/adplug/adplug-xmms.cc:259
 msgid "AdPlug :: Configuration"
@@ -113,8 +121,8 @@
 #: src/musepack/libmpc.cxx:236
 #: src/musepack/libmpc.cxx:556
 #: src/null/null.c:111
-#: src/sid/xmms-sid.glade:3599
-#: src/sid/xs_interface.c:1345
+#: src/sid/xmms-sid.glade:2930
+#: src/sid/xs_interface.c:1192
 #: src/stereo_plugin/stereo.c:128
 #: src/sun/configure.c:567
 #: src/timidity/src/interface.c:232
@@ -156,8 +164,8 @@
 
 #: src/adplug/adplug-xmms.cc:328
 #: src/filewriter/mp3.c:899
-#: src/sid/xmms-sid.glade:156
-#: src/sid/xs_interface.c:302
+#: src/sid/xmms-sid.glade:157
+#: src/sid/xs_interface.c:280
 #: src/timidity/src/interface.c:167
 msgid "Mono"
 msgstr "Mono"
@@ -165,8 +173,8 @@
 #: src/adplug/adplug-xmms.cc:333
 #: src/filewriter/mp3.c:894
 #: src/modplug/gui/interface.cxx:195
-#: src/sid/xmms-sid.glade:175
-#: src/sid/xs_interface.c:309
+#: src/sid/xmms-sid.glade:176
+#: src/sid/xs_interface.c:287
 #: src/timidity/src/interface.c:175
 msgid "Stereo"
 msgstr "Stereo"
@@ -252,45 +260,44 @@
 
 #: src/adplug/adplug-xmms.cc:576
 msgid "Song"
-msgstr ""
+msgstr "Titel"
 
 #: src/adplug/adplug-xmms.cc:602
 msgid "Instrument name"
-msgstr ""
+msgstr "Instrumentenname"
 
 #: src/adplug/adplug-xmms.cc:644
 msgid "Song message"
-msgstr ""
+msgstr "Titel-Meldung"
 
 #: src/adplug/adplug-xmms.cc:666
 msgid "Subsong selection"
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:688
+#: src/adplug/adplug-xmms.cc:730
 msgid "Order: "
-msgstr ""
-
-#: src/adplug/adplug-xmms.cc:689
+msgstr "Reihenfolge: "
+
+#: src/adplug/adplug-xmms.cc:731
 msgid "Pattern: "
-msgstr ""
-
-#: src/adplug/adplug-xmms.cc:691
+msgstr "Pattern: "
+
+#: src/adplug/adplug-xmms.cc:733
 msgid "Row: "
-msgstr ""
-
-#: src/adplug/adplug-xmms.cc:692
+msgstr "Row: "
+
+#: src/adplug/adplug-xmms.cc:734
 msgid "Speed: "
 msgstr "Geschwindigkeit: "
 
-#: src/adplug/adplug-xmms.cc:693
-#, fuzzy
+#: src/adplug/adplug-xmms.cc:735
 msgid "Timer: "
-msgstr "Titel:"
-
-#: src/adplug/adplug-xmms.cc:694
+msgstr "Timer: "
+
+#: src/adplug/adplug-xmms.cc:736
 #: src/console/Audacious_Config.cxx:226
-#: src/sid/xmms-sid.glade:513
-#: src/sid/xs_interface.c:361
+#: src/sid/xmms-sid.glade:332
+#: src/sid/xs_interface.c:333
 msgid "Hz"
 msgstr "Hz"
 
@@ -303,6 +310,8 @@
 "Copyright (c) 2006 Audacious team\n"
 "Portions (c) 2005-2006 David Hammerton <crazney -at- crazney.net>"
 msgstr ""
+"Copyright (c) 2006 Audacious team\n"
+"Teile (c) 2005-2006 David Hammerton <crazney -at- crazney.net>"
 
 #: src/alarm/interface.c:36
 msgid "About XMMS Alarm"
@@ -327,8 +336,8 @@
 #: src/alarm/interface.c:73
 #: src/lirc/about.c:116
 #: src/modplug/gui/interface.cxx:946
-#: src/sid/xmms-sid.glade:4262
-#: src/sid/xs_interface.c:1882
+#: src/sid/xmms-sid.glade:3493
+#: src/sid/xs_interface.c:1671
 msgid "Close"
 msgstr "Schließen"
 
@@ -345,13 +354,13 @@
 #: src/alsa/about.c:46
 #: src/alsa/configure.c:405
 #: src/cdaudio-ng/cdaudio-ng.c:206
-#: src/filewriter/filewriter.c:199
+#: src/filewriter/filewriter.c:201
 #: src/flacng/plugin.c:743
 #: src/modplug/gui/interface.cxx:725
 #: src/pulse_audio/pulse_audio.c:694
 #: src/scrobbler/gtkstuff.c:43
-#: src/sid/xmms-sid.glade:3585
-#: src/sid/xs_interface.c:1338
+#: src/sid/xmms-sid.glade:2916
+#: src/sid/xs_interface.c:1185
 msgid "OK"
 msgstr "OK"
 
@@ -379,7 +388,7 @@
 
 #: src/alarm/interface.c:231
 msgid "Oh Well"
-msgstr ""
+msgstr "Jo mei"
 
 #: src/alarm/interface.c:390
 msgid "Alarm Settings"
@@ -397,7 +406,11 @@
 
 #: src/alarm/interface.c:508
 msgid "h"
-msgstr ""
+msgstr "Uhr"
+
+#: src/alarm/interface.c:538
+msgid "minutes"
+msgstr "Minuten"
 
 #: src/alarm/interface.c:556
 msgid "Quiet after:"
@@ -405,7 +418,7 @@
 
 #: src/alarm/interface.c:566
 msgid "Alarm at (default):"
-msgstr ""
+msgstr "Alarm um (standardmäßig):"
 
 #: src/alarm/interface.c:586
 msgid "Choose the days for the alarm to come on"
@@ -461,15 +474,15 @@
 
 #: src/alarm/interface.c:1052
 msgid "Fading"
-msgstr ""
+msgstr "Ãœbergang"
 
 #: src/alarm/interface.c:1089
-#: src/sid/xmms-sid.glade:2271
-#: src/sid/xmms-sid.glade:2442
-#: src/sid/xmms-sid.glade:3408
-#: src/sid/xs_interface.c:923
-#: src/sid/xs_interface.c:977
-#: src/sid/xs_interface.c:1289
+#: src/sid/xmms-sid.glade:2007
+#: src/sid/xmms-sid.glade:2178
+#: src/sid/xmms-sid.glade:2526
+#: src/sid/xs_interface.c:900
+#: src/sid/xs_interface.c:954
+#: src/sid/xs_interface.c:1064
 msgid "seconds"
 msgstr "Sekunden"
 
@@ -481,15 +494,15 @@
 
 #: src/alarm/interface.c:1123
 msgid "Current"
-msgstr ""
+msgstr "Momentan"
 
 #: src/alarm/interface.c:1130
 msgid "reset to current output volume"
-msgstr ""
+msgstr "Zur momentanen Lautstärke zurücksetzen"
 
 #: src/alarm/interface.c:1132
 msgid "Start at"
-msgstr ""
+msgstr "Beginnen bei"
 
 #: src/alarm/interface.c:1160
 #: src/alarm/interface.c:1204
@@ -498,15 +511,15 @@
 
 #: src/alarm/interface.c:1176
 msgid "Final"
-msgstr ""
+msgstr "Schluss"
 
 #: src/alarm/interface.c:1229
 msgid "Additional Command"
-msgstr ""
+msgstr "Zusätzlicher Befehl"
 
 #: src/alarm/interface.c:1255
 msgid "enable"
-msgstr ""
+msgstr "aktivieren"
 
 #: src/alarm/interface.c:1263
 msgid "Playlist (optional)"
@@ -519,11 +532,11 @@
 #: src/alarm/interface.c:1297
 #: src/alarm/interface.c:1462
 msgid "Reminder"
-msgstr ""
+msgstr "Erinnerung"
 
 #: src/alarm/interface.c:1314
 msgid "Use reminder"
-msgstr ""
+msgstr "Erinnerung benützen"
 
 #: src/alarm/interface.c:1330
 #: src/sndstretch/sndstretch_xmms.c:381
@@ -595,7 +608,7 @@
 
 #: src/alarm/interface.c:1470
 msgid "Your reminder for today is.."
-msgstr ""
+msgstr "Die Erinnerung für heute lautet.."
 
 #: src/alarm/interface.c:1495
 msgid "Thankyou"
@@ -648,7 +661,7 @@
 
 #: src/alsa/configure.c:299
 msgid "Mixer:"
-msgstr ""
+msgstr "Mixer:"
 
 #: src/alsa/configure.c:307
 msgid "Use software volume control"
@@ -656,13 +669,13 @@
 
 #: src/alsa/configure.c:317
 msgid "Mixer card:"
-msgstr ""
+msgstr "Mixer-Karte:"
 
 #: src/alsa/configure.c:330
 #: src/OSS/configure.c:261
 #: src/sun/configure.c:220
 msgid "Mixer device:"
-msgstr ""
+msgstr "Mixer-Gerät:"
 
 #: src/alsa/configure.c:350
 msgid "Device settings"
@@ -688,7 +701,7 @@
 
 #: src/amidi-plug/backend-alsa/b-alsa.c:35
 msgid "ALSA Backend "
-msgstr ""
+msgstr "ALSA-Backend "
 
 #: src/amidi-plug/backend-alsa/b-alsa.c:37
 msgid ""
@@ -699,7 +712,7 @@
 
 #: src/amidi-plug/backend-dummy/b-dummy.c:35
 msgid "Dummy Backend "
-msgstr ""
+msgstr "Dummy-Backend "
 
 #: src/amidi-plug/backend-dummy/b-dummy.c:37
 msgid ""
@@ -709,7 +722,7 @@
 
 #: src/amidi-plug/backend-fluidsynth/b-fluidsynth.c:35
 msgid "FluidSynth Backend "
-msgstr ""
+msgstr "FluidSynth-Backend "
 
 #: src/amidi-plug/backend-fluidsynth/b-fluidsynth.c:37
 msgid ""
@@ -720,36 +733,35 @@
 
 #: src/amidi-plug/i_configure-alsa.c:221
 msgid "ALSA BACKEND CONFIGURATION"
-msgstr ""
+msgstr "ALSA-Backend-Konfiguration"
 
 #: src/amidi-plug/i_configure-alsa.c:326
 msgid "Port"
-msgstr ""
+msgstr "Port"
 
 #: src/amidi-plug/i_configure-alsa.c:328
 msgid "Client name"
-msgstr ""
+msgstr "Client-Name"
 
 #: src/amidi-plug/i_configure-alsa.c:330
 msgid "Port name"
-msgstr ""
+msgstr "Portname"
 
 #: src/amidi-plug/i_configure-alsa.c:341
 msgid "ALSA output ports"
-msgstr ""
+msgstr "ALSA-Ausgabe-Ports"
 
 #: src/amidi-plug/i_configure-alsa.c:394
 msgid "Soundcard: "
 msgstr "Soundkarte: "
 
 #: src/amidi-plug/i_configure-alsa.c:396
-#, fuzzy
 msgid "Mixer control: "
-msgstr "Lautstärkesteuerung:"
+msgstr "Mixersteuerung: "
 
 #: src/amidi-plug/i_configure-alsa.c:408
 msgid "Mixer settings"
-msgstr ""
+msgstr "Mixer-Einstellungen"
 
 #: src/amidi-plug/i_configure-alsa.c:421
 msgid ""
@@ -771,37 +783,39 @@
 
 #: src/amidi-plug/i_configure-alsa.c:444
 msgid "ALSA Backend not loaded or not available"
-msgstr ""
+msgstr "ALSA-Backend nicht geladen oder nicht verfügbar"
 
 #: src/amidi-plug/i_configure-alsa.c:463
 msgid ""
 "<span size=\"smaller\">ALSA\n"
 "backend</span>"
 msgstr ""
+"<span size=\"smaller\">ALSA-\n"
+"Backend</span>"
 
 #: src/amidi-plug/i_configure-ap.c:56
 msgid "AMIDI-Plug - backend information"
-msgstr ""
+msgstr "AMIDI-Plug - Backend-Information"
 
 #: src/amidi-plug/i_configure-ap.c:194
 msgid "AMIDI-PLUG PREFERENCES"
-msgstr ""
+msgstr "AMIDI-Plug-Einstellungen"
 
 #: src/amidi-plug/i_configure-ap.c:221
 msgid "Backend selection"
-msgstr ""
+msgstr "Backend-Auswahl"
 
 #: src/amidi-plug/i_configure-ap.c:225
 msgid "Available backends"
-msgstr ""
+msgstr "Verfügbare backends"
 
 #: src/amidi-plug/i_configure-ap.c:255
 msgid "Playback settings"
-msgstr ""
+msgstr "Wiedergabeeinstellungen"
 
 #: src/amidi-plug/i_configure-ap.c:260
 msgid "Transpose: "
-msgstr ""
+msgstr "Transponieren: "
 
 #: src/amidi-plug/i_configure-ap.c:269
 msgid "Drum shift: "
@@ -809,15 +823,15 @@
 
 #: src/amidi-plug/i_configure-ap.c:291
 msgid "pre-calculate length of MIDI files in playlist"
-msgstr ""
+msgstr "Länge von MIDI-Dateien in der Wiedergabeliste ausrechnen"
 
 #: src/amidi-plug/i_configure-ap.c:296
 msgid "extract comments from MIDI file (if available)"
-msgstr ""
+msgstr "Kommentare aus MIDI-Datei extrahieren (falls verfügbar)"
 
 #: src/amidi-plug/i_configure-ap.c:301
 msgid "extract lyrics from MIDI file (if available)"
-msgstr ""
+msgstr "Liedtexte aus MIDI-Dateien extrahieren (falls verfügbar)"
 
 #: src/amidi-plug/i_configure-ap.c:320
 msgid ""
@@ -863,10 +877,12 @@
 "<span size=\"smaller\">AMIDI\n"
 "Plug</span>"
 msgstr ""
+"<span size=\"smaller\">AMIDI-\n"
+"Plug</span>"
 
 #: src/amidi-plug/i_configure.c:75
 msgid "AMIDI-Plug - select file"
-msgstr ""
+msgstr "AMIDI-Plug - Datei auswählen"
 
 #: src/amidi-plug/i_configure.c:122
 msgid "AMIDI-Plug - configuration"
@@ -874,15 +890,15 @@
 
 #: src/amidi-plug/i_configure.c:241
 msgid "AMIDI-Plug message"
-msgstr ""
+msgstr "AMIDI-Plug-Meldung"
 
 #: src/amidi-plug/i_configure.c:242
 msgid "Please stop the player before changing AMIDI-Plug settings."
-msgstr ""
+msgstr "Bitte den Player stoppen vor Änderung der AMIDI-Plug-Einstellungen."
 
 #: src/amidi-plug/i_configure-dummy.c:137
 msgid "DUMMY BACKEND CONFIGURATION"
-msgstr ""
+msgstr "Dummy-Backend-Konfiguration"
 
 #: src/amidi-plug/i_configure-dummy.c:173
 msgid "MIDI logger settings"
@@ -894,15 +910,15 @@
 
 #: src/amidi-plug/i_configure-dummy.c:185
 msgid "Log MIDI events to standard output"
-msgstr ""
+msgstr "MIDI-Ereignisse an stdout loggen"
 
 #: src/amidi-plug/i_configure-dummy.c:189
 msgid "Log MIDI events to standard error"
-msgstr ""
+msgstr "MIDI-Ereignisse an stderr loggen"
 
 #: src/amidi-plug/i_configure-dummy.c:193
 msgid "Log MIDI events to file"
-msgstr ""
+msgstr "MIDI-Ereignisse in Datei loggen"
 
 #: src/amidi-plug/i_configure-dummy.c:202
 msgid "Logfile settings"
@@ -947,25 +963,27 @@
 
 #: src/amidi-plug/i_configure-dummy.c:329
 msgid "Dummy Backend not loaded or not available"
-msgstr ""
+msgstr "Dummy-Backend nicht geladen oder nicht verfügbar"
 
 #: src/amidi-plug/i_configure-dummy.c:348
 msgid ""
 "<span size=\"smaller\">Dummy\n"
 "backend</span>"
 msgstr ""
+"<span size=\"smaller\">Dummy-\n"
+"Backend</span>"
 
 #: src/amidi-plug/i_configure-fluidsynth.c:83
 msgid "AMIDI-Plug - select SoundFont file"
-msgstr ""
+msgstr "AMIDI-Plug - SoundFont-Datei wählen"
 
 #: src/amidi-plug/i_configure-fluidsynth.c:362
 msgid "FLUIDSYNTH BACKEND CONFIGURATION"
-msgstr ""
+msgstr "Fluidsynth-Backend-Konfiguration"
 
 #: src/amidi-plug/i_configure-fluidsynth.c:416
 msgid "SoundFont settings"
-msgstr ""
+msgstr "SoundFont-Einstellungen"
 
 #: src/amidi-plug/i_configure-fluidsynth.c:452
 msgid "Size (bytes)"
@@ -973,15 +991,15 @@
 
 #: src/amidi-plug/i_configure-fluidsynth.c:501
 msgid "Load SF on player start"
-msgstr ""
+msgstr "SF beim Player-Start laden"
 
 #: src/amidi-plug/i_configure-fluidsynth.c:505
 msgid "Load SF on first midifile play"
-msgstr ""
+msgstr "SF beim Abspielen der ersten MIDI-Datei laden"
 
 #: src/amidi-plug/i_configure-fluidsynth.c:520
 msgid "Synthesizer settings"
-msgstr ""
+msgstr "Synthesizer-Einstellungen"
 
 #: src/amidi-plug/i_configure-fluidsynth.c:529
 msgid "gain"
@@ -1001,7 +1019,7 @@
 
 #: src/amidi-plug/i_configure-fluidsynth.c:557
 msgid "poliphony"
-msgstr ""
+msgstr "Polyphonie"
 
 #: src/amidi-plug/i_configure-fluidsynth.c:585
 msgid "reverb"
@@ -1023,7 +1041,7 @@
 
 #: src/amidi-plug/i_configure-fluidsynth.c:647
 msgid "sample rate"
-msgstr ""
+msgstr "Abtastfrequenz"
 
 #: src/amidi-plug/i_configure-fluidsynth.c:653
 msgid "22050 Hz "
@@ -1074,6 +1092,8 @@
 "* Select SoundFont files *\n"
 "In order to play MIDI with FluidSynth, you need to specify at least one valid SoundFont file here (use absolute paths). The loading order is from the top (first) to the bottom (last)."
 msgstr ""
+"* SoundFont-Dateien auswählen *\n"
+"Um MIDI-Dateien mit FluidSynth abzuspielen, muss hier mindestens eine gültige SoundFont-Datei angegeben werden (absolute Pfade verwenden). Die Lade-Reihenfolge ist von der Spitze (erstes) bis zum  The loading order is from the top (first) to the bottom (last)."
 
 #: src/amidi-plug/i_configure-fluidsynth.c:812
 msgid ""
@@ -1158,11 +1178,11 @@
 
 #: src/amidi-plug/i_configure-timidity.c:39
 msgid "TIMIDITY BACKEND CONFIGURATION"
-msgstr ""
+msgstr "Timidity-Backend-Konfiguration"
 
 #: src/amidi-plug/i_configure-timidity.c:64
 msgid "TiMidity Backend not loaded or not available"
-msgstr ""
+msgstr "TiMidity-Backend nicht geladen oder nicht verfügbar"
 
 #: src/amidi-plug/i_configure-timidity.c:83
 msgid ""
@@ -1171,8 +1191,8 @@
 msgstr ""
 
 #: src/amidi-plug/i_fileinfo.c:169
-#: src/sid/xmms-sid.glade:4084
-#: src/sid/xs_interface.c:1828
+#: src/sid/xmms-sid.glade:3315
+#: src/sid/xs_interface.c:1615
 #: src/vorbis/fileinfo.c:562
 msgid "Name:"
 msgstr "Name:"
@@ -1183,7 +1203,7 @@
 
 #: src/amidi-plug/i_fileinfo.c:205
 msgid "Format:"
-msgstr ""
+msgstr "Format:"
 
 #: src/amidi-plug/i_fileinfo.c:208
 msgid "Length (msec):"
@@ -1191,7 +1211,7 @@
 
 #: src/amidi-plug/i_fileinfo.c:211
 msgid "Num of Tracks:"
-msgstr ""
+msgstr "Anzahl von Tracks:"
 
 #: src/amidi-plug/i_fileinfo.c:216
 msgid "variable"
@@ -1226,15 +1246,16 @@
 msgstr "  (ungültiges UTF-8)"
 
 #: src/amidi-plug/i_utils.c:43
-#, fuzzy
 msgid "AMIDI-Plug - about"
-msgstr "ESD-Ausgabe-Plugin-Konfiguration"
+msgstr "Ãœber AMIDI-Plug"
 
 #: src/amidi-plug/i_utils.c:68
 msgid ""
 "\n"
 "AMIDI-Plug "
 msgstr ""
+"\n"
+"AMIDI-Plug "
 
 #: src/amidi-plug/i_utils.c:69
 msgid ""
@@ -1413,12 +1434,12 @@
 msgstr "Skin-Datei:"
 
 #: src/aosd/aosd_ui.c:641
-#: src/sid/xmms-sid.glade:2595
-#: src/sid/xmms-sid.glade:2801
-#: src/sid/xmms-sid.glade:2907
-#: src/sid/xs_interface.c:1024
-#: src/sid/xs_interface.c:1093
-#: src/sid/xs_interface.c:1128
+#: src/sid/xmms-sid.glade:2331
+#: src/sid/xmms-sid.glade:2706
+#: src/sid/xmms-sid.glade:2812
+#: src/sid/xs_interface.c:1002
+#: src/sid/xs_interface.c:1124
+#: src/sid/xs_interface.c:1160
 msgid "Browse"
 msgstr "Suchen"
 
@@ -1499,8 +1520,8 @@
 
 #: src/aosd/aosd_ui.c:1073
 #: src/cdaudio-ng/configure.c:87
-#: src/sid/xmms-sid.glade:3545
-#: src/sid/xs_interface.c:1324
+#: src/sid/xmms-sid.glade:2876
+#: src/sid/xs_interface.c:1171
 msgid "Misc"
 msgstr "Verschiedenes"
 
@@ -1530,9 +1551,8 @@
 msgstr ""
 
 #: src/arts/arts.c:22
-#, fuzzy
 msgid "About aRts Output"
-msgstr "Ãœber Null-Ausgabe-Plugin"
+msgstr "Ãœber aRts-Ausgabe"
 
 #: src/arts/arts.c:23
 msgid ""
@@ -1541,9 +1561,8 @@
 msgstr ""
 
 #: src/arts/configure.c:50
-#, fuzzy
 msgid "aRts Driver configuration"
-msgstr "OSS-Treiber-Konfiguration"
+msgstr "aRts-Treiber-Konfiguration"
 
 #: src/arts/configure.c:61
 #: src/esd/configure.c:171
@@ -1645,12 +1664,11 @@
 
 #: src/audiocompress/audacious-glue.c:532
 msgid "Load default values"
-msgstr ""
+msgstr "Standard-Werte laden"
 
 #: src/audiocompress/audacious-glue.c:537
-#, fuzzy
 msgid "Audio values"
-msgstr "Audiogerät:"
+msgstr "Audiowerte"
 
 #: src/audiocompress/audacious-glue.c:566
 #: src/echo_plugin/gui.c:153
@@ -1677,7 +1695,7 @@
 
 #: src/blur_scope/config.c:73
 msgid "Blur Scope: Color selection"
-msgstr ""
+msgstr "Blur Scope: Farbauswahl"
 
 #: src/blur_scope/config.c:83
 #: src/jack/configure.c:107
@@ -1779,8 +1797,8 @@
 
 #: src/console/Audacious_Config.cxx:201
 #: src/modplug/gui/interface.cxx:264
-#: src/sid/xmms-sid.glade:1424
-#: src/sid/xs_interface.c:673
+#: src/sid/xmms-sid.glade:1243
+#: src/sid/xs_interface.c:645
 msgid "Resampling"
 msgstr "Resampling"
 
@@ -1883,7 +1901,7 @@
 #: src/esd/configure.c:114
 #: src/esd/configure.c:144
 msgid "Host:"
-msgstr ""
+msgstr "Host:"
 
 #: src/esd/configure.c:125
 msgid "Use remote host"
@@ -2058,7 +2076,7 @@
 msgstr ""
 
 #: src/evdev-plug/ed_ui.c:318
-#: src/filewriter/filewriter.c:196
+#: src/filewriter/filewriter.c:198
 #: src/madplug/plugin.c:620
 msgid "Error"
 msgstr "Fehler"
@@ -2149,9 +2167,8 @@
 msgstr ""
 
 #: src/evdev-plug/ed_ui.c:1322
-#, fuzzy
 msgid "EvDev-Plug - Bindings Configuration"
-msgstr "ESD-Ausgabe-Plugin-Konfiguration"
+msgstr "EvDev-Plug - Bindungskonfiguration"
 
 #: src/evdev-plug/ed_ui.c:1362
 msgid "<b>Name: </b>"
@@ -2178,11 +2195,11 @@
 "written by Giacomo Lozito\n"
 msgstr ""
 
-#: src/filewriter/filewriter.c:167
+#: src/filewriter/filewriter.c:169
 msgid "About FileWriter-Plugin"
 msgstr "Ãœber FileWriter-Plugin"
 
-#: src/filewriter/filewriter.c:168
+#: src/filewriter/filewriter.c:170
 msgid ""
 "FileWriter-Plugin\n"
 "\n"
@@ -2202,62 +2219,62 @@
 "USA."
 msgstr ""
 
-#: src/filewriter/filewriter.c:197
+#: src/filewriter/filewriter.c:199
 msgid ""
 "You cannot use the FileWriter plugin\n"
 "when you're running in realtime mode."
 msgstr "Benutzung des FileWriter-Plugins im Realtime-Modus nicht möglich."
 
-#: src/filewriter/filewriter.c:512
+#: src/filewriter/filewriter.c:514
 msgid "File Writer Configuration"
 msgstr "FileWriter-Konfiguration"
 
-#: src/filewriter/filewriter.c:524
+#: src/filewriter/filewriter.c:526
 msgid "Output file format:"
 msgstr "Ausgabedatei-Format:"
 
-#: src/filewriter/filewriter.c:542
+#: src/filewriter/filewriter.c:544
 #: src/ladspa/ladspa.c:962
 msgid "Configure"
 msgstr "Konfigurieren"
 
-#: src/filewriter/filewriter.c:557
+#: src/filewriter/filewriter.c:559
 msgid "Save into original directory"
 msgstr "In Original-Verzeichnis speichern"
 
-#: src/filewriter/filewriter.c:562
+#: src/filewriter/filewriter.c:564
 msgid "Save into custom directory"
 msgstr "In anderes Verzeichnis speichern"
 
-#: src/filewriter/filewriter.c:574
+#: src/filewriter/filewriter.c:576
 msgid "Output file folder:"
 msgstr "Ausgabedatei-Verzeichnis:"
 
-#: src/filewriter/filewriter.c:578
+#: src/filewriter/filewriter.c:580
 msgid "Pick a folder"
 msgstr "Verzeichnis wählen"
 
-#: src/filewriter/filewriter.c:598
+#: src/filewriter/filewriter.c:600
 msgid "Get filename from:"
 msgstr "Dateiname erhalten von:"
 
-#: src/filewriter/filewriter.c:601
+#: src/filewriter/filewriter.c:603
 msgid "original file tags"
 msgstr "ursprünglichen Datei-Tags"
 
-#: src/filewriter/filewriter.c:607
+#: src/filewriter/filewriter.c:609
 msgid "original filename"
 msgstr "ürsprünglichen Dateinamen"
 
-#: src/filewriter/filewriter.c:617
+#: src/filewriter/filewriter.c:619
 msgid "Don't strip file name extension"
 msgstr "Dateiendung nicht entfernen"
 
-#: src/filewriter/filewriter.c:621
+#: src/filewriter/filewriter.c:623
 msgid "If enabled, the extension from the original filename will not be stripped before adding the new file extension to the end."
 msgstr "Wenn aktiviert, wird die Erweiterung des ursprünglichen Dateinamens nicht entfernt, bevor die neue Dateierweiterung am Ende angefügt wird."
 
-#: src/filewriter/filewriter.c:635
+#: src/filewriter/filewriter.c:637
 msgid "Prepend track number to filename"
 msgstr "Track-Nummer vor Dateinamen anhängen"
 
@@ -2543,7 +2560,7 @@
 
 #: src/ladspa/ladspa.c:855
 msgid "UID"
-msgstr ""
+msgstr "UID"
 
 #: src/ladspa/ladspa.c:930
 msgid "Installed plugins"
@@ -2574,11 +2591,11 @@
 
 #: src/lirc/about.c:65
 msgid "About LIRC Audacious Plugin"
-msgstr ""
+msgstr "Ãœber das LIRC-Audacious-Plugin"
 
 #: src/lirc/about.c:92
 msgid "LIRC Plugin "
-msgstr ""
+msgstr "LIRC-Plugin "
 
 #: src/lirc/about.c:94
 msgid ""
@@ -2593,11 +2610,21 @@
 "You can get LIRC information at:\n"
 "http://fsinfo.cs.uni-sb.de/~columbus/lirc/index.html"
 msgstr ""
+"\n"
+"Ein einfaches Plugin, das Audacious mithilfe des\n"
+"LIRC-Daemons kontrollieren lässt\n"
+"\n"
+"Für Audacious angepasst von Tony Vroon <chainsaw@gentoo.org>\n"
+"vom XMMS-LIRC-Plugin von:\n"
+"Carl van Schaik <carl@leg.uct.ac.za>\n"
+"Christoph Bartelmus <xmms@bartelmus.de>\n"
+"Informationen zu LIRC sind verfügbar bei:\n"
+"http://fsinfo.cs.uni-sb.de/~columbus/lirc/index.html"
 
 #: src/lirc/lirc.c:80
 #, c-format
 msgid "%s: could not init LIRC support\n"
-msgstr ""
+msgstr "%s: Konnte LIRC-Unterstützung nicht initialisieren\n"
 
 #: src/lirc/lirc.c:88
 #, c-format
@@ -2659,9 +2686,8 @@
 msgstr ""
 
 #: src/madplug/configure.c:213
-#, fuzzy
 msgid "Default gain (dB):"
-msgstr "Standard (%s)"
+msgstr "Standard-Verstärkung (dB):"
 
 #: src/madplug/configure.c:224
 msgid "Preamp (dB):"
@@ -2681,11 +2707,9 @@
 
 #: src/madplug/configure.c:251
 msgid "ID3 format:"
-msgstr ""
+msgstr "ID3-Format:"
 
 #: src/madplug/configure.c:261
-#: src/sid/xmms-sid.glade:3144
-#: src/sid/xs_interface.c:1189
 #: src/vorbis/configure.c:160
 msgid "Title"
 msgstr "Titel"
@@ -2697,11 +2721,11 @@
 
 #: src/madplug/fileinfo.c:158
 msgid "Couldn't open file!"
-msgstr ""
+msgstr "Konnte Datei nicht öffnen!"
 
 #: src/madplug/fileinfo.c:236
 msgid "Couldn't write tag!"
-msgstr ""
+msgstr "Konnte Tag nicht schreiben!"
 
 #: src/madplug/fileinfo.c:330
 msgid "<b>Name:</b>"
@@ -2771,7 +2795,7 @@
 
 #: src/madplug/fileinfo.c:500
 msgid "Unknown"
-msgstr ""
+msgstr "Unbekannt"
 
 #: src/madplug/fileinfo.c:620
 #: src/musepack/libmpc.cxx:633
@@ -2800,12 +2824,12 @@
 #: src/madplug/fileinfo.c:663
 #, c-format
 msgid "%d frames"
-msgstr ""
+msgstr "%d Frames"
 
 #: src/madplug/fileinfo.c:672
 #, c-format
 msgid "%d:%02d (%d seconds)"
-msgstr ""
+msgstr "%d:%02d (%d Sekunden)"
 
 #: src/madplug/fileinfo.c:677
 #, c-format
@@ -2871,6 +2895,11 @@
 "e.g. tact://77 to play 77 beats per minute\n"
 "or   tact://60*3/4 to play 60 bpm in 3/4 tacts"
 msgstr ""
+"Ein Takt-Generator von Martin Strauss <mys@faveve.uni-stuttgart.de>\n"
+"\n"
+"Zur Verwendung eine URL hinzufügen: tact://Schläge*Zähler/Nenner\n"
+"z.B. tact://77 zum Spielen von 77 Schlägen pro Minute\n"
+"oder tact://60*3/4 zum Spielen von 60 bpm im 3/4-Takt"
 
 #: src/metronom/metronom.c:199
 #: src/metronom/metronom.c:263
@@ -2882,7 +2911,7 @@
 #: src/metronom/metronom.c:265
 #, c-format
 msgid "Tact generator: %d bpm %d/%d"
-msgstr ""
+msgstr "Takt-Generator: %d bpm %d/%d"
 
 #: src/modplug/gui/interface.cxx:117
 msgid "ModPlug Configuration"
@@ -2905,7 +2934,7 @@
 #: src/modplug/gui/interface.cxx:218
 #: src/timidity/src/interface.c:76
 msgid "Sampling Rate"
-msgstr ""
+msgstr "Abtastfrequenz"
 
 #: src/modplug/gui/interface.cxx:232
 msgid "48 kHz"
@@ -2941,7 +2970,7 @@
 
 #: src/modplug/gui/interface.cxx:346
 msgid "Use Filename as Song Title"
-msgstr ""
+msgstr "Dateinamen als Liedtitel verwenden"
 
 #: src/modplug/gui/interface.cxx:353
 msgid "Fast Playlist Info"
@@ -2989,9 +3018,8 @@
 msgstr ""
 
 #: src/modplug/gui/interface.cxx:528
-#, fuzzy
 msgid "Surround"
-msgstr "Surround-Echo"
+msgstr "Surround"
 
 #: src/modplug/gui/interface.cxx:600
 msgid "Preamp"
@@ -3025,7 +3053,7 @@
 
 #: src/modplug/gui/interface.cxx:709
 msgid "Effects"
-msgstr ""
+msgstr "Effekte"
 
 #: src/modplug/gui/interface.cxx:793
 msgid "MOD Info"
@@ -3051,11 +3079,11 @@
 
 #: src/modplug/gui/interface.cxx:899
 msgid "Instruments"
-msgstr ""
+msgstr "Instrumente"
 
 #: src/modplug/gui/interface.cxx:932
 msgid "Message"
-msgstr ""
+msgstr "Meldung"
 
 #: src/modplug/gui/main.cxx:43
 msgid "Modplug Input Plugin for Audacious ver"
@@ -3103,7 +3131,7 @@
 
 #: src/musepack/libmpc.cxx:147
 msgid "Nevermind"
-msgstr ""
+msgstr "Vergiss es"
 
 #: src/musepack/libmpc.cxx:165
 msgid "Musepack Decoder Configuration"
@@ -3124,9 +3152,8 @@
 msgstr "Plugin"
 
 #: src/musepack/libmpc.cxx:189
-#, fuzzy
 msgid "ReplayGain Settings"
-msgstr "ReplayGain"
+msgstr "ReplayGain-Einstellungen"
 
 #: src/musepack/libmpc.cxx:196
 #: src/vorbis/configure.c:172
@@ -3141,9 +3168,8 @@
 msgstr ""
 
 #: src/musepack/libmpc.cxx:206
-#, fuzzy
 msgid "ReplayGain Type"
-msgstr "ReplayGain"
+msgstr "ReplayGain-Typ"
 
 #: src/musepack/libmpc.cxx:214
 msgid "Use Track Gain"
@@ -3154,8 +3180,8 @@
 msgstr ""
 
 #: src/musepack/libmpc.cxx:490
-#: src/sid/xmms-sid.glade:3755
-#: src/sid/xs_interface.c:1708
+#: src/sid/xmms-sid.glade:2994
+#: src/sid/xs_interface.c:1495
 #: src/tta/libtta.c:322
 #: src/wavpack/ui.cxx:150
 msgid "Filename:"
@@ -3170,11 +3196,11 @@
 msgstr "Titel:"
 
 #: src/musepack/libmpc.cxx:550
-#: src/sid/xmms-sid.glade:1996
-#: src/sid/xs_interface.c:835
+#: src/sid/xmms-sid.glade:1732
+#: src/sid/xs_interface.c:812
 #: src/wavpack/ui.cxx:265
 msgid "Save"
-msgstr ""
+msgstr "Speichern"
 
 #: src/musepack/libmpc.cxx:553
 #: src/wavpack/ui.cxx:271
@@ -3322,7 +3348,7 @@
 #: src/OSS4/configure.c:272
 #: src/OSS/configure.c:344
 msgid "Mixer Settings:"
-msgstr ""
+msgstr "Mixer-Einstellungen:"
 
 #: src/OSS4/configure.c:278
 msgid "Save VMIX volume between sessions"
@@ -3332,7 +3358,7 @@
 #: src/OSS/configure.c:356
 #: src/sun/configure.c:394
 msgid "Mixer"
-msgstr ""
+msgstr "Mixer"
 
 #: src/OSS/about.c:39
 msgid "About OSS Driver"
@@ -3433,737 +3459,607 @@
 msgid "Scrobbler Error"
 msgstr "Scrobbler-Fehler"
 
-#: src/sid/xmms-sid.c:207
+#: src/sid/xmms-sid.c:203
 msgid "Error initializing song-length database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:213
+#: src/sid/xmms-sid.c:209
 msgid "Error initializing STIL database!\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:327
+msgstr "Fehler beim Initialisieren der STIL-Datenbank!\n"
+
+#: src/sid/xmms-sid.c:414
 msgid "Couldn't allocate memory for audio data buffer!\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:334
+msgstr "Konnte keinen Speicher für den Audio-Daten-Buffer allozieren!\n"
+
+#: src/sid/xmms-sid.c:421
 msgid "Couldn't allocate memory for audio oversampling buffer!\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:409
+msgstr "Konnte keinen Speicher für den Audio-Oversampling-Buffer allozieren!\n"
+
+#: src/sid/xmms-sid.c:436
 #, c-format
 msgid "Couldn't initialize SID-tune '%s' (sub-tune #%i)!\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:420
+msgstr "Konnte SID-Tune '%s' (Unter-Tune #%i) nicht initialisieren!\n"
+
+#: src/sid/xmms-sid.c:446
 #, c-format
 msgid "Couldn't open XMMS audio output (fmt=%x, freq=%i, nchan=%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:466
+#: src/sid/xmms-sid.c:491
 msgid "Oversampling rate-conversion pass failed.\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:770
-#, fuzzy
-msgid "Subtune Control"
-msgstr "Lautstärkesteuerung:"
-
-#: src/sid/xmms-sid.c:1001
-#, c-format
-msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1008
-#, c-format
-msgid "Could not allocate sidFilename ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1017
-#, c-format
-msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n"
-msgstr ""
-
 #: src/sid/xmms-sid.glade:8
-#: src/sid/xs_interface.c:235
-msgid "Audacious-SID Configuration"
+#: src/sid/xs_interface.c:213
+msgid "Audacious-SID configuration"
 msgstr "Audacious-SID-Konfiguration"
 
-#: src/sid/xmms-sid.glade:70
-#: src/sid/xs_interface.c:271
+#: src/sid/xmms-sid.glade:71
+#: src/sid/xs_interface.c:249
 msgid "8-bit"
 msgstr "8 Bit"
 
-#: src/sid/xmms-sid.glade:89
-#: src/sid/xs_interface.c:278
+#: src/sid/xmms-sid.glade:90
+#: src/sid/xs_interface.c:256
 msgid "16-bit"
 msgstr "16 Bit"
 
-#: src/sid/xmms-sid.glade:110
-#: src/sid/xs_interface.c:285
+#: src/sid/xmms-sid.glade:111
+#: src/sid/xs_interface.c:263
 msgid "Resolution:"
 msgstr "Auflösung:"
 
-#: src/sid/xmms-sid.glade:195
-#: src/sid/xs_interface.c:316
+#: src/sid/xmms-sid.glade:196
+#: src/sid/xs_interface.c:294
 msgid "Autopanning"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:216
-#: src/sid/xs_interface.c:323
+#: src/sid/xmms-sid.glade:217
+#: src/sid/xs_interface.c:301
 #: src/vorbis/fileinfo.c:867
 #: src/vorbis/fileinfo.c:924
 msgid "Channels:"
 msgstr "Kanäle:"
 
-#: src/sid/xmms-sid.glade:565
-#: src/sid/xs_interface.c:373
+#: src/sid/xmms-sid.glade:384
+#: src/sid/xs_interface.c:345
 msgid "Samplerate:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:611
-#: src/sid/xs_interface.c:390
+msgstr "Abtastfrequenz:"
+
+#: src/sid/xmms-sid.glade:430
+#: src/sid/xs_interface.c:362
 msgid "Use oversampling"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:637
-#: src/sid/xs_interface.c:401
+msgstr "Oversampling benützen"
+
+#: src/sid/xmms-sid.glade:456
+#: src/sid/xs_interface.c:373
 msgid "Factor:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:681
-#: src/sid/xs_interface.c:413
+msgstr "Faktor:"
+
+#: src/sid/xmms-sid.glade:500
+#: src/sid/xs_interface.c:385
 msgid "Large factors require more CPU-power"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:715
-#: src/sid/xs_interface.c:419
+msgstr "Große Faktoren benötigen mehr Rechenleistung"
+
+#: src/sid/xmms-sid.glade:534
+#: src/sid/xs_interface.c:391
 msgid "Oversampling:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:751
-#: src/sid/xs_interface.c:424
+msgstr "Oversampling:"
+
+#: src/sid/xmms-sid.glade:570
+#: src/sid/xs_interface.c:396
 msgid "Audio"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:801
-#: src/sid/xs_interface.c:456
+msgstr "Audio"
+
+#: src/sid/xmms-sid.glade:620
+#: src/sid/xs_interface.c:428
 msgid "If enabled, this option \"forces\" the emulation engine to use the selected clock speed/frequency. Otherwise the speed is determined from played file itself."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:803
-#: src/sid/xs_interface.c:452
+#: src/sid/xmms-sid.glade:622
+#: src/sid/xs_interface.c:424
 msgid "Force speed"
 msgstr "Geschwindigkeit erzwingen"
 
-#: src/sid/xmms-sid.glade:821
-#: src/sid/xs_interface.c:462
+#: src/sid/xmms-sid.glade:640
+#: src/sid/xs_interface.c:434
 msgid "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. Most of SID-tunes have been made for PAL computers."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:823
-#: src/sid/xs_interface.c:458
+#: src/sid/xmms-sid.glade:642
+#: src/sid/xs_interface.c:430
 msgid "PAL (50 Hz)"
 msgstr "PAL (50 Hz)"
 
-#: src/sid/xmms-sid.glade:841
-#: src/sid/xs_interface.c:470
+#: src/sid/xmms-sid.glade:660
+#: src/sid/xs_interface.c:442
 msgid "NTSC is the TV standard with 60Hz vertical refresh rate (and other features that differ from PAL). It is mainly used in United States, Japan and certain other countries."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:843
-#: src/sid/xs_interface.c:466
+#: src/sid/xmms-sid.glade:662
+#: src/sid/xs_interface.c:438
 msgid "NTSC (60 Hz)"
 msgstr "NTSC (60 Hz)"
 
-#: src/sid/xmms-sid.glade:864
-#: src/sid/xs_interface.c:474
+#: src/sid/xmms-sid.glade:683
+#: src/sid/xs_interface.c:446
 msgid "Clock speed:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:909
-#: src/sid/xs_interface.c:495
+#: src/sid/xmms-sid.glade:728
+#: src/sid/xs_interface.c:467
 msgid "If enabled, this option \"forces\" the emulation engine to use the selected SID-chip model. Otherwise the preferred SID model is determined from the file (if PSIDv2NG type) or if not available, this setting is used."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:911
-#: src/sid/xs_interface.c:491
-#, fuzzy
+#: src/sid/xmms-sid.glade:730
+#: src/sid/xs_interface.c:463
 msgid "Force model"
-msgstr "Titelnummer:"
-
-#: src/sid/xmms-sid.glade:929
-#: src/sid/xs_interface.c:501
+msgstr "Modell erzwingen"
+
+#: src/sid/xmms-sid.glade:748
+#: src/sid/xs_interface.c:473
 msgid "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 in few ways, having much fuller filter (which, due to design error, is never same between two different SID-chips) and has the \"volume adjustment bug\", which enables playing of digital samples."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:931
-#: src/sid/xs_interface.c:497
+#: src/sid/xmms-sid.glade:750
+#: src/sid/xs_interface.c:469
 msgid "MOS 6581"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:950
-#: src/sid/xs_interface.c:505
+#: src/sid/xmms-sid.glade:769
+#: src/sid/xs_interface.c:477
 msgid "MOS 8580"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:971
-#: src/sid/xs_interface.c:512
-#, fuzzy
+#: src/sid/xmms-sid.glade:790
+#: src/sid/xs_interface.c:484
 msgid "SID model:"
-msgstr "Abspielmodus:"
-
-#: src/sid/xmms-sid.glade:1023
-#: src/sid/xs_interface.c:533
+msgstr "SID-Modell:"
+
+#: src/sid/xmms-sid.glade:842
+#: src/sid/xs_interface.c:505
 msgid "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most cases, though."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1025
-#: src/sid/xs_interface.c:529
+#: src/sid/xmms-sid.glade:844
+#: src/sid/xs_interface.c:501
 msgid "SIDPlay 1 (frame-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1044
+#: src/sid/xmms-sid.glade:863
+#: src/sid/xs_interface.c:513
+msgid "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact emulation."
+msgstr ""
+
+#: src/sid/xmms-sid.glade:865
+#: src/sid/xs_interface.c:509
+msgid "SIDPlay 2 (cycle-based)"
+msgstr "SIDPlay 2 (zyklus-basiert)"
+
+#: src/sid/xmms-sid.glade:887
+#: src/sid/xs_interface.c:517
+msgid "Emulation library selection:"
+msgstr "Auswahl der Emulations-Bibliothek:"
+
+#: src/sid/xmms-sid.glade:933
+#: src/sid/xs_interface.c:534
+msgid "Real C64 (SIDPlay 2 only)"
+msgstr "Echter C64 (nur SIDPlay 2)"
+
+#: src/sid/xmms-sid.glade:952
 #: src/sid/xs_interface.c:541
-msgid "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact emulation."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1046
-#: src/sid/xs_interface.c:537
-msgid "SIDPlay 2 (cycle-based)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1068
-#: src/sid/xs_interface.c:545
-msgid "Emulation library selection:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1114
+msgid "Bank switching"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:972
+#: src/sid/xs_interface.c:548
+msgid "Transparent ROM"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:992
+#: src/sid/xs_interface.c:555
+msgid "PlaySID environment"
+msgstr "PlaySID-Umgebung"
+
+#: src/sid/xmms-sid.glade:1013
 #: src/sid/xs_interface.c:562
-msgid "Real C64 (SIDPlay 2 only)"
-msgstr ""
+msgid "Memory mode:"
+msgstr "Speichermodus:"
+
+#: src/sid/xmms-sid.glade:1049
+#: src/sid/xs_interface.c:567
+msgid "Emu#1"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1093
+#: src/sid/xs_interface.c:594
+msgid "This setting can be used to enable libSIDPlay2's \"optimization mode\", which in downgrades the emulation from cycle-exact to something similar to frame-exact. The result is lower CPU usage, but worse accuracy."
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1095
+#: src/sid/xs_interface.c:590
+msgid "Optimization mode (faster, inaccurate)"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1113
+#: src/sid/xs_interface.c:600
+msgid "reSID is the software SID-chip simulator based on SID reverse-engineering, created by Dag Lem. It is probably the closest thing to real SID available as software-only emulation."
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1115
+#: src/sid/xs_interface.c:596
+msgid "reSID-emulation"
+msgstr "reSID-Emulation"
 
 #: src/sid/xmms-sid.glade:1133
-#: src/sid/xs_interface.c:569
-msgid "Bank switching"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1153
-#: src/sid/xs_interface.c:576
-msgid "Transparent ROM"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1173
-#: src/sid/xs_interface.c:583
-msgid "PlaySID environment"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1194
-#: src/sid/xs_interface.c:590
-#, fuzzy
-msgid "Memory mode:"
-msgstr "Abspielmodus:"
-
-#: src/sid/xmms-sid.glade:1230
-#: src/sid/xs_interface.c:595
-msgid "Emu#1"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1274
-#: src/sid/xs_interface.c:622
-msgid "This setting can be used to enable libSIDPlay2's \"optimization mode\", which in downgrades the emulation from cycle-exact to something similar to frame-exact. The result is lower CPU usage, but worse accuracy."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1276
-#: src/sid/xs_interface.c:618
-msgid "Optimization mode (faster, inaccurate)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1294
-#: src/sid/xs_interface.c:628
-msgid "reSID is the software SID-chip simulator based on SID reverse-engineering, created by Dag Lem. It is probably the closest thing to real SID available as software-only emulation."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1296
-#: src/sid/xs_interface.c:624
-msgid "reSID-emulation"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1314
-#: src/sid/xs_interface.c:636
+#: src/sid/xs_interface.c:608
 msgid "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a real SID-chip. Software can be used to control the HardSID and combined with software emulation of rest of C64 via libSIDPlay2 HardSID can be used to achieve \"near 100%\" similarity to real C64. For more information, see http://www.hardsid.com/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1316
-#: src/sid/xs_interface.c:632
+#: src/sid/xmms-sid.glade:1135
+#: src/sid/xs_interface.c:604
 msgid "HardSID"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1337
-#: src/sid/xs_interface.c:640
+msgstr "HardSID"
+
+#: src/sid/xmms-sid.glade:1156
+#: src/sid/xs_interface.c:612
 msgid "SIDPlay 2 options:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1382
-#: src/sid/xs_interface.c:661
+msgstr "SIDPlay 2-Optionen:"
+
+#: src/sid/xmms-sid.glade:1201
+#: src/sid/xs_interface.c:633
 msgid "Fastest and also worst sounding sampling method, simply picks nearest neighbouring sample."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1384
-#: src/sid/xs_interface.c:657
+#: src/sid/xmms-sid.glade:1203
+#: src/sid/xs_interface.c:629
 msgid "Fast (nearest neighbour)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1402
-#: src/sid/xs_interface.c:669
+#: src/sid/xmms-sid.glade:1221
+#: src/sid/xs_interface.c:641
 msgid "Uses linear interpolation between samples, yielding higher audio quality with less sampling noise."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1404
-#: src/sid/xs_interface.c:665
+#: src/sid/xmms-sid.glade:1223
+#: src/sid/xs_interface.c:637
 msgid "Linear interpolation"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1444
-#: src/sid/xs_interface.c:680
+msgstr "Lineare Interpolation"
+
+#: src/sid/xmms-sid.glade:1263
+#: src/sid/xs_interface.c:652
 msgid "Resampling (FIR)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1465
-#: src/sid/xs_interface.c:687
+msgstr "Resampling (FIR)"
+
+#: src/sid/xmms-sid.glade:1284
+#: src/sid/xs_interface.c:659
 msgid "reSID sampling options:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1501
-#: src/sid/xs_interface.c:692
+msgstr "reSID-Sampling-Optionen:"
+
+#: src/sid/xmms-sid.glade:1320
+#: src/sid/xs_interface.c:664
 msgid "Emu#2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1531
-#: src/sid/xs_interface.c:708
+#: src/sid/xmms-sid.glade:1350
+#: src/sid/xs_interface.c:680
 msgid "This option enables emulation of SID filter. The filter is an essential part of SID's sound capacity, but accurate emulation of it may require quite much CPU power. However, if filter emulation is disabled, tunes won't sound authentic at all if they utilize the filter."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1533
-#: src/sid/xs_interface.c:704
+#: src/sid/xmms-sid.glade:1352
+#: src/sid/xs_interface.c:676
 msgid "Emulate filters"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1590
-#: src/sid/xs_interface.c:733
+msgstr "Filter emulieren"
+
+#: src/sid/xmms-sid.glade:1409
+#: src/sid/xs_interface.c:705
 msgid "FS"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1641
-#: src/sid/xs_interface.c:750
+#: src/sid/xmms-sid.glade:1460
+#: src/sid/xs_interface.c:722
 msgid "FM"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1692
-#: src/sid/xs_interface.c:767
+#: src/sid/xmms-sid.glade:1511
+#: src/sid/xs_interface.c:739
 msgid "FT"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1730
-#: src/sid/xs_interface.c:778
+#: src/sid/xmms-sid.glade:1549
+#: src/sid/xs_interface.c:750
 msgid "Reset values"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1759
-#: src/sid/xs_interface.c:783
+msgstr "Werte zurücksetzen"
+
+#: src/sid/xmms-sid.glade:1578
+#: src/sid/xs_interface.c:755
 msgid "SIDPlay1"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1828
-#: src/sid/xs_interface.c:807
-msgid "6581 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1854
-#: src/sid/xs_interface.c:808
-msgid "8580 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1880
-#: src/sid/xs_interface.c:809
-msgid "6581R1 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1906
-#: src/sid/xs_interface.c:810
-msgid "6581R4 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1975
-#: src/sid/xs_interface.c:827
-msgid "Load"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2017
-#: src/sid/xs_interface.c:843
+msgstr "SIDPlay1"
+
+#: src/sid/xmms-sid.glade:1690
+#: src/sid/xs_interface.c:796
+msgid "Export"
+msgstr "Exportieren"
+
+#: src/sid/xmms-sid.glade:1711
+#: src/sid/xs_interface.c:804
+msgid "Use"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1753
+#: src/sid/xs_interface.c:820
 msgid "Import"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2038
-#: src/sid/xs_interface.c:851
-msgid "Export"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2083
-#: src/sid/xs_interface.c:865
-#, fuzzy
+msgstr "Importieren"
+
+#: src/sid/xmms-sid.glade:1774
+#: src/sid/xs_interface.c:828
+msgid "Delete"
+msgstr "Löschen"
+
+#: src/sid/xmms-sid.glade:1819
+#: src/sid/xs_interface.c:842
 msgid "Filter curve:"
-msgstr "Dateigrösse:"
-
-#: src/sid/xmms-sid.glade:2119
-#: src/sid/xs_interface.c:870
+msgstr "Filterkurve:"
+
+#: src/sid/xmms-sid.glade:1855
+#: src/sid/xs_interface.c:847
 msgid "SIDPlay2"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2155
-#: src/sid/xs_interface.c:876
+msgstr "SIDPlay2"
+
+#: src/sid/xmms-sid.glade:1891
+#: src/sid/xs_interface.c:853
 msgid "Filters"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2199
-#: src/sid/xs_interface.c:903
+msgstr "Filter"
+
+#: src/sid/xmms-sid.glade:1935
+#: src/sid/xs_interface.c:880
 msgid "If enabled, the tune is played at least for the specified time, adding silence to the end if necessary."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2201
-#: src/sid/xs_interface.c:899
+msgstr "Wenn aktiviert, wird das Stück mindestens für die angegebene Zeit abgespielt, wobei nötigenfalls Stille zum Ende hinzugefügt wird."
+
+#: src/sid/xmms-sid.glade:1937
+#: src/sid/xs_interface.c:876
 msgid "Play at least for specified time"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2226
-#: src/sid/xmms-sid.glade:2397
-#: src/sid/xmms-sid.glade:3364
-#: src/sid/xs_interface.c:910
-#: src/sid/xs_interface.c:964
-#: src/sid/xs_interface.c:1276
-#, fuzzy
+msgstr "Mindestens für die angegebene Zeit spielen"
+
+#: src/sid/xmms-sid.glade:1962
+#: src/sid/xmms-sid.glade:2133
+#: src/sid/xmms-sid.glade:2482
+#: src/sid/xs_interface.c:887
+#: src/sid/xs_interface.c:941
+#: src/sid/xs_interface.c:1051
 msgid "Playtime:"
-msgstr "Abspielmodus:"
-
-#: src/sid/xmms-sid.glade:2305
-#: src/sid/xs_interface.c:930
+msgstr "Spielzeit:"
+
+#: src/sid/xmms-sid.glade:2041
+#: src/sid/xs_interface.c:907
 msgid "Minimum playtime:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2350
-#: src/sid/xs_interface.c:951
+msgstr "Minimale Spielzeit:"
+
+#: src/sid/xmms-sid.glade:2086
+#: src/sid/xs_interface.c:928
 msgid "If enabled, tune is played until specified duration is reached (aka maximum playtime)."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2352
-#: src/sid/xs_interface.c:947
+#: src/sid/xmms-sid.glade:2088
+#: src/sid/xs_interface.c:924
 msgid "Play for specified time maximum"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2371
-#: src/sid/xs_interface.c:957
+#: src/sid/xmms-sid.glade:2107
+#: src/sid/xs_interface.c:934
 msgid "If enabled, the maximum playtime is applied only if song/tune length is not known."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2373
-#: src/sid/xs_interface.c:953
+#: src/sid/xmms-sid.glade:2109
+#: src/sid/xs_interface.c:930
 msgid "Only when song length is unknown"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2476
-#: src/sid/xs_interface.c:984
+#: src/sid/xmms-sid.glade:2212
+#: src/sid/xs_interface.c:961
 msgid "Maximum playtime:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2521
-#: src/sid/xs_interface.c:1005
+msgstr "Maximale Spielzeit:"
+
+#: src/sid/xmms-sid.glade:2257
+#: src/sid/xs_interface.c:982
 msgid "This option enables using of XSIDPLAY compatible song length database. (Refer to Audacious-SID documentation for more information)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2523
-#: src/sid/xs_interface.c:1001
+#: src/sid/xmms-sid.glade:2259
+#: src/sid/xs_interface.c:978
 msgid "Use XSIDPLAY-compatible database"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2548
-#: src/sid/xs_interface.c:1012
-#, fuzzy
+msgstr "XSIDPLAY-kompatible Datenbank benützen"
+
+#: src/sid/xmms-sid.glade:2284
+#: src/sid/xs_interface.c:989
 msgid "DB-file:"
-msgstr "Gerät:"
-
-#: src/sid/xmms-sid.glade:2573
-#: src/sid/xs_interface.c:1022
+msgstr "DB-Datei:"
+
+#: src/sid/xmms-sid.glade:2309
+#: src/sid/xs_interface.c:999
 msgid "Database path and filename"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2593
-#: src/sid/xs_interface.c:1028
+msgstr "Datenbankpfad und -dateiname"
+
+#: src/sid/xmms-sid.glade:2329
+#: src/sid/xs_interface.c:1006
 msgid "Browse for song length-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2620
-#: src/sid/xs_interface.c:1030
+#: src/sid/xmms-sid.glade:2356
+#: src/sid/xs_interface.c:1008
 msgid "Song length database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2656
-#: src/sid/xs_interface.c:1035
+#: src/sid/xmms-sid.glade:2392
+#: src/sid/xs_interface.c:1013
 msgid "Songlength"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2700
-#: src/sid/xs_interface.c:1062
+#: src/sid/xmms-sid.glade:2437
+#: src/sid/xs_interface.c:1036
+msgid "Add sub-tunes to playlist"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2457
+#: src/sid/xs_interface.c:1041
+msgid "Only tunes with specified minimum length "
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2560
+#: src/sid/xs_interface.c:1071
+#, fuzzy
+msgid "Sub-tune handling:"
+msgstr "Lautstärkesteuerung:"
+
+#: src/sid/xmms-sid.glade:2605
+#: src/sid/xs_interface.c:1092
 msgid "If this option is enabled (and the database & HVSC settings below are correctly set), Audacious-SID will use and display additional information from STIL database when HVSC SIDs are played."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2702
-#: src/sid/xs_interface.c:1058
+#: src/sid/xmms-sid.glade:2607
+#: src/sid/xs_interface.c:1088
 msgid "Use STIL database"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2727
-#: src/sid/xs_interface.c:1069
-#, fuzzy
+msgstr "STIL-Datenbank verwenden"
+
+#: src/sid/xmms-sid.glade:2632
+#: src/sid/xs_interface.c:1099
 msgid "STIL file:"
-msgstr "Titel:"
-
-#: src/sid/xmms-sid.glade:2764
-#: src/sid/xs_interface.c:1085
+msgstr "STIL-Datei:"
+
+#: src/sid/xmms-sid.glade:2669
+#: src/sid/xs_interface.c:1115
 msgid "Path and filename of STIL database file (STIL.txt), usually found from HVSC's DOCUMENTS-subdirectory."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2799
-#: src/sid/xs_interface.c:1097
+msgstr "Pfad und Dateiname der STIL-Datenbank-Datei (STIL.txt), üblicherweise im HVSC-DOCUMENTS-Unterverzeichnis."
+
+#: src/sid/xmms-sid.glade:2704
+#: src/sid/xs_interface.c:1128
 msgid "Browse for STIL-database file"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2833
-#: src/sid/xs_interface.c:1104
+msgstr "Nach STIL-Datenbank-Datei suchen"
+
+#: src/sid/xmms-sid.glade:2738
+#: src/sid/xs_interface.c:1135
 msgid "HVSC path:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2870
-#: src/sid/xs_interface.c:1120
-msgid "Path to base-directory of your High Voltage SID Collection (HVSC), for example /media/C64Music/"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2905
-#: src/sid/xs_interface.c:1132
-msgid "Browse for HVSC path"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2935
-#: src/sid/xs_interface.c:1134
-msgid "SID Tune Information List (STIL) database:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2980
-#: src/sid/xs_interface.c:1155
-msgid "XMMS v1.2.5 and later support generic titlestring formatting (see XMMS preferences). This option can be enabled to override those generic titles with Audacious-SID specific ones. Formatting mnemonics are explained briefly below."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2982
+msgstr "HVSC-Pfad:"
+
+#: src/sid/xmms-sid.glade:2775
 #: src/sid/xs_interface.c:1151
-msgid "Override generic XMMS titles"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3032
-#: src/sid/xs_interface.c:1172
-msgid ""
-"%% - '%' character\n"
-"%p - Performer/composer\n"
-"%t - Song name (title)\n"
-"%c - Copyright\n"
-"%s - File type\n"
-"%m - SID model"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3062
-#: src/sid/xs_interface.c:1178
-msgid ""
-"%C - Speed/clock (PAL/NTSC)\n"
-"%n - Subtune\n"
-"%N - Number of subtunes\n"
-"%f - Filename\n"
-"%F - File path\n"
-"%e - File extension"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3108
-#: src/sid/xs_interface.c:1184
-msgid "Song name/title format:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3188
-#: src/sid/xs_interface.c:1216
-#, fuzzy
-msgid "No sub-tune control."
-msgstr "Lautstärkesteuerung:"
-
-#: src/sid/xmms-sid.glade:3190
-#: src/sid/xs_interface.c:1212
-msgid "Disabled"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3208
-#: src/sid/xs_interface.c:1224
-msgid "Seeking backwards/forwards selects previous/next sub-tune, similar to selector used in XMMS-SidPlay."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3210
-#: src/sid/xs_interface.c:1220
-msgid "Seek back/forward changes sub-tune"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3229
-#: src/sid/xs_interface.c:1232
-msgid "By pressing the seekbar a sub-tune control window pops up, in style of UADE (Unix Amiga Delitracker Emulator)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3231
-#: src/sid/xs_interface.c:1228
-msgid "Pop-up via seekbar (UADE-style)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3250
-#: src/sid/xs_interface.c:1240
-msgid "Seekbar works as a sub-tune selector (Best option if you have patched your XMMS with the song-position patch.)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3252
-#: src/sid/xs_interface.c:1236
-msgid "Song-position patch"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3273
-#: src/sid/xs_interface.c:1244
-#, fuzzy
-msgid "Sub-tune control:"
-msgstr "Lautstärkesteuerung:"
-
-#: src/sid/xmms-sid.glade:3319
-#: src/sid/xs_interface.c:1261
-msgid "Go through all sub-tunes in file"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3339
-#: src/sid/xs_interface.c:1266
-msgid "Only tunes with specified minimum length "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3442
-#: src/sid/xs_interface.c:1296
-msgid "Automatic sub-tune changes:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3487
-#: src/sid/xs_interface.c:1317
-msgid "Determine if file is a SID-tune by checking the file contents. If NOT selected, filetype is determined by checking filename extension (.sid, .dat, ...)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3489
-#: src/sid/xs_interface.c:1313
-msgid "Detect file by contents (slower)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3509
-#: src/sid/xs_interface.c:1319
-msgid "Miscellaneous options:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3582
-#: src/sid/xs_interface.c:1343
+msgid "Path to base-directory of your High Voltage SID Collection (HVSC), for example /media/C64Music/"
+msgstr "Pfad zum Basis-Verzeichnis der High Voltage SID Collection (HVSC), zum Beispiel /media/C64Music/"
+
+#: src/sid/xmms-sid.glade:2810
+#: src/sid/xs_interface.c:1164
+msgid "Browse for HVSC path"
+msgstr "Nach HVSC-Pfad suchen"
+
+#: src/sid/xmms-sid.glade:2840
+#: src/sid/xs_interface.c:1166
+msgid "SID Tune Information List (STIL) database:"
+msgstr "SID Tune Information List (STIL)-Datenbank:"
+
+#: src/sid/xmms-sid.glade:2913
+#: src/sid/xs_interface.c:1190
 msgid "Accept and update changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3596
-#: src/sid/xs_interface.c:1350
+#: src/sid/xmms-sid.glade:2927
+#: src/sid/xs_interface.c:1197
 msgid "Cancel any changes"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3620
-#: src/sid/xs_interface.c:1651
-#, fuzzy
+msgstr "Alle Änderungen verwerfen"
+
+#: src/sid/xmms-sid.glade:2952
+#: src/sid/xs_interface.c:1474
 msgid "Audacious-SID Fileinfo"
-msgstr "%s - Audacious"
-
-#: src/sid/xmms-sid.glade:3674
-#: src/sid/xs_interface.c:1677
-msgid " < "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3710
-#: src/sid/xs_interface.c:1689
-msgid " > "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3783
-#: src/sid/xs_interface.c:1716
+msgstr "Audacious-SID-Dateiinformation"
+
+#: src/sid/xmms-sid.glade:3022
+#: src/sid/xs_interface.c:1503
 msgid "Songname:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3811
-#: src/sid/xs_interface.c:1724
+msgstr "Titel:"
+
+#: src/sid/xmms-sid.glade:3050
+#: src/sid/xs_interface.c:1511
 msgid "Composer:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3839
-#: src/sid/xs_interface.c:1732
+msgstr "Komponist:"
+
+#: src/sid/xmms-sid.glade:3078
+#: src/sid/xs_interface.c:1519
 #: src/vorbis/fileinfo.c:723
 msgid "Copyright:"
 msgstr "Copyright:"
 
-#: src/sid/xmms-sid.glade:3953
-#: src/sid/xs_interface.c:1772
-#, fuzzy
+#: src/sid/xmms-sid.glade:3192
+#: src/sid/xs_interface.c:1563
 msgid "Song Information:"
-msgstr "Ort:"
-
-#: src/sid/xmms-sid.glade:4008
-#: src/sid/xs_interface.c:1797
-msgid " "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4035
-#: src/sid/xs_interface.c:1812
+msgstr "Titel-Information:"
+
+#: src/sid/xmms-sid.glade:3266
+#: src/sid/xs_interface.c:1598
 msgid "Author:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4133
-#: src/sid/xs_interface.c:1844
+msgstr "Autor:"
+
+#: src/sid/xmms-sid.glade:3364
+#: src/sid/xs_interface.c:1632
 msgid "Duration:"
 msgstr "Länge:"
 
-#: src/sid/xmms-sid.glade:4227
-#: src/sid/xs_interface.c:1877
+#: src/sid/xmms-sid.glade:3458
+#: src/sid/xs_interface.c:1666
 #, fuzzy
 msgid "Sub-tune Information:"
 msgstr "Ort:"
 
-#: src/sid/xmms-sid.glade:4281
-#: src/sid/xs_interface.c:1951
+#: src/sid/xmms-sid.glade:3512
+#: src/sid/xs_interface.c:1727
 msgid "Select HVSC song length database"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4322
-#: src/sid/xs_interface.c:1989
-msgid "Select STIL-database "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4363
-#: src/sid/xs_interface.c:2027
+msgstr "HVSC-Titellängendatenbank auswählen"
+
+#: src/sid/xmms-sid.glade:3554
+#: src/sid/xs_interface.c:1768
+msgid "Select STIL-database"
+msgstr "STIL-Datenbank auswählen"
+
+#: src/sid/xmms-sid.glade:3596
+#: src/sid/xs_interface.c:1809
 msgid "Select HVSC location prefix"
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:315
+#: src/sid/xmms-sid.glade:3638
+#: src/sid/xs_interface.c:1850
+msgid "Select SIDPlay2 filters file for importing"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3680
+#: src/sid/xs_interface.c:1891
+msgid "Select SIDPlay2 filters file for exporting"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3721
+#: src/sid/xmms-sid.glade:3803
+#: src/sid/xs_interface.c:1939
+#: src/sid/xs_interface.c:1952
+msgid "Confirm selected action"
+msgstr "Gewählte Aktion bestätigen"
+
+#: src/sid/xmms-sid.glade:3759
+#: src/sid/xs_interface.c:1969
+msgid "Yes"
+msgstr "Ja"
+
+#: src/sid/xmms-sid.glade:3771
+#: src/sid/xs_interface.c:1975
+msgid "No"
+msgstr "Nein"
+
+#: src/sid/xs_fileinfo.c:238
 msgid "General info"
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:325
+#: src/sid/xs_fileinfo.c:248
 #, c-format
 msgid "Tune #%i: "
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:336
+#: src/sid/xs_fileinfo.c:259
 #, c-format
 msgid "Tune #%i"
 msgstr ""
@@ -4186,32 +4082,32 @@
 msgid "Could not open SongLengthDB '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:225
+#: src/sid/xs_length.c:224
 #, c-format
 msgid "Invalid MD5-hash in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:232
+#: src/sid/xs_length.c:231
 #, c-format
 msgid "Invalid entry in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:237
+#: src/sid/xs_length.c:236
 #, c-format
 msgid "Invalid line in SongLengthDB file '%s' line #%d\n"
 msgstr ""
 
-#: src/sid/xs_length.c:399
+#: src/sid/xs_length.c:398
 #, c-format
 msgid "Not a PSID or RSID file '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:418
+#: src/sid/xs_length.c:417
 #, c-format
 msgid "Error reading SID file header from '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:437
+#: src/sid/xs_length.c:436
 #, c-format
 msgid "Error allocating temp data buffer for file '%s'\n"
 msgstr ""
@@ -4244,72 +4140,77 @@
 msgid "[SIDPlay2] Could not initialize emulation engine.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:224
+#: src/sid/xs_sidplay2.cc:208
+#, c-format
+msgid "[SIDPlay2] Invalid number of filter curve points (%d > %d)\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:229
 msgid "reSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:230
+#: src/sid/xs_sidplay2.cc:235
 #, c-format
 msgid "reSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:238
+#: src/sid/xs_sidplay2.cc:243
 #, c-format
 msgid "reSID->sampling(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:248
+#: src/sid/xs_sidplay2.cc:253
 msgid "reSID->filter(NULL) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:262
+#: src/sid/xs_sidplay2.cc:267
 msgid "hardSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:268
+#: src/sid/xs_sidplay2.cc:273
 #, c-format
 msgid "hardSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:276
+#: src/sid/xs_sidplay2.cc:281
 msgid "[SIDPlay2] Could not initialize SIDBuilder object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:290
+#: src/sid/xs_sidplay2.cc:295
 #, c-format
 msgid "[SIDPlay2] Invalid clockSpeed=%d, falling back to PAL.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:314
+#: src/sid/xs_sidplay2.cc:319
 #, c-format
 msgid "Invalid sid2OptLevel=%d, falling back to %d.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:338
+#: src/sid/xs_sidplay2.cc:343
 msgid "[SIDPlay2] Emulator engine configuration failed!\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:345
+#: src/sid/xs_sidplay2.cc:350
 msgid "[SIDPlay2] Could not initialize SIDTune object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:396
-msgid "[SIDPlay2] currTune->selectSong() failed\n"
-msgstr ""
-
 #: src/sid/xs_sidplay2.cc:401
+msgid "[SIDPlay2] currTune->selectSong() failed\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:406
 msgid "[SIDPlay2] currEng->load() failed\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:44
+#: src/sid/xs_stil.c:46
 msgid "SubTune pointer structure realloc failed.\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:61
+#: src/sid/xs_stil.c:69
 msgid "SubTune structure malloc failed!\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:168
+#: src/sid/xs_stil.c:176
 #, c-format
 msgid "Could not open STILDB '%s'\n"
 msgstr ""
@@ -4331,9 +4232,8 @@
 msgstr ""
 
 #: src/sndstretch/sndstretch_xmms.c:379
-#, fuzzy
 msgid "Pitch"
-msgstr "Pfad:"
+msgstr "Tonhöhe"
 
 #: src/sndstretch/sndstretch_xmms.c:380
 msgid "Scale"
@@ -4345,11 +4245,11 @@
 
 #: src/song_change/song_change.c:349
 msgid "Commands"
-msgstr ""
+msgstr "Befehle"
 
 #: src/song_change/song_change.c:356
 msgid "Command to run when Audacious starts a new song."
-msgstr ""
+msgstr "Auszuführender Befehl, wenn Audacious ein neues Lied startet."
 
 #: src/song_change/song_change.c:365
 #: src/song_change/song_change.c:387
@@ -4360,7 +4260,7 @@
 
 #: src/song_change/song_change.c:379
 msgid "Command to run toward the end of a song."
-msgstr ""
+msgstr "Auszuführender Befehl am Ende eines Lieds"
 
 #: src/song_change/song_change.c:399
 msgid "Command to run when Audacious reaches the end of the playlist."
@@ -4401,7 +4301,7 @@
 
 #: src/statusicon/gtktrayicon-x11.c:134
 msgid "The orientation of the tray"
-msgstr ""
+msgstr "Die Ausrichtung des Trays"
 
 #: src/statusicon/si_ui.c:571
 msgid "About Status Icon Plugin"
@@ -4415,6 +4315,11 @@
 "This plugin provides a status icon, placed in\n"
 "the system tray area of the window manager.\n"
 msgstr ""
+"\n"
+"geschrieben von Giacomo Lozito < james@develia.org >\n"
+"\n"
+"Dieses Plugin stellt ein Status-Icon bereit, im\n"
+"System-Tray des Fenstermanagers.\n"
 
 #: src/statusicon/si_ui.c:645
 msgid "Status Icon Plugin - Preferences"
@@ -4422,31 +4327,31 @@
 
 #: src/statusicon/si_ui.c:656
 msgid "Right-Click Menu"
-msgstr ""
+msgstr "Rechtsklick-Menü"
 
 #: src/statusicon/si_ui.c:661
 msgid "Audacious standard menu"
-msgstr ""
+msgstr "Audacious-Standard-Menü"
 
 #: src/statusicon/si_ui.c:666
 msgid "Small playback menu #1"
-msgstr ""
+msgstr "Kleines Wiedergabe-Menü #1"
 
 #: src/statusicon/si_ui.c:671
 msgid "Small playback menu #2"
-msgstr ""
+msgstr "Kleines Wiedergabe-Menü #2"
 
 #: src/statusicon/si_ui.c:694
 msgid "Mouse Scroll Action"
-msgstr ""
+msgstr "Maus-Scroll-Aktion"
 
 #: src/statusicon/si_ui.c:699
 msgid "Change volume"
-msgstr ""
+msgstr "Lautstärke ändern"
 
 #: src/statusicon/si_ui.c:704
 msgid "Change playing song"
-msgstr ""
+msgstr "Aktiven Titel ändern"
 
 #: src/stereo_plugin/stereo.c:29
 msgid ""
@@ -4454,14 +4359,17 @@
 "\n"
 "By Johan Levin 1999."
 msgstr ""
+"Extra Stereo Plugin\n"
+"\n"
+"Von Johan Levin 1999."
 
 #: src/stereo_plugin/stereo.c:55
 msgid "About Extra Stereo Plugin"
-msgstr ""
+msgstr "Ãœber das Extra Stereo Plugin"
 
 #: src/stereo_plugin/stereo.c:96
 msgid "Configure Extra Stereo"
-msgstr ""
+msgstr "Extra Stereo konfigurieren"
 
 #: src/stereo_plugin/stereo.c:98
 msgid "Effect intensity:"
@@ -4469,7 +4377,7 @@
 
 #: src/sun/about.c:34
 msgid "About the Sun Driver"
-msgstr ""
+msgstr "Ãœber den Sun-Treiber"
 
 #: src/sun/about.c:35
 msgid ""
@@ -4478,22 +4386,26 @@
 "Copyright (c) 2001 CubeSoft Communications, Inc.\n"
 "Maintainer: <vedge at csoft.org>.\n"
 msgstr ""
+"XMMS BSD Sun Driver\n"
+"\n"
+"Copyright (c) 2001 CubeSoft Communications, Inc.\n"
+"Betreuer: <vedge at csoft.org>.\n"
 
 #: src/sun/configure.c:201
 msgid "Audio control device:"
-msgstr ""
+msgstr "Audio-Kontroll-Gerät:"
 
 #: src/sun/configure.c:350
 msgid "Volume controls device:"
-msgstr ""
+msgstr "Lautstärke-Kontroll-Gerät:"
 
 #: src/sun/configure.c:363
 msgid "XMMS uses mixer exclusively."
-msgstr ""
+msgstr "XMMS benützt den Mixer exklusiv."
 
 #: src/sun/configure.c:538
 msgid "Sun driver configuration"
-msgstr ""
+msgstr "Sun-Treiber-Konfiguration"
 
 #: src/timidity/src/interface.c:56
 msgid "TiMidity Configuration"
@@ -4547,11 +4459,16 @@
 "To use it, add a URL: tone://frequency1;frequency2;frequency3;...\n"
 "e.g. tone://2000;2005 to play a 2000Hz tone and a 2005Hz tone"
 msgstr ""
+"Sinuston-Generator von Haavard Kvaalen <havardk@xmms.org>\n"
+"Verändert von Daniel J. Peng <danielpeng@bigfoot.com>\n"
+"\n"
+"Um ihn zu benützen, eine URL hinzufügen: tone://frequency1;frequency2;frequency3;...\n"
+"z.B. tone://2000;2005 für einen Ton mit 2000Hz und einen mit 2005Hz"
 
 #: src/tonegen/tonegen.c:170
 #, c-format
 msgid "%s %.1f Hz"
-msgstr ""
+msgstr "%s %.1f Hz"
 
 #: src/tonegen/tonegen.c:170
 msgid "Tone Generator: "
@@ -4559,23 +4476,23 @@
 
 #: src/tta/libtta.c:148
 msgid "Can't open file\n"
-msgstr ""
+msgstr "Kann Datei nicht öffnen\n"
 
 #: src/tta/libtta.c:151
 msgid "Not supported file format\n"
-msgstr ""
+msgstr "Kein unterstütztes Dateiformat\n"
 
 #: src/tta/libtta.c:154
 msgid "File is corrupted\n"
-msgstr ""
+msgstr "Datei ist beschädigt\n"
 
 #: src/tta/libtta.c:157
 msgid "Can't read from file\n"
-msgstr ""
+msgstr "Kann nicht von Datei lesen\n"
 
 #: src/tta/libtta.c:160
 msgid "Insufficient memory available\n"
-msgstr ""
+msgstr "Zu wenig Speicher verfügbar\n"
 
 #: src/tta/libtta.c:163
 msgid "Output plugin error\n"
@@ -4583,11 +4500,11 @@
 
 #: src/tta/libtta.c:166
 msgid "Unknown error\n"
-msgstr ""
+msgstr "Unbekannter Fehler\n"
 
 #: src/tta/libtta.c:170
 msgid "TTA Decoder Error"
-msgstr ""
+msgstr "TTA-Dekoder-Fehler"
 
 #: src/tta/libtta.c:279
 msgid "TTA input plugin "
@@ -4598,6 +4515,8 @@
 " for BMP\n"
 "Copyright (c) 2004 True Audio Software\n"
 msgstr ""
+" für BMP\n"
+"Copyright (c) 2004 True Audio Software\n"
 
 #: src/tta/libtta.c:283
 msgid "About True Audio Plugin"
@@ -4609,25 +4528,25 @@
 
 #: src/vorbis/configure.c:117
 msgid "Ogg Vorbis Audio Plugin Configuration"
-msgstr ""
+msgstr "Ogg-Vorbis-Audio-Plugin-Konfiguration"
 
 #: src/vorbis/configure.c:129
 msgid "Ogg Vorbis Tags:"
-msgstr ""
+msgstr "Ogg-Vorbis-Tags:"
 
 #: src/vorbis/configure.c:150
 msgid "Title format:"
-msgstr ""
+msgstr "Titelformat:"
 
 #: src/vorbis/configure.c:164
 #: src/wavpack/ui.cxx:500
 msgid "ReplayGain Settings:"
-msgstr ""
+msgstr "ReplayGain-Einstellungen:"
 
 #: src/vorbis/configure.c:182
 #: src/wavpack/ui.cxx:518
 msgid "ReplayGain Type:"
-msgstr ""
+msgstr "ReplayGain-Typ:"
 
 #: src/vorbis/configure.c:193
 #: src/wavpack/ui.cxx:529
@@ -4965,15 +4884,15 @@
 
 #: src/vorbis/fileinfo.c:104
 msgid "Folk"
-msgstr ""
+msgstr "Folk"
 
 #: src/vorbis/fileinfo.c:105
 msgid "Folk/Rock"
-msgstr ""
+msgstr "Folk/Rock"
 
 #: src/vorbis/fileinfo.c:105
 msgid "National Folk"
-msgstr ""
+msgstr "National Folk"
 
 #: src/vorbis/fileinfo.c:105
 msgid "Swing"
@@ -4993,7 +4912,7 @@
 
 #: src/vorbis/fileinfo.c:106
 msgid "Revival"
-msgstr ""
+msgstr "Revival"
 
 #: src/vorbis/fileinfo.c:107
 msgid "Celtic"
@@ -5033,7 +4952,7 @@
 
 #: src/vorbis/fileinfo.c:110
 msgid "Chorus"
-msgstr ""
+msgstr "Chor"
 
 #: src/vorbis/fileinfo.c:110
 msgid "Easy Listening"
@@ -5041,7 +4960,7 @@
 
 #: src/vorbis/fileinfo.c:111
 msgid "Acoustic"
-msgstr ""
+msgstr "Acoustic"
 
 #: src/vorbis/fileinfo.c:111
 msgid "Humour"
@@ -5344,7 +5263,7 @@
 #: src/vorbis/fileinfo.c:961
 #, c-format
 msgid "%d KBit/s (nominal)"
-msgstr ""
+msgstr "%d KBit/s (nominell)"
 
 #: src/vorbis/fileinfo.c:963
 #, c-format
@@ -5390,7 +5309,7 @@
 
 #: src/vtx/about.c:22
 msgid "About Vortex Player"
-msgstr ""
+msgstr "Ãœber den Vortex-Player"
 
 #: src/vtx/about.c:24
 msgid ""
@@ -5415,14 +5334,18 @@
 "Some of the plugin code was by Miles Egan\n"
 "Visit the Wavpack site at http://www.wavpack.com/\n"
 msgstr ""
+"Copyright (c) 2006 William Pitcock <nenolod -at- nenolod.net>\n"
+"\n"
+"Ein Teil des Plugin-Codes war von Miles Egan\n"
+"Die Wavpack-Seite befindet sich auf http://www.wavpack.com/\n"
 
 #: src/wavpack/ui.cxx:163
 msgid "Ape2 Tag"
-msgstr ""
+msgstr "Ape2-Tag"
 
 #: src/wavpack/ui.cxx:286
 msgid "Wavpack Info:"
-msgstr ""
+msgstr "Wavpack-Information:"
 
 #: src/wavpack/ui.cxx:379
 #, c-format
@@ -5432,7 +5355,7 @@
 #: src/wavpack/ui.cxx:380
 #, c-format
 msgid "average bitrate: %6.1f kbps"
-msgstr ""
+msgstr "durchschnittliche Bitrate: %6.1f kbps"
 
 #: src/wavpack/ui.cxx:381
 #, c-format
@@ -5460,24 +5383,20 @@
 msgstr "Dateigrösse: %d Byte"
 
 #: src/wavpack/ui.cxx:392
-#, fuzzy
 msgid "Title Peak: ?"
-msgstr "Titel:"
+msgstr "Titel-Höchstwert: ?"
 
 #: src/wavpack/ui.cxx:393
-#, fuzzy
 msgid "Album Peak: ?"
-msgstr "Album:"
+msgstr "Album-Höchstwert: ?"
 
 #: src/wavpack/ui.cxx:394
-#, fuzzy
 msgid "Title Gain: ?"
-msgstr "Titel:"
+msgstr "Titel-Verstärkung: ?"
 
 #: src/wavpack/ui.cxx:395
-#, fuzzy
 msgid "Album Gain: ?"
-msgstr "Album:"
+msgstr "Album-Verstärkung: ?"
 
 #: src/wavpack/ui.cxx:469
 msgid "Wavpack Configuration"
@@ -5489,7 +5408,7 @@
 
 #: src/wav/wav-sndfile.c:549
 msgid "About sndfile WAV support"
-msgstr ""
+msgstr "Über die sndfile-WAV-Unterstützung"
 
 #: src/wav/wav-sndfile.c:550
 msgid ""
@@ -5516,7 +5435,7 @@
 
 #: src/wav/wav-sndfile.c:574
 msgid "sndfile WAV plugin"
-msgstr ""
+msgstr "sndfile-WAV-Plugin"
 
 #: src/wma/wma.c:143
 #, c-format
@@ -5524,6 +5443,16 @@
 msgstr "Ãœber %s"
 
 #, fuzzy
+#~ msgid "Subtune Control"
+#~ msgstr "Lautstärkesteuerung:"
+#~ msgid "Load"
+#~ msgstr "Laden"
+
+#, fuzzy
+#~ msgid "No sub-tune control."
+#~ msgstr "Lautstärkesteuerung:"
+
+#, fuzzy
 #~ msgid "12000"
 #~ msgstr "11000 Hz"
 
--- a/po/ja.po	Thu Sep 13 12:09:38 2007 -0500
+++ b/po/ja.po	Thu Sep 13 12:10:39 2007 -0500
@@ -13,8 +13,8 @@
 msgstr ""
 "Project-Id-Version: audacious-plugins HEAD\n"
 "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n"
-"POT-Creation-Date: 2007-08-30 18:23+0200\n"
-"PO-Revision-Date: 2007-08-31 17:04+0900\n"
+"POT-Creation-Date: 2007-09-05 00:28+0200\n"
+"PO-Revision-Date: 2007-09-10 09:42+0900\n"
 "Last-Translator: dai <d+po@vdr.jp>\n"
 "Language-Team: Japanese <ja@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -46,7 +46,7 @@
 #: src/audiocompress/audacious-glue.c:556 src/cdaudio-ng/configure.c:144
 #: src/console/Audacious_Driver.cxx:500 src/echo_plugin/gui.c:27
 #: src/echo_plugin/gui.c:138 src/esd/about.c:49
-#: src/filewriter/filewriter.c:182 src/jack/configure.c:140
+#: src/filewriter/filewriter.c:184 src/jack/configure.c:140
 #: src/jack/jack.c:602 src/madplug/fileinfo.c:158 src/madplug/fileinfo.c:236
 #: src/madplug/plugin.c:597 src/madplug/plugin.c:620
 #: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:45
@@ -98,8 +98,8 @@
 #: src/audiocompress/audacious-glue.c:561 src/cdaudio-ng/configure.c:148
 #: src/echo_plugin/gui.c:146 src/jack/configure.c:147
 #: src/modplug/gui/interface.cxx:741 src/musepack/libmpc.cxx:236
-#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:3599
-#: src/sid/xs_interface.c:1345 src/stereo_plugin/stereo.c:128
+#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:2930
+#: src/sid/xs_interface.c:1192 src/stereo_plugin/stereo.c:128
 #: src/sun/configure.c:567 src/timidity/src/interface.c:232
 #: src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561
 msgid "Cancel"
@@ -133,14 +133,14 @@
 msgstr "ãƒãƒ£ãƒ³ãƒãƒ«æ•°"
 
 #: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:899
-#: src/sid/xmms-sid.glade:156 src/sid/xs_interface.c:302
+#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:280
 #: src/timidity/src/interface.c:167
 msgid "Mono"
 msgstr "モノラル"
 
 #: src/adplug/adplug-xmms.cc:333 src/filewriter/mp3.c:894
-#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:175
-#: src/sid/xs_interface.c:309 src/timidity/src/interface.c:175
+#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:176
+#: src/sid/xs_interface.c:287 src/timidity/src/interface.c:175
 msgid "Stereo"
 msgstr "ステレオ"
 
@@ -252,28 +252,28 @@
 msgid "Subsong selection"
 msgstr "サブソングé¸æŠž"
 
-#: src/adplug/adplug-xmms.cc:688
+#: src/adplug/adplug-xmms.cc:730
 msgid "Order: "
 msgstr "é †åº: "
 
-#: src/adplug/adplug-xmms.cc:689
+#: src/adplug/adplug-xmms.cc:731
 msgid "Pattern: "
 msgstr "パターン: "
 
-#: src/adplug/adplug-xmms.cc:691
+#: src/adplug/adplug-xmms.cc:733
 msgid "Row: "
 msgstr "列: "
 
-#: src/adplug/adplug-xmms.cc:692
+#: src/adplug/adplug-xmms.cc:734
 msgid "Speed: "
 msgstr "æ—©ã•: "
 
-#: src/adplug/adplug-xmms.cc:693
+#: src/adplug/adplug-xmms.cc:735
 msgid "Timer: "
 msgstr "タイマー: "
 
-#: src/adplug/adplug-xmms.cc:694 src/console/Audacious_Config.cxx:226
-#: src/sid/xmms-sid.glade:513 src/sid/xs_interface.c:361
+#: src/adplug/adplug-xmms.cc:736 src/console/Audacious_Config.cxx:226
+#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:333
 msgid "Hz"
 msgstr "Hz"
 
@@ -318,8 +318,8 @@
 "http://www.snika.uklinux.net/xmms-alarm/"
 
 #: src/alarm/interface.c:73 src/lirc/about.c:116
-#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:4262
-#: src/sid/xs_interface.c:1882
+#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:3493
+#: src/sid/xs_interface.c:1671
 msgid "Close"
 msgstr "é–‰ã˜ã‚‹"
 
@@ -333,10 +333,10 @@
 
 #: src/alarm/interface.c:126 src/alarm/interface.c:1391 src/alsa/about.c:46
 #: src/alsa/configure.c:405 src/cdaudio-ng/cdaudio-ng.c:206
-#: src/filewriter/filewriter.c:199 src/flacng/plugin.c:743
+#: src/filewriter/filewriter.c:201 src/flacng/plugin.c:743
 #: src/modplug/gui/interface.cxx:725 src/pulse_audio/pulse_audio.c:694
-#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:3585
-#: src/sid/xs_interface.c:1338
+#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:2916
+#: src/sid/xs_interface.c:1185
 msgid "OK"
 msgstr "OK"
 
@@ -394,6 +394,10 @@
 msgid "h"
 msgstr "時"
 
+#: src/alarm/interface.c:538
+msgid "minutes"
+msgstr "分"
+
 #: src/alarm/interface.c:556
 msgid "Quiet after:"
 msgstr "é™ã‹ã«ãªã‚‹ã¾ã§:"
@@ -453,10 +457,10 @@
 msgid "Fading"
 msgstr "フェーディング"
 
-#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2271
-#: src/sid/xmms-sid.glade:2442 src/sid/xmms-sid.glade:3408
-#: src/sid/xs_interface.c:923 src/sid/xs_interface.c:977
-#: src/sid/xs_interface.c:1289
+#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2007
+#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2526
+#: src/sid/xs_interface.c:900 src/sid/xs_interface.c:954
+#: src/sid/xs_interface.c:1064
 msgid "seconds"
 msgstr "秒"
 
@@ -1428,8 +1432,8 @@
 "<span size=\"smaller\">TiMidity\n"
 "ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰</span>"
 
-#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:4084
-#: src/sid/xs_interface.c:1828 src/vorbis/fileinfo.c:562
+#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3315
+#: src/sid/xs_interface.c:1615 src/vorbis/fileinfo.c:562
 msgid "Name:"
 msgstr "åå‰:"
 
@@ -1696,10 +1700,10 @@
 msgid "Skin file:"
 msgstr "スキンファイル:"
 
-#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2595
-#: src/sid/xmms-sid.glade:2801 src/sid/xmms-sid.glade:2907
-#: src/sid/xs_interface.c:1024 src/sid/xs_interface.c:1093
-#: src/sid/xs_interface.c:1128
+#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2331
+#: src/sid/xmms-sid.glade:2706 src/sid/xmms-sid.glade:2812
+#: src/sid/xs_interface.c:1002 src/sid/xs_interface.c:1124
+#: src/sid/xs_interface.c:1160
 msgid "Browse"
 msgstr "å‚ç…§"
 
@@ -1783,7 +1787,7 @@
 msgstr "トリガー"
 
 #: src/aosd/aosd_ui.c:1073 src/cdaudio-ng/configure.c:87
-#: src/sid/xmms-sid.glade:3545 src/sid/xs_interface.c:1324
+#: src/sid/xmms-sid.glade:2876 src/sid/xs_interface.c:1171
 msgid "Misc"
 msgstr "ãã®ä»–"
 
@@ -2084,7 +2088,7 @@
 msgstr "デフォルトã®æ›²ã®é•·ã•:"
 
 #: src/console/Audacious_Config.cxx:201 src/modplug/gui/interface.cxx:264
-#: src/sid/xmms-sid.glade:1424 src/sid/xs_interface.c:673
+#: src/sid/xmms-sid.glade:1243 src/sid/xs_interface.c:645
 msgid "Resampling"
 msgstr "リサンプリング"
 
@@ -2442,7 +2446,7 @@
 "デãƒã‚¤ã‚¹ãŒæ¤œå‡ºã•ã‚Œã¦ã„ãªã„ãŸã‚, ãƒã‚¤ãƒ³ãƒ‡ã‚£ãƒ³ã‚°ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãŒé–‹ã‘ã¾ã›ã‚“.\n"
 "デãƒã‚¤ã‚¹ãŒæ­£ã—ã接続ã•ã‚Œã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„."
 
-#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:196
+#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:198
 #: src/madplug/plugin.c:620
 msgid "Error"
 msgstr "エラー"
@@ -2583,11 +2587,11 @@
 "Giacomo Lozito ã«ã‚ˆã£ã¦æ›¸ã‹ã‚ŒãŸ.\n"
 "\n"
 
-#: src/filewriter/filewriter.c:167
+#: src/filewriter/filewriter.c:169
 msgid "About FileWriter-Plugin"
 msgstr "ファイルライタ・プラグインã«ã¤ã„ã¦"
 
-#: src/filewriter/filewriter.c:168
+#: src/filewriter/filewriter.c:170
 msgid ""
 "FileWriter-Plugin\n"
 "\n"
@@ -2623,7 +2627,7 @@
 "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
 "USA. ã¾ã§è«‹æ±‚ã—ã¦ä¸‹ã•ã„."
 
-#: src/filewriter/filewriter.c:197
+#: src/filewriter/filewriter.c:199
 msgid ""
 "You cannot use the FileWriter plugin\n"
 "when you're running in realtime mode."
@@ -2631,51 +2635,51 @@
 "リアルタイムモードã§å®Ÿè¡Œã—ã¦ã„ã‚‹ã¨ã\n"
 "ファイルライタ プラグインã¯åˆ©ç”¨ã§ãã¾ã›ã‚“."
 
-#: src/filewriter/filewriter.c:512
+#: src/filewriter/filewriter.c:514
 msgid "File Writer Configuration"
 msgstr "ファイルライタã®è¨­å®š"
 
-#: src/filewriter/filewriter.c:524
+#: src/filewriter/filewriter.c:526
 msgid "Output file format:"
 msgstr "出力ファイルフォーマット:"
 
-#: src/filewriter/filewriter.c:542 src/ladspa/ladspa.c:962
+#: src/filewriter/filewriter.c:544 src/ladspa/ladspa.c:962
 msgid "Configure"
 msgstr "設定"
 
-#: src/filewriter/filewriter.c:557
+#: src/filewriter/filewriter.c:559
 msgid "Save into original directory"
 msgstr "å…ƒã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ä¿å­˜ã™ã‚‹"
 
-#: src/filewriter/filewriter.c:562
+#: src/filewriter/filewriter.c:564
 msgid "Save into custom directory"
 msgstr "指定ã®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã«ä¿å­˜ã™ã‚‹"
 
-#: src/filewriter/filewriter.c:574
+#: src/filewriter/filewriter.c:576
 msgid "Output file folder:"
 msgstr "ファイル出力先ディレクトリ:"
 
-#: src/filewriter/filewriter.c:578
+#: src/filewriter/filewriter.c:580
 msgid "Pick a folder"
 msgstr "ディレクトリã®é¸æŠž"
 
-#: src/filewriter/filewriter.c:598
+#: src/filewriter/filewriter.c:600
 msgid "Get filename from:"
 msgstr "ファイルåã®å–å¾—å…ƒ:"
 
-#: src/filewriter/filewriter.c:601
+#: src/filewriter/filewriter.c:603
 msgid "original file tags"
 msgstr "å…ƒã®ãƒ•ã‚¡ã‚¤ãƒ«ã®ã‚¿ã‚°"
 
-#: src/filewriter/filewriter.c:607
+#: src/filewriter/filewriter.c:609
 msgid "original filename"
 msgstr "å…ƒã®ãƒ•ã‚¡ã‚¤ãƒ«å"
 
-#: src/filewriter/filewriter.c:617
+#: src/filewriter/filewriter.c:619
 msgid "Don't strip file name extension"
 msgstr "ファイルåã‹ã‚‰æ‹¡å¼µå­ã‚’å–り除ã‹ãªã„"
 
-#: src/filewriter/filewriter.c:621
+#: src/filewriter/filewriter.c:623
 msgid ""
 "If enabled, the extension from the original filename will not be stripped "
 "before adding the new file extension to the end."
@@ -2683,7 +2687,7 @@
 "ã“れを有効ã«ã™ã‚‹ã¨, æ–°ã—ã„ファイル拡張å­ã‚’末尾ã«ã¤ã‘るより先ã«, å…ƒã®ãƒ•ã‚¡ã‚¤ãƒ«"
 "åã®æ‹¡å¼µå­ã¯å–り除ã‹ã‚Œã¾ã›ã‚“."
 
-#: src/filewriter/filewriter.c:635
+#: src/filewriter/filewriter.c:637
 msgid "Prepend track number to filename"
 msgstr "ファイルåã®å…ˆé ­ã«ãƒˆãƒ©ãƒƒã‚¯ç•ªå·ã‚’付加ã™ã‚‹"
 
@@ -3136,8 +3140,7 @@
 msgid "ID3 format:"
 msgstr "ID3 ã®æ›¸å¼:"
 
-#: src/madplug/configure.c:261 src/sid/xmms-sid.glade:3144
-#: src/sid/xs_interface.c:1189 src/vorbis/configure.c:160
+#: src/madplug/configure.c:261 src/vorbis/configure.c:160
 msgid "Title"
 msgstr "タイトル"
 
@@ -3606,8 +3609,8 @@
 msgid "Use Album Gain"
 msgstr "アルãƒãƒ ã‚²ã‚¤ãƒ³ã‚’使用ã™ã‚‹"
 
-#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:3755
-#: src/sid/xs_interface.c:1708 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
+#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:2994
+#: src/sid/xs_interface.c:1495 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
 msgid "Filename:"
 msgstr "ファイルå:"
 
@@ -3619,8 +3622,8 @@
 msgid "Track:"
 msgstr "トラック:"
 
-#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1996
-#: src/sid/xs_interface.c:835 src/wavpack/ui.cxx:265
+#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1732
+#: src/sid/xs_interface.c:812 src/wavpack/ui.cxx:265
 msgid "Save"
 msgstr "ä¿å­˜"
 
@@ -3930,105 +3933,86 @@
 msgid "Scrobbler Error"
 msgstr "Scrobbler エラー"
 
-#: src/sid/xmms-sid.c:207
+#: src/sid/xmms-sid.c:203
 msgid "Error initializing song-length database!\n"
 msgstr "曲ã®é•·ã•ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹åˆæœŸåŒ–エラー!\n"
 
-#: src/sid/xmms-sid.c:213
+#: src/sid/xmms-sid.c:209
 msgid "Error initializing STIL database!\n"
 msgstr "STIL データベースåˆæœŸåŒ–エラー!\n"
 
-#: src/sid/xmms-sid.c:327
+#: src/sid/xmms-sid.c:414
 msgid "Couldn't allocate memory for audio data buffer!\n"
 msgstr "オーディオデータãƒãƒƒãƒ•ã‚¡ã®ãƒ¡ãƒ¢ãƒªã‚’割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“ã§ã—ãŸ!\n"
 
-#: src/sid/xmms-sid.c:334
+#: src/sid/xmms-sid.c:421
 msgid "Couldn't allocate memory for audio oversampling buffer!\n"
 msgstr "オーãƒãƒ¼ã‚µãƒ³ãƒ—リングãƒãƒƒãƒ•ã‚¡ã®ãƒ¡ãƒ¢ãƒªã‚’割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“ã§ã—ãŸ!\n"
 
-#: src/sid/xmms-sid.c:409
+#: src/sid/xmms-sid.c:436
 #, c-format
 msgid "Couldn't initialize SID-tune '%s' (sub-tune #%i)!\n"
 msgstr "SID-tune '%s' (サブãƒãƒ¥ãƒ¼ãƒ³ #%i)ã‚’åˆæœŸåŒ–ã§ãã¾ã›ã‚“ã§ã—ãŸ!\n"
 
-#: src/sid/xmms-sid.c:420
+#: src/sid/xmms-sid.c:446
 #, c-format
 msgid "Couldn't open XMMS audio output (fmt=%x, freq=%i, nchan=%i)!\n"
 msgstr "XMMS オーディオ出力 (fmt=%x, freq=%i, nchan=%i) ã‚’é–‹ã‘ã¾ã›ã‚“ã§ã—ãŸ!\n"
 
-#: src/sid/xmms-sid.c:466
+#: src/sid/xmms-sid.c:491
 msgid "Oversampling rate-conversion pass failed.\n"
 msgstr "オーãƒãƒ¼ã‚µãƒ³ãƒ—リングレート変æ›ãƒ‘スã«å¤±æ•—ã—ã¾ã—ãŸ.\n"
 
-#: src/sid/xmms-sid.c:770
-msgid "Subtune Control"
-msgstr "サブãƒãƒ¥ãƒ¼ãƒ³ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«:"
-
-#: src/sid/xmms-sid.c:1001
-#, c-format
-msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n"
-msgstr "t_xs_tuneinfo ('%s') ã®ãƒ¡ãƒ¢ãƒªã‚’割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“ã§ã—ãŸ\n"
-
-#: src/sid/xmms-sid.c:1008
-#, c-format
-msgid "Could not allocate sidFilename ('%s')\n"
-msgstr "sidFilename ('%s') を割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“ã§ã—ãŸ\n"
-
-#: src/sid/xmms-sid.c:1017
-#, c-format
-msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n"
-msgstr "t_xs_subtuneinfo ('%s', %i) ã®ãƒ¡ãƒ¢ãƒªã‚’割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“ã§ã—ãŸ\n"
-
-#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:235
-msgid "Audacious-SID Configuration"
+#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:213
+msgid "Audacious-SID configuration"
 msgstr "Audacious-SID 設定"
 
-#: src/sid/xmms-sid.glade:70 src/sid/xs_interface.c:271
+#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:249
 msgid "8-bit"
 msgstr " 8ビット"
 
-#: src/sid/xmms-sid.glade:89 src/sid/xs_interface.c:278
+#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:256
 msgid "16-bit"
 msgstr "16ビット"
 
-#: src/sid/xmms-sid.glade:110 src/sid/xs_interface.c:285
+#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:263
 msgid "Resolution:"
 msgstr "解åƒåº¦:"
 
-#: src/sid/xmms-sid.glade:195 src/sid/xs_interface.c:316
+#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:294
 msgid "Autopanning"
 msgstr "オートパニング"
 
-#: src/sid/xmms-sid.glade:216 src/sid/xs_interface.c:323
+#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:301
 #: src/vorbis/fileinfo.c:867 src/vorbis/fileinfo.c:924
 msgid "Channels:"
 msgstr "ãƒãƒ£ãƒ³ãƒãƒ«æ•°:"
 
-#: src/sid/xmms-sid.glade:565 src/sid/xs_interface.c:373
+#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:345
 msgid "Samplerate:"
 msgstr "サンプリングレート:"
 
-#: src/sid/xmms-sid.glade:611 src/sid/xs_interface.c:390
+#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:362
 msgid "Use oversampling"
 msgstr "オーãƒãƒ¼ã‚µãƒ³ãƒ—リングを使ã†"
 
-#: src/sid/xmms-sid.glade:637 src/sid/xs_interface.c:401
+#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:373
 msgid "Factor:"
 msgstr "ファクター:"
 
-#: src/sid/xmms-sid.glade:681 src/sid/xs_interface.c:413
+#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:385
 msgid "Large factors require more CPU-power"
 msgstr "大ããªãƒ•ã‚¡ã‚¯ã‚¿ãƒ¼ã¯ã‚ˆã‚Š CPU パワーを必è¦ã¨ã—ã¾ã™"
 
-#: src/sid/xmms-sid.glade:715 src/sid/xs_interface.c:419
+#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:391
 msgid "Oversampling:"
 msgstr "オーãƒãƒ¼ã‚µãƒ³ãƒ—リング:"
 
-#: src/sid/xmms-sid.glade:751 src/sid/xs_interface.c:424
+#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:396
 msgid "Audio"
 msgstr "オーディオ"
 
-#: src/sid/xmms-sid.glade:801 src/sid/xs_interface.c:456
+#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:428
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "clock speed/frequency. Otherwise the speed is determined from played file "
@@ -4038,11 +4022,11 @@
 "ã†ã“ã¨ã‚’\"強制\"ã—ã¾ã™. ãã†ã§ãªã‘ã‚Œã°, 速度ã¯æ¼”å¥ã™ã‚‹ãƒ•ã‚¡ã‚¤ãƒ«è‡ªä½“ã‹ã‚‰æ±ºå®šã•"
 "ã‚Œã¾ã™."
 
-#: src/sid/xmms-sid.glade:803 src/sid/xs_interface.c:452
+#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:424
 msgid "Force speed"
 msgstr "速度を強制ã™ã‚‹"
 
-#: src/sid/xmms-sid.glade:821 src/sid/xs_interface.c:462
+#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:434
 msgid ""
 "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. "
 "Most of SID-tunes have been made for PAL computers."
@@ -4050,11 +4034,11 @@
 "PAL 㯠50Hz ã®ãƒªãƒ•ãƒ¬ãƒƒã‚·ãƒ¥ãƒ¬ãƒ¼ãƒˆã‚’用ã„るヨーロッパ㮠TV è¦æ ¼ã§ã™. ã»ã¨ã‚“ã©ã® "
 "SID-tunes 㯠PAL コンピュータå‘ã‘ã«ä½œã‚‰ã‚Œã¦ã„ã¾ã™."
 
-#: src/sid/xmms-sid.glade:823 src/sid/xs_interface.c:458
+#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:430
 msgid "PAL (50 Hz)"
 msgstr "PAL (50 Hz)"
 
-#: src/sid/xmms-sid.glade:841 src/sid/xs_interface.c:470
+#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:442
 msgid ""
 "NTSC is the TV standard with 60Hz vertical refresh rate (and other features "
 "that differ from PAL). It is mainly used in United States, Japan and certain "
@@ -4063,15 +4047,15 @@
 "NTSC 㯠60Hz ã®ãƒªãƒ•ãƒ¬ãƒƒã‚·ãƒ¥ãƒ¬ãƒ¼ãƒˆã‚’用ã„, PAL ã¨ã¯ä»–ã«ã‚‚ç•°ãªã‚‹ç‰¹å¾´ã‚’æŒã¤ TV è¦"
 "æ ¼ã§ã™. 主ã«ã‚¢ãƒ¡ãƒªã‚«, 日本や他ã®å›½ã€…ã§ç”¨ã„られã¦ã„ã¾ã™."
 
-#: src/sid/xmms-sid.glade:843 src/sid/xs_interface.c:466
+#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:438
 msgid "NTSC (60 Hz)"
 msgstr "NTSC (60 Hz)"
 
-#: src/sid/xmms-sid.glade:864 src/sid/xs_interface.c:474
+#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:446
 msgid "Clock speed:"
 msgstr "クロック速度:"
 
-#: src/sid/xmms-sid.glade:909 src/sid/xs_interface.c:495
+#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:467
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "SID-chip model. Otherwise the preferred SID model is determined from the "
@@ -4081,11 +4065,11 @@
 "\"強制\"ã—ã¾ã™. 無効ãªã‚‰ã°, ファイル㌠PSIDv2NG タイプãªã‚‰, 望ã¾ã—ã„ SID モデ"
 "ルãŒæ±ºå®šã•ã‚Œã¾ã™ãŒ, 利用ã§ããªã‘ã‚Œã°ã“ã®è¨­å®šãŒç”¨ã„られã¾ã™."
 
-#: src/sid/xmms-sid.glade:911 src/sid/xs_interface.c:491
+#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:463
 msgid "Force model"
 msgstr "モデルを強制ã™ã‚‹"
 
-#: src/sid/xmms-sid.glade:929 src/sid/xs_interface.c:501
+#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:473
 msgid ""
 "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 "
 "in few ways, having much fuller filter (which, due to design error, is never "
@@ -4097,19 +4081,19 @@
 "ã® SID ãƒãƒƒãƒ—ã¯åŒã˜ã§ã¯ã‚ã‚Šã¾ã›ã‚“), デジタルサンプルã®å†ç”Ÿã‚’有効ã«ã™ã‚‹ \"音é‡"
 "調整ãƒã‚°\" ãŒã‚ã‚Šã¾ã™."
 
-#: src/sid/xmms-sid.glade:931 src/sid/xs_interface.c:497
+#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:469
 msgid "MOS 6581"
 msgstr "MOS 6581"
 
-#: src/sid/xmms-sid.glade:950 src/sid/xs_interface.c:505
+#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:477
 msgid "MOS 8580"
 msgstr "MOS 8580"
 
-#: src/sid/xmms-sid.glade:971 src/sid/xs_interface.c:512
+#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:484
 msgid "SID model:"
 msgstr "SID モデル:"
 
-#: src/sid/xmms-sid.glade:1023 src/sid/xs_interface.c:533
+#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:505
 msgid ""
 "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most "
 "cases, though."
@@ -4117,11 +4101,11 @@
 "高速ã§ã™ãŒãã‚Œã»ã©æ­£ç¢ºã§ã¯ãªã„ libSIDPlay 1.x を用ã„ã¾ã™. ã§ã™ãŒã»ã¨ã‚“ã©ã®å ´"
 "åˆå•é¡Œã‚ã‚Šã¾ã›ã‚“."
 
-#: src/sid/xmms-sid.glade:1025 src/sid/xs_interface.c:529
+#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:501
 msgid "SIDPlay 1 (frame-based)"
 msgstr "SIDPlay 1 (フレームベース)"
 
-#: src/sid/xmms-sid.glade:1044 src/sid/xs_interface.c:541
+#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:513
 msgid ""
 "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact "
 "emulation."
@@ -4129,39 +4113,39 @@
 "より正確ãªã‚¨ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã®ãŸã‚ã«å¼·åŠ›ãª CPU ã‚’å¿…è¦ã¨ã™ã‚‹ libSIDPlay 2.x を用"
 "ã„ã¾ã™."
 
-#: src/sid/xmms-sid.glade:1046 src/sid/xs_interface.c:537
+#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:509
 msgid "SIDPlay 2 (cycle-based)"
 msgstr "SIDPlay 2 (サイクルベース)"
 
-#: src/sid/xmms-sid.glade:1068 src/sid/xs_interface.c:545
+#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:517
 msgid "Emulation library selection:"
 msgstr "エミュレーションライブラリã®é¸æŠž"
 
-#: src/sid/xmms-sid.glade:1114 src/sid/xs_interface.c:562
+#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:534
 msgid "Real C64 (SIDPlay 2 only)"
 msgstr "Real C64 (SIDPlay 2 専用)"
 
-#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:569
+#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:541
 msgid "Bank switching"
 msgstr "ãƒãƒ³ã‚¯ã‚¹ã‚¤ãƒƒãƒãƒ³ã‚°"
 
-#: src/sid/xmms-sid.glade:1153 src/sid/xs_interface.c:576
+#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:548
 msgid "Transparent ROM"
 msgstr "é€éŽ ROM"
 
-#: src/sid/xmms-sid.glade:1173 src/sid/xs_interface.c:583
+#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:555
 msgid "PlaySID environment"
 msgstr "PlaySID 環境"
 
-#: src/sid/xmms-sid.glade:1194 src/sid/xs_interface.c:590
+#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:562
 msgid "Memory mode:"
 msgstr "メモリモード:"
 
-#: src/sid/xmms-sid.glade:1230 src/sid/xs_interface.c:595
+#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:567
 msgid "Emu#1"
 msgstr "Emu#1"
 
-#: src/sid/xmms-sid.glade:1274 src/sid/xs_interface.c:622
+#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:594
 msgid ""
 "This setting can be used to enable libSIDPlay2's \"optimization mode\", "
 "which in downgrades the emulation from cycle-exact to something similar to "
@@ -4171,11 +4155,11 @@
 "クル正確ã‹ã‚‰ãƒ•ãƒ¬ãƒ¼ãƒ æ­£ç¢ºã«ä¼¼ãŸä½•ã‹ã«æ ¼ä¸‹ã’ã—ã¾ã™. ã“ã®çµæžœ, CPU 使用率ã¯ä¸‹ãŒ"
 "ã‚Šã¾ã™ãŒ, 正確ã•ã¯æ‚ªããªã‚Šã¾ã™."
 
-#: src/sid/xmms-sid.glade:1276 src/sid/xs_interface.c:618
+#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:590
 msgid "Optimization mode (faster, inaccurate)"
 msgstr "最é©åŒ–モード (高速, ä¸æ­£ç¢º)"
 
-#: src/sid/xmms-sid.glade:1294 src/sid/xs_interface.c:628
+#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:600
 msgid ""
 "reSID is the software SID-chip simulator based on SID reverse-engineering, "
 "created by Dag Lem. It is probably the closest thing to real SID available "
@@ -4185,11 +4169,11 @@
 "トウェア SID ãƒãƒƒãƒ—シミュレータã§ã™. ソフトウェアã®ã¿ã§ã®ã‚¨ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã§"
 "ã¯, 本物ã®åˆ©ç”¨å¯èƒ½ãª SID ã«ãŠãらã最も近ã„ã‚‚ã®ã§ã™."
 
-#: src/sid/xmms-sid.glade:1296 src/sid/xs_interface.c:624
+#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:596
 msgid "reSID-emulation"
 msgstr "reSID エミュレーション"
 
-#: src/sid/xmms-sid.glade:1314 src/sid/xs_interface.c:636
+#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:608
 msgid ""
 "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a "
 "real SID-chip. Software can be used to control the HardSID and combined with "
@@ -4203,49 +4187,49 @@
 "似点を \"ã»ã¼ 100%\" é”æˆã™ã‚‹ãŸã‚ã«ç”¨ã„られã¾ã™. より多ãã®æƒ…報㯠http://www."
 "hardsid.com/ ã‚’å‚ç…§ã—ã¦ãã ã•ã„."
 
-#: src/sid/xmms-sid.glade:1316 src/sid/xs_interface.c:632
+#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:604
 msgid "HardSID"
 msgstr "HardSID"
 
-#: src/sid/xmms-sid.glade:1337 src/sid/xs_interface.c:640
+#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:612
 msgid "SIDPlay 2 options:"
 msgstr "SIDPlay 2 オプション:"
 
-#: src/sid/xmms-sid.glade:1382 src/sid/xs_interface.c:661
+#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:633
 msgid ""
 "Fastest and also worst sounding sampling method, simply picks nearest "
 "neighbouring sample."
 msgstr ""
 "å˜ç´”ã«æœ€è¿‘å‚ã®ã‚µãƒ³ãƒ—ルを用ã„ã‚‹ã ã‘ã®, 最速ã§ã™ãŒæœ€æ‚ªã®ã‚µãƒ³ãƒ—リング方法ã§ã™."
 
-#: src/sid/xmms-sid.glade:1384 src/sid/xs_interface.c:657
+#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:629
 msgid "Fast (nearest neighbour)"
 msgstr "高速 (最近å‚)"
 
-#: src/sid/xmms-sid.glade:1402 src/sid/xs_interface.c:669
+#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:641
 msgid ""
 "Uses linear interpolation between samples, yielding higher audio quality "
 "with less sampling noise."
 msgstr ""
 "高ã„音質を低ã„サンプリングノイズã§ç”Ÿæˆã™ã‚‹, サンプル間ã®ç·šå½¢è£œé–“を用ã„ã¾ã™."
 
-#: src/sid/xmms-sid.glade:1404 src/sid/xs_interface.c:665
+#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:637
 msgid "Linear interpolation"
 msgstr "線形補間"
 
-#: src/sid/xmms-sid.glade:1444 src/sid/xs_interface.c:680
+#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:652
 msgid "Resampling (FIR)"
 msgstr "リサンプリング (FIR)"
 
-#: src/sid/xmms-sid.glade:1465 src/sid/xs_interface.c:687
+#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:659
 msgid "reSID sampling options:"
 msgstr "reSID サンプリングオプション:"
 
-#: src/sid/xmms-sid.glade:1501 src/sid/xs_interface.c:692
+#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:664
 msgid "Emu#2"
 msgstr "Emu#2"
 
-#: src/sid/xmms-sid.glade:1531 src/sid/xs_interface.c:708
+#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:680
 msgid ""
 "This option enables emulation of SID filter. The filter is an essential part "
 "of SID's sound capacity, but accurate emulation of it may require quite much "
@@ -4257,71 +4241,59 @@
 "ã¾ã™. ã—ã‹ã—, フィルタエミュレーションãŒç„¡åŠ¹ã ã¨, フィルタを使ã£ã¦ã„る音色ã¯"
 "ã¾ã£ãŸã本物ã®ã‚ˆã†ã«ã¯èžã“ãˆã¾ã›ã‚“."
 
-#: src/sid/xmms-sid.glade:1533 src/sid/xs_interface.c:704
+#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:676
 msgid "Emulate filters"
 msgstr "フィルタをエミュレートã™ã‚‹"
 
-#: src/sid/xmms-sid.glade:1590 src/sid/xs_interface.c:733
+#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:705
 msgid "FS"
 msgstr "FS"
 
-#: src/sid/xmms-sid.glade:1641 src/sid/xs_interface.c:750
+#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:722
 msgid "FM"
 msgstr "FM"
 
-#: src/sid/xmms-sid.glade:1692 src/sid/xs_interface.c:767
+#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:739
 msgid "FT"
 msgstr "FT"
 
-#: src/sid/xmms-sid.glade:1730 src/sid/xs_interface.c:778
+#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:750
 msgid "Reset values"
 msgstr "値をリセット"
 
-#: src/sid/xmms-sid.glade:1759 src/sid/xs_interface.c:783
+#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:755
 msgid "SIDPlay1"
 msgstr "SIDPlay1"
 
-#: src/sid/xmms-sid.glade:1828 src/sid/xs_interface.c:807
-msgid "6581 (reSID)"
-msgstr "6581 (reSID)"
-
-#: src/sid/xmms-sid.glade:1854 src/sid/xs_interface.c:808
-msgid "8580 (reSID)"
-msgstr "8580 (reSID)"
-
-#: src/sid/xmms-sid.glade:1880 src/sid/xs_interface.c:809
-msgid "6581R1 (alankila)"
-msgstr "6581R1 (alankila)"
-
-#: src/sid/xmms-sid.glade:1906 src/sid/xs_interface.c:810
-msgid "6581R4 (alankila)"
-msgstr "6581R4 (alankila)"
-
-#: src/sid/xmms-sid.glade:1975 src/sid/xs_interface.c:827
-msgid "Load"
-msgstr "読ã¿è¾¼ã¿"
-
-#: src/sid/xmms-sid.glade:2017 src/sid/xs_interface.c:843
+#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:796
+msgid "Export"
+msgstr "エクスãƒãƒ¼ãƒˆ"
+
+#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:804
+msgid "Use"
+msgstr "使用"
+
+#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:820
 msgid "Import"
 msgstr "インãƒãƒ¼ãƒˆ"
 
-#: src/sid/xmms-sid.glade:2038 src/sid/xs_interface.c:851
-msgid "Export"
-msgstr "エクスãƒãƒ¼ãƒˆ"
-
-#: src/sid/xmms-sid.glade:2083 src/sid/xs_interface.c:865
+#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:828
+msgid "Delete"
+msgstr "削除"
+
+#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:842
 msgid "Filter curve:"
 msgstr "フィルタ曲線:"
 
-#: src/sid/xmms-sid.glade:2119 src/sid/xs_interface.c:870
+#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:847
 msgid "SIDPlay2"
 msgstr "SIDPlay2"
 
-#: src/sid/xmms-sid.glade:2155 src/sid/xs_interface.c:876
+#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:853
 msgid "Filters"
 msgstr "フィルタ"
 
-#: src/sid/xmms-sid.glade:2199 src/sid/xs_interface.c:903
+#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:880
 msgid ""
 "If enabled, the tune is played at least for the specified time, adding "
 "silence to the end if necessary."
@@ -4329,21 +4301,21 @@
 "有効ãªã‚‰ã°, å¿…è¦ã«å¿œã˜ã¦æœ«å°¾ã«ç„¡éŸ³éƒ¨åˆ†ã‚’追加ã—, 音色ã¯å°‘ãªãã¨ã‚‚指定ã•ã‚ŒãŸæ™‚"
 "é–“ã§æ¼”å¥ã•ã‚Œã¾ã™."
 
-#: src/sid/xmms-sid.glade:2201 src/sid/xs_interface.c:899
+#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:876
 msgid "Play at least for specified time"
 msgstr "å°‘ãªãã¨ã‚‚指定ã•ã‚ŒãŸæ™‚é–“ã§æ¼”å¥"
 
-#: src/sid/xmms-sid.glade:2226 src/sid/xmms-sid.glade:2397
-#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:910
-#: src/sid/xs_interface.c:964 src/sid/xs_interface.c:1276
+#: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133
+#: src/sid/xmms-sid.glade:2482 src/sid/xs_interface.c:887
+#: src/sid/xs_interface.c:941 src/sid/xs_interface.c:1051
 msgid "Playtime:"
 msgstr "æ¼”å¥æ™‚é–“:"
 
-#: src/sid/xmms-sid.glade:2305 src/sid/xs_interface.c:930
+#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:907
 msgid "Minimum playtime:"
 msgstr "最å°æ¼”å¥æ™‚é–“:"
 
-#: src/sid/xmms-sid.glade:2350 src/sid/xs_interface.c:951
+#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:928
 msgid ""
 "If enabled, tune is played until specified duration is reached (aka maximum "
 "playtime)."
@@ -4351,26 +4323,26 @@
 "有効ãªã‚‰ã°, 音色ã¯æŒ‡å®šã•ã‚ŒãŸæŒç¶šæ™‚é–“ (最大演å¥æ™‚é–“) ã«åˆ°é”ã™ã‚‹ã¾ã§æ¼”å¥ã•ã‚Œã¾"
 "ã™."
 
-#: src/sid/xmms-sid.glade:2352 src/sid/xs_interface.c:947
+#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:924
 msgid "Play for specified time maximum"
 msgstr "指定ã•ã‚ŒãŸæ™‚é–“ã„ã£ã±ã„ã¾ã§æ¼”å¥"
 
-#: src/sid/xmms-sid.glade:2371 src/sid/xs_interface.c:957
+#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:934
 msgid ""
 "If enabled, the maximum playtime is applied only if song/tune length is not "
 "known."
 msgstr ""
 "有効ãªã‚‰ã°, 曲や音色ã®é•·ã•ãŒä¸æ˜Žãªå ´åˆã®ã¿, 最大演å¥æ™‚é–“ãŒç”¨ã„られã¾ã™."
 
-#: src/sid/xmms-sid.glade:2373 src/sid/xs_interface.c:953
+#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:930
 msgid "Only when song length is unknown"
 msgstr "曲ã®é•·ã•ãŒä¸æ˜Žãªå ´åˆã®ã¿"
 
-#: src/sid/xmms-sid.glade:2476 src/sid/xs_interface.c:984
+#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:961
 msgid "Maximum playtime:"
 msgstr "最大演å¥æ™‚é–“:"
 
-#: src/sid/xmms-sid.glade:2521 src/sid/xs_interface.c:1005
+#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:982
 msgid ""
 "This option enables using of XSIDPLAY compatible song length database. "
 "(Refer to Audacious-SID documentation for more information)"
@@ -4378,31 +4350,43 @@
 "XSIDPLAY 互æ›ã®æ›²ã®é•·ã•ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’使用ã—ã¾ã™. (より多ãã®æƒ…報㯠Audacious-"
 "SID ã®æ–‡æ›¸ã‚’å‚ç…§ã—ã¦ãã ã•ã„)"
 
-#: src/sid/xmms-sid.glade:2523 src/sid/xs_interface.c:1001
+#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:978
 msgid "Use XSIDPLAY-compatible database"
 msgstr "XSIDPLAY 互æ›ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’使ã†"
 
-#: src/sid/xmms-sid.glade:2548 src/sid/xs_interface.c:1012
+#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:989
 msgid "DB-file:"
 msgstr "DB ファイル:"
 
-#: src/sid/xmms-sid.glade:2573 src/sid/xs_interface.c:1022
+#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:999
 msgid "Database path and filename"
 msgstr "データベースパスã¨ãƒ•ã‚¡ã‚¤ãƒ«å"
 
-#: src/sid/xmms-sid.glade:2593 src/sid/xs_interface.c:1028
+#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1006
 msgid "Browse for song length-database file"
 msgstr "曲ã®é•·ã•ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ãƒ•ã‚¡ã‚¤ãƒ«ã‚’å‚ç…§"
 
-#: src/sid/xmms-sid.glade:2620 src/sid/xs_interface.c:1030
+#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1008
 msgid "Song length database:"
 msgstr "曲ã®é•·ã•ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹:"
 
-#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1035
+#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1013
 msgid "Songlength"
 msgstr "曲ã®é•·ã•"
 
-#: src/sid/xmms-sid.glade:2700 src/sid/xs_interface.c:1062
+#: src/sid/xmms-sid.glade:2437 src/sid/xs_interface.c:1036
+msgid "Add sub-tunes to playlist"
+msgstr "サブãƒãƒ¥ãƒ¼ãƒ³ã‚’プレイリストã«è¿½åŠ "
+
+#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1041
+msgid "Only tunes with specified minimum length "
+msgstr "指定ã•ã‚ŒãŸæœ€å°ã®é•·ã•ã®ãƒãƒ¥ãƒ¼ãƒ³ã®ã¿"
+
+#: src/sid/xmms-sid.glade:2560 src/sid/xs_interface.c:1071
+msgid "Sub-tune handling:"
+msgstr "サブãƒãƒ¥ãƒ¼ãƒ³ã®å–り扱ã„:"
+
+#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1092
 msgid ""
 "If this option is enabled (and the database & HVSC settings below are "
 "correctly set), Audacious-SID will use and display additional information "
@@ -4412,15 +4396,15 @@
 "Audacious-SID 㯠HVSC SID ãŒæ¼”å¥ã•ã‚ŒãŸå ´åˆ STIL データベースã‹ã‚‰è¿½åŠ æƒ…å ±ã®ä½¿"
 "用・表示を行ã„ã¾ã™."
 
-#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:1058
+#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1088
 msgid "Use STIL database"
 msgstr "STIL データベースを使ã†"
 
-#: src/sid/xmms-sid.glade:2727 src/sid/xs_interface.c:1069
+#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:1099
 msgid "STIL file:"
 msgstr "STIL ファイル:"
 
-#: src/sid/xmms-sid.glade:2764 src/sid/xs_interface.c:1085
+#: src/sid/xmms-sid.glade:2669 src/sid/xs_interface.c:1115
 msgid ""
 "Path and filename of STIL database file (STIL.txt), usually found from "
 "HVSC's DOCUMENTS-subdirectory."
@@ -4428,15 +4412,15 @@
 "STIL データベースファイル (STIL.txt) ã®ãƒ‘スã¨ãƒ•ã‚¡ã‚¤ãƒ«åを指定ã—ã¾ã™.通常, "
 "HVSC ã®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã®ã‚µãƒ–ディレクトリã§ã™."
 
-#: src/sid/xmms-sid.glade:2799 src/sid/xs_interface.c:1097
+#: src/sid/xmms-sid.glade:2704 src/sid/xs_interface.c:1128
 msgid "Browse for STIL-database file"
 msgstr "STIL データベースファイルをå‚ç…§"
 
-#: src/sid/xmms-sid.glade:2833 src/sid/xs_interface.c:1104
+#: src/sid/xmms-sid.glade:2738 src/sid/xs_interface.c:1135
 msgid "HVSC path:"
 msgstr "HVSC パス:"
 
-#: src/sid/xmms-sid.glade:2870 src/sid/xs_interface.c:1120
+#: src/sid/xmms-sid.glade:2775 src/sid/xs_interface.c:1151
 msgid ""
 "Path to base-directory of your High Voltage SID Collection (HVSC), for "
 "example /media/C64Music/"
@@ -4444,217 +4428,98 @@
 "High Voltage SID コレクション (HVSC) ã®ãƒ™ãƒ¼ã‚¹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã®ãƒ‘スを指定ã—ã¾ã™. "
 "例: /media/C64Music/"
 
-#: src/sid/xmms-sid.glade:2905 src/sid/xs_interface.c:1132
+#: src/sid/xmms-sid.glade:2810 src/sid/xs_interface.c:1164
 msgid "Browse for HVSC path"
 msgstr "HVSC パスをå‚ç…§"
 
-#: src/sid/xmms-sid.glade:2935 src/sid/xs_interface.c:1134
+#: src/sid/xmms-sid.glade:2840 src/sid/xs_interface.c:1166
 msgid "SID Tune Information List (STIL) database:"
 msgstr "SID Tune 情報リスト (STIL) データベース:"
 
-#: src/sid/xmms-sid.glade:2980 src/sid/xs_interface.c:1155
-msgid ""
-"XMMS v1.2.5 and later support generic titlestring formatting (see XMMS "
-"preferences). This option can be enabled to override those generic titles "
-"with Audacious-SID specific ones. Formatting mnemonics are explained briefly "
-"below."
-msgstr ""
-"XMMS v1.2.5 以é™ã¯ä¸€èˆ¬çš„ãªã‚¿ã‚¤ãƒˆãƒ«æ–‡å­—フォーマットをサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ (XMMS "
-"設定をã”覧ãã ã•ã„). 有効ãªã‚‰ã°, Audacious-SID ã§æŒ‡å®šã—ãŸã‚‚ã®ã‚’上書ãã—ã¾ã™. "
-"フォーマットルールã¯ä»¥ä¸‹ã«èª¬æ˜ŽãŒã‚ã‚Šã¾ã™."
-
-#: src/sid/xmms-sid.glade:2982 src/sid/xs_interface.c:1151
-msgid "Override generic XMMS titles"
-msgstr "一般的㪠XMMS ã®ã‚¿ã‚¤ãƒˆãƒ«ã‚’上書ãã™ã‚‹"
-
-#: src/sid/xmms-sid.glade:3032 src/sid/xs_interface.c:1172
-msgid ""
-"%% - '%' character\n"
-"%p - Performer/composer\n"
-"%t - Song name (title)\n"
-"%c - Copyright\n"
-"%s - File type\n"
-"%m - SID model"
-msgstr ""
-"%% - '%' 文字\n"
-"%p - æ¼”å¥è€…/作曲者\n"
-"%t - 曲å (タイトル)\n"
-"%c - 著作権\n"
-"%s - ファイル形å¼\n"
-"%m - SID モデル"
-
-#: src/sid/xmms-sid.glade:3062 src/sid/xs_interface.c:1178
-msgid ""
-"%C - Speed/clock (PAL/NTSC)\n"
-"%n - Subtune\n"
-"%N - Number of subtunes\n"
-"%f - Filename\n"
-"%F - File path\n"
-"%e - File extension"
-msgstr ""
-"%C - 速度/クロック (PAL/NTSC)\n"
-"%n - サブãƒãƒ¥ãƒ¼ãƒ³\n"
-"%N - サブãƒãƒ¥ãƒ¼ãƒ³æ•°\n"
-"%f - ファイルå\n"
-"%F - ファイルパス\n"
-"%e - ファイル拡張å­"
-
-#: src/sid/xmms-sid.glade:3108 src/sid/xs_interface.c:1184
-msgid "Song name/title format:"
-msgstr "曲å/タイトルã®æ›¸å¼:"
-
-#: src/sid/xmms-sid.glade:3188 src/sid/xs_interface.c:1216
-msgid "No sub-tune control."
-msgstr "サブãƒãƒ¥ãƒ¼ãƒ³ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ãŒã‚ã‚Šã¾ã›ã‚“."
-
-#: src/sid/xmms-sid.glade:3190 src/sid/xs_interface.c:1212
-msgid "Disabled"
-msgstr "無効"
-
-#: src/sid/xmms-sid.glade:3208 src/sid/xs_interface.c:1224
-msgid ""
-"Seeking backwards/forwards selects previous/next sub-tune, similar to "
-"selector used in XMMS-SidPlay."
-msgstr ""
-"後方/å‰æ–¹ã®ã‚·ãƒ¼ã‚¯ã¯, XMMS-SidPlay ã§ç”¨ã„られるセレクタã®ã‚ˆã†ã«, 以å‰/以後ã®ã‚µ"
-"ブãƒãƒ¥ãƒ¼ãƒ³ã‚’é¸æŠžã—ã¾ã™. "
-
-#: src/sid/xmms-sid.glade:3210 src/sid/xs_interface.c:1220
-msgid "Seek back/forward changes sub-tune"
-msgstr "後方/å‰æ–¹ã®ã‚·ãƒ¼ã‚¯ã§ã‚µãƒ–ãƒãƒ¥ãƒ¼ãƒ³ã‚’変更"
-
-#: src/sid/xmms-sid.glade:3229 src/sid/xs_interface.c:1232
-msgid ""
-"By pressing the seekbar a sub-tune control window pops up, in style of UADE "
-"(Unix Amiga Delitracker Emulator)"
-msgstr ""
-"シークãƒãƒ¼ã‚’押ã™ã“ã¨ã§, UADE (Unix Amiga Delitracker Emulator) ã®ã‚ˆã†ã«ã‚µãƒ–"
-"ãƒãƒ¥ãƒ¼ãƒ³ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãŒãƒãƒƒãƒ—アップã—ã¾ã™."
-
-#: src/sid/xmms-sid.glade:3231 src/sid/xs_interface.c:1228
-msgid "Pop-up via seekbar (UADE-style)"
-msgstr "シークãƒãƒ¼çµŒç”±ã§ãƒãƒƒãƒ—アップ (UADE-style)"
-
-#: src/sid/xmms-sid.glade:3250 src/sid/xs_interface.c:1240
-msgid ""
-"Seekbar works as a sub-tune selector (Best option if you have patched your "
-"XMMS with the song-position patch.)"
-msgstr ""
-"シークãƒãƒ¼ãŒã‚µãƒ–ãƒãƒ¥ãƒ¼ãƒ³ã‚»ãƒ¬ã‚¯ã‚¿ã¨ã—ã¦å‹•ä½œã—ã¾ã™ (XMMS ã«æ›²ä½ç½®ãƒ‘ッãƒã‚’当ã¦ã¦"
-"ã„ã‚‹ãªã‚‰æœ€ä¸Šã®ã‚ªãƒ—ションã§ã™)."
-
-#: src/sid/xmms-sid.glade:3252 src/sid/xs_interface.c:1236
-msgid "Song-position patch"
-msgstr "曲ä½ç½®ãƒ‘ッãƒ"
-
-#: src/sid/xmms-sid.glade:3273 src/sid/xs_interface.c:1244
-msgid "Sub-tune control:"
-msgstr "サブãƒãƒ¥ãƒ¼ãƒ³ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«:"
-
-#: src/sid/xmms-sid.glade:3319 src/sid/xs_interface.c:1261
-msgid "Go through all sub-tunes in file"
-msgstr "ファイル中ã®ã‚µãƒ–ãƒãƒ¥ãƒ¼ãƒ³ã‚’一通り用ã„ã‚‹"
-
-#: src/sid/xmms-sid.glade:3339 src/sid/xs_interface.c:1266
-msgid "Only tunes with specified minimum length "
-msgstr "指定ã•ã‚ŒãŸæœ€å°ã®é•·ã•ã®ãƒãƒ¥ãƒ¼ãƒ³ã®ã¿"
-
-#: src/sid/xmms-sid.glade:3442 src/sid/xs_interface.c:1296
-msgid "Automatic sub-tune changes:"
-msgstr "自動サブãƒãƒ¥ãƒ¼ãƒ³å¤‰æ›´:"
-
-#: src/sid/xmms-sid.glade:3487 src/sid/xs_interface.c:1317
-msgid ""
-"Determine if file is a SID-tune by checking the file contents. If NOT "
-"selected, filetype is determined by checking filename extension (.sid, ."
-"dat, ...)"
-msgstr ""
-"ファイルã®å†…容を確èªã—ã¦ãƒ•ã‚¡ã‚¤ãƒ«ãŒ SID-tune ã‹ã©ã†ã‹ã‚’決定ã—ã¾ã™. é¸æŠžã•ã‚Œã¦"
-"ã„ãªã‘ã‚Œã°, .sid ã‚„ .dat ãªã©ã®ãƒ•ã‚¡ã‚¤ãƒ«æ‹¡å¼µå­ã§ãƒ•ã‚¡ã‚¤ãƒ«ã‚¿ã‚¤ãƒ—を決定ã—ã¾ã™."
-
-#: src/sid/xmms-sid.glade:3489 src/sid/xs_interface.c:1313
-msgid "Detect file by contents (slower)"
-msgstr "内容ã§ãƒ•ã‚¡ã‚¤ãƒ«ã‚¿ã‚¤ãƒ—を決定 (é…ã„)"
-
-#: src/sid/xmms-sid.glade:3509 src/sid/xs_interface.c:1319
-msgid "Miscellaneous options:"
-msgstr "雑多ãªã‚ªãƒ—ション:"
-
-#: src/sid/xmms-sid.glade:3582 src/sid/xs_interface.c:1343
+#: src/sid/xmms-sid.glade:2913 src/sid/xs_interface.c:1190
 msgid "Accept and update changes"
 msgstr "変更を承èªã—ã¦æ›´æ–°ã™ã‚‹"
 
-#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1350
+#: src/sid/xmms-sid.glade:2927 src/sid/xs_interface.c:1197
 msgid "Cancel any changes"
 msgstr "ã‚らゆる変更をå–り消ã™"
 
-#: src/sid/xmms-sid.glade:3620 src/sid/xs_interface.c:1651
+#: src/sid/xmms-sid.glade:2952 src/sid/xs_interface.c:1474
 msgid "Audacious-SID Fileinfo"
 msgstr "Audacious-SID ファイル情報"
 
-#: src/sid/xmms-sid.glade:3674 src/sid/xs_interface.c:1677
-msgid " < "
-msgstr " < "
-
-#: src/sid/xmms-sid.glade:3710 src/sid/xs_interface.c:1689
-msgid " > "
-msgstr " > "
-
-#: src/sid/xmms-sid.glade:3783 src/sid/xs_interface.c:1716
+#: src/sid/xmms-sid.glade:3022 src/sid/xs_interface.c:1503
 msgid "Songname:"
 msgstr "曲å:"
 
-#: src/sid/xmms-sid.glade:3811 src/sid/xs_interface.c:1724
+#: src/sid/xmms-sid.glade:3050 src/sid/xs_interface.c:1511
 msgid "Composer:"
 msgstr "作曲者:"
 
-#: src/sid/xmms-sid.glade:3839 src/sid/xs_interface.c:1732
+#: src/sid/xmms-sid.glade:3078 src/sid/xs_interface.c:1519
 #: src/vorbis/fileinfo.c:723
 msgid "Copyright:"
 msgstr "著作権:"
 
-#: src/sid/xmms-sid.glade:3953 src/sid/xs_interface.c:1772
+#: src/sid/xmms-sid.glade:3192 src/sid/xs_interface.c:1563
 msgid "Song Information:"
 msgstr "曲情報:"
 
-#: src/sid/xmms-sid.glade:4008 src/sid/xs_interface.c:1797
-msgid " "
-msgstr " "
-
-#: src/sid/xmms-sid.glade:4035 src/sid/xs_interface.c:1812
+#: src/sid/xmms-sid.glade:3266 src/sid/xs_interface.c:1598
 msgid "Author:"
 msgstr "作者:"
 
-#: src/sid/xmms-sid.glade:4133 src/sid/xs_interface.c:1844
+#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:1632
 msgid "Duration:"
 msgstr "æŒç¶šæ™‚é–“:"
 
-#: src/sid/xmms-sid.glade:4227 src/sid/xs_interface.c:1877
+#: src/sid/xmms-sid.glade:3458 src/sid/xs_interface.c:1666
 msgid "Sub-tune Information:"
 msgstr "サブãƒãƒ¥ãƒ¼ãƒ³æƒ…å ±:"
 
-#: src/sid/xmms-sid.glade:4281 src/sid/xs_interface.c:1951
+#: src/sid/xmms-sid.glade:3512 src/sid/xs_interface.c:1727
 msgid "Select HVSC song length database"
 msgstr "HVSC 曲ã®é•·ã•ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’é¸æŠž"
 
-#: src/sid/xmms-sid.glade:4322 src/sid/xs_interface.c:1989
-msgid "Select STIL-database "
+#: src/sid/xmms-sid.glade:3554 src/sid/xs_interface.c:1768
+msgid "Select STIL-database"
 msgstr "STIL データベースをé¸æŠž"
 
-#: src/sid/xmms-sid.glade:4363 src/sid/xs_interface.c:2027
+#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1809
 msgid "Select HVSC location prefix"
 msgstr "HVSC ä½ç½®ã®ãƒ—レフィックスをé¸æŠž"
 
-#: src/sid/xs_fileinfo.c:315
+#: src/sid/xmms-sid.glade:3638 src/sid/xs_interface.c:1850
+msgid "Select SIDPlay2 filters file for importing"
+msgstr "インãƒãƒ¼ãƒˆã™ã‚‹ SIDPlay2 フィルタファイルをé¸æŠž"
+
+#: src/sid/xmms-sid.glade:3680 src/sid/xs_interface.c:1891
+msgid "Select SIDPlay2 filters file for exporting"
+msgstr "エクスãƒãƒ¼ãƒˆã™ã‚‹ SIDPlay2 フィルタファイルをé¸æŠž"
+
+#: src/sid/xmms-sid.glade:3721 src/sid/xmms-sid.glade:3803
+#: src/sid/xs_interface.c:1939 src/sid/xs_interface.c:1952
+msgid "Confirm selected action"
+msgstr "é¸æŠžã•ã‚ŒãŸã‚¢ã‚¯ã‚·ãƒ§ãƒ³ã®ç¢ºèª"
+
+#: src/sid/xmms-sid.glade:3759 src/sid/xs_interface.c:1969
+msgid "Yes"
+msgstr "ã¯ã„"
+
+#: src/sid/xmms-sid.glade:3771 src/sid/xs_interface.c:1975
+msgid "No"
+msgstr "ã„ã„ãˆ"
+
+#: src/sid/xs_fileinfo.c:238
 msgid "General info"
 msgstr "一般情報"
 
-#: src/sid/xs_fileinfo.c:325
+#: src/sid/xs_fileinfo.c:248
 #, c-format
 msgid "Tune #%i: "
 msgstr "ãƒãƒ¥ãƒ¼ãƒ³ #%i:"
 
-#: src/sid/xs_fileinfo.c:336
+#: src/sid/xs_fileinfo.c:259
 #, c-format
 msgid "Tune #%i"
 msgstr "ãƒãƒ¥ãƒ¼ãƒ³ #%i"
@@ -4677,32 +4542,32 @@
 msgid "Could not open SongLengthDB '%s'\n"
 msgstr "曲ã®é•·ã• DB '%s' ã‚’é–‹ã‘ã¾ã›ã‚“ã§ã—ãŸ.\n"
 
-#: src/sid/xs_length.c:225
+#: src/sid/xs_length.c:224
 #, c-format
 msgid "Invalid MD5-hash in SongLengthDB file '%s' line #%d!\n"
 msgstr "曲ã®é•·ã• DB ファイル '%s' ã® #%d 行㮠MD5 ãƒãƒƒã‚·ãƒ¥ãŒç„¡åŠ¹ã§ã™!\n"
 
-#: src/sid/xs_length.c:232
+#: src/sid/xs_length.c:231
 #, c-format
 msgid "Invalid entry in SongLengthDB file '%s' line #%d!\n"
 msgstr "曲ã®é•·ã• DB ファイル '%s' ã® #%d è¡Œã®ã‚¨ãƒ³ãƒˆãƒªãŒç„¡åŠ¹ã§ã™!\n"
 
-#: src/sid/xs_length.c:237
+#: src/sid/xs_length.c:236
 #, c-format
 msgid "Invalid line in SongLengthDB file '%s' line #%d\n"
 msgstr "曲ã®é•·ã• DB ファイル '%s' ã® #%d è¡ŒãŒç„¡åŠ¹ã§ã™!\n"
 
-#: src/sid/xs_length.c:399
+#: src/sid/xs_length.c:398
 #, c-format
 msgid "Not a PSID or RSID file '%s'\n"
 msgstr "ファイル '%s' 㯠PSID ã§ã‚‚ RSID ã§ã‚‚ã‚ã‚Šã¾ã›ã‚“.\n"
 
-#: src/sid/xs_length.c:418
+#: src/sid/xs_length.c:417
 #, c-format
 msgid "Error reading SID file header from '%s'\n"
 msgstr "'%s' ã‹ã‚‰ã® SID ファイルヘッダ読ã¿è¾¼ã¿ã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ.\n"
 
-#: src/sid/xs_length.c:437
+#: src/sid/xs_length.c:436
 #, c-format
 msgid "Error allocating temp data buffer for file '%s'\n"
 msgstr "ファイル '%s' ã®ä¸€æ™‚データãƒãƒƒãƒ•ã‚¡ã®å‰²ã‚Šå½“ã¦ã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸ.\n"
@@ -4743,72 +4608,77 @@
 msgid "[SIDPlay2] Could not initialize emulation engine.\n"
 msgstr "[SIDPlay2] エミュレーションエンジンをåˆæœŸåŒ–ã§ãã¾ã›ã‚“ã§ã—ãŸ.\n"
 
-#: src/sid/xs_sidplay2.cc:224
+#: src/sid/xs_sidplay2.cc:208
+#, c-format
+msgid "[SIDPlay2] Invalid number of filter curve points (%d > %d)\n"
+msgstr "[SIDPlay2] フィルタ曲線ã®åˆ†ç‚¹ã®æ•°ãŒä¸æ­£ã§ã™ (%d > %d)\n"
+
+#: src/sid/xs_sidplay2.cc:229
 msgid "reSID->create() failed.\n"
 msgstr "reSID->create() ã«å¤±æ•—ã—ã¾ã—ãŸ.\n"
 
-#: src/sid/xs_sidplay2.cc:230
+#: src/sid/xs_sidplay2.cc:235
 #, c-format
 msgid "reSID->filter(%d) failed.\n"
 msgstr "reSID->filter(%d) ã«å¤±æ•—ã—ã¾ã—ãŸ.\n"
 
-#: src/sid/xs_sidplay2.cc:238
+#: src/sid/xs_sidplay2.cc:243
 #, c-format
 msgid "reSID->sampling(%d) failed.\n"
 msgstr "reSID->sampling(%d) ã«å¤±æ•—ã—ã¾ã—ãŸ.\n"
 
-#: src/sid/xs_sidplay2.cc:248
+#: src/sid/xs_sidplay2.cc:253
 msgid "reSID->filter(NULL) failed.\n"
 msgstr "reSID->filter(NULL) ã«å¤±æ•—ã—ã¾ã—ãŸ.\n"
 
-#: src/sid/xs_sidplay2.cc:262
+#: src/sid/xs_sidplay2.cc:267
 msgid "hardSID->create() failed.\n"
 msgstr "hardSID->create() ã«å¤±æ•—ã—ã¾ã—ãŸ.\n"
 
-#: src/sid/xs_sidplay2.cc:268
+#: src/sid/xs_sidplay2.cc:273
 #, c-format
 msgid "hardSID->filter(%d) failed.\n"
 msgstr "hardSID->filter(%d) ã«å¤±æ•—ã—ã¾ã—ãŸ.\n"
 
-#: src/sid/xs_sidplay2.cc:276
+#: src/sid/xs_sidplay2.cc:281
 msgid "[SIDPlay2] Could not initialize SIDBuilder object.\n"
 msgstr "[SIDPlay2] SIDBuilder オブジェクトをåˆæœŸåŒ–ã§ãã¾ã›ã‚“ã§ã—ãŸ.\n"
 
-#: src/sid/xs_sidplay2.cc:290
+#: src/sid/xs_sidplay2.cc:295
 #, c-format
 msgid "[SIDPlay2] Invalid clockSpeed=%d, falling back to PAL.\n"
 msgstr "[SIDPlay2] clockSpeed=%d ã¯ç„¡åŠ¹ã§ã™. PAL ã«ãƒ•ã‚©ãƒ¼ãƒ«ãƒãƒƒã‚¯ã—ã¾ã™.\n"
 
-#: src/sid/xs_sidplay2.cc:314
+#: src/sid/xs_sidplay2.cc:319
 #, c-format
 msgid "Invalid sid2OptLevel=%d, falling back to %d.\n"
 msgstr "sid2OptLevel %d ã¯ç„¡åŠ¹ã§ã™. %d ã«ãƒ•ã‚©ãƒ¼ãƒ«ãƒãƒƒã‚¯ã—ã¾ã™.\n"
 
-#: src/sid/xs_sidplay2.cc:338
+#: src/sid/xs_sidplay2.cc:343
 msgid "[SIDPlay2] Emulator engine configuration failed!\n"
 msgstr "[SIDPlay2] エミュレーションエンジンã®è¨­å®šã«å¤±æ•—ã—ã¾ã—ãŸ!\n"
 
-#: src/sid/xs_sidplay2.cc:345
+#: src/sid/xs_sidplay2.cc:350
 msgid "[SIDPlay2] Could not initialize SIDTune object.\n"
 msgstr "[SIDPlay2] SIDTune オブジェクトをåˆæœŸåŒ–ã§ãã¾ã›ã‚“ã§ã—ãŸ.\n"
 
-#: src/sid/xs_sidplay2.cc:396
-msgid "[SIDPlay2] currTune->selectSong() failed\n"
-msgstr "[SIDPlay2] currTune->selectSong() ã«å¤±æ•—ã—ã¾ã—ãŸ.\n"
-
 #: src/sid/xs_sidplay2.cc:401
+msgid "[SIDPlay2] currTune->selectSong() failed\n"
+msgstr "[SIDPlay2] currTune->selectSong() ã«å¤±æ•—ã—ã¾ã—ãŸ.\n"
+
+#: src/sid/xs_sidplay2.cc:406
 msgid "[SIDPlay2] currEng->load() failed\n"
 msgstr "[SIDPlay2] currEng->load() ã«å¤±æ•—ã—ã¾ã—ãŸ.\n"
 
-#: src/sid/xs_stil.c:44
+#: src/sid/xs_stil.c:46
 msgid "SubTune pointer structure realloc failed.\n"
 msgstr "SubTune ãƒã‚¤ãƒ³ã‚¿æ§‹é€ ä½“ã® realloc ã«å¤±æ•—ã—ã¾ã—ãŸ.\n"
 
-#: src/sid/xs_stil.c:61
+#: src/sid/xs_stil.c:69
 msgid "SubTune structure malloc failed!\n"
 msgstr "SubTune 構造体㮠malloc ã«å¤±æ•—ã—ã¾ã—ãŸ!\n"
 
-#: src/sid/xs_stil.c:168
+#: src/sid/xs_stil.c:176
 #, c-format
 msgid "Could not open STILDB '%s'\n"
 msgstr "STILDB '%s' ã‚’é–‹ã‘ã¾ã›ã‚“ã§ã—ãŸ.\n"
@@ -6090,6 +5960,145 @@
 msgid "About %s"
 msgstr "%s ã«ã¤ã„ã¦"
 
+#~ msgid "Subtune Control"
+#~ msgstr "サブãƒãƒ¥ãƒ¼ãƒ³ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«:"
+
+#~ msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n"
+#~ msgstr "t_xs_tuneinfo ('%s') ã®ãƒ¡ãƒ¢ãƒªã‚’割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“ã§ã—ãŸ\n"
+
+#~ msgid "Could not allocate sidFilename ('%s')\n"
+#~ msgstr "sidFilename ('%s') を割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“ã§ã—ãŸ\n"
+
+#~ msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n"
+#~ msgstr "t_xs_subtuneinfo ('%s', %i) ã®ãƒ¡ãƒ¢ãƒªã‚’割り当ã¦ã‚‰ã‚Œã¾ã›ã‚“ã§ã—ãŸ\n"
+
+#~ msgid "6581 (reSID)"
+#~ msgstr "6581 (reSID)"
+
+#~ msgid "8580 (reSID)"
+#~ msgstr "8580 (reSID)"
+
+#~ msgid "6581R1 (alankila)"
+#~ msgstr "6581R1 (alankila)"
+
+#~ msgid "6581R4 (alankila)"
+#~ msgstr "6581R4 (alankila)"
+
+#~ msgid "Load"
+#~ msgstr "読ã¿è¾¼ã¿"
+
+#~ msgid ""
+#~ "XMMS v1.2.5 and later support generic titlestring formatting (see XMMS "
+#~ "preferences). This option can be enabled to override those generic titles "
+#~ "with Audacious-SID specific ones. Formatting mnemonics are explained "
+#~ "briefly below."
+#~ msgstr ""
+#~ "XMMS v1.2.5 以é™ã¯ä¸€èˆ¬çš„ãªã‚¿ã‚¤ãƒˆãƒ«æ–‡å­—フォーマットをサãƒãƒ¼ãƒˆã—ã¦ã„ã¾ã™ "
+#~ "(XMMS 設定をã”覧ãã ã•ã„). 有効ãªã‚‰ã°, Audacious-SID ã§æŒ‡å®šã—ãŸã‚‚ã®ã‚’上書"
+#~ "ãã—ã¾ã™. フォーマットルールã¯ä»¥ä¸‹ã«èª¬æ˜ŽãŒã‚ã‚Šã¾ã™."
+
+#~ msgid "Override generic XMMS titles"
+#~ msgstr "一般的㪠XMMS ã®ã‚¿ã‚¤ãƒˆãƒ«ã‚’上書ãã™ã‚‹"
+
+#~ msgid ""
+#~ "%% - '%' character\n"
+#~ "%p - Performer/composer\n"
+#~ "%t - Song name (title)\n"
+#~ "%c - Copyright\n"
+#~ "%s - File type\n"
+#~ "%m - SID model"
+#~ msgstr ""
+#~ "%% - '%' 文字\n"
+#~ "%p - æ¼”å¥è€…/作曲者\n"
+#~ "%t - 曲å (タイトル)\n"
+#~ "%c - 著作権\n"
+#~ "%s - ファイル形å¼\n"
+#~ "%m - SID モデル"
+
+#~ msgid ""
+#~ "%C - Speed/clock (PAL/NTSC)\n"
+#~ "%n - Subtune\n"
+#~ "%N - Number of subtunes\n"
+#~ "%f - Filename\n"
+#~ "%F - File path\n"
+#~ "%e - File extension"
+#~ msgstr ""
+#~ "%C - 速度/クロック (PAL/NTSC)\n"
+#~ "%n - サブãƒãƒ¥ãƒ¼ãƒ³\n"
+#~ "%N - サブãƒãƒ¥ãƒ¼ãƒ³æ•°\n"
+#~ "%f - ファイルå\n"
+#~ "%F - ファイルパス\n"
+#~ "%e - ファイル拡張å­"
+
+#~ msgid "Song name/title format:"
+#~ msgstr "曲å/タイトルã®æ›¸å¼:"
+
+#~ msgid "No sub-tune control."
+#~ msgstr "サブãƒãƒ¥ãƒ¼ãƒ³ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ãŒã‚ã‚Šã¾ã›ã‚“."
+
+#~ msgid "Disabled"
+#~ msgstr "無効"
+
+#~ msgid ""
+#~ "Seeking backwards/forwards selects previous/next sub-tune, similar to "
+#~ "selector used in XMMS-SidPlay."
+#~ msgstr ""
+#~ "後方/å‰æ–¹ã®ã‚·ãƒ¼ã‚¯ã¯, XMMS-SidPlay ã§ç”¨ã„られるセレクタã®ã‚ˆã†ã«, 以å‰/以後"
+#~ "ã®ã‚µãƒ–ãƒãƒ¥ãƒ¼ãƒ³ã‚’é¸æŠžã—ã¾ã™. "
+
+#~ msgid "Seek back/forward changes sub-tune"
+#~ msgstr "後方/å‰æ–¹ã®ã‚·ãƒ¼ã‚¯ã§ã‚µãƒ–ãƒãƒ¥ãƒ¼ãƒ³ã‚’変更"
+
+#~ msgid ""
+#~ "By pressing the seekbar a sub-tune control window pops up, in style of "
+#~ "UADE (Unix Amiga Delitracker Emulator)"
+#~ msgstr ""
+#~ "シークãƒãƒ¼ã‚’押ã™ã“ã¨ã§, UADE (Unix Amiga Delitracker Emulator) ã®ã‚ˆã†ã«ã‚µ"
+#~ "ブãƒãƒ¥ãƒ¼ãƒ³ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ãŒãƒãƒƒãƒ—アップã—ã¾ã™."
+
+#~ msgid "Pop-up via seekbar (UADE-style)"
+#~ msgstr "シークãƒãƒ¼çµŒç”±ã§ãƒãƒƒãƒ—アップ (UADE-style)"
+
+#~ msgid ""
+#~ "Seekbar works as a sub-tune selector (Best option if you have patched "
+#~ "your XMMS with the song-position patch.)"
+#~ msgstr ""
+#~ "シークãƒãƒ¼ãŒã‚µãƒ–ãƒãƒ¥ãƒ¼ãƒ³ã‚»ãƒ¬ã‚¯ã‚¿ã¨ã—ã¦å‹•ä½œã—ã¾ã™ (XMMS ã«æ›²ä½ç½®ãƒ‘ッãƒã‚’当"
+#~ "ã¦ã¦ã„ã‚‹ãªã‚‰æœ€ä¸Šã®ã‚ªãƒ—ションã§ã™)."
+
+#~ msgid "Song-position patch"
+#~ msgstr "曲ä½ç½®ãƒ‘ッãƒ"
+
+#~ msgid "Go through all sub-tunes in file"
+#~ msgstr "ファイル中ã®ã‚µãƒ–ãƒãƒ¥ãƒ¼ãƒ³ã‚’一通り用ã„ã‚‹"
+
+#~ msgid "Automatic sub-tune changes:"
+#~ msgstr "自動サブãƒãƒ¥ãƒ¼ãƒ³å¤‰æ›´:"
+
+#~ msgid ""
+#~ "Determine if file is a SID-tune by checking the file contents. If NOT "
+#~ "selected, filetype is determined by checking filename extension (.sid, ."
+#~ "dat, ...)"
+#~ msgstr ""
+#~ "ファイルã®å†…容を確èªã—ã¦ãƒ•ã‚¡ã‚¤ãƒ«ãŒ SID-tune ã‹ã©ã†ã‹ã‚’決定ã—ã¾ã™. é¸æŠžã•ã‚Œ"
+#~ "ã¦ã„ãªã‘ã‚Œã°, .sid ã‚„ .dat ãªã©ã®ãƒ•ã‚¡ã‚¤ãƒ«æ‹¡å¼µå­ã§ãƒ•ã‚¡ã‚¤ãƒ«ã‚¿ã‚¤ãƒ—を決定ã—ã¾"
+#~ "ã™."
+
+#~ msgid "Detect file by contents (slower)"
+#~ msgstr "内容ã§ãƒ•ã‚¡ã‚¤ãƒ«ã‚¿ã‚¤ãƒ—を決定 (é…ã„)"
+
+#~ msgid "Miscellaneous options:"
+#~ msgstr "雑多ãªã‚ªãƒ—ション:"
+
+#~ msgid " < "
+#~ msgstr " < "
+
+#~ msgid " > "
+#~ msgstr " > "
+
+#~ msgid " "
+#~ msgstr " "
+
 #~ msgid "#"
 #~ msgstr "#"
 
--- a/po/ro.po	Thu Sep 13 12:09:38 2007 -0500
+++ b/po/ro.po	Thu Sep 13 12:10:39 2007 -0500
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: audacious-plugins 1.4.0\n"
 "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n"
-"POT-Creation-Date: 2007-08-30 18:23+0200\n"
+"POT-Creation-Date: 2007-09-05 00:28+0200\n"
 "PO-Revision-Date: 2007-08-28 20:44+0200\n"
 "Last-Translator: Daniel Patriche <m4st3rth0r@gmail.com>\n"
 "Language-Team: Romanian <audacious@atheme.org>\n"
@@ -44,7 +44,7 @@
 #: src/audiocompress/audacious-glue.c:556 src/cdaudio-ng/configure.c:144
 #: src/console/Audacious_Driver.cxx:500 src/echo_plugin/gui.c:27
 #: src/echo_plugin/gui.c:138 src/esd/about.c:49
-#: src/filewriter/filewriter.c:182 src/jack/configure.c:140
+#: src/filewriter/filewriter.c:184 src/jack/configure.c:140
 #: src/jack/jack.c:602 src/madplug/fileinfo.c:158 src/madplug/fileinfo.c:236
 #: src/madplug/plugin.c:597 src/madplug/plugin.c:620
 #: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:45
@@ -96,8 +96,8 @@
 #: src/audiocompress/audacious-glue.c:561 src/cdaudio-ng/configure.c:148
 #: src/echo_plugin/gui.c:146 src/jack/configure.c:147
 #: src/modplug/gui/interface.cxx:741 src/musepack/libmpc.cxx:236
-#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:3599
-#: src/sid/xs_interface.c:1345 src/stereo_plugin/stereo.c:128
+#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:2930
+#: src/sid/xs_interface.c:1192 src/stereo_plugin/stereo.c:128
 #: src/sun/configure.c:567 src/timidity/src/interface.c:232
 #: src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561
 msgid "Cancel"
@@ -131,14 +131,14 @@
 msgstr "Canale"
 
 #: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:899
-#: src/sid/xmms-sid.glade:156 src/sid/xs_interface.c:302
+#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:280
 #: src/timidity/src/interface.c:167
 msgid "Mono"
 msgstr "Mono"
 
 #: src/adplug/adplug-xmms.cc:333 src/filewriter/mp3.c:894
-#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:175
-#: src/sid/xs_interface.c:309 src/timidity/src/interface.c:175
+#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:176
+#: src/sid/xs_interface.c:287 src/timidity/src/interface.c:175
 msgid "Stereo"
 msgstr "Stereo"
 
@@ -251,28 +251,28 @@
 msgid "Subsong selection"
 msgstr "Selecția sub-melodiei"
 
-#: src/adplug/adplug-xmms.cc:688
+#: src/adplug/adplug-xmms.cc:730
 msgid "Order: "
 msgstr "Ordine: "
 
-#: src/adplug/adplug-xmms.cc:689
+#: src/adplug/adplug-xmms.cc:731
 msgid "Pattern: "
 msgstr "Șablon: "
 
-#: src/adplug/adplug-xmms.cc:691
+#: src/adplug/adplug-xmms.cc:733
 msgid "Row: "
 msgstr "Linie: "
 
-#: src/adplug/adplug-xmms.cc:692
+#: src/adplug/adplug-xmms.cc:734
 msgid "Speed: "
 msgstr "Viteză: "
 
-#: src/adplug/adplug-xmms.cc:693
+#: src/adplug/adplug-xmms.cc:735
 msgid "Timer: "
 msgstr "Cronometru: "
 
-#: src/adplug/adplug-xmms.cc:694 src/console/Audacious_Config.cxx:226
-#: src/sid/xmms-sid.glade:513 src/sid/xs_interface.c:361
+#: src/adplug/adplug-xmms.cc:736 src/console/Audacious_Config.cxx:226
+#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:333
 msgid "Hz"
 msgstr "Hz"
 
@@ -317,8 +317,8 @@
 "http://www.snika.uklinux.net/xmms-alarm/"
 
 #: src/alarm/interface.c:73 src/lirc/about.c:116
-#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:4262
-#: src/sid/xs_interface.c:1882
+#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:3493
+#: src/sid/xs_interface.c:1671
 msgid "Close"
 msgstr "ÃŽnchide"
 
@@ -332,10 +332,10 @@
 
 #: src/alarm/interface.c:126 src/alarm/interface.c:1391 src/alsa/about.c:46
 #: src/alsa/configure.c:405 src/cdaudio-ng/cdaudio-ng.c:206
-#: src/filewriter/filewriter.c:199 src/flacng/plugin.c:743
+#: src/filewriter/filewriter.c:201 src/flacng/plugin.c:743
 #: src/modplug/gui/interface.cxx:725 src/pulse_audio/pulse_audio.c:694
-#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:3585
-#: src/sid/xs_interface.c:1338
+#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:2916
+#: src/sid/xs_interface.c:1185
 msgid "OK"
 msgstr "Ok"
 
@@ -395,6 +395,10 @@
 msgid "h"
 msgstr "h"
 
+#: src/alarm/interface.c:538
+msgid "minutes"
+msgstr ""
+
 #: src/alarm/interface.c:556
 msgid "Quiet after:"
 msgstr "Oprește după:"
@@ -455,10 +459,10 @@
 msgid "Fading"
 msgstr "Tranziție"
 
-#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2271
-#: src/sid/xmms-sid.glade:2442 src/sid/xmms-sid.glade:3408
-#: src/sid/xs_interface.c:923 src/sid/xs_interface.c:977
-#: src/sid/xs_interface.c:1289
+#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2007
+#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2526
+#: src/sid/xs_interface.c:900 src/sid/xs_interface.c:954
+#: src/sid/xs_interface.c:1064
 #, fuzzy
 msgid "seconds"
 msgstr "secunde"
@@ -1352,8 +1356,8 @@
 "backend</span>"
 msgstr ""
 
-#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:4084
-#: src/sid/xs_interface.c:1828 src/vorbis/fileinfo.c:562
+#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3315
+#: src/sid/xs_interface.c:1615 src/vorbis/fileinfo.c:562
 #, fuzzy
 msgid "Name:"
 msgstr "Numele Instrumentului"
@@ -1618,10 +1622,10 @@
 msgid "Skin file:"
 msgstr "Tipul Fișierului: "
 
-#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2595
-#: src/sid/xmms-sid.glade:2801 src/sid/xmms-sid.glade:2907
-#: src/sid/xs_interface.c:1024 src/sid/xs_interface.c:1093
-#: src/sid/xs_interface.c:1128
+#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2331
+#: src/sid/xmms-sid.glade:2706 src/sid/xmms-sid.glade:2812
+#: src/sid/xs_interface.c:1002 src/sid/xs_interface.c:1124
+#: src/sid/xs_interface.c:1160
 msgid "Browse"
 msgstr ""
 
@@ -1705,7 +1709,7 @@
 msgstr "DeclanÅŸator"
 
 #: src/aosd/aosd_ui.c:1073 src/cdaudio-ng/configure.c:87
-#: src/sid/xmms-sid.glade:3545 src/sid/xs_interface.c:1324
+#: src/sid/xmms-sid.glade:2876 src/sid/xs_interface.c:1171
 msgid "Misc"
 msgstr ""
 
@@ -1998,7 +2002,7 @@
 msgstr "Pauză"
 
 #: src/console/Audacious_Config.cxx:201 src/modplug/gui/interface.cxx:264
-#: src/sid/xmms-sid.glade:1424 src/sid/xs_interface.c:673
+#: src/sid/xmms-sid.glade:1243 src/sid/xs_interface.c:645
 msgid "Resampling"
 msgstr ""
 
@@ -2322,7 +2326,7 @@
 "Ensure that the device has been correctly plugged in."
 msgstr ""
 
-#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:196
+#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:198
 #: src/madplug/plugin.c:620
 #, fuzzy
 msgid "Error"
@@ -2451,12 +2455,12 @@
 "written by Giacomo Lozito\n"
 msgstr ""
 
-#: src/filewriter/filewriter.c:167
+#: src/filewriter/filewriter.c:169
 #, fuzzy
 msgid "About FileWriter-Plugin"
 msgstr "Despre plugin-ul decodor MP4·AAC"
 
-#: src/filewriter/filewriter.c:168
+#: src/filewriter/filewriter.c:170
 msgid ""
 "FileWriter-Plugin\n"
 "\n"
@@ -2476,69 +2480,69 @@
 "USA."
 msgstr ""
 
-#: src/filewriter/filewriter.c:197
+#: src/filewriter/filewriter.c:199
 msgid ""
 "You cannot use the FileWriter plugin\n"
 "when you're running in realtime mode."
 msgstr ""
 
-#: src/filewriter/filewriter.c:512
+#: src/filewriter/filewriter.c:514
 #, fuzzy
 msgid "File Writer Configuration"
 msgstr "AdPlug·::·Informații despre fișier"
 
-#: src/filewriter/filewriter.c:524
+#: src/filewriter/filewriter.c:526
 #, fuzzy
 msgid "Output file format:"
 msgstr "AdPlug·::·Informații despre fișier"
 
-#: src/filewriter/filewriter.c:542 src/ladspa/ladspa.c:962
+#: src/filewriter/filewriter.c:544 src/ladspa/ladspa.c:962
 msgid "Configure"
 msgstr "Configurează"
 
-#: src/filewriter/filewriter.c:557
+#: src/filewriter/filewriter.c:559
 msgid "Save into original directory"
 msgstr "Salvează în directorul original"
 
-#: src/filewriter/filewriter.c:562
+#: src/filewriter/filewriter.c:564
 msgid "Save into custom directory"
 msgstr "Salvează în directorul specificat"
 
-#: src/filewriter/filewriter.c:574
+#: src/filewriter/filewriter.c:576
 #, fuzzy
 msgid "Output file folder:"
 msgstr "AdPlug·::·Informații despre fișier"
 
-#: src/filewriter/filewriter.c:578
+#: src/filewriter/filewriter.c:580
 msgid "Pick a folder"
 msgstr "Alegeţi un director"
 
-#: src/filewriter/filewriter.c:598
+#: src/filewriter/filewriter.c:600
 #, fuzzy
 msgid "Get filename from:"
 msgstr "După calea completă"
 
-#: src/filewriter/filewriter.c:601
+#: src/filewriter/filewriter.c:603
 #, fuzzy
 msgid "original file tags"
 msgstr "AdPlug·::·Informații despre fișier"
 
-#: src/filewriter/filewriter.c:607
+#: src/filewriter/filewriter.c:609
 #, fuzzy
 msgid "original filename"
 msgstr "După Fișier"
 
-#: src/filewriter/filewriter.c:617
+#: src/filewriter/filewriter.c:619
 msgid "Don't strip file name extension"
 msgstr ""
 
-#: src/filewriter/filewriter.c:621
+#: src/filewriter/filewriter.c:623
 msgid ""
 "If enabled, the extension from the original filename will not be stripped "
 "before adding the new file extension to the end."
 msgstr ""
 
-#: src/filewriter/filewriter.c:635
+#: src/filewriter/filewriter.c:637
 msgid "Prepend track number to filename"
 msgstr ""
 
@@ -2979,8 +2983,7 @@
 msgid "ID3 format:"
 msgstr "Selecția formatelor"
 
-#: src/madplug/configure.c:261 src/sid/xmms-sid.glade:3144
-#: src/sid/xs_interface.c:1189 src/vorbis/configure.c:160
+#: src/madplug/configure.c:261 src/vorbis/configure.c:160
 #, fuzzy
 msgid "Title"
 msgstr "Titlu"
@@ -3444,8 +3447,8 @@
 msgid "Use Album Gain"
 msgstr "Folosește cursoare de mouse personalizate (oferite de skin)"
 
-#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:3755
-#: src/sid/xs_interface.c:1708 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
+#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:2994
+#: src/sid/xs_interface.c:1495 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
 #, fuzzy
 msgid "Filename:"
 msgstr "Fișier:"
@@ -3459,8 +3462,8 @@
 msgid "Track:"
 msgstr "Informații despre Track"
 
-#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1996
-#: src/sid/xs_interface.c:835 src/wavpack/ui.cxx:265
+#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1732
+#: src/sid/xs_interface.c:812 src/wavpack/ui.cxx:265
 #, fuzzy
 msgid "Save"
 msgstr "Salvează"
@@ -3723,159 +3726,140 @@
 msgid "Scrobbler Error"
 msgstr "Eroare în Audacious"
 
-#: src/sid/xmms-sid.c:207
+#: src/sid/xmms-sid.c:203
 msgid "Error initializing song-length database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:213
+#: src/sid/xmms-sid.c:209
 msgid "Error initializing STIL database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:327
+#: src/sid/xmms-sid.c:414
 msgid "Couldn't allocate memory for audio data buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:334
+#: src/sid/xmms-sid.c:421
 msgid "Couldn't allocate memory for audio oversampling buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:409
+#: src/sid/xmms-sid.c:436
 #, c-format
 msgid "Couldn't initialize SID-tune '%s' (sub-tune #%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:420
+#: src/sid/xmms-sid.c:446
 #, c-format
 msgid "Couldn't open XMMS audio output (fmt=%x, freq=%i, nchan=%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:466
+#: src/sid/xmms-sid.c:491
 msgid "Oversampling rate-conversion pass failed.\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:770
-msgid "Subtune Control"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1001
-#, c-format
-msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1008
-#, fuzzy, c-format
-msgid "Could not allocate sidFilename ('%s')\n"
-msgstr "Nu s-a putut crea directorul (%s): %s\n"
-
-#: src/sid/xmms-sid.c:1017
-#, c-format
-msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:235
-#, fuzzy
-msgid "Audacious-SID Configuration"
+#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:213
+#, fuzzy
+msgid "Audacious-SID configuration"
 msgstr "Developerii Audacious:"
 
-#: src/sid/xmms-sid.glade:70 src/sid/xs_interface.c:271
+#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:249
 msgid "8-bit"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:89 src/sid/xs_interface.c:278
+#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:256
 msgid "16-bit"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:110 src/sid/xs_interface.c:285
+#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:263
 #, fuzzy
 msgid "Resolution:"
 msgstr "Rezoluție"
 
-#: src/sid/xmms-sid.glade:195 src/sid/xs_interface.c:316
+#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:294
 msgid "Autopanning"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:216 src/sid/xs_interface.c:323
+#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:301
 #: src/vorbis/fileinfo.c:867 src/vorbis/fileinfo.c:924
 #, fuzzy
 msgid "Channels:"
 msgstr "Canale"
 
-#: src/sid/xmms-sid.glade:565 src/sid/xs_interface.c:373
+#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:345
 msgid "Samplerate:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:611 src/sid/xs_interface.c:390
+#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:362
 #, fuzzy
 msgid "Use oversampling"
 msgstr "Folosește cursoare de mouse personalizate (oferite de skin)"
 
-#: src/sid/xmms-sid.glade:637 src/sid/xs_interface.c:401
+#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:373
 msgid "Factor:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:681 src/sid/xs_interface.c:413
+#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:385
 msgid "Large factors require more CPU-power"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:715 src/sid/xs_interface.c:419
+#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:391
 msgid "Oversampling:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:751 src/sid/xs_interface.c:424
+#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:396
 #, fuzzy
 msgid "Audio"
 msgstr "Audio"
 
-#: src/sid/xmms-sid.glade:801 src/sid/xs_interface.c:456
+#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:428
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "clock speed/frequency. Otherwise the speed is determined from played file "
 "itself."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:803 src/sid/xs_interface.c:452
+#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:424
 msgid "Force speed"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:821 src/sid/xs_interface.c:462
+#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:434
 msgid ""
 "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. "
 "Most of SID-tunes have been made for PAL computers."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:823 src/sid/xs_interface.c:458
+#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:430
 #, fuzzy
 msgid "PAL (50 Hz)"
 msgstr "Rata de eșantionare [Hz]:"
 
-#: src/sid/xmms-sid.glade:841 src/sid/xs_interface.c:470
+#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:442
 msgid ""
 "NTSC is the TV standard with 60Hz vertical refresh rate (and other features "
 "that differ from PAL). It is mainly used in United States, Japan and certain "
 "other countries."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:843 src/sid/xs_interface.c:466
+#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:438
 #, fuzzy
 msgid "NTSC (60 Hz)"
 msgstr "Rata de eșantionare [Hz]:"
 
-#: src/sid/xmms-sid.glade:864 src/sid/xs_interface.c:474
+#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:446
 msgid "Clock speed:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:909 src/sid/xs_interface.c:495
+#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:467
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "SID-chip model. Otherwise the preferred SID model is determined from the "
 "file (if PSIDv2NG type) or if not available, this setting is used."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:911 src/sid/xs_interface.c:491
+#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:463
 msgid "Force model"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:929 src/sid/xs_interface.c:501
+#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:473
 msgid ""
 "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 "
 "in few ways, having much fuller filter (which, due to design error, is never "
@@ -3883,91 +3867,91 @@
 "which enables playing of digital samples."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:931 src/sid/xs_interface.c:497
+#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:469
 msgid "MOS 6581"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:950 src/sid/xs_interface.c:505
+#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:477
 msgid "MOS 8580"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:971 src/sid/xs_interface.c:512
+#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:484
 msgid "SID model:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1023 src/sid/xs_interface.c:533
+#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:505
 msgid ""
 "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most "
 "cases, though."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1025 src/sid/xs_interface.c:529
+#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:501
 msgid "SIDPlay 1 (frame-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1044 src/sid/xs_interface.c:541
+#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:513
 msgid ""
 "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact "
 "emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1046 src/sid/xs_interface.c:537
+#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:509
 msgid "SIDPlay 2 (cycle-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1068 src/sid/xs_interface.c:545
+#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:517
 #, fuzzy
 msgid "Emulation library selection:"
 msgstr "Șterge selecția anterioară înainte de a căuta"
 
-#: src/sid/xmms-sid.glade:1114 src/sid/xs_interface.c:562
+#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:534
 msgid "Real C64 (SIDPlay 2 only)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:569
+#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:541
 msgid "Bank switching"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1153 src/sid/xs_interface.c:576
+#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:548
 msgid "Transparent ROM"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1173 src/sid/xs_interface.c:583
+#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:555
 msgid "PlaySID environment"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1194 src/sid/xs_interface.c:590
+#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:562
 #, fuzzy
 msgid "Memory mode:"
 msgstr "Mod de Vizualizare"
 
-#: src/sid/xmms-sid.glade:1230 src/sid/xs_interface.c:595
+#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:567
 msgid "Emu#1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1274 src/sid/xs_interface.c:622
+#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:594
 msgid ""
 "This setting can be used to enable libSIDPlay2's \"optimization mode\", "
 "which in downgrades the emulation from cycle-exact to something similar to "
 "frame-exact. The result is lower CPU usage, but worse accuracy."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1276 src/sid/xs_interface.c:618
+#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:590
 msgid "Optimization mode (faster, inaccurate)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1294 src/sid/xs_interface.c:628
+#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:600
 msgid ""
 "reSID is the software SID-chip simulator based on SID reverse-engineering, "
 "created by Dag Lem. It is probably the closest thing to real SID available "
 "as software-only emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1296 src/sid/xs_interface.c:624
+#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:596
 msgid "reSID-emulation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1314 src/sid/xs_interface.c:636
+#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:608
 msgid ""
 "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a "
 "real SID-chip. Software can be used to control the HardSID and combined with "
@@ -3976,49 +3960,49 @@
 "http://www.hardsid.com/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1316 src/sid/xs_interface.c:632
+#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:604
 msgid "HardSID"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1337 src/sid/xs_interface.c:640
+#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:612
 #, fuzzy
 msgid "SIDPlay 2 options:"
 msgstr "Meniu de Opțiuni"
 
-#: src/sid/xmms-sid.glade:1382 src/sid/xs_interface.c:661
+#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:633
 msgid ""
 "Fastest and also worst sounding sampling method, simply picks nearest "
 "neighbouring sample."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1384 src/sid/xs_interface.c:657
+#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:629
 msgid "Fast (nearest neighbour)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1402 src/sid/xs_interface.c:669
+#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:641
 msgid ""
 "Uses linear interpolation between samples, yielding higher audio quality "
 "with less sampling noise."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1404 src/sid/xs_interface.c:665
+#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:637
 msgid "Linear interpolation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1444 src/sid/xs_interface.c:680
+#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:652
 msgid "Resampling (FIR)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1465 src/sid/xs_interface.c:687
+#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:659
 #, fuzzy
 msgid "reSID sampling options:"
 msgstr "<b>Convertor pentru rata de eșantionare</b>"
 
-#: src/sid/xmms-sid.glade:1501 src/sid/xs_interface.c:692
+#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:664
 msgid "Emu#2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1531 src/sid/xs_interface.c:708
+#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:680
 msgid ""
 "This option enables emulation of SID filter. The filter is an essential part "
 "of SID's sound capacity, but accurate emulation of it may require quite much "
@@ -4026,383 +4010,288 @@
 "authentic at all if they utilize the filter."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1533 src/sid/xs_interface.c:704
+#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:676
 msgid "Emulate filters"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1590 src/sid/xs_interface.c:733
+#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:705
 msgid "FS"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1641 src/sid/xs_interface.c:750
+#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:722
 #, fuzzy
 msgid "FM"
 msgstr "Radio Last.fm"
 
-#: src/sid/xmms-sid.glade:1692 src/sid/xs_interface.c:767
+#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:739
 msgid "FT"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1730 src/sid/xs_interface.c:778
+#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:750
 msgid "Reset values"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1759 src/sid/xs_interface.c:783
+#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:755
 msgid "SIDPlay1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1828 src/sid/xs_interface.c:807
-msgid "6581 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1854 src/sid/xs_interface.c:808
-msgid "8580 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1880 src/sid/xs_interface.c:809
-msgid "6581R1 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1906 src/sid/xs_interface.c:810
-msgid "6581R4 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1975 src/sid/xs_interface.c:827
-#, fuzzy
-msgid "Load"
-msgstr "Încarcă"
-
-#: src/sid/xmms-sid.glade:2017 src/sid/xs_interface.c:843
+#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:796
+msgid "Export"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:804
+msgid "Use"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:820
 #, fuzzy
 msgid "Import"
 msgstr "Importă"
 
-#: src/sid/xmms-sid.glade:2038 src/sid/xs_interface.c:851
-msgid "Export"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2083 src/sid/xs_interface.c:865
+#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:828
+#, fuzzy
+msgid "Delete"
+msgstr "Implicit"
+
+#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:842
 msgid "Filter curve:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2119 src/sid/xs_interface.c:870
+#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:847
 msgid "SIDPlay2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2155 src/sid/xs_interface.c:876
+#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:853
 msgid "Filters"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2199 src/sid/xs_interface.c:903
+#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:880
 msgid ""
 "If enabled, the tune is played at least for the specified time, adding "
 "silence to the end if necessary."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2201 src/sid/xs_interface.c:899
+#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:876
 msgid "Play at least for specified time"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2226 src/sid/xmms-sid.glade:2397
-#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:910
-#: src/sid/xs_interface.c:964 src/sid/xs_interface.c:1276
+#: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133
+#: src/sid/xmms-sid.glade:2482 src/sid/xs_interface.c:887
+#: src/sid/xs_interface.c:941 src/sid/xs_interface.c:1051
 msgid "Playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2305 src/sid/xs_interface.c:930
+#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:907
 msgid "Minimum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2350 src/sid/xs_interface.c:951
+#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:928
 msgid ""
 "If enabled, tune is played until specified duration is reached (aka maximum "
 "playtime)."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2352 src/sid/xs_interface.c:947
+#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:924
 msgid "Play for specified time maximum"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2371 src/sid/xs_interface.c:957
+#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:934
 msgid ""
 "If enabled, the maximum playtime is applied only if song/tune length is not "
 "known."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2373 src/sid/xs_interface.c:953
+#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:930
 msgid "Only when song length is unknown"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2476 src/sid/xs_interface.c:984
+#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:961
 msgid "Maximum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2521 src/sid/xs_interface.c:1005
+#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:982
 msgid ""
 "This option enables using of XSIDPLAY compatible song length database. "
 "(Refer to Audacious-SID documentation for more information)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2523 src/sid/xs_interface.c:1001
+#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:978
 msgid "Use XSIDPLAY-compatible database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2548 src/sid/xs_interface.c:1012
+#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:989
 #, fuzzy
 msgid "DB-file:"
 msgstr "Tipul Fișierului: "
 
-#: src/sid/xmms-sid.glade:2573 src/sid/xs_interface.c:1022
+#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:999
 msgid "Database path and filename"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2593 src/sid/xs_interface.c:1028
+#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1006
 msgid "Browse for song length-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2620 src/sid/xs_interface.c:1030
+#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1008
 #, fuzzy
 msgid "Song length database:"
 msgstr "Pauză"
 
-#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1035
+#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1013
 msgid "Songlength"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2700 src/sid/xs_interface.c:1062
+#: src/sid/xmms-sid.glade:2437 src/sid/xs_interface.c:1036
+msgid "Add sub-tunes to playlist"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1041
+msgid "Only tunes with specified minimum length "
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2560 src/sid/xs_interface.c:1071
+#, fuzzy
+msgid "Sub-tune handling:"
+msgstr "Informații despre Pluginul de ieșire"
+
+#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1092
 msgid ""
 "If this option is enabled (and the database & HVSC settings below are "
 "correctly set), Audacious-SID will use and display additional information "
 "from STIL database when HVSC SIDs are played."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:1058
+#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1088
 msgid "Use STIL database"
 msgstr "Foloseste baza de date STIL"
 
-#: src/sid/xmms-sid.glade:2727 src/sid/xs_interface.c:1069
+#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:1099
 msgid "STIL file:"
 msgstr "Fisierul STIL:"
 
-#: src/sid/xmms-sid.glade:2764 src/sid/xs_interface.c:1085
+#: src/sid/xmms-sid.glade:2669 src/sid/xs_interface.c:1115
 msgid ""
 "Path and filename of STIL database file (STIL.txt), usually found from "
 "HVSC's DOCUMENTS-subdirectory."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2799 src/sid/xs_interface.c:1097
+#: src/sid/xmms-sid.glade:2704 src/sid/xs_interface.c:1128
 msgid "Browse for STIL-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2833 src/sid/xs_interface.c:1104
+#: src/sid/xmms-sid.glade:2738 src/sid/xs_interface.c:1135
 #, fuzzy
 msgid "HVSC path:"
 msgstr "Calea fisierului"
 
-#: src/sid/xmms-sid.glade:2870 src/sid/xs_interface.c:1120
+#: src/sid/xmms-sid.glade:2775 src/sid/xs_interface.c:1151
 msgid ""
 "Path to base-directory of your High Voltage SID Collection (HVSC), for "
 "example /media/C64Music/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2905 src/sid/xs_interface.c:1132
+#: src/sid/xmms-sid.glade:2810 src/sid/xs_interface.c:1164
 msgid "Browse for HVSC path"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2935 src/sid/xs_interface.c:1134
+#: src/sid/xmms-sid.glade:2840 src/sid/xs_interface.c:1166
 msgid "SID Tune Information List (STIL) database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2980 src/sid/xs_interface.c:1155
-msgid ""
-"XMMS v1.2.5 and later support generic titlestring formatting (see XMMS "
-"preferences). This option can be enabled to override those generic titles "
-"with Audacious-SID specific ones. Formatting mnemonics are explained briefly "
-"below."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2982 src/sid/xs_interface.c:1151
-msgid "Override generic XMMS titles"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3032 src/sid/xs_interface.c:1172
-msgid ""
-"%% - '%' character\n"
-"%p - Performer/composer\n"
-"%t - Song name (title)\n"
-"%c - Copyright\n"
-"%s - File type\n"
-"%m - SID model"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3062 src/sid/xs_interface.c:1178
-msgid ""
-"%C - Speed/clock (PAL/NTSC)\n"
-"%n - Subtune\n"
-"%N - Number of subtunes\n"
-"%f - Filename\n"
-"%F - File path\n"
-"%e - File extension"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3108 src/sid/xs_interface.c:1184
-msgid "Song name/title format:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3188 src/sid/xs_interface.c:1216
-msgid "No sub-tune control."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3190 src/sid/xs_interface.c:1212
-msgid "Disabled"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3208 src/sid/xs_interface.c:1224
-msgid ""
-"Seeking backwards/forwards selects previous/next sub-tune, similar to "
-"selector used in XMMS-SidPlay."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3210 src/sid/xs_interface.c:1220
-msgid "Seek back/forward changes sub-tune"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3229 src/sid/xs_interface.c:1232
-msgid ""
-"By pressing the seekbar a sub-tune control window pops up, in style of UADE "
-"(Unix Amiga Delitracker Emulator)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3231 src/sid/xs_interface.c:1228
-msgid "Pop-up via seekbar (UADE-style)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3250 src/sid/xs_interface.c:1240
-msgid ""
-"Seekbar works as a sub-tune selector (Best option if you have patched your "
-"XMMS with the song-position patch.)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3252 src/sid/xs_interface.c:1236
-#, fuzzy
-msgid "Song-position patch"
-msgstr "Pauză"
-
-#: src/sid/xmms-sid.glade:3273 src/sid/xs_interface.c:1244
-msgid "Sub-tune control:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3319 src/sid/xs_interface.c:1261
-msgid "Go through all sub-tunes in file"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3339 src/sid/xs_interface.c:1266
-msgid "Only tunes with specified minimum length "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3442 src/sid/xs_interface.c:1296
-msgid "Automatic sub-tune changes:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3487 src/sid/xs_interface.c:1317
-msgid ""
-"Determine if file is a SID-tune by checking the file contents. If NOT "
-"selected, filetype is determined by checking filename extension (.sid, ."
-"dat, ...)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3489 src/sid/xs_interface.c:1313
-#, fuzzy
-msgid "Detect file by contents (slower)"
-msgstr "Detecția formatului după extensie."
-
-#: src/sid/xmms-sid.glade:3509 src/sid/xs_interface.c:1319
-#, fuzzy
-msgid "Miscellaneous options:"
-msgstr "Meniu de Opțiuni"
-
-#: src/sid/xmms-sid.glade:3582 src/sid/xs_interface.c:1343
+#: src/sid/xmms-sid.glade:2913 src/sid/xs_interface.c:1190
 msgid "Accept and update changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1350
+#: src/sid/xmms-sid.glade:2927 src/sid/xs_interface.c:1197
 msgid "Cancel any changes"
 msgstr "Anuleaza toate schimbarile"
 
-#: src/sid/xmms-sid.glade:3620 src/sid/xs_interface.c:1651
+#: src/sid/xmms-sid.glade:2952 src/sid/xs_interface.c:1474
 #, fuzzy
 msgid "Audacious-SID Fileinfo"
 msgstr "Developerii Audacious:"
 
-#: src/sid/xmms-sid.glade:3674 src/sid/xs_interface.c:1677
-msgid " < "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3710 src/sid/xs_interface.c:1689
-msgid " > "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3783 src/sid/xs_interface.c:1716
+#: src/sid/xmms-sid.glade:3022 src/sid/xs_interface.c:1503
 #, fuzzy
 msgid "Songname:"
 msgstr "Autoderularea Numelui Fișierului"
 
-#: src/sid/xmms-sid.glade:3811 src/sid/xs_interface.c:1724
+#: src/sid/xmms-sid.glade:3050 src/sid/xs_interface.c:1511
 msgid "Composer:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3839 src/sid/xs_interface.c:1732
+#: src/sid/xmms-sid.glade:3078 src/sid/xs_interface.c:1519
 #: src/vorbis/fileinfo.c:723
 msgid "Copyright:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3953 src/sid/xs_interface.c:1772
+#: src/sid/xmms-sid.glade:3192 src/sid/xs_interface.c:1563
 #, fuzzy
 msgid "Song Information:"
 msgstr "Informații despre Track"
 
-#: src/sid/xmms-sid.glade:4008 src/sid/xs_interface.c:1797
-msgid " "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4035 src/sid/xs_interface.c:1812
+#: src/sid/xmms-sid.glade:3266 src/sid/xs_interface.c:1598
 #, fuzzy
 msgid "Author:"
 msgstr "Autor: "
 
-#: src/sid/xmms-sid.glade:4133 src/sid/xs_interface.c:1844
+#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:1632
 msgid "Duration:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4227 src/sid/xs_interface.c:1877
+#: src/sid/xmms-sid.glade:3458 src/sid/xs_interface.c:1666
 #, fuzzy
 msgid "Sub-tune Information:"
 msgstr "Informații despre Pluginul de ieșire"
 
-#: src/sid/xmms-sid.glade:4281 src/sid/xs_interface.c:1951
+#: src/sid/xmms-sid.glade:3512 src/sid/xs_interface.c:1727
 msgid "Select HVSC song length database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4322 src/sid/xs_interface.c:1989
-#, fuzzy
-msgid "Select STIL-database "
+#: src/sid/xmms-sid.glade:3554 src/sid/xs_interface.c:1768
+#, fuzzy
+msgid "Select STIL-database"
 msgstr "Alege fontul playlist-ului"
 
-#: src/sid/xmms-sid.glade:4363 src/sid/xs_interface.c:2027
+#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1809
 msgid "Select HVSC location prefix"
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:315
+#: src/sid/xmms-sid.glade:3638 src/sid/xs_interface.c:1850
+msgid "Select SIDPlay2 filters file for importing"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3680 src/sid/xs_interface.c:1891
+msgid "Select SIDPlay2 filters file for exporting"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3721 src/sid/xmms-sid.glade:3803
+#: src/sid/xs_interface.c:1939 src/sid/xs_interface.c:1952
+#, fuzzy
+msgid "Confirm selected action"
+msgstr "Selecția formatelor"
+
+#: src/sid/xmms-sid.glade:3759 src/sid/xs_interface.c:1969
+#, fuzzy
+msgid "Yes"
+msgstr "da"
+
+#: src/sid/xmms-sid.glade:3771 src/sid/xs_interface.c:1975
+#, fuzzy
+msgid "No"
+msgstr "Deselectează tot"
+
+#: src/sid/xs_fileinfo.c:238
 #, fuzzy
 msgid "General info"
 msgstr "AdPlug·::·Informații despre fișier"
 
-#: src/sid/xs_fileinfo.c:325
+#: src/sid/xs_fileinfo.c:248
 #, fuzzy, c-format
 msgid "Tune #%i: "
 msgstr "Pornește"
 
-#: src/sid/xs_fileinfo.c:336
+#: src/sid/xs_fileinfo.c:259
 #, fuzzy, c-format
 msgid "Tune #%i"
 msgstr "Pornește"
@@ -4425,32 +4314,32 @@
 msgid "Could not open SongLengthDB '%s'\n"
 msgstr "Nu s-a putut crea directorul (%s): %s\n"
 
-#: src/sid/xs_length.c:225
+#: src/sid/xs_length.c:224
 #, c-format
 msgid "Invalid MD5-hash in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:232
+#: src/sid/xs_length.c:231
 #, c-format
 msgid "Invalid entry in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:237
+#: src/sid/xs_length.c:236
 #, c-format
 msgid "Invalid line in SongLengthDB file '%s' line #%d\n"
 msgstr ""
 
-#: src/sid/xs_length.c:399
+#: src/sid/xs_length.c:398
 #, c-format
 msgid "Not a PSID or RSID file '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:418
+#: src/sid/xs_length.c:417
 #, c-format
 msgid "Error reading SID file header from '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:437
+#: src/sid/xs_length.c:436
 #, c-format
 msgid "Error allocating temp data buffer for file '%s'\n"
 msgstr ""
@@ -4487,74 +4376,79 @@
 msgid "[SIDPlay2] Could not initialize emulation engine.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:224
+#: src/sid/xs_sidplay2.cc:208
+#, c-format
+msgid "[SIDPlay2] Invalid number of filter curve points (%d > %d)\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:229
 #, fuzzy
 msgid "reSID->create() failed.\n"
 msgstr "Nu s-a putut crea directorul (%s): %s\n"
 
-#: src/sid/xs_sidplay2.cc:230
+#: src/sid/xs_sidplay2.cc:235
 #, c-format
 msgid "reSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:238
+#: src/sid/xs_sidplay2.cc:243
 #, fuzzy, c-format
 msgid "reSID->sampling(%d) failed.\n"
 msgstr "<b>Convertor pentru rata de eșantionare</b>"
 
-#: src/sid/xs_sidplay2.cc:248
+#: src/sid/xs_sidplay2.cc:253
 msgid "reSID->filter(NULL) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:262
+#: src/sid/xs_sidplay2.cc:267
 #, fuzzy
 msgid "hardSID->create() failed.\n"
 msgstr "Nu s-a putut crea directorul (%s): %s\n"
 
-#: src/sid/xs_sidplay2.cc:268
+#: src/sid/xs_sidplay2.cc:273
 #, c-format
 msgid "hardSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:276
+#: src/sid/xs_sidplay2.cc:281
 msgid "[SIDPlay2] Could not initialize SIDBuilder object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:290
+#: src/sid/xs_sidplay2.cc:295
 #, c-format
 msgid "[SIDPlay2] Invalid clockSpeed=%d, falling back to PAL.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:314
+#: src/sid/xs_sidplay2.cc:319
 #, c-format
 msgid "Invalid sid2OptLevel=%d, falling back to %d.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:338
+#: src/sid/xs_sidplay2.cc:343
 msgid "[SIDPlay2] Emulator engine configuration failed!\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:345
+#: src/sid/xs_sidplay2.cc:350
 msgid "[SIDPlay2] Could not initialize SIDTune object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:396
-msgid "[SIDPlay2] currTune->selectSong() failed\n"
-msgstr ""
-
 #: src/sid/xs_sidplay2.cc:401
+msgid "[SIDPlay2] currTune->selectSong() failed\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:406
 msgid "[SIDPlay2] currEng->load() failed\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:44
+#: src/sid/xs_stil.c:46
 msgid "SubTune pointer structure realloc failed.\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:61
+#: src/sid/xs_stil.c:69
 msgid "SubTune structure malloc failed!\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:168
+#: src/sid/xs_stil.c:176
 #, fuzzy, c-format
 msgid "Could not open STILDB '%s'\n"
 msgstr "Nu s-a putut crea directorul (%s): %s\n"
@@ -5806,6 +5700,26 @@
 msgid "About %s"
 msgstr "Despre %s"
 
+#, fuzzy
+#~ msgid "Could not allocate sidFilename ('%s')\n"
+#~ msgstr "Nu s-a putut crea directorul (%s): %s\n"
+
+#, fuzzy
+#~ msgid "Load"
+#~ msgstr "Încarcă"
+
+#, fuzzy
+#~ msgid "Song-position patch"
+#~ msgstr "Pauză"
+
+#, fuzzy
+#~ msgid "Detect file by contents (slower)"
+#~ msgstr "Detecția formatului după extensie."
+
+#, fuzzy
+#~ msgid "Miscellaneous options:"
+#~ msgstr "Meniu de Opțiuni"
+
 #~ msgid ":"
 #~ msgstr ":"
 
--- a/po/ru.po	Thu Sep 13 12:09:38 2007 -0500
+++ b/po/ru.po	Thu Sep 13 12:10:39 2007 -0500
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: audacious-plugins 1.3\n"
 "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n"
-"POT-Creation-Date: 2007-08-30 18:23+0200\n"
+"POT-Creation-Date: 2007-09-05 00:28+0200\n"
 "PO-Revision-Date: 2007-04-12 21:50+0300\n"
 "Last-Translator: Alexander Orlov <alxorlov@pochta.ru>\n"
 "Language-Team: none\n"
@@ -41,7 +41,7 @@
 #: src/audiocompress/audacious-glue.c:556 src/cdaudio-ng/configure.c:144
 #: src/console/Audacious_Driver.cxx:500 src/echo_plugin/gui.c:27
 #: src/echo_plugin/gui.c:138 src/esd/about.c:49
-#: src/filewriter/filewriter.c:182 src/jack/configure.c:140
+#: src/filewriter/filewriter.c:184 src/jack/configure.c:140
 #: src/jack/jack.c:602 src/madplug/fileinfo.c:158 src/madplug/fileinfo.c:236
 #: src/madplug/plugin.c:597 src/madplug/plugin.c:620
 #: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:45
@@ -94,8 +94,8 @@
 #: src/audiocompress/audacious-glue.c:561 src/cdaudio-ng/configure.c:148
 #: src/echo_plugin/gui.c:146 src/jack/configure.c:147
 #: src/modplug/gui/interface.cxx:741 src/musepack/libmpc.cxx:236
-#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:3599
-#: src/sid/xs_interface.c:1345 src/stereo_plugin/stereo.c:128
+#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:2930
+#: src/sid/xs_interface.c:1192 src/stereo_plugin/stereo.c:128
 #: src/sun/configure.c:567 src/timidity/src/interface.c:232
 #: src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561
 msgid "Cancel"
@@ -132,14 +132,14 @@
 msgstr "Каналы"
 
 #: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:899
-#: src/sid/xmms-sid.glade:156 src/sid/xs_interface.c:302
+#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:280
 #: src/timidity/src/interface.c:167
 msgid "Mono"
 msgstr "Моно"
 
 #: src/adplug/adplug-xmms.cc:333 src/filewriter/mp3.c:894
-#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:175
-#: src/sid/xs_interface.c:309 src/timidity/src/interface.c:175
+#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:176
+#: src/sid/xs_interface.c:287 src/timidity/src/interface.c:175
 msgid "Stereo"
 msgstr "Стерео"
 
@@ -254,30 +254,30 @@
 msgid "Subsong selection"
 msgstr "Выбор внутреннего модулÑ"
 
-#: src/adplug/adplug-xmms.cc:688
+#: src/adplug/adplug-xmms.cc:730
 msgid "Order: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:689
+#: src/adplug/adplug-xmms.cc:731
 msgid "Pattern: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:691
+#: src/adplug/adplug-xmms.cc:733
 msgid "Row: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:692
+#: src/adplug/adplug-xmms.cc:734
 #, fuzzy
 msgid "Speed: "
 msgstr "Речь"
 
-#: src/adplug/adplug-xmms.cc:693
+#: src/adplug/adplug-xmms.cc:735
 #, fuzzy
 msgid "Timer: "
 msgstr "Time Div:"
 
-#: src/adplug/adplug-xmms.cc:694 src/console/Audacious_Config.cxx:226
-#: src/sid/xmms-sid.glade:513 src/sid/xs_interface.c:361
+#: src/adplug/adplug-xmms.cc:736 src/console/Audacious_Config.cxx:226
+#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:333
 msgid "Hz"
 msgstr "Гц"
 
@@ -313,8 +313,8 @@
 msgstr ""
 
 #: src/alarm/interface.c:73 src/lirc/about.c:116
-#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:4262
-#: src/sid/xs_interface.c:1882
+#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:3493
+#: src/sid/xs_interface.c:1671
 msgid "Close"
 msgstr "Закрыть"
 
@@ -328,10 +328,10 @@
 
 #: src/alarm/interface.c:126 src/alarm/interface.c:1391 src/alsa/about.c:46
 #: src/alsa/configure.c:405 src/cdaudio-ng/cdaudio-ng.c:206
-#: src/filewriter/filewriter.c:199 src/flacng/plugin.c:743
+#: src/filewriter/filewriter.c:201 src/flacng/plugin.c:743
 #: src/modplug/gui/interface.cxx:725 src/pulse_audio/pulse_audio.c:694
-#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:3585
-#: src/sid/xs_interface.c:1338
+#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:2916
+#: src/sid/xs_interface.c:1185
 msgid "OK"
 msgstr "ОК"
 
@@ -384,6 +384,10 @@
 msgid "h"
 msgstr ""
 
+#: src/alarm/interface.c:538
+msgid "minutes"
+msgstr ""
+
 #: src/alarm/interface.c:556
 #, fuzzy
 msgid "Quiet after:"
@@ -447,10 +451,10 @@
 msgid "Fading"
 msgstr "УÑилениÑ:"
 
-#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2271
-#: src/sid/xmms-sid.glade:2442 src/sid/xmms-sid.glade:3408
-#: src/sid/xs_interface.c:923 src/sid/xs_interface.c:977
-#: src/sid/xs_interface.c:1289
+#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2007
+#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2526
+#: src/sid/xs_interface.c:900 src/sid/xs_interface.c:954
+#: src/sid/xs_interface.c:1064
 #, fuzzy
 msgid "seconds"
 msgstr "Ñекунд"
@@ -1392,8 +1396,8 @@
 "backend</span>"
 msgstr "<span size=\"smaller\">определение</span>"
 
-#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:4084
-#: src/sid/xs_interface.c:1828 src/vorbis/fileinfo.c:562
+#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3315
+#: src/sid/xs_interface.c:1615 src/vorbis/fileinfo.c:562
 msgid "Name:"
 msgstr "ИмÑ:"
 
@@ -1645,10 +1649,10 @@
 msgid "Skin file:"
 msgstr "Файл темы:"
 
-#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2595
-#: src/sid/xmms-sid.glade:2801 src/sid/xmms-sid.glade:2907
-#: src/sid/xs_interface.c:1024 src/sid/xs_interface.c:1093
-#: src/sid/xs_interface.c:1128
+#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2331
+#: src/sid/xmms-sid.glade:2706 src/sid/xmms-sid.glade:2812
+#: src/sid/xs_interface.c:1002 src/sid/xs_interface.c:1124
+#: src/sid/xs_interface.c:1160
 msgid "Browse"
 msgstr "ПроÑмотреть"
 
@@ -1730,7 +1734,7 @@
 msgstr "СобытиÑ"
 
 #: src/aosd/aosd_ui.c:1073 src/cdaudio-ng/configure.c:87
-#: src/sid/xmms-sid.glade:3545 src/sid/xs_interface.c:1324
+#: src/sid/xmms-sid.glade:2876 src/sid/xs_interface.c:1171
 #, fuzzy
 msgid "Misc"
 msgstr "ДиÑко"
@@ -2023,7 +2027,7 @@
 msgstr "ДлительноÑÑ‚ÑŒ пеÑни по-умолчанию:"
 
 #: src/console/Audacious_Config.cxx:201 src/modplug/gui/interface.cxx:264
-#: src/sid/xmms-sid.glade:1424 src/sid/xs_interface.c:673
+#: src/sid/xmms-sid.glade:1243 src/sid/xs_interface.c:645
 msgid "Resampling"
 msgstr "Преобразование чаÑтоты"
 
@@ -2384,7 +2388,7 @@
 "Ðевозможно открыть окно Ð´Ð»Ñ Ð½ÐµÐ¾Ð¿Ð¾Ð·Ð½Ð°Ð½Ð½Ð¾Ð³Ð¾ уÑтройÑтва.\n"
 "УбедитеÑÑŒ, что уÑтройÑтво правильно подключено."
 
-#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:196
+#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:198
 #: src/madplug/plugin.c:620
 msgid "Error"
 msgstr "Ошибка"
@@ -2529,12 +2533,12 @@
 "< james@develia.org >\n"
 "\n"
 
-#: src/filewriter/filewriter.c:167
+#: src/filewriter/filewriter.c:169
 #, fuzzy
 msgid "About FileWriter-Plugin"
 msgstr "О модуле Flac"
 
-#: src/filewriter/filewriter.c:168
+#: src/filewriter/filewriter.c:170
 #, fuzzy
 msgid ""
 "FileWriter-Plugin\n"
@@ -2573,7 +2577,7 @@
 "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307,\n"
 "USA."
 
-#: src/filewriter/filewriter.c:197
+#: src/filewriter/filewriter.c:199
 #, fuzzy
 msgid ""
 "You cannot use the FileWriter plugin\n"
@@ -2582,60 +2586,60 @@
 "ИÑпользование Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð·Ð°Ð¿Ð¸Ñи на диÑк невозможно\n"
 "во Ð²Ñ€ÐµÐ¼Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ в режиме реального времени."
 
-#: src/filewriter/filewriter.c:512
+#: src/filewriter/filewriter.c:514
 #, fuzzy
 msgid "File Writer Configuration"
 msgstr "ÐаÑтройка запиÑи на диÑк"
 
-#: src/filewriter/filewriter.c:524
+#: src/filewriter/filewriter.c:526
 #, fuzzy
 msgid "Output file format:"
 msgstr "Каталог Ð´Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð½Ñ‹Ñ… файлов:"
 
-#: src/filewriter/filewriter.c:542 src/ladspa/ladspa.c:962
+#: src/filewriter/filewriter.c:544 src/ladspa/ladspa.c:962
 #, fuzzy
 msgid "Configure"
 msgstr "ÐаÑтроить Эхо"
 
-#: src/filewriter/filewriter.c:557
+#: src/filewriter/filewriter.c:559
 msgid "Save into original directory"
 msgstr ""
 
-#: src/filewriter/filewriter.c:562
+#: src/filewriter/filewriter.c:564
 msgid "Save into custom directory"
 msgstr ""
 
-#: src/filewriter/filewriter.c:574
+#: src/filewriter/filewriter.c:576
 msgid "Output file folder:"
 msgstr "Каталог Ð´Ð»Ñ Ð²Ñ‹Ñ…Ð¾Ð´Ð½Ñ‹Ñ… файлов:"
 
-#: src/filewriter/filewriter.c:578
+#: src/filewriter/filewriter.c:580
 msgid "Pick a folder"
 msgstr ""
 
-#: src/filewriter/filewriter.c:598
+#: src/filewriter/filewriter.c:600
 msgid "Get filename from:"
 msgstr ""
 
-#: src/filewriter/filewriter.c:601
+#: src/filewriter/filewriter.c:603
 msgid "original file tags"
 msgstr ""
 
-#: src/filewriter/filewriter.c:607
+#: src/filewriter/filewriter.c:609
 msgid "original filename"
 msgstr ""
 
-#: src/filewriter/filewriter.c:617
+#: src/filewriter/filewriter.c:619
 msgid "Don't strip file name extension"
 msgstr "Ðе удалÑÑ‚ÑŒ раÑширение имени файла"
 
-#: src/filewriter/filewriter.c:621
+#: src/filewriter/filewriter.c:623
 msgid ""
 "If enabled, the extension from the original filename will not be stripped "
 "before adding the new file extension to the end."
 msgstr ""
 
-#: src/filewriter/filewriter.c:635
+#: src/filewriter/filewriter.c:637
 msgid "Prepend track number to filename"
 msgstr ""
 
@@ -3085,8 +3089,7 @@
 msgid "ID3 format:"
 msgstr "Формат ID3-тега:"
 
-#: src/madplug/configure.c:261 src/sid/xmms-sid.glade:3144
-#: src/sid/xs_interface.c:1189 src/vorbis/configure.c:160
+#: src/madplug/configure.c:261 src/vorbis/configure.c:160
 msgid "Title"
 msgstr "Ðазвание"
 
@@ -3542,8 +3545,8 @@
 msgid "Use Album Gain"
 msgstr "иÑпользовать Gain/Peak Ðльбома"
 
-#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:3755
-#: src/sid/xs_interface.c:1708 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
+#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:2994
+#: src/sid/xs_interface.c:1495 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
 msgid "Filename:"
 msgstr "Ð˜Ð¼Ñ Ñ„Ð°Ð¹Ð»Ð°:"
 
@@ -3556,8 +3559,8 @@
 msgid "Track:"
 msgstr "УÑиление дорожки:"
 
-#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1996
-#: src/sid/xs_interface.c:835 src/wavpack/ui.cxx:265
+#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1732
+#: src/sid/xs_interface.c:812 src/wavpack/ui.cxx:265
 msgid "Save"
 msgstr "Сохранить"
 
@@ -3870,162 +3873,142 @@
 msgid "Scrobbler Error"
 msgstr "Модуль Scrobbler"
 
-#: src/sid/xmms-sid.c:207
+#: src/sid/xmms-sid.c:203
 msgid "Error initializing song-length database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:213
+#: src/sid/xmms-sid.c:209
 msgid "Error initializing STIL database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:327
+#: src/sid/xmms-sid.c:414
 msgid "Couldn't allocate memory for audio data buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:334
+#: src/sid/xmms-sid.c:421
 msgid "Couldn't allocate memory for audio oversampling buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:409
+#: src/sid/xmms-sid.c:436
 #, c-format
 msgid "Couldn't initialize SID-tune '%s' (sub-tune #%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:420
+#: src/sid/xmms-sid.c:446
 #, c-format
 msgid "Couldn't open XMMS audio output (fmt=%x, freq=%i, nchan=%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:466
+#: src/sid/xmms-sid.c:491
 msgid "Oversampling rate-conversion pass failed.\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:770
-#, fuzzy
-msgid "Subtune Control"
-msgstr "РегулÑтор громкоÑти:"
-
-#: src/sid/xmms-sid.c:1001
-#, c-format
-msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1008
-#, c-format
-msgid "Could not allocate sidFilename ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1017
-#, c-format
-msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:235
-#, fuzzy
-msgid "Audacious-SID Configuration"
+#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:213
+#, fuzzy
+msgid "Audacious-SID configuration"
 msgstr "ÐаÑтройка Audacious OSD"
 
-#: src/sid/xmms-sid.glade:70 src/sid/xs_interface.c:271
+#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:249
 #, fuzzy
 msgid "8-bit"
 msgstr "8 бит"
 
-#: src/sid/xmms-sid.glade:89 src/sid/xs_interface.c:278
+#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:256
 #, fuzzy
 msgid "16-bit"
 msgstr "16 бит"
 
-#: src/sid/xmms-sid.glade:110 src/sid/xs_interface.c:285
+#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:263
 #, fuzzy
 msgid "Resolution:"
 msgstr "Разрешение"
 
-#: src/sid/xmms-sid.glade:195 src/sid/xs_interface.c:316
+#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:294
 msgid "Autopanning"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:216 src/sid/xs_interface.c:323
+#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:301
 #: src/vorbis/fileinfo.c:867 src/vorbis/fileinfo.c:924
 msgid "Channels:"
 msgstr "Каналы:"
 
-#: src/sid/xmms-sid.glade:565 src/sid/xs_interface.c:373
+#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:345
 #, fuzzy
 msgid "Samplerate:"
 msgstr "ЧаÑтота:"
 
-#: src/sid/xmms-sid.glade:611 src/sid/xs_interface.c:390
+#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:362
 #, fuzzy
 msgid "Use oversampling"
 msgstr "Преобразование чаÑтоты"
 
-#: src/sid/xmms-sid.glade:637 src/sid/xs_interface.c:401
+#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:373
 msgid "Factor:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:681 src/sid/xs_interface.c:413
+#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:385
 msgid "Large factors require more CPU-power"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:715 src/sid/xs_interface.c:419
+#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:391
 #, fuzzy
 msgid "Oversampling:"
 msgstr "Преобразование чаÑтоты"
 
-#: src/sid/xmms-sid.glade:751 src/sid/xs_interface.c:424
+#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:396
 msgid "Audio"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:801 src/sid/xs_interface.c:456
+#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:428
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "clock speed/frequency. Otherwise the speed is determined from played file "
 "itself."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:803 src/sid/xs_interface.c:452
+#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:424
 msgid "Force speed"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:821 src/sid/xs_interface.c:462
+#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:434
 msgid ""
 "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. "
 "Most of SID-tunes have been made for PAL computers."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:823 src/sid/xs_interface.c:458
+#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:430
 msgid "PAL (50 Hz)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:841 src/sid/xs_interface.c:470
+#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:442
 msgid ""
 "NTSC is the TV standard with 60Hz vertical refresh rate (and other features "
 "that differ from PAL). It is mainly used in United States, Japan and certain "
 "other countries."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:843 src/sid/xs_interface.c:466
+#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:438
 msgid "NTSC (60 Hz)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:864 src/sid/xs_interface.c:474
+#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:446
 #, fuzzy
 msgid "Clock speed:"
 msgstr "СкороÑÑ‚ÑŒ воÑпроизведениÑ"
 
-#: src/sid/xmms-sid.glade:909 src/sid/xs_interface.c:495
+#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:467
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "SID-chip model. Otherwise the preferred SID model is determined from the "
 "file (if PSIDv2NG type) or if not available, this setting is used."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:911 src/sid/xs_interface.c:491
+#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:463
 #, fuzzy
 msgid "Force model"
 msgstr "Режим дорожки"
 
-#: src/sid/xmms-sid.glade:929 src/sid/xs_interface.c:501
+#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:473
 msgid ""
 "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 "
 "in few ways, having much fuller filter (which, due to design error, is never "
@@ -4033,92 +4016,92 @@
 "which enables playing of digital samples."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:931 src/sid/xs_interface.c:497
+#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:469
 msgid "MOS 6581"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:950 src/sid/xs_interface.c:505
+#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:477
 msgid "MOS 8580"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:971 src/sid/xs_interface.c:512
+#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:484
 #, fuzzy
 msgid "SID model:"
 msgstr "Режим воÑпроизведениÑ:"
 
-#: src/sid/xmms-sid.glade:1023 src/sid/xs_interface.c:533
+#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:505
 msgid ""
 "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most "
 "cases, though."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1025 src/sid/xs_interface.c:529
+#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:501
 msgid "SIDPlay 1 (frame-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1044 src/sid/xs_interface.c:541
+#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:513
 msgid ""
 "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact "
 "emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1046 src/sid/xs_interface.c:537
+#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:509
 msgid "SIDPlay 2 (cycle-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1068 src/sid/xs_interface.c:545
+#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:517
 msgid "Emulation library selection:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1114 src/sid/xs_interface.c:562
+#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:534
 msgid "Real C64 (SIDPlay 2 only)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:569
+#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:541
 msgid "Bank switching"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1153 src/sid/xs_interface.c:576
+#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:548
 #, fuzzy
 msgid "Transparent ROM"
 msgstr "ТранÑпонирование: "
 
-#: src/sid/xmms-sid.glade:1173 src/sid/xs_interface.c:583
+#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:555
 msgid "PlaySID environment"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1194 src/sid/xs_interface.c:590
+#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:562
 #, fuzzy
 msgid "Memory mode:"
 msgstr "Режим воÑпроизведениÑ:"
 
-#: src/sid/xmms-sid.glade:1230 src/sid/xs_interface.c:595
+#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:567
 msgid "Emu#1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1274 src/sid/xs_interface.c:622
+#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:594
 msgid ""
 "This setting can be used to enable libSIDPlay2's \"optimization mode\", "
 "which in downgrades the emulation from cycle-exact to something similar to "
 "frame-exact. The result is lower CPU usage, but worse accuracy."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1276 src/sid/xs_interface.c:618
+#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:590
 msgid "Optimization mode (faster, inaccurate)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1294 src/sid/xs_interface.c:628
+#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:600
 msgid ""
 "reSID is the software SID-chip simulator based on SID reverse-engineering, "
 "created by Dag Lem. It is probably the closest thing to real SID available "
 "as software-only emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1296 src/sid/xs_interface.c:624
+#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:596
 msgid "reSID-emulation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1314 src/sid/xs_interface.c:636
+#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:608
 msgid ""
 "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a "
 "real SID-chip. Software can be used to control the HardSID and combined with "
@@ -4127,49 +4110,49 @@
 "http://www.hardsid.com/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1316 src/sid/xs_interface.c:632
+#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:604
 msgid "HardSID"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1337 src/sid/xs_interface.c:640
+#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:612
 msgid "SIDPlay 2 options:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1382 src/sid/xs_interface.c:661
+#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:633
 msgid ""
 "Fastest and also worst sounding sampling method, simply picks nearest "
 "neighbouring sample."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1384 src/sid/xs_interface.c:657
+#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:629
 msgid "Fast (nearest neighbour)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1402 src/sid/xs_interface.c:669
+#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:641
 msgid ""
 "Uses linear interpolation between samples, yielding higher audio quality "
 "with less sampling noise."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1404 src/sid/xs_interface.c:665
+#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:637
 msgid "Linear interpolation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1444 src/sid/xs_interface.c:680
+#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:652
 #, fuzzy
 msgid "Resampling (FIR)"
 msgstr "Преобразование чаÑтоты"
 
-#: src/sid/xmms-sid.glade:1465 src/sid/xs_interface.c:687
+#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:659
 #, fuzzy
 msgid "reSID sampling options:"
 msgstr "Преобразование чаÑтоты:"
 
-#: src/sid/xmms-sid.glade:1501 src/sid/xs_interface.c:692
+#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:664
 msgid "Emu#2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1531 src/sid/xs_interface.c:708
+#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:680
 msgid ""
 "This option enables emulation of SID filter. The filter is an essential part "
 "of SID's sound capacity, but accurate emulation of it may require quite much "
@@ -4177,387 +4160,291 @@
 "authentic at all if they utilize the filter."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1533 src/sid/xs_interface.c:704
+#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:676
 msgid "Emulate filters"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1590 src/sid/xs_interface.c:733
+#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:705
 msgid "FS"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1641 src/sid/xs_interface.c:750
+#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:722
 msgid "FM"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1692 src/sid/xs_interface.c:767
+#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:739
 msgid "FT"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1730 src/sid/xs_interface.c:778
+#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:750
 msgid "Reset values"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1759 src/sid/xs_interface.c:783
+#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:755
 msgid "SIDPlay1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1828 src/sid/xs_interface.c:807
-msgid "6581 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1854 src/sid/xs_interface.c:808
-msgid "8580 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1880 src/sid/xs_interface.c:809
-msgid "6581R1 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1906 src/sid/xs_interface.c:810
-msgid "6581R4 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1975 src/sid/xs_interface.c:827
-msgid "Load"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2017 src/sid/xs_interface.c:843
+#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:796
+#, fuzzy
+msgid "Export"
+msgstr "Порт"
+
+#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:804
+msgid "Use"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:820
 #, fuzzy
 msgid "Import"
 msgstr "Порт"
 
-#: src/sid/xmms-sid.glade:2038 src/sid/xs_interface.c:851
-#, fuzzy
-msgid "Export"
-msgstr "Порт"
-
-#: src/sid/xmms-sid.glade:2083 src/sid/xs_interface.c:865
+#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:828
+#, fuzzy
+msgid "Delete"
+msgstr "По умолчанию"
+
+#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:842
 #, fuzzy
 msgid "Filter curve:"
 msgstr "Размер файла:"
 
-#: src/sid/xmms-sid.glade:2119 src/sid/xs_interface.c:870
+#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:847
 msgid "SIDPlay2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2155 src/sid/xs_interface.c:876
+#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:853
 msgid "Filters"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2199 src/sid/xs_interface.c:903
+#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:880
 msgid ""
 "If enabled, the tune is played at least for the specified time, adding "
 "silence to the end if necessary."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2201 src/sid/xs_interface.c:899
+#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:876
 #, fuzzy
 msgid "Play at least for specified time"
 msgstr "ВоÑпроизводить на нормальной ÑкороÑти"
 
-#: src/sid/xmms-sid.glade:2226 src/sid/xmms-sid.glade:2397
-#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:910
-#: src/sid/xs_interface.c:964 src/sid/xs_interface.c:1276
+#: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133
+#: src/sid/xmms-sid.glade:2482 src/sid/xs_interface.c:887
+#: src/sid/xs_interface.c:941 src/sid/xs_interface.c:1051
 #, fuzzy
 msgid "Playtime:"
 msgstr "Режим воÑпроизведениÑ:"
 
-#: src/sid/xmms-sid.glade:2305 src/sid/xs_interface.c:930
+#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:907
 msgid "Minimum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2350 src/sid/xs_interface.c:951
+#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:928
 msgid ""
 "If enabled, tune is played until specified duration is reached (aka maximum "
 "playtime)."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2352 src/sid/xs_interface.c:947
+#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:924
 msgid "Play for specified time maximum"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2371 src/sid/xs_interface.c:957
+#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:934
 msgid ""
 "If enabled, the maximum playtime is applied only if song/tune length is not "
 "known."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2373 src/sid/xs_interface.c:953
+#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:930
 msgid "Only when song length is unknown"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2476 src/sid/xs_interface.c:984
+#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:961
 msgid "Maximum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2521 src/sid/xs_interface.c:1005
+#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:982
 msgid ""
 "This option enables using of XSIDPLAY compatible song length database. "
 "(Refer to Audacious-SID documentation for more information)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2523 src/sid/xs_interface.c:1001
+#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:978
 msgid "Use XSIDPLAY-compatible database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2548 src/sid/xs_interface.c:1012
+#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:989
 #, fuzzy
 msgid "DB-file:"
 msgstr "Файл уÑтройÑтва:"
 
-#: src/sid/xmms-sid.glade:2573 src/sid/xs_interface.c:1022
+#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:999
 msgid "Database path and filename"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2593 src/sid/xs_interface.c:1028
+#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1006
 msgid "Browse for song length-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2620 src/sid/xs_interface.c:1030
+#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1008
 msgid "Song length database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1035
+#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1013
 #, fuzzy
 msgid "Songlength"
 msgstr "ДлительноÑÑ‚ÑŒ пеÑни по-умолчанию:"
 
-#: src/sid/xmms-sid.glade:2700 src/sid/xs_interface.c:1062
+#: src/sid/xmms-sid.glade:2437 src/sid/xs_interface.c:1036
+msgid "Add sub-tunes to playlist"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1041
+msgid "Only tunes with specified minimum length "
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2560 src/sid/xs_interface.c:1071
+#, fuzzy
+msgid "Sub-tune handling:"
+msgstr "РегулÑтор громкоÑти:"
+
+#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1092
 msgid ""
 "If this option is enabled (and the database & HVSC settings below are "
 "correctly set), Audacious-SID will use and display additional information "
 "from STIL database when HVSC SIDs are played."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:1058
+#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1088
 msgid "Use STIL database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2727 src/sid/xs_interface.c:1069
+#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:1099
 #, fuzzy
 msgid "STIL file:"
 msgstr "Файл темы:"
 
-#: src/sid/xmms-sid.glade:2764 src/sid/xs_interface.c:1085
+#: src/sid/xmms-sid.glade:2669 src/sid/xs_interface.c:1115
 msgid ""
 "Path and filename of STIL database file (STIL.txt), usually found from "
 "HVSC's DOCUMENTS-subdirectory."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2799 src/sid/xs_interface.c:1097
+#: src/sid/xmms-sid.glade:2704 src/sid/xs_interface.c:1128
 msgid "Browse for STIL-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2833 src/sid/xs_interface.c:1104
+#: src/sid/xmms-sid.glade:2738 src/sid/xs_interface.c:1135
 msgid "HVSC path:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2870 src/sid/xs_interface.c:1120
+#: src/sid/xmms-sid.glade:2775 src/sid/xs_interface.c:1151
 msgid ""
 "Path to base-directory of your High Voltage SID Collection (HVSC), for "
 "example /media/C64Music/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2905 src/sid/xs_interface.c:1132
+#: src/sid/xmms-sid.glade:2810 src/sid/xs_interface.c:1164
 msgid "Browse for HVSC path"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2935 src/sid/xs_interface.c:1134
+#: src/sid/xmms-sid.glade:2840 src/sid/xs_interface.c:1166
 msgid "SID Tune Information List (STIL) database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2980 src/sid/xs_interface.c:1155
-msgid ""
-"XMMS v1.2.5 and later support generic titlestring formatting (see XMMS "
-"preferences). This option can be enabled to override those generic titles "
-"with Audacious-SID specific ones. Formatting mnemonics are explained briefly "
-"below."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2982 src/sid/xs_interface.c:1151
-#, fuzzy
-msgid "Override generic XMMS titles"
-msgstr "Ðе иÑпользовать Ñтандартные названиÑ"
-
-#: src/sid/xmms-sid.glade:3032 src/sid/xs_interface.c:1172
-msgid ""
-"%% - '%' character\n"
-"%p - Performer/composer\n"
-"%t - Song name (title)\n"
-"%c - Copyright\n"
-"%s - File type\n"
-"%m - SID model"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3062 src/sid/xs_interface.c:1178
-msgid ""
-"%C - Speed/clock (PAL/NTSC)\n"
-"%n - Subtune\n"
-"%N - Number of subtunes\n"
-"%f - Filename\n"
-"%F - File path\n"
-"%e - File extension"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3108 src/sid/xs_interface.c:1184
-#, fuzzy
-msgid "Song name/title format:"
-msgstr "Формат названиÑ:"
-
-#: src/sid/xmms-sid.glade:3188 src/sid/xs_interface.c:1216
-#, fuzzy
-msgid "No sub-tune control."
-msgstr "РегулÑтор громкоÑти:"
-
-#: src/sid/xmms-sid.glade:3190 src/sid/xs_interface.c:1212
-#, fuzzy
-msgid "Disabled"
-msgstr "переменный"
-
-#: src/sid/xmms-sid.glade:3208 src/sid/xs_interface.c:1224
-msgid ""
-"Seeking backwards/forwards selects previous/next sub-tune, similar to "
-"selector used in XMMS-SidPlay."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3210 src/sid/xs_interface.c:1220
-msgid "Seek back/forward changes sub-tune"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3229 src/sid/xs_interface.c:1232
-msgid ""
-"By pressing the seekbar a sub-tune control window pops up, in style of UADE "
-"(Unix Amiga Delitracker Emulator)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3231 src/sid/xs_interface.c:1228
-msgid "Pop-up via seekbar (UADE-style)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3250 src/sid/xs_interface.c:1240
-msgid ""
-"Seekbar works as a sub-tune selector (Best option if you have patched your "
-"XMMS with the song-position patch.)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3252 src/sid/xs_interface.c:1236
-msgid "Song-position patch"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3273 src/sid/xs_interface.c:1244
-#, fuzzy
-msgid "Sub-tune control:"
-msgstr "РегулÑтор громкоÑти:"
-
-#: src/sid/xmms-sid.glade:3319 src/sid/xs_interface.c:1261
-msgid "Go through all sub-tunes in file"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3339 src/sid/xs_interface.c:1266
-msgid "Only tunes with specified minimum length "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3442 src/sid/xs_interface.c:1296
-msgid "Automatic sub-tune changes:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3487 src/sid/xs_interface.c:1317
-msgid ""
-"Determine if file is a SID-tune by checking the file contents. If NOT "
-"selected, filetype is determined by checking filename extension (.sid, ."
-"dat, ...)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3489 src/sid/xs_interface.c:1313
-msgid "Detect file by contents (slower)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3509 src/sid/xs_interface.c:1319
-msgid "Miscellaneous options:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3582 src/sid/xs_interface.c:1343
+#: src/sid/xmms-sid.glade:2913 src/sid/xs_interface.c:1190
 msgid "Accept and update changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1350
+#: src/sid/xmms-sid.glade:2927 src/sid/xs_interface.c:1197
 msgid "Cancel any changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3620 src/sid/xs_interface.c:1651
+#: src/sid/xmms-sid.glade:2952 src/sid/xs_interface.c:1474
 #, fuzzy
 msgid "Audacious-SID Fileinfo"
 msgstr ""
 "\n"
 "Audacious OSD "
 
-#: src/sid/xmms-sid.glade:3674 src/sid/xs_interface.c:1677
-msgid " < "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3710 src/sid/xs_interface.c:1689
-msgid " > "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3783 src/sid/xs_interface.c:1716
+#: src/sid/xmms-sid.glade:3022 src/sid/xs_interface.c:1503
 msgid "Songname:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3811 src/sid/xs_interface.c:1724
+#: src/sid/xmms-sid.glade:3050 src/sid/xs_interface.c:1511
 msgid "Composer:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3839 src/sid/xs_interface.c:1732
+#: src/sid/xmms-sid.glade:3078 src/sid/xs_interface.c:1519
 #: src/vorbis/fileinfo.c:723
 msgid "Copyright:"
 msgstr "ÐвторÑкое право:"
 
-#: src/sid/xmms-sid.glade:3953 src/sid/xs_interface.c:1772
+#: src/sid/xmms-sid.glade:3192 src/sid/xs_interface.c:1563
 #, fuzzy
 msgid "Song Information:"
 msgstr "ИнформациÑ"
 
-#: src/sid/xmms-sid.glade:4008 src/sid/xs_interface.c:1797
-msgid " "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4035 src/sid/xs_interface.c:1812
+#: src/sid/xmms-sid.glade:3266 src/sid/xs_interface.c:1598
 msgid "Author:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4133 src/sid/xs_interface.c:1844
+#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:1632
 #, fuzzy
 msgid "Duration:"
 msgstr "Стиль"
 
-#: src/sid/xmms-sid.glade:4227 src/sid/xs_interface.c:1877
+#: src/sid/xmms-sid.glade:3458 src/sid/xs_interface.c:1666
 #, fuzzy
 msgid "Sub-tune Information:"
 msgstr "ИнформациÑ"
 
-#: src/sid/xmms-sid.glade:4281 src/sid/xs_interface.c:1951
+#: src/sid/xmms-sid.glade:3512 src/sid/xs_interface.c:1727
 msgid "Select HVSC song length database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4322 src/sid/xs_interface.c:1989
-msgid "Select STIL-database "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4363 src/sid/xs_interface.c:2027
+#: src/sid/xmms-sid.glade:3554 src/sid/xs_interface.c:1768
+msgid "Select STIL-database"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1809
 msgid "Select HVSC location prefix"
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:315
+#: src/sid/xmms-sid.glade:3638 src/sid/xs_interface.c:1850
+msgid "Select SIDPlay2 filters file for importing"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3680 src/sid/xs_interface.c:1891
+msgid "Select SIDPlay2 filters file for exporting"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3721 src/sid/xmms-sid.glade:3803
+#: src/sid/xs_interface.c:1939 src/sid/xs_interface.c:1952
+#, fuzzy
+msgid "Confirm selected action"
+msgstr "Выбор внутреннего модулÑ"
+
+#: src/sid/xmms-sid.glade:3759 src/sid/xs_interface.c:1969
+#, fuzzy
+msgid "Yes"
+msgstr "да"
+
+#: src/sid/xmms-sid.glade:3771 src/sid/xs_interface.c:1975
+#, fuzzy
+msgid "No"
+msgstr "Ðет"
+
+#: src/sid/xs_fileinfo.c:238
 #, fuzzy
 msgid "General info"
 msgstr "ОÑновной"
 
-#: src/sid/xs_fileinfo.c:325
+#: src/sid/xs_fileinfo.c:248
 #, c-format
 msgid "Tune #%i: "
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:336
+#: src/sid/xs_fileinfo.c:259
 #, c-format
 msgid "Tune #%i"
 msgstr ""
@@ -4580,32 +4467,32 @@
 msgid "Could not open SongLengthDB '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:225
+#: src/sid/xs_length.c:224
 #, c-format
 msgid "Invalid MD5-hash in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:232
+#: src/sid/xs_length.c:231
 #, c-format
 msgid "Invalid entry in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:237
+#: src/sid/xs_length.c:236
 #, c-format
 msgid "Invalid line in SongLengthDB file '%s' line #%d\n"
 msgstr ""
 
-#: src/sid/xs_length.c:399
+#: src/sid/xs_length.c:398
 #, c-format
 msgid "Not a PSID or RSID file '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:418
+#: src/sid/xs_length.c:417
 #, c-format
 msgid "Error reading SID file header from '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:437
+#: src/sid/xs_length.c:436
 #, c-format
 msgid "Error allocating temp data buffer for file '%s'\n"
 msgstr ""
@@ -4642,72 +4529,77 @@
 msgid "[SIDPlay2] Could not initialize emulation engine.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:224
+#: src/sid/xs_sidplay2.cc:208
+#, c-format
+msgid "[SIDPlay2] Invalid number of filter curve points (%d > %d)\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:229
 msgid "reSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:230
+#: src/sid/xs_sidplay2.cc:235
 #, c-format
 msgid "reSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:238
+#: src/sid/xs_sidplay2.cc:243
 #, c-format
 msgid "reSID->sampling(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:248
+#: src/sid/xs_sidplay2.cc:253
 msgid "reSID->filter(NULL) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:262
+#: src/sid/xs_sidplay2.cc:267
 msgid "hardSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:268
+#: src/sid/xs_sidplay2.cc:273
 #, c-format
 msgid "hardSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:276
+#: src/sid/xs_sidplay2.cc:281
 msgid "[SIDPlay2] Could not initialize SIDBuilder object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:290
+#: src/sid/xs_sidplay2.cc:295
 #, c-format
 msgid "[SIDPlay2] Invalid clockSpeed=%d, falling back to PAL.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:314
+#: src/sid/xs_sidplay2.cc:319
 #, c-format
 msgid "Invalid sid2OptLevel=%d, falling back to %d.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:338
+#: src/sid/xs_sidplay2.cc:343
 msgid "[SIDPlay2] Emulator engine configuration failed!\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:345
+#: src/sid/xs_sidplay2.cc:350
 msgid "[SIDPlay2] Could not initialize SIDTune object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:396
-msgid "[SIDPlay2] currTune->selectSong() failed\n"
-msgstr ""
-
 #: src/sid/xs_sidplay2.cc:401
+msgid "[SIDPlay2] currTune->selectSong() failed\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:406
 msgid "[SIDPlay2] currEng->load() failed\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:44
+#: src/sid/xs_stil.c:46
 msgid "SubTune pointer structure realloc failed.\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:61
+#: src/sid/xs_stil.c:69
 msgid "SubTune structure malloc failed!\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:168
+#: src/sid/xs_stil.c:176
 #, c-format
 msgid "Could not open STILDB '%s'\n"
 msgstr ""
@@ -5996,6 +5888,26 @@
 msgstr "О программе %s"
 
 #, fuzzy
+#~ msgid "Subtune Control"
+#~ msgstr "РегулÑтор громкоÑти:"
+
+#, fuzzy
+#~ msgid "Override generic XMMS titles"
+#~ msgstr "Ðе иÑпользовать Ñтандартные названиÑ"
+
+#, fuzzy
+#~ msgid "Song name/title format:"
+#~ msgstr "Формат названиÑ:"
+
+#, fuzzy
+#~ msgid "No sub-tune control."
+#~ msgstr "РегулÑтор громкоÑти:"
+
+#, fuzzy
+#~ msgid "Disabled"
+#~ msgstr "переменный"
+
+#, fuzzy
 #~ msgid "22050"
 #~ msgstr "22000 Гц"
 
--- a/po/sk.po	Thu Sep 13 12:09:38 2007 -0500
+++ b/po/sk.po	Thu Sep 13 12:10:39 2007 -0500
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: audacious-plugins\n"
 "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n"
-"POT-Creation-Date: 2007-08-30 18:23+0200\n"
+"POT-Creation-Date: 2007-09-05 00:28+0200\n"
 "PO-Revision-Date: 2007-03-14 02:18+0100\n"
 "Last-Translator: Andrej Herceg <herceg.andrej@zoznam.sk>\n"
 "Language-Team: \n"
@@ -39,7 +39,7 @@
 #: src/audiocompress/audacious-glue.c:556 src/cdaudio-ng/configure.c:144
 #: src/console/Audacious_Driver.cxx:500 src/echo_plugin/gui.c:27
 #: src/echo_plugin/gui.c:138 src/esd/about.c:49
-#: src/filewriter/filewriter.c:182 src/jack/configure.c:140
+#: src/filewriter/filewriter.c:184 src/jack/configure.c:140
 #: src/jack/jack.c:602 src/madplug/fileinfo.c:158 src/madplug/fileinfo.c:236
 #: src/madplug/plugin.c:597 src/madplug/plugin.c:620
 #: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:45
@@ -91,8 +91,8 @@
 #: src/audiocompress/audacious-glue.c:561 src/cdaudio-ng/configure.c:148
 #: src/echo_plugin/gui.c:146 src/jack/configure.c:147
 #: src/modplug/gui/interface.cxx:741 src/musepack/libmpc.cxx:236
-#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:3599
-#: src/sid/xs_interface.c:1345 src/stereo_plugin/stereo.c:128
+#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:2930
+#: src/sid/xs_interface.c:1192 src/stereo_plugin/stereo.c:128
 #: src/sun/configure.c:567 src/timidity/src/interface.c:232
 #: src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561
 msgid "Cancel"
@@ -129,14 +129,14 @@
 msgstr "PoÄet kanálov"
 
 #: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:899
-#: src/sid/xmms-sid.glade:156 src/sid/xs_interface.c:302
+#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:280
 #: src/timidity/src/interface.c:167
 msgid "Mono"
 msgstr "Mono"
 
 #: src/adplug/adplug-xmms.cc:333 src/filewriter/mp3.c:894
-#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:175
-#: src/sid/xs_interface.c:309 src/timidity/src/interface.c:175
+#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:176
+#: src/sid/xs_interface.c:287 src/timidity/src/interface.c:175
 msgid "Stereo"
 msgstr "Stereo"
 
@@ -251,30 +251,30 @@
 msgid "Subsong selection"
 msgstr "Výber koncového zariadenia"
 
-#: src/adplug/adplug-xmms.cc:688
+#: src/adplug/adplug-xmms.cc:730
 msgid "Order: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:689
+#: src/adplug/adplug-xmms.cc:731
 msgid "Pattern: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:691
+#: src/adplug/adplug-xmms.cc:733
 msgid "Row: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:692
+#: src/adplug/adplug-xmms.cc:734
 #, fuzzy
 msgid "Speed: "
 msgstr "Hovorené slovo"
 
-#: src/adplug/adplug-xmms.cc:693
+#: src/adplug/adplug-xmms.cc:735
 #, fuzzy
 msgid "Timer: "
 msgstr "ÄŒas. pomer:"
 
-#: src/adplug/adplug-xmms.cc:694 src/console/Audacious_Config.cxx:226
-#: src/sid/xmms-sid.glade:513 src/sid/xs_interface.c:361
+#: src/adplug/adplug-xmms.cc:736 src/console/Audacious_Config.cxx:226
+#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:333
 msgid "Hz"
 msgstr "Hz"
 
@@ -310,8 +310,8 @@
 msgstr ""
 
 #: src/alarm/interface.c:73 src/lirc/about.c:116
-#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:4262
-#: src/sid/xs_interface.c:1882
+#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:3493
+#: src/sid/xs_interface.c:1671
 msgid "Close"
 msgstr "Zatvoriť"
 
@@ -325,10 +325,10 @@
 
 #: src/alarm/interface.c:126 src/alarm/interface.c:1391 src/alsa/about.c:46
 #: src/alsa/configure.c:405 src/cdaudio-ng/cdaudio-ng.c:206
-#: src/filewriter/filewriter.c:199 src/flacng/plugin.c:743
+#: src/filewriter/filewriter.c:201 src/flacng/plugin.c:743
 #: src/modplug/gui/interface.cxx:725 src/pulse_audio/pulse_audio.c:694
-#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:3585
-#: src/sid/xs_interface.c:1338
+#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:2916
+#: src/sid/xs_interface.c:1185
 msgid "OK"
 msgstr "OK"
 
@@ -381,6 +381,10 @@
 msgid "h"
 msgstr ""
 
+#: src/alarm/interface.c:538
+msgid "minutes"
+msgstr ""
+
 #: src/alarm/interface.c:556
 #, fuzzy
 msgid "Quiet after:"
@@ -444,10 +448,10 @@
 msgid "Fading"
 msgstr "Rozsvietenie:"
 
-#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2271
-#: src/sid/xmms-sid.glade:2442 src/sid/xmms-sid.glade:3408
-#: src/sid/xs_interface.c:923 src/sid/xs_interface.c:977
-#: src/sid/xs_interface.c:1289
+#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2007
+#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2526
+#: src/sid/xs_interface.c:900 src/sid/xs_interface.c:954
+#: src/sid/xs_interface.c:1064
 #, fuzzy
 msgid "seconds"
 msgstr "sekúnd"
@@ -1383,8 +1387,8 @@
 "backend</span>"
 msgstr "<span size=\"smaller\">Å¡td.</span>"
 
-#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:4084
-#: src/sid/xs_interface.c:1828 src/vorbis/fileinfo.c:562
+#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3315
+#: src/sid/xs_interface.c:1615 src/vorbis/fileinfo.c:562
 msgid "Name:"
 msgstr "Meno:"
 
@@ -1636,10 +1640,10 @@
 msgid "Skin file:"
 msgstr "Súbor s motívom:"
 
-#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2595
-#: src/sid/xmms-sid.glade:2801 src/sid/xmms-sid.glade:2907
-#: src/sid/xs_interface.c:1024 src/sid/xs_interface.c:1093
-#: src/sid/xs_interface.c:1128
+#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2331
+#: src/sid/xmms-sid.glade:2706 src/sid/xmms-sid.glade:2812
+#: src/sid/xs_interface.c:1002 src/sid/xs_interface.c:1124
+#: src/sid/xs_interface.c:1160
 msgid "Browse"
 msgstr "Prechádzať"
 
@@ -1721,7 +1725,7 @@
 msgstr "SpúšťaÄ"
 
 #: src/aosd/aosd_ui.c:1073 src/cdaudio-ng/configure.c:87
-#: src/sid/xmms-sid.glade:3545 src/sid/xs_interface.c:1324
+#: src/sid/xmms-sid.glade:2876 src/sid/xs_interface.c:1171
 #, fuzzy
 msgid "Misc"
 msgstr "Disko"
@@ -2014,7 +2018,7 @@
 msgstr "Štandardná dĺžka skladby:"
 
 #: src/console/Audacious_Config.cxx:201 src/modplug/gui/interface.cxx:264
-#: src/sid/xmms-sid.glade:1424 src/sid/xs_interface.c:673
+#: src/sid/xmms-sid.glade:1243 src/sid/xs_interface.c:645
 msgid "Resampling"
 msgstr "Prevzorkovanie"
 
@@ -2371,7 +2375,7 @@
 "Okno s prepojeniami pre nedetekované zariadenie sa nedá otvoriť.\n"
 "Uistite sa, že zariadenie je správne pripojené."
 
-#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:196
+#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:198
 #: src/madplug/plugin.c:620
 msgid "Error"
 msgstr "Chyba"
@@ -2516,12 +2520,12 @@
 "< james@develia.org >\n"
 "\n"
 
-#: src/filewriter/filewriter.c:167
+#: src/filewriter/filewriter.c:169
 #, fuzzy
 msgid "About FileWriter-Plugin"
 msgstr "O module Flac"
 
-#: src/filewriter/filewriter.c:168
+#: src/filewriter/filewriter.c:170
 #, fuzzy
 msgid ""
 "FileWriter-Plugin\n"
@@ -2557,7 +2561,7 @@
 "nestalo, požiadajte o ňu Free Software Foundation, Inc.,\n"
 "675 Mass Ave, Cambridge, MA 02139, USA."
 
-#: src/filewriter/filewriter.c:197
+#: src/filewriter/filewriter.c:199
 #, fuzzy
 msgid ""
 "You cannot use the FileWriter plugin\n"
@@ -2566,60 +2570,60 @@
 "Kým ste v režime reálneho Äasu, nemôžete\n"
 "modul Disk Writer použiť."
 
-#: src/filewriter/filewriter.c:512
+#: src/filewriter/filewriter.c:514
 #, fuzzy
 msgid "File Writer Configuration"
 msgstr "Nastavenie Disk Writer"
 
-#: src/filewriter/filewriter.c:524
+#: src/filewriter/filewriter.c:526
 #, fuzzy
 msgid "Output file format:"
 msgstr "Adresár s výstupnými súbormi:"
 
-#: src/filewriter/filewriter.c:542 src/ladspa/ladspa.c:962
+#: src/filewriter/filewriter.c:544 src/ladspa/ladspa.c:962
 #, fuzzy
 msgid "Configure"
 msgstr "Nastaviť ozvenu"
 
-#: src/filewriter/filewriter.c:557
+#: src/filewriter/filewriter.c:559
 msgid "Save into original directory"
 msgstr ""
 
-#: src/filewriter/filewriter.c:562
+#: src/filewriter/filewriter.c:564
 msgid "Save into custom directory"
 msgstr ""
 
-#: src/filewriter/filewriter.c:574
+#: src/filewriter/filewriter.c:576
 msgid "Output file folder:"
 msgstr "Adresár s výstupnými súbormi:"
 
-#: src/filewriter/filewriter.c:578
+#: src/filewriter/filewriter.c:580
 msgid "Pick a folder"
 msgstr ""
 
-#: src/filewriter/filewriter.c:598
+#: src/filewriter/filewriter.c:600
 msgid "Get filename from:"
 msgstr ""
 
-#: src/filewriter/filewriter.c:601
+#: src/filewriter/filewriter.c:603
 msgid "original file tags"
 msgstr ""
 
-#: src/filewriter/filewriter.c:607
+#: src/filewriter/filewriter.c:609
 msgid "original filename"
 msgstr ""
 
-#: src/filewriter/filewriter.c:617
+#: src/filewriter/filewriter.c:619
 msgid "Don't strip file name extension"
 msgstr "Neodstraňovať príponu mena súboru"
 
-#: src/filewriter/filewriter.c:621
+#: src/filewriter/filewriter.c:623
 msgid ""
 "If enabled, the extension from the original filename will not be stripped "
 "before adding the new file extension to the end."
 msgstr ""
 
-#: src/filewriter/filewriter.c:635
+#: src/filewriter/filewriter.c:637
 msgid "Prepend track number to filename"
 msgstr ""
 
@@ -3069,8 +3073,7 @@
 msgid "ID3 format:"
 msgstr "Formát ID3:"
 
-#: src/madplug/configure.c:261 src/sid/xmms-sid.glade:3144
-#: src/sid/xs_interface.c:1189 src/vorbis/configure.c:160
+#: src/madplug/configure.c:261 src/vorbis/configure.c:160
 msgid "Title"
 msgstr "Názov"
 
@@ -3526,8 +3529,8 @@
 msgid "Use Album Gain"
 msgstr "použiť zosilnenie podľa vrcholu na albume"
 
-#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:3755
-#: src/sid/xs_interface.c:1708 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
+#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:2994
+#: src/sid/xs_interface.c:1495 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
 msgid "Filename:"
 msgstr "Meno súboru:"
 
@@ -3540,8 +3543,8 @@
 msgid "Track:"
 msgstr "Zosilnenie skladby:"
 
-#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1996
-#: src/sid/xs_interface.c:835 src/wavpack/ui.cxx:265
+#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1732
+#: src/sid/xs_interface.c:812 src/wavpack/ui.cxx:265
 msgid "Save"
 msgstr "Uložiť"
 
@@ -3844,162 +3847,142 @@
 msgid "Scrobbler Error"
 msgstr "Modul Scrobbler"
 
-#: src/sid/xmms-sid.c:207
+#: src/sid/xmms-sid.c:203
 msgid "Error initializing song-length database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:213
+#: src/sid/xmms-sid.c:209
 msgid "Error initializing STIL database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:327
+#: src/sid/xmms-sid.c:414
 msgid "Couldn't allocate memory for audio data buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:334
+#: src/sid/xmms-sid.c:421
 msgid "Couldn't allocate memory for audio oversampling buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:409
+#: src/sid/xmms-sid.c:436
 #, c-format
 msgid "Couldn't initialize SID-tune '%s' (sub-tune #%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:420
+#: src/sid/xmms-sid.c:446
 #, c-format
 msgid "Couldn't open XMMS audio output (fmt=%x, freq=%i, nchan=%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:466
+#: src/sid/xmms-sid.c:491
 msgid "Oversampling rate-conversion pass failed.\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:770
-#, fuzzy
-msgid "Subtune Control"
-msgstr "Ovládanie hlasitosti:"
-
-#: src/sid/xmms-sid.c:1001
-#, c-format
-msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1008
-#, c-format
-msgid "Could not allocate sidFilename ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1017
-#, c-format
-msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:235
-#, fuzzy
-msgid "Audacious-SID Configuration"
+#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:213
+#, fuzzy
+msgid "Audacious-SID configuration"
 msgstr "Nastavenia OSD pre Audacious"
 
-#: src/sid/xmms-sid.glade:70 src/sid/xs_interface.c:271
+#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:249
 #, fuzzy
 msgid "8-bit"
 msgstr "8 bitov"
 
-#: src/sid/xmms-sid.glade:89 src/sid/xs_interface.c:278
+#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:256
 #, fuzzy
 msgid "16-bit"
 msgstr "16 bitov"
 
-#: src/sid/xmms-sid.glade:110 src/sid/xs_interface.c:285
+#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:263
 #, fuzzy
 msgid "Resolution:"
 msgstr "Rozlíšenie"
 
-#: src/sid/xmms-sid.glade:195 src/sid/xs_interface.c:316
+#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:294
 msgid "Autopanning"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:216 src/sid/xs_interface.c:323
+#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:301
 #: src/vorbis/fileinfo.c:867 src/vorbis/fileinfo.c:924
 msgid "Channels:"
 msgstr "PoÄet kanálov:"
 
-#: src/sid/xmms-sid.glade:565 src/sid/xs_interface.c:373
+#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:345
 #, fuzzy
 msgid "Samplerate:"
 msgstr "Vzorkovacia frekvencia:"
 
-#: src/sid/xmms-sid.glade:611 src/sid/xs_interface.c:390
+#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:362
 #, fuzzy
 msgid "Use oversampling"
 msgstr "Prevzorkovanie"
 
-#: src/sid/xmms-sid.glade:637 src/sid/xs_interface.c:401
+#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:373
 msgid "Factor:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:681 src/sid/xs_interface.c:413
+#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:385
 msgid "Large factors require more CPU-power"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:715 src/sid/xs_interface.c:419
+#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:391
 #, fuzzy
 msgid "Oversampling:"
 msgstr "Prevzorkovanie"
 
-#: src/sid/xmms-sid.glade:751 src/sid/xs_interface.c:424
+#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:396
 msgid "Audio"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:801 src/sid/xs_interface.c:456
+#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:428
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "clock speed/frequency. Otherwise the speed is determined from played file "
 "itself."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:803 src/sid/xs_interface.c:452
+#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:424
 msgid "Force speed"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:821 src/sid/xs_interface.c:462
+#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:434
 msgid ""
 "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. "
 "Most of SID-tunes have been made for PAL computers."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:823 src/sid/xs_interface.c:458
+#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:430
 msgid "PAL (50 Hz)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:841 src/sid/xs_interface.c:470
+#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:442
 msgid ""
 "NTSC is the TV standard with 60Hz vertical refresh rate (and other features "
 "that differ from PAL). It is mainly used in United States, Japan and certain "
 "other countries."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:843 src/sid/xs_interface.c:466
+#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:438
 msgid "NTSC (60 Hz)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:864 src/sid/xs_interface.c:474
+#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:446
 #, fuzzy
 msgid "Clock speed:"
 msgstr "Rýchlosť prehrávania"
 
-#: src/sid/xmms-sid.glade:909 src/sid/xs_interface.c:495
+#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:467
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "SID-chip model. Otherwise the preferred SID model is determined from the "
 "file (if PSIDv2NG type) or if not available, this setting is used."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:911 src/sid/xs_interface.c:491
+#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:463
 #, fuzzy
 msgid "Force model"
 msgstr "Režim stopy"
 
-#: src/sid/xmms-sid.glade:929 src/sid/xs_interface.c:501
+#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:473
 msgid ""
 "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 "
 "in few ways, having much fuller filter (which, due to design error, is never "
@@ -4007,92 +3990,92 @@
 "which enables playing of digital samples."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:931 src/sid/xs_interface.c:497
+#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:469
 msgid "MOS 6581"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:950 src/sid/xs_interface.c:505
+#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:477
 msgid "MOS 8580"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:971 src/sid/xs_interface.c:512
+#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:484
 #, fuzzy
 msgid "SID model:"
 msgstr "Spôsob prehrávania:"
 
-#: src/sid/xmms-sid.glade:1023 src/sid/xs_interface.c:533
+#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:505
 msgid ""
 "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most "
 "cases, though."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1025 src/sid/xs_interface.c:529
+#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:501
 msgid "SIDPlay 1 (frame-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1044 src/sid/xs_interface.c:541
+#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:513
 msgid ""
 "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact "
 "emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1046 src/sid/xs_interface.c:537
+#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:509
 msgid "SIDPlay 2 (cycle-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1068 src/sid/xs_interface.c:545
+#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:517
 msgid "Emulation library selection:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1114 src/sid/xs_interface.c:562
+#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:534
 msgid "Real C64 (SIDPlay 2 only)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:569
+#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:541
 msgid "Bank switching"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1153 src/sid/xs_interface.c:576
+#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:548
 #, fuzzy
 msgid "Transparent ROM"
 msgstr "Transponovať: "
 
-#: src/sid/xmms-sid.glade:1173 src/sid/xs_interface.c:583
+#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:555
 msgid "PlaySID environment"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1194 src/sid/xs_interface.c:590
+#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:562
 #, fuzzy
 msgid "Memory mode:"
 msgstr "Spôsob prehrávania:"
 
-#: src/sid/xmms-sid.glade:1230 src/sid/xs_interface.c:595
+#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:567
 msgid "Emu#1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1274 src/sid/xs_interface.c:622
+#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:594
 msgid ""
 "This setting can be used to enable libSIDPlay2's \"optimization mode\", "
 "which in downgrades the emulation from cycle-exact to something similar to "
 "frame-exact. The result is lower CPU usage, but worse accuracy."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1276 src/sid/xs_interface.c:618
+#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:590
 msgid "Optimization mode (faster, inaccurate)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1294 src/sid/xs_interface.c:628
+#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:600
 msgid ""
 "reSID is the software SID-chip simulator based on SID reverse-engineering, "
 "created by Dag Lem. It is probably the closest thing to real SID available "
 "as software-only emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1296 src/sid/xs_interface.c:624
+#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:596
 msgid "reSID-emulation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1314 src/sid/xs_interface.c:636
+#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:608
 msgid ""
 "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a "
 "real SID-chip. Software can be used to control the HardSID and combined with "
@@ -4101,49 +4084,49 @@
 "http://www.hardsid.com/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1316 src/sid/xs_interface.c:632
+#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:604
 msgid "HardSID"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1337 src/sid/xs_interface.c:640
+#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:612
 msgid "SIDPlay 2 options:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1382 src/sid/xs_interface.c:661
+#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:633
 msgid ""
 "Fastest and also worst sounding sampling method, simply picks nearest "
 "neighbouring sample."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1384 src/sid/xs_interface.c:657
+#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:629
 msgid "Fast (nearest neighbour)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1402 src/sid/xs_interface.c:669
+#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:641
 msgid ""
 "Uses linear interpolation between samples, yielding higher audio quality "
 "with less sampling noise."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1404 src/sid/xs_interface.c:665
+#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:637
 msgid "Linear interpolation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1444 src/sid/xs_interface.c:680
+#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:652
 #, fuzzy
 msgid "Resampling (FIR)"
 msgstr "Prevzorkovanie"
 
-#: src/sid/xmms-sid.glade:1465 src/sid/xs_interface.c:687
+#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:659
 #, fuzzy
 msgid "reSID sampling options:"
 msgstr "Prevzorkovať na:"
 
-#: src/sid/xmms-sid.glade:1501 src/sid/xs_interface.c:692
+#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:664
 msgid "Emu#2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1531 src/sid/xs_interface.c:708
+#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:680
 msgid ""
 "This option enables emulation of SID filter. The filter is an essential part "
 "of SID's sound capacity, but accurate emulation of it may require quite much "
@@ -4151,387 +4134,291 @@
 "authentic at all if they utilize the filter."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1533 src/sid/xs_interface.c:704
+#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:676
 msgid "Emulate filters"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1590 src/sid/xs_interface.c:733
+#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:705
 msgid "FS"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1641 src/sid/xs_interface.c:750
+#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:722
 msgid "FM"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1692 src/sid/xs_interface.c:767
+#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:739
 msgid "FT"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1730 src/sid/xs_interface.c:778
+#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:750
 msgid "Reset values"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1759 src/sid/xs_interface.c:783
+#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:755
 msgid "SIDPlay1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1828 src/sid/xs_interface.c:807
-msgid "6581 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1854 src/sid/xs_interface.c:808
-msgid "8580 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1880 src/sid/xs_interface.c:809
-msgid "6581R1 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1906 src/sid/xs_interface.c:810
-msgid "6581R4 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1975 src/sid/xs_interface.c:827
-msgid "Load"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2017 src/sid/xs_interface.c:843
+#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:796
+#, fuzzy
+msgid "Export"
+msgstr "Port"
+
+#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:804
+msgid "Use"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:820
 #, fuzzy
 msgid "Import"
 msgstr "Port"
 
-#: src/sid/xmms-sid.glade:2038 src/sid/xs_interface.c:851
-#, fuzzy
-msgid "Export"
-msgstr "Port"
-
-#: src/sid/xmms-sid.glade:2083 src/sid/xs_interface.c:865
+#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:828
+#, fuzzy
+msgid "Delete"
+msgstr "Štandardné"
+
+#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:842
 #, fuzzy
 msgid "Filter curve:"
 msgstr "Veľkosť súboru:"
 
-#: src/sid/xmms-sid.glade:2119 src/sid/xs_interface.c:870
+#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:847
 msgid "SIDPlay2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2155 src/sid/xs_interface.c:876
+#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:853
 msgid "Filters"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2199 src/sid/xs_interface.c:903
+#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:880
 msgid ""
 "If enabled, the tune is played at least for the specified time, adding "
 "silence to the end if necessary."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2201 src/sid/xs_interface.c:899
+#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:876
 #, fuzzy
 msgid "Play at least for specified time"
 msgstr "Prehrávať normálnou rýchlosťou"
 
-#: src/sid/xmms-sid.glade:2226 src/sid/xmms-sid.glade:2397
-#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:910
-#: src/sid/xs_interface.c:964 src/sid/xs_interface.c:1276
+#: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133
+#: src/sid/xmms-sid.glade:2482 src/sid/xs_interface.c:887
+#: src/sid/xs_interface.c:941 src/sid/xs_interface.c:1051
 #, fuzzy
 msgid "Playtime:"
 msgstr "Spôsob prehrávania:"
 
-#: src/sid/xmms-sid.glade:2305 src/sid/xs_interface.c:930
+#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:907
 msgid "Minimum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2350 src/sid/xs_interface.c:951
+#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:928
 msgid ""
 "If enabled, tune is played until specified duration is reached (aka maximum "
 "playtime)."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2352 src/sid/xs_interface.c:947
+#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:924
 msgid "Play for specified time maximum"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2371 src/sid/xs_interface.c:957
+#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:934
 msgid ""
 "If enabled, the maximum playtime is applied only if song/tune length is not "
 "known."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2373 src/sid/xs_interface.c:953
+#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:930
 msgid "Only when song length is unknown"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2476 src/sid/xs_interface.c:984
+#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:961
 msgid "Maximum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2521 src/sid/xs_interface.c:1005
+#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:982
 msgid ""
 "This option enables using of XSIDPLAY compatible song length database. "
 "(Refer to Audacious-SID documentation for more information)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2523 src/sid/xs_interface.c:1001
+#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:978
 msgid "Use XSIDPLAY-compatible database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2548 src/sid/xs_interface.c:1012
+#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:989
 #, fuzzy
 msgid "DB-file:"
 msgstr "Meno súboru:"
 
-#: src/sid/xmms-sid.glade:2573 src/sid/xs_interface.c:1022
+#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:999
 msgid "Database path and filename"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2593 src/sid/xs_interface.c:1028
+#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1006
 msgid "Browse for song length-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2620 src/sid/xs_interface.c:1030
+#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1008
 msgid "Song length database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1035
+#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1013
 #, fuzzy
 msgid "Songlength"
 msgstr "Štandardná dĺžka skladby:"
 
-#: src/sid/xmms-sid.glade:2700 src/sid/xs_interface.c:1062
+#: src/sid/xmms-sid.glade:2437 src/sid/xs_interface.c:1036
+msgid "Add sub-tunes to playlist"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1041
+msgid "Only tunes with specified minimum length "
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2560 src/sid/xs_interface.c:1071
+#, fuzzy
+msgid "Sub-tune handling:"
+msgstr "Ovládanie hlasitosti:"
+
+#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1092
 msgid ""
 "If this option is enabled (and the database & HVSC settings below are "
 "correctly set), Audacious-SID will use and display additional information "
 "from STIL database when HVSC SIDs are played."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:1058
+#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1088
 msgid "Use STIL database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2727 src/sid/xs_interface.c:1069
+#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:1099
 #, fuzzy
 msgid "STIL file:"
 msgstr "Súbor s motívom:"
 
-#: src/sid/xmms-sid.glade:2764 src/sid/xs_interface.c:1085
+#: src/sid/xmms-sid.glade:2669 src/sid/xs_interface.c:1115
 msgid ""
 "Path and filename of STIL database file (STIL.txt), usually found from "
 "HVSC's DOCUMENTS-subdirectory."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2799 src/sid/xs_interface.c:1097
+#: src/sid/xmms-sid.glade:2704 src/sid/xs_interface.c:1128
 msgid "Browse for STIL-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2833 src/sid/xs_interface.c:1104
+#: src/sid/xmms-sid.glade:2738 src/sid/xs_interface.c:1135
 msgid "HVSC path:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2870 src/sid/xs_interface.c:1120
+#: src/sid/xmms-sid.glade:2775 src/sid/xs_interface.c:1151
 msgid ""
 "Path to base-directory of your High Voltage SID Collection (HVSC), for "
 "example /media/C64Music/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2905 src/sid/xs_interface.c:1132
+#: src/sid/xmms-sid.glade:2810 src/sid/xs_interface.c:1164
 msgid "Browse for HVSC path"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2935 src/sid/xs_interface.c:1134
+#: src/sid/xmms-sid.glade:2840 src/sid/xs_interface.c:1166
 msgid "SID Tune Information List (STIL) database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2980 src/sid/xs_interface.c:1155
-msgid ""
-"XMMS v1.2.5 and later support generic titlestring formatting (see XMMS "
-"preferences). This option can be enabled to override those generic titles "
-"with Audacious-SID specific ones. Formatting mnemonics are explained briefly "
-"below."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2982 src/sid/xs_interface.c:1151
-#, fuzzy
-msgid "Override generic XMMS titles"
-msgstr "Používať vlastný formát názvu"
-
-#: src/sid/xmms-sid.glade:3032 src/sid/xs_interface.c:1172
-msgid ""
-"%% - '%' character\n"
-"%p - Performer/composer\n"
-"%t - Song name (title)\n"
-"%c - Copyright\n"
-"%s - File type\n"
-"%m - SID model"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3062 src/sid/xs_interface.c:1178
-msgid ""
-"%C - Speed/clock (PAL/NTSC)\n"
-"%n - Subtune\n"
-"%N - Number of subtunes\n"
-"%f - Filename\n"
-"%F - File path\n"
-"%e - File extension"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3108 src/sid/xs_interface.c:1184
-#, fuzzy
-msgid "Song name/title format:"
-msgstr "Formát názvu:"
-
-#: src/sid/xmms-sid.glade:3188 src/sid/xs_interface.c:1216
-#, fuzzy
-msgid "No sub-tune control."
-msgstr "Ovládanie hlasitosti:"
-
-#: src/sid/xmms-sid.glade:3190 src/sid/xs_interface.c:1212
-#, fuzzy
-msgid "Disabled"
-msgstr "premenlivé"
-
-#: src/sid/xmms-sid.glade:3208 src/sid/xs_interface.c:1224
-msgid ""
-"Seeking backwards/forwards selects previous/next sub-tune, similar to "
-"selector used in XMMS-SidPlay."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3210 src/sid/xs_interface.c:1220
-msgid "Seek back/forward changes sub-tune"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3229 src/sid/xs_interface.c:1232
-msgid ""
-"By pressing the seekbar a sub-tune control window pops up, in style of UADE "
-"(Unix Amiga Delitracker Emulator)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3231 src/sid/xs_interface.c:1228
-msgid "Pop-up via seekbar (UADE-style)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3250 src/sid/xs_interface.c:1240
-msgid ""
-"Seekbar works as a sub-tune selector (Best option if you have patched your "
-"XMMS with the song-position patch.)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3252 src/sid/xs_interface.c:1236
-msgid "Song-position patch"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3273 src/sid/xs_interface.c:1244
-#, fuzzy
-msgid "Sub-tune control:"
-msgstr "Ovládanie hlasitosti:"
-
-#: src/sid/xmms-sid.glade:3319 src/sid/xs_interface.c:1261
-msgid "Go through all sub-tunes in file"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3339 src/sid/xs_interface.c:1266
-msgid "Only tunes with specified minimum length "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3442 src/sid/xs_interface.c:1296
-msgid "Automatic sub-tune changes:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3487 src/sid/xs_interface.c:1317
-msgid ""
-"Determine if file is a SID-tune by checking the file contents. If NOT "
-"selected, filetype is determined by checking filename extension (.sid, ."
-"dat, ...)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3489 src/sid/xs_interface.c:1313
-msgid "Detect file by contents (slower)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3509 src/sid/xs_interface.c:1319
-msgid "Miscellaneous options:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3582 src/sid/xs_interface.c:1343
+#: src/sid/xmms-sid.glade:2913 src/sid/xs_interface.c:1190
 msgid "Accept and update changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1350
+#: src/sid/xmms-sid.glade:2927 src/sid/xs_interface.c:1197
 msgid "Cancel any changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3620 src/sid/xs_interface.c:1651
+#: src/sid/xmms-sid.glade:2952 src/sid/xs_interface.c:1474
 #, fuzzy
 msgid "Audacious-SID Fileinfo"
 msgstr ""
 "\n"
 "OSD pre Audacious"
 
-#: src/sid/xmms-sid.glade:3674 src/sid/xs_interface.c:1677
-msgid " < "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3710 src/sid/xs_interface.c:1689
-msgid " > "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3783 src/sid/xs_interface.c:1716
+#: src/sid/xmms-sid.glade:3022 src/sid/xs_interface.c:1503
 msgid "Songname:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3811 src/sid/xs_interface.c:1724
+#: src/sid/xmms-sid.glade:3050 src/sid/xs_interface.c:1511
 msgid "Composer:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3839 src/sid/xs_interface.c:1732
+#: src/sid/xmms-sid.glade:3078 src/sid/xs_interface.c:1519
 #: src/vorbis/fileinfo.c:723
 msgid "Copyright:"
 msgstr "Autorské práva:"
 
-#: src/sid/xmms-sid.glade:3953 src/sid/xs_interface.c:1772
+#: src/sid/xmms-sid.glade:3192 src/sid/xs_interface.c:1563
 #, fuzzy
 msgid "Song Information:"
 msgstr "Podrobnosti"
 
-#: src/sid/xmms-sid.glade:4008 src/sid/xs_interface.c:1797
-msgid " "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4035 src/sid/xs_interface.c:1812
+#: src/sid/xmms-sid.glade:3266 src/sid/xs_interface.c:1598
 msgid "Author:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4133 src/sid/xs_interface.c:1844
+#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:1632
 #, fuzzy
 msgid "Duration:"
 msgstr "Výzdoba"
 
-#: src/sid/xmms-sid.glade:4227 src/sid/xs_interface.c:1877
+#: src/sid/xmms-sid.glade:3458 src/sid/xs_interface.c:1666
 #, fuzzy
 msgid "Sub-tune Information:"
 msgstr "Podrobnosti"
 
-#: src/sid/xmms-sid.glade:4281 src/sid/xs_interface.c:1951
+#: src/sid/xmms-sid.glade:3512 src/sid/xs_interface.c:1727
 msgid "Select HVSC song length database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4322 src/sid/xs_interface.c:1989
-msgid "Select STIL-database "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4363 src/sid/xs_interface.c:2027
+#: src/sid/xmms-sid.glade:3554 src/sid/xs_interface.c:1768
+msgid "Select STIL-database"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1809
 msgid "Select HVSC location prefix"
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:315
+#: src/sid/xmms-sid.glade:3638 src/sid/xs_interface.c:1850
+msgid "Select SIDPlay2 filters file for importing"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3680 src/sid/xs_interface.c:1891
+msgid "Select SIDPlay2 filters file for exporting"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3721 src/sid/xmms-sid.glade:3803
+#: src/sid/xs_interface.c:1939 src/sid/xs_interface.c:1952
+#, fuzzy
+msgid "Confirm selected action"
+msgstr "Výber koncového zariadenia"
+
+#: src/sid/xmms-sid.glade:3759 src/sid/xs_interface.c:1969
+#, fuzzy
+msgid "Yes"
+msgstr "áno"
+
+#: src/sid/xmms-sid.glade:3771 src/sid/xs_interface.c:1975
+#, fuzzy
+msgid "No"
+msgstr "Žiadne"
+
+#: src/sid/xs_fileinfo.c:238
 #, fuzzy
 msgid "General info"
 msgstr "Všeobecné"
 
-#: src/sid/xs_fileinfo.c:325
+#: src/sid/xs_fileinfo.c:248
 #, c-format
 msgid "Tune #%i: "
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:336
+#: src/sid/xs_fileinfo.c:259
 #, c-format
 msgid "Tune #%i"
 msgstr ""
@@ -4554,32 +4441,32 @@
 msgid "Could not open SongLengthDB '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:225
+#: src/sid/xs_length.c:224
 #, c-format
 msgid "Invalid MD5-hash in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:232
+#: src/sid/xs_length.c:231
 #, c-format
 msgid "Invalid entry in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:237
+#: src/sid/xs_length.c:236
 #, c-format
 msgid "Invalid line in SongLengthDB file '%s' line #%d\n"
 msgstr ""
 
-#: src/sid/xs_length.c:399
+#: src/sid/xs_length.c:398
 #, c-format
 msgid "Not a PSID or RSID file '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:418
+#: src/sid/xs_length.c:417
 #, c-format
 msgid "Error reading SID file header from '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:437
+#: src/sid/xs_length.c:436
 #, c-format
 msgid "Error allocating temp data buffer for file '%s'\n"
 msgstr ""
@@ -4616,72 +4503,77 @@
 msgid "[SIDPlay2] Could not initialize emulation engine.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:224
+#: src/sid/xs_sidplay2.cc:208
+#, c-format
+msgid "[SIDPlay2] Invalid number of filter curve points (%d > %d)\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:229
 msgid "reSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:230
+#: src/sid/xs_sidplay2.cc:235
 #, c-format
 msgid "reSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:238
+#: src/sid/xs_sidplay2.cc:243
 #, c-format
 msgid "reSID->sampling(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:248
+#: src/sid/xs_sidplay2.cc:253
 msgid "reSID->filter(NULL) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:262
+#: src/sid/xs_sidplay2.cc:267
 msgid "hardSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:268
+#: src/sid/xs_sidplay2.cc:273
 #, c-format
 msgid "hardSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:276
+#: src/sid/xs_sidplay2.cc:281
 msgid "[SIDPlay2] Could not initialize SIDBuilder object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:290
+#: src/sid/xs_sidplay2.cc:295
 #, c-format
 msgid "[SIDPlay2] Invalid clockSpeed=%d, falling back to PAL.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:314
+#: src/sid/xs_sidplay2.cc:319
 #, c-format
 msgid "Invalid sid2OptLevel=%d, falling back to %d.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:338
+#: src/sid/xs_sidplay2.cc:343
 msgid "[SIDPlay2] Emulator engine configuration failed!\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:345
+#: src/sid/xs_sidplay2.cc:350
 msgid "[SIDPlay2] Could not initialize SIDTune object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:396
-msgid "[SIDPlay2] currTune->selectSong() failed\n"
-msgstr ""
-
 #: src/sid/xs_sidplay2.cc:401
+msgid "[SIDPlay2] currTune->selectSong() failed\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:406
 msgid "[SIDPlay2] currEng->load() failed\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:44
+#: src/sid/xs_stil.c:46
 msgid "SubTune pointer structure realloc failed.\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:61
+#: src/sid/xs_stil.c:69
 msgid "SubTune structure malloc failed!\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:168
+#: src/sid/xs_stil.c:176
 #, c-format
 msgid "Could not open STILDB '%s'\n"
 msgstr ""
@@ -5969,6 +5861,26 @@
 msgstr "O %s"
 
 #, fuzzy
+#~ msgid "Subtune Control"
+#~ msgstr "Ovládanie hlasitosti:"
+
+#, fuzzy
+#~ msgid "Override generic XMMS titles"
+#~ msgstr "Používať vlastný formát názvu"
+
+#, fuzzy
+#~ msgid "Song name/title format:"
+#~ msgstr "Formát názvu:"
+
+#, fuzzy
+#~ msgid "No sub-tune control."
+#~ msgstr "Ovládanie hlasitosti:"
+
+#, fuzzy
+#~ msgid "Disabled"
+#~ msgstr "premenlivé"
+
+#, fuzzy
 #~ msgid "22050"
 #~ msgstr "22000 Hz"
 
--- a/po/tr.po	Thu Sep 13 12:09:38 2007 -0500
+++ b/po/tr.po	Thu Sep 13 12:10:39 2007 -0500
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: aaudacious-plugins\n"
 "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n"
-"POT-Creation-Date: 2007-08-30 18:23+0200\n"
+"POT-Creation-Date: 2007-09-05 00:28+0200\n"
 "PO-Revision-Date: 2007-05-23 00:00+0300\n"
 "Last-Translator: Murat Åženel <muratasenel@gmail.com>\n"
 "Language-Team:  <tr@li.org>\n"
@@ -41,7 +41,7 @@
 #: src/audiocompress/audacious-glue.c:556 src/cdaudio-ng/configure.c:144
 #: src/console/Audacious_Driver.cxx:500 src/echo_plugin/gui.c:27
 #: src/echo_plugin/gui.c:138 src/esd/about.c:49
-#: src/filewriter/filewriter.c:182 src/jack/configure.c:140
+#: src/filewriter/filewriter.c:184 src/jack/configure.c:140
 #: src/jack/jack.c:602 src/madplug/fileinfo.c:158 src/madplug/fileinfo.c:236
 #: src/madplug/plugin.c:597 src/madplug/plugin.c:620
 #: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:45
@@ -95,8 +95,8 @@
 #: src/audiocompress/audacious-glue.c:561 src/cdaudio-ng/configure.c:148
 #: src/echo_plugin/gui.c:146 src/jack/configure.c:147
 #: src/modplug/gui/interface.cxx:741 src/musepack/libmpc.cxx:236
-#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:3599
-#: src/sid/xs_interface.c:1345 src/stereo_plugin/stereo.c:128
+#: src/musepack/libmpc.cxx:556 src/null/null.c:111 src/sid/xmms-sid.glade:2930
+#: src/sid/xs_interface.c:1192 src/stereo_plugin/stereo.c:128
 #: src/sun/configure.c:567 src/timidity/src/interface.c:232
 #: src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561
 msgid "Cancel"
@@ -133,14 +133,14 @@
 msgstr "Kanallar"
 
 #: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:899
-#: src/sid/xmms-sid.glade:156 src/sid/xs_interface.c:302
+#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:280
 #: src/timidity/src/interface.c:167
 msgid "Mono"
 msgstr "Mono"
 
 #: src/adplug/adplug-xmms.cc:333 src/filewriter/mp3.c:894
-#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:175
-#: src/sid/xs_interface.c:309 src/timidity/src/interface.c:175
+#: src/modplug/gui/interface.cxx:195 src/sid/xmms-sid.glade:176
+#: src/sid/xs_interface.c:287 src/timidity/src/interface.c:175
 msgid "Stereo"
 msgstr "Stereo"
 
@@ -255,30 +255,30 @@
 msgid "Subsong selection"
 msgstr "Backend bölümü"
 
-#: src/adplug/adplug-xmms.cc:688
+#: src/adplug/adplug-xmms.cc:730
 msgid "Order: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:689
+#: src/adplug/adplug-xmms.cc:731
 msgid "Pattern: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:691
+#: src/adplug/adplug-xmms.cc:733
 msgid "Row: "
 msgstr ""
 
-#: src/adplug/adplug-xmms.cc:692
+#: src/adplug/adplug-xmms.cc:734
 #, fuzzy
 msgid "Speed: "
 msgstr "KonuÅŸma"
 
-#: src/adplug/adplug-xmms.cc:693
+#: src/adplug/adplug-xmms.cc:735
 #, fuzzy
 msgid "Timer: "
 msgstr "Zaman Böl:"
 
-#: src/adplug/adplug-xmms.cc:694 src/console/Audacious_Config.cxx:226
-#: src/sid/xmms-sid.glade:513 src/sid/xs_interface.c:361
+#: src/adplug/adplug-xmms.cc:736 src/console/Audacious_Config.cxx:226
+#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:333
 msgid "Hz"
 msgstr "Hz"
 
@@ -314,8 +314,8 @@
 msgstr ""
 
 #: src/alarm/interface.c:73 src/lirc/about.c:116
-#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:4262
-#: src/sid/xs_interface.c:1882
+#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:3493
+#: src/sid/xs_interface.c:1671
 msgid "Close"
 msgstr "Kapat"
 
@@ -329,10 +329,10 @@
 
 #: src/alarm/interface.c:126 src/alarm/interface.c:1391 src/alsa/about.c:46
 #: src/alsa/configure.c:405 src/cdaudio-ng/cdaudio-ng.c:206
-#: src/filewriter/filewriter.c:199 src/flacng/plugin.c:743
+#: src/filewriter/filewriter.c:201 src/flacng/plugin.c:743
 #: src/modplug/gui/interface.cxx:725 src/pulse_audio/pulse_audio.c:694
-#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:3585
-#: src/sid/xs_interface.c:1338
+#: src/scrobbler/gtkstuff.c:43 src/sid/xmms-sid.glade:2916
+#: src/sid/xs_interface.c:1185
 msgid "OK"
 msgstr "Tamam"
 
@@ -385,6 +385,10 @@
 msgid "h"
 msgstr ""
 
+#: src/alarm/interface.c:538
+msgid "minutes"
+msgstr ""
+
 #: src/alarm/interface.c:556
 #, fuzzy
 msgid "Quiet after:"
@@ -448,10 +452,10 @@
 msgid "Fading"
 msgstr "Geciktirme:"
 
-#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2271
-#: src/sid/xmms-sid.glade:2442 src/sid/xmms-sid.glade:3408
-#: src/sid/xs_interface.c:923 src/sid/xs_interface.c:977
-#: src/sid/xs_interface.c:1289
+#: src/alarm/interface.c:1089 src/sid/xmms-sid.glade:2007
+#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2526
+#: src/sid/xs_interface.c:900 src/sid/xs_interface.c:954
+#: src/sid/xs_interface.c:1064
 #, fuzzy
 msgid "seconds"
 msgstr "saniye"
@@ -1321,8 +1325,8 @@
 "backend</span>"
 msgstr "<span size=\"smaller\">varsayılan</span>"
 
-#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:4084
-#: src/sid/xs_interface.c:1828 src/vorbis/fileinfo.c:562
+#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3315
+#: src/sid/xs_interface.c:1615 src/vorbis/fileinfo.c:562
 msgid "Name:"
 msgstr "Ä°sim:"
 
@@ -1573,10 +1577,10 @@
 msgid "Skin file:"
 msgstr "Arayüz Dosyası:"
 
-#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2595
-#: src/sid/xmms-sid.glade:2801 src/sid/xmms-sid.glade:2907
-#: src/sid/xs_interface.c:1024 src/sid/xs_interface.c:1093
-#: src/sid/xs_interface.c:1128
+#: src/aosd/aosd_ui.c:641 src/sid/xmms-sid.glade:2331
+#: src/sid/xmms-sid.glade:2706 src/sid/xmms-sid.glade:2812
+#: src/sid/xs_interface.c:1002 src/sid/xs_interface.c:1124
+#: src/sid/xs_interface.c:1160
 msgid "Browse"
 msgstr "Araştır"
 
@@ -1658,7 +1662,7 @@
 msgstr "BaÅŸlat"
 
 #: src/aosd/aosd_ui.c:1073 src/cdaudio-ng/configure.c:87
-#: src/sid/xmms-sid.glade:3545 src/sid/xs_interface.c:1324
+#: src/sid/xmms-sid.glade:2876 src/sid/xs_interface.c:1171
 #, fuzzy
 msgid "Misc"
 msgstr "Disko"
@@ -1952,7 +1956,7 @@
 msgstr "Varsayılan şarkı uzunluğu:"
 
 #: src/console/Audacious_Config.cxx:201 src/modplug/gui/interface.cxx:264
-#: src/sid/xmms-sid.glade:1424 src/sid/xs_interface.c:673
+#: src/sid/xmms-sid.glade:1243 src/sid/xs_interface.c:645
 msgid "Resampling"
 msgstr "Yeniden örnekleme"
 
@@ -2288,7 +2292,7 @@
 "Ensure that the device has been correctly plugged in."
 msgstr ""
 
-#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:196
+#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:198
 #: src/madplug/plugin.c:620
 msgid "Error"
 msgstr "Hata"
@@ -2407,12 +2411,12 @@
 "written by Giacomo Lozito\n"
 msgstr ""
 
-#: src/filewriter/filewriter.c:167
+#: src/filewriter/filewriter.c:169
 #, fuzzy
 msgid "About FileWriter-Plugin"
 msgstr "Flac Eklentisi Hakkında"
 
-#: src/filewriter/filewriter.c:168
+#: src/filewriter/filewriter.c:170
 #, fuzzy
 msgid ""
 "FileWriter-Plugin\n"
@@ -2451,7 +2455,7 @@
 "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,\n"
 "USA."
 
-#: src/filewriter/filewriter.c:197
+#: src/filewriter/filewriter.c:199
 #, fuzzy
 msgid ""
 "You cannot use the FileWriter plugin\n"
@@ -2460,60 +2464,60 @@
 "Gerçek zamanlı kipte çalışırken\n"
 "disk yazma eklentisini kullanamazsınız."
 
-#: src/filewriter/filewriter.c:512
+#: src/filewriter/filewriter.c:514
 #, fuzzy
 msgid "File Writer Configuration"
 msgstr "Disk Yazıcı Ayarları"
 
-#: src/filewriter/filewriter.c:524
+#: src/filewriter/filewriter.c:526
 #, fuzzy
 msgid "Output file format:"
 msgstr "Çıktı dosya klasörü:"
 
-#: src/filewriter/filewriter.c:542 src/ladspa/ladspa.c:962
+#: src/filewriter/filewriter.c:544 src/ladspa/ladspa.c:962
 #, fuzzy
 msgid "Configure"
 msgstr "Yankı (Eko) Eklentisini Yapılandır"
 
-#: src/filewriter/filewriter.c:557
+#: src/filewriter/filewriter.c:559
 msgid "Save into original directory"
 msgstr ""
 
-#: src/filewriter/filewriter.c:562
+#: src/filewriter/filewriter.c:564
 msgid "Save into custom directory"
 msgstr ""
 
-#: src/filewriter/filewriter.c:574
+#: src/filewriter/filewriter.c:576
 msgid "Output file folder:"
 msgstr "Çıktı dosya klasörü:"
 
-#: src/filewriter/filewriter.c:578
+#: src/filewriter/filewriter.c:580
 msgid "Pick a folder"
 msgstr ""
 
-#: src/filewriter/filewriter.c:598
+#: src/filewriter/filewriter.c:600
 msgid "Get filename from:"
 msgstr ""
 
-#: src/filewriter/filewriter.c:601
+#: src/filewriter/filewriter.c:603
 msgid "original file tags"
 msgstr ""
 
-#: src/filewriter/filewriter.c:607
+#: src/filewriter/filewriter.c:609
 msgid "original filename"
 msgstr ""
 
-#: src/filewriter/filewriter.c:617
+#: src/filewriter/filewriter.c:619
 msgid "Don't strip file name extension"
 msgstr "Dosya ismi uzantılarını daraltma"
 
-#: src/filewriter/filewriter.c:621
+#: src/filewriter/filewriter.c:623
 msgid ""
 "If enabled, the extension from the original filename will not be stripped "
 "before adding the new file extension to the end."
 msgstr ""
 
-#: src/filewriter/filewriter.c:635
+#: src/filewriter/filewriter.c:637
 msgid "Prepend track number to filename"
 msgstr ""
 
@@ -2963,8 +2967,7 @@
 msgid "ID3 format:"
 msgstr "ID3 biçimi:"
 
-#: src/madplug/configure.c:261 src/sid/xmms-sid.glade:3144
-#: src/sid/xs_interface.c:1189 src/vorbis/configure.c:160
+#: src/madplug/configure.c:261 src/vorbis/configure.c:160
 msgid "Title"
 msgstr "Başlık"
 
@@ -3420,8 +3423,8 @@
 msgid "Use Album Gain"
 msgstr "Albümde Gain/Peak kullan"
 
-#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:3755
-#: src/sid/xs_interface.c:1708 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
+#: src/musepack/libmpc.cxx:490 src/sid/xmms-sid.glade:2994
+#: src/sid/xs_interface.c:1495 src/tta/libtta.c:322 src/wavpack/ui.cxx:150
 msgid "Filename:"
 msgstr "Dosya adı:"
 
@@ -3434,8 +3437,8 @@
 msgid "Track:"
 msgstr "Parça ses yüksekliği:"
 
-#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1996
-#: src/sid/xs_interface.c:835 src/wavpack/ui.cxx:265
+#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1732
+#: src/sid/xs_interface.c:812 src/wavpack/ui.cxx:265
 msgid "Save"
 msgstr "Kaydet"
 
@@ -3748,162 +3751,142 @@
 msgid "Scrobbler Error"
 msgstr "Scrobbler Eklentisi"
 
-#: src/sid/xmms-sid.c:207
+#: src/sid/xmms-sid.c:203
 msgid "Error initializing song-length database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:213
+#: src/sid/xmms-sid.c:209
 msgid "Error initializing STIL database!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:327
+#: src/sid/xmms-sid.c:414
 msgid "Couldn't allocate memory for audio data buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:334
+#: src/sid/xmms-sid.c:421
 msgid "Couldn't allocate memory for audio oversampling buffer!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:409
+#: src/sid/xmms-sid.c:436
 #, c-format
 msgid "Couldn't initialize SID-tune '%s' (sub-tune #%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:420
+#: src/sid/xmms-sid.c:446
 #, c-format
 msgid "Couldn't open XMMS audio output (fmt=%x, freq=%i, nchan=%i)!\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:466
+#: src/sid/xmms-sid.c:491
 msgid "Oversampling rate-conversion pass failed.\n"
 msgstr ""
 
-#: src/sid/xmms-sid.c:770
-#, fuzzy
-msgid "Subtune Control"
-msgstr "Ses kontrolü:"
-
-#: src/sid/xmms-sid.c:1001
-#, c-format
-msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1008
-#, c-format
-msgid "Could not allocate sidFilename ('%s')\n"
-msgstr ""
-
-#: src/sid/xmms-sid.c:1017
-#, c-format
-msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:235
-#, fuzzy
-msgid "Audacious-SID Configuration"
+#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:213
+#, fuzzy
+msgid "Audacious-SID configuration"
 msgstr "Audacious OSD - yapılandırması"
 
-#: src/sid/xmms-sid.glade:70 src/sid/xs_interface.c:271
+#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:249
 #, fuzzy
 msgid "8-bit"
 msgstr "8 bit"
 
-#: src/sid/xmms-sid.glade:89 src/sid/xs_interface.c:278
+#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:256
 #, fuzzy
 msgid "16-bit"
 msgstr "16 bit"
 
-#: src/sid/xmms-sid.glade:110 src/sid/xs_interface.c:285
+#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:263
 #, fuzzy
 msgid "Resolution:"
 msgstr "Çözünürlük"
 
-#: src/sid/xmms-sid.glade:195 src/sid/xs_interface.c:316
+#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:294
 msgid "Autopanning"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:216 src/sid/xs_interface.c:323
+#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:301
 #: src/vorbis/fileinfo.c:867 src/vorbis/fileinfo.c:924
 msgid "Channels:"
 msgstr "Kanallar:"
 
-#: src/sid/xmms-sid.glade:565 src/sid/xs_interface.c:373
+#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:345
 #, fuzzy
 msgid "Samplerate:"
 msgstr "Örnekleme oranı:"
 
-#: src/sid/xmms-sid.glade:611 src/sid/xs_interface.c:390
+#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:362
 #, fuzzy
 msgid "Use oversampling"
 msgstr "Yeniden örnekleme"
 
-#: src/sid/xmms-sid.glade:637 src/sid/xs_interface.c:401
+#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:373
 msgid "Factor:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:681 src/sid/xs_interface.c:413
+#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:385
 msgid "Large factors require more CPU-power"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:715 src/sid/xs_interface.c:419
+#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:391
 #, fuzzy
 msgid "Oversampling:"
 msgstr "Yeniden örnekleme"
 
-#: src/sid/xmms-sid.glade:751 src/sid/xs_interface.c:424
+#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:396
 msgid "Audio"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:801 src/sid/xs_interface.c:456
+#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:428
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "clock speed/frequency. Otherwise the speed is determined from played file "
 "itself."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:803 src/sid/xs_interface.c:452
+#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:424
 msgid "Force speed"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:821 src/sid/xs_interface.c:462
+#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:434
 msgid ""
 "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. "
 "Most of SID-tunes have been made for PAL computers."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:823 src/sid/xs_interface.c:458
+#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:430
 msgid "PAL (50 Hz)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:841 src/sid/xs_interface.c:470
+#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:442
 msgid ""
 "NTSC is the TV standard with 60Hz vertical refresh rate (and other features "
 "that differ from PAL). It is mainly used in United States, Japan and certain "
 "other countries."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:843 src/sid/xs_interface.c:466
+#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:438
 msgid "NTSC (60 Hz)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:864 src/sid/xs_interface.c:474
+#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:446
 #, fuzzy
 msgid "Clock speed:"
 msgstr "Çalma hızı"
 
-#: src/sid/xmms-sid.glade:909 src/sid/xs_interface.c:495
+#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:467
 msgid ""
 "If enabled, this option \"forces\" the emulation engine to use the selected "
 "SID-chip model. Otherwise the preferred SID model is determined from the "
 "file (if PSIDv2NG type) or if not available, this setting is used."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:911 src/sid/xs_interface.c:491
+#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:463
 #, fuzzy
 msgid "Force model"
 msgstr "Çalma modu"
 
-#: src/sid/xmms-sid.glade:929 src/sid/xs_interface.c:501
+#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:473
 msgid ""
 "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 "
 "in few ways, having much fuller filter (which, due to design error, is never "
@@ -3911,92 +3894,92 @@
 "which enables playing of digital samples."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:931 src/sid/xs_interface.c:497
+#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:469
 msgid "MOS 6581"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:950 src/sid/xs_interface.c:505
+#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:477
 msgid "MOS 8580"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:971 src/sid/xs_interface.c:512
+#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:484
 #, fuzzy
 msgid "SID model:"
 msgstr "Çalma kipi:"
 
-#: src/sid/xmms-sid.glade:1023 src/sid/xs_interface.c:533
+#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:505
 msgid ""
 "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most "
 "cases, though."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1025 src/sid/xs_interface.c:529
+#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:501
 msgid "SIDPlay 1 (frame-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1044 src/sid/xs_interface.c:541
+#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:513
 msgid ""
 "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact "
 "emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1046 src/sid/xs_interface.c:537
+#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:509
 msgid "SIDPlay 2 (cycle-based)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1068 src/sid/xs_interface.c:545
+#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:517
 msgid "Emulation library selection:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1114 src/sid/xs_interface.c:562
+#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:534
 msgid "Real C64 (SIDPlay 2 only)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:569
+#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:541
 msgid "Bank switching"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1153 src/sid/xs_interface.c:576
+#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:548
 #, fuzzy
 msgid "Transparent ROM"
 msgstr "Transpoze:"
 
-#: src/sid/xmms-sid.glade:1173 src/sid/xs_interface.c:583
+#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:555
 msgid "PlaySID environment"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1194 src/sid/xs_interface.c:590
+#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:562
 #, fuzzy
 msgid "Memory mode:"
 msgstr "Çalma kipi:"
 
-#: src/sid/xmms-sid.glade:1230 src/sid/xs_interface.c:595
+#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:567
 msgid "Emu#1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1274 src/sid/xs_interface.c:622
+#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:594
 msgid ""
 "This setting can be used to enable libSIDPlay2's \"optimization mode\", "
 "which in downgrades the emulation from cycle-exact to something similar to "
 "frame-exact. The result is lower CPU usage, but worse accuracy."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1276 src/sid/xs_interface.c:618
+#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:590
 msgid "Optimization mode (faster, inaccurate)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1294 src/sid/xs_interface.c:628
+#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:600
 msgid ""
 "reSID is the software SID-chip simulator based on SID reverse-engineering, "
 "created by Dag Lem. It is probably the closest thing to real SID available "
 "as software-only emulation."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1296 src/sid/xs_interface.c:624
+#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:596
 msgid "reSID-emulation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1314 src/sid/xs_interface.c:636
+#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:608
 msgid ""
 "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a "
 "real SID-chip. Software can be used to control the HardSID and combined with "
@@ -4005,49 +3988,49 @@
 "http://www.hardsid.com/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1316 src/sid/xs_interface.c:632
+#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:604
 msgid "HardSID"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1337 src/sid/xs_interface.c:640
+#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:612
 msgid "SIDPlay 2 options:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1382 src/sid/xs_interface.c:661
+#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:633
 msgid ""
 "Fastest and also worst sounding sampling method, simply picks nearest "
 "neighbouring sample."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1384 src/sid/xs_interface.c:657
+#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:629
 msgid "Fast (nearest neighbour)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1402 src/sid/xs_interface.c:669
+#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:641
 msgid ""
 "Uses linear interpolation between samples, yielding higher audio quality "
 "with less sampling noise."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1404 src/sid/xs_interface.c:665
+#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:637
 msgid "Linear interpolation"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1444 src/sid/xs_interface.c:680
+#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:652
 #, fuzzy
 msgid "Resampling (FIR)"
 msgstr "Yeniden örnekleme"
 
-#: src/sid/xmms-sid.glade:1465 src/sid/xs_interface.c:687
+#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:659
 #, fuzzy
 msgid "reSID sampling options:"
 msgstr "Örnekleme oranı:"
 
-#: src/sid/xmms-sid.glade:1501 src/sid/xs_interface.c:692
+#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:664
 msgid "Emu#2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1531 src/sid/xs_interface.c:708
+#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:680
 msgid ""
 "This option enables emulation of SID filter. The filter is an essential part "
 "of SID's sound capacity, but accurate emulation of it may require quite much "
@@ -4055,387 +4038,291 @@
 "authentic at all if they utilize the filter."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1533 src/sid/xs_interface.c:704
+#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:676
 msgid "Emulate filters"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1590 src/sid/xs_interface.c:733
+#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:705
 msgid "FS"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1641 src/sid/xs_interface.c:750
+#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:722
 msgid "FM"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1692 src/sid/xs_interface.c:767
+#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:739
 msgid "FT"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1730 src/sid/xs_interface.c:778
+#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:750
 msgid "Reset values"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1759 src/sid/xs_interface.c:783
+#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:755
 msgid "SIDPlay1"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:1828 src/sid/xs_interface.c:807
-msgid "6581 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1854 src/sid/xs_interface.c:808
-msgid "8580 (reSID)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1880 src/sid/xs_interface.c:809
-msgid "6581R1 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1906 src/sid/xs_interface.c:810
-msgid "6581R4 (alankila)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:1975 src/sid/xs_interface.c:827
-msgid "Load"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2017 src/sid/xs_interface.c:843
+#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:796
+#, fuzzy
+msgid "Export"
+msgstr "Port"
+
+#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:804
+msgid "Use"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:820
 #, fuzzy
 msgid "Import"
 msgstr "Port"
 
-#: src/sid/xmms-sid.glade:2038 src/sid/xs_interface.c:851
-#, fuzzy
-msgid "Export"
-msgstr "Port"
-
-#: src/sid/xmms-sid.glade:2083 src/sid/xs_interface.c:865
+#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:828
+#, fuzzy
+msgid "Delete"
+msgstr "Varsayılan"
+
+#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:842
 #, fuzzy
 msgid "Filter curve:"
 msgstr "Dosya boytu:"
 
-#: src/sid/xmms-sid.glade:2119 src/sid/xs_interface.c:870
+#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:847
 msgid "SIDPlay2"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2155 src/sid/xs_interface.c:876
+#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:853
 msgid "Filters"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2199 src/sid/xs_interface.c:903
+#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:880
 msgid ""
 "If enabled, the tune is played at least for the specified time, adding "
 "silence to the end if necessary."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2201 src/sid/xs_interface.c:899
+#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:876
 #, fuzzy
 msgid "Play at least for specified time"
 msgstr "Normal hızda çal"
 
-#: src/sid/xmms-sid.glade:2226 src/sid/xmms-sid.glade:2397
-#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:910
-#: src/sid/xs_interface.c:964 src/sid/xs_interface.c:1276
+#: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133
+#: src/sid/xmms-sid.glade:2482 src/sid/xs_interface.c:887
+#: src/sid/xs_interface.c:941 src/sid/xs_interface.c:1051
 #, fuzzy
 msgid "Playtime:"
 msgstr "Çalma kipi:"
 
-#: src/sid/xmms-sid.glade:2305 src/sid/xs_interface.c:930
+#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:907
 msgid "Minimum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2350 src/sid/xs_interface.c:951
+#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:928
 msgid ""
 "If enabled, tune is played until specified duration is reached (aka maximum "
 "playtime)."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2352 src/sid/xs_interface.c:947
+#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:924
 msgid "Play for specified time maximum"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2371 src/sid/xs_interface.c:957
+#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:934
 msgid ""
 "If enabled, the maximum playtime is applied only if song/tune length is not "
 "known."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2373 src/sid/xs_interface.c:953
+#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:930
 msgid "Only when song length is unknown"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2476 src/sid/xs_interface.c:984
+#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:961
 msgid "Maximum playtime:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2521 src/sid/xs_interface.c:1005
+#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:982
 msgid ""
 "This option enables using of XSIDPLAY compatible song length database. "
 "(Refer to Audacious-SID documentation for more information)"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2523 src/sid/xs_interface.c:1001
+#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:978
 msgid "Use XSIDPLAY-compatible database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2548 src/sid/xs_interface.c:1012
+#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:989
 #, fuzzy
 msgid "DB-file:"
 msgstr "Aygıt dosyası:"
 
-#: src/sid/xmms-sid.glade:2573 src/sid/xs_interface.c:1022
+#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:999
 msgid "Database path and filename"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2593 src/sid/xs_interface.c:1028
+#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1006
 msgid "Browse for song length-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2620 src/sid/xs_interface.c:1030
+#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1008
 msgid "Song length database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1035
+#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1013
 #, fuzzy
 msgid "Songlength"
 msgstr "Varsayılan şarkı uzunluğu:"
 
-#: src/sid/xmms-sid.glade:2700 src/sid/xs_interface.c:1062
+#: src/sid/xmms-sid.glade:2437 src/sid/xs_interface.c:1036
+msgid "Add sub-tunes to playlist"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1041
+msgid "Only tunes with specified minimum length "
+msgstr ""
+
+#: src/sid/xmms-sid.glade:2560 src/sid/xs_interface.c:1071
+#, fuzzy
+msgid "Sub-tune handling:"
+msgstr "Ses kontrolü:"
+
+#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1092
 msgid ""
 "If this option is enabled (and the database & HVSC settings below are "
 "correctly set), Audacious-SID will use and display additional information "
 "from STIL database when HVSC SIDs are played."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:1058
+#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1088
 msgid "Use STIL database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2727 src/sid/xs_interface.c:1069
+#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:1099
 #, fuzzy
 msgid "STIL file:"
 msgstr "Arayüz Dosyası:"
 
-#: src/sid/xmms-sid.glade:2764 src/sid/xs_interface.c:1085
+#: src/sid/xmms-sid.glade:2669 src/sid/xs_interface.c:1115
 msgid ""
 "Path and filename of STIL database file (STIL.txt), usually found from "
 "HVSC's DOCUMENTS-subdirectory."
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2799 src/sid/xs_interface.c:1097
+#: src/sid/xmms-sid.glade:2704 src/sid/xs_interface.c:1128
 msgid "Browse for STIL-database file"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2833 src/sid/xs_interface.c:1104
+#: src/sid/xmms-sid.glade:2738 src/sid/xs_interface.c:1135
 msgid "HVSC path:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2870 src/sid/xs_interface.c:1120
+#: src/sid/xmms-sid.glade:2775 src/sid/xs_interface.c:1151
 msgid ""
 "Path to base-directory of your High Voltage SID Collection (HVSC), for "
 "example /media/C64Music/"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2905 src/sid/xs_interface.c:1132
+#: src/sid/xmms-sid.glade:2810 src/sid/xs_interface.c:1164
 msgid "Browse for HVSC path"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2935 src/sid/xs_interface.c:1134
+#: src/sid/xmms-sid.glade:2840 src/sid/xs_interface.c:1166
 msgid "SID Tune Information List (STIL) database:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:2980 src/sid/xs_interface.c:1155
-msgid ""
-"XMMS v1.2.5 and later support generic titlestring formatting (see XMMS "
-"preferences). This option can be enabled to override those generic titles "
-"with Audacious-SID specific ones. Formatting mnemonics are explained briefly "
-"below."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:2982 src/sid/xs_interface.c:1151
-#, fuzzy
-msgid "Override generic XMMS titles"
-msgstr "Genel başlıkları geçersiz kıl"
-
-#: src/sid/xmms-sid.glade:3032 src/sid/xs_interface.c:1172
-msgid ""
-"%% - '%' character\n"
-"%p - Performer/composer\n"
-"%t - Song name (title)\n"
-"%c - Copyright\n"
-"%s - File type\n"
-"%m - SID model"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3062 src/sid/xs_interface.c:1178
-msgid ""
-"%C - Speed/clock (PAL/NTSC)\n"
-"%n - Subtune\n"
-"%N - Number of subtunes\n"
-"%f - Filename\n"
-"%F - File path\n"
-"%e - File extension"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3108 src/sid/xs_interface.c:1184
-#, fuzzy
-msgid "Song name/title format:"
-msgstr "Başlık biçimi:"
-
-#: src/sid/xmms-sid.glade:3188 src/sid/xs_interface.c:1216
-#, fuzzy
-msgid "No sub-tune control."
-msgstr "Ses kontrolü:"
-
-#: src/sid/xmms-sid.glade:3190 src/sid/xs_interface.c:1212
-#, fuzzy
-msgid "Disabled"
-msgstr "DeÄŸiÅŸken"
-
-#: src/sid/xmms-sid.glade:3208 src/sid/xs_interface.c:1224
-msgid ""
-"Seeking backwards/forwards selects previous/next sub-tune, similar to "
-"selector used in XMMS-SidPlay."
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3210 src/sid/xs_interface.c:1220
-msgid "Seek back/forward changes sub-tune"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3229 src/sid/xs_interface.c:1232
-msgid ""
-"By pressing the seekbar a sub-tune control window pops up, in style of UADE "
-"(Unix Amiga Delitracker Emulator)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3231 src/sid/xs_interface.c:1228
-msgid "Pop-up via seekbar (UADE-style)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3250 src/sid/xs_interface.c:1240
-msgid ""
-"Seekbar works as a sub-tune selector (Best option if you have patched your "
-"XMMS with the song-position patch.)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3252 src/sid/xs_interface.c:1236
-msgid "Song-position patch"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3273 src/sid/xs_interface.c:1244
-#, fuzzy
-msgid "Sub-tune control:"
-msgstr "Ses kontrolü:"
-
-#: src/sid/xmms-sid.glade:3319 src/sid/xs_interface.c:1261
-msgid "Go through all sub-tunes in file"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3339 src/sid/xs_interface.c:1266
-msgid "Only tunes with specified minimum length "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3442 src/sid/xs_interface.c:1296
-msgid "Automatic sub-tune changes:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3487 src/sid/xs_interface.c:1317
-msgid ""
-"Determine if file is a SID-tune by checking the file contents. If NOT "
-"selected, filetype is determined by checking filename extension (.sid, ."
-"dat, ...)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3489 src/sid/xs_interface.c:1313
-msgid "Detect file by contents (slower)"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3509 src/sid/xs_interface.c:1319
-msgid "Miscellaneous options:"
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3582 src/sid/xs_interface.c:1343
+#: src/sid/xmms-sid.glade:2913 src/sid/xs_interface.c:1190
 msgid "Accept and update changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1350
+#: src/sid/xmms-sid.glade:2927 src/sid/xs_interface.c:1197
 msgid "Cancel any changes"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3620 src/sid/xs_interface.c:1651
+#: src/sid/xmms-sid.glade:2952 src/sid/xs_interface.c:1474
 #, fuzzy
 msgid "Audacious-SID Fileinfo"
 msgstr ""
 "\n"
 "Audacious OSD "
 
-#: src/sid/xmms-sid.glade:3674 src/sid/xs_interface.c:1677
-msgid " < "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3710 src/sid/xs_interface.c:1689
-msgid " > "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:3783 src/sid/xs_interface.c:1716
+#: src/sid/xmms-sid.glade:3022 src/sid/xs_interface.c:1503
 msgid "Songname:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3811 src/sid/xs_interface.c:1724
+#: src/sid/xmms-sid.glade:3050 src/sid/xs_interface.c:1511
 msgid "Composer:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:3839 src/sid/xs_interface.c:1732
+#: src/sid/xmms-sid.glade:3078 src/sid/xs_interface.c:1519
 #: src/vorbis/fileinfo.c:723
 msgid "Copyright:"
 msgstr "Telif Hakkı:"
 
-#: src/sid/xmms-sid.glade:3953 src/sid/xs_interface.c:1772
+#: src/sid/xmms-sid.glade:3192 src/sid/xs_interface.c:1563
 #, fuzzy
 msgid "Song Information:"
 msgstr "Bilgi"
 
-#: src/sid/xmms-sid.glade:4008 src/sid/xs_interface.c:1797
-msgid " "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4035 src/sid/xs_interface.c:1812
+#: src/sid/xmms-sid.glade:3266 src/sid/xs_interface.c:1598
 msgid "Author:"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4133 src/sid/xs_interface.c:1844
+#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:1632
 #, fuzzy
 msgid "Duration:"
 msgstr "Dekorasyon"
 
-#: src/sid/xmms-sid.glade:4227 src/sid/xs_interface.c:1877
+#: src/sid/xmms-sid.glade:3458 src/sid/xs_interface.c:1666
 #, fuzzy
 msgid "Sub-tune Information:"
 msgstr "Bilgi"
 
-#: src/sid/xmms-sid.glade:4281 src/sid/xs_interface.c:1951
+#: src/sid/xmms-sid.glade:3512 src/sid/xs_interface.c:1727
 msgid "Select HVSC song length database"
 msgstr ""
 
-#: src/sid/xmms-sid.glade:4322 src/sid/xs_interface.c:1989
-msgid "Select STIL-database "
-msgstr ""
-
-#: src/sid/xmms-sid.glade:4363 src/sid/xs_interface.c:2027
+#: src/sid/xmms-sid.glade:3554 src/sid/xs_interface.c:1768
+msgid "Select STIL-database"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3596 src/sid/xs_interface.c:1809
 msgid "Select HVSC location prefix"
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:315
+#: src/sid/xmms-sid.glade:3638 src/sid/xs_interface.c:1850
+msgid "Select SIDPlay2 filters file for importing"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3680 src/sid/xs_interface.c:1891
+msgid "Select SIDPlay2 filters file for exporting"
+msgstr ""
+
+#: src/sid/xmms-sid.glade:3721 src/sid/xmms-sid.glade:3803
+#: src/sid/xs_interface.c:1939 src/sid/xs_interface.c:1952
+#, fuzzy
+msgid "Confirm selected action"
+msgstr "Backend bölümü"
+
+#: src/sid/xmms-sid.glade:3759 src/sid/xs_interface.c:1969
+#, fuzzy
+msgid "Yes"
+msgstr "evet"
+
+#: src/sid/xmms-sid.glade:3771 src/sid/xs_interface.c:1975
+#, fuzzy
+msgid "No"
+msgstr "Hiçbiri"
+
+#: src/sid/xs_fileinfo.c:238
 #, fuzzy
 msgid "General info"
 msgstr "Genel"
 
-#: src/sid/xs_fileinfo.c:325
+#: src/sid/xs_fileinfo.c:248
 #, c-format
 msgid "Tune #%i: "
 msgstr ""
 
-#: src/sid/xs_fileinfo.c:336
+#: src/sid/xs_fileinfo.c:259
 #, c-format
 msgid "Tune #%i"
 msgstr ""
@@ -4458,32 +4345,32 @@
 msgid "Could not open SongLengthDB '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:225
+#: src/sid/xs_length.c:224
 #, c-format
 msgid "Invalid MD5-hash in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:232
+#: src/sid/xs_length.c:231
 #, c-format
 msgid "Invalid entry in SongLengthDB file '%s' line #%d!\n"
 msgstr ""
 
-#: src/sid/xs_length.c:237
+#: src/sid/xs_length.c:236
 #, c-format
 msgid "Invalid line in SongLengthDB file '%s' line #%d\n"
 msgstr ""
 
-#: src/sid/xs_length.c:399
+#: src/sid/xs_length.c:398
 #, c-format
 msgid "Not a PSID or RSID file '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:418
+#: src/sid/xs_length.c:417
 #, c-format
 msgid "Error reading SID file header from '%s'\n"
 msgstr ""
 
-#: src/sid/xs_length.c:437
+#: src/sid/xs_length.c:436
 #, c-format
 msgid "Error allocating temp data buffer for file '%s'\n"
 msgstr ""
@@ -4520,72 +4407,77 @@
 msgid "[SIDPlay2] Could not initialize emulation engine.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:224
+#: src/sid/xs_sidplay2.cc:208
+#, c-format
+msgid "[SIDPlay2] Invalid number of filter curve points (%d > %d)\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:229
 msgid "reSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:230
+#: src/sid/xs_sidplay2.cc:235
 #, c-format
 msgid "reSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:238
+#: src/sid/xs_sidplay2.cc:243
 #, c-format
 msgid "reSID->sampling(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:248
+#: src/sid/xs_sidplay2.cc:253
 msgid "reSID->filter(NULL) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:262
+#: src/sid/xs_sidplay2.cc:267
 msgid "hardSID->create() failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:268
+#: src/sid/xs_sidplay2.cc:273
 #, c-format
 msgid "hardSID->filter(%d) failed.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:276
+#: src/sid/xs_sidplay2.cc:281
 msgid "[SIDPlay2] Could not initialize SIDBuilder object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:290
+#: src/sid/xs_sidplay2.cc:295
 #, c-format
 msgid "[SIDPlay2] Invalid clockSpeed=%d, falling back to PAL.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:314
+#: src/sid/xs_sidplay2.cc:319
 #, c-format
 msgid "Invalid sid2OptLevel=%d, falling back to %d.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:338
+#: src/sid/xs_sidplay2.cc:343
 msgid "[SIDPlay2] Emulator engine configuration failed!\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:345
+#: src/sid/xs_sidplay2.cc:350
 msgid "[SIDPlay2] Could not initialize SIDTune object.\n"
 msgstr ""
 
-#: src/sid/xs_sidplay2.cc:396
-msgid "[SIDPlay2] currTune->selectSong() failed\n"
-msgstr ""
-
 #: src/sid/xs_sidplay2.cc:401
+msgid "[SIDPlay2] currTune->selectSong() failed\n"
+msgstr ""
+
+#: src/sid/xs_sidplay2.cc:406
 msgid "[SIDPlay2] currEng->load() failed\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:44
+#: src/sid/xs_stil.c:46
 msgid "SubTune pointer structure realloc failed.\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:61
+#: src/sid/xs_stil.c:69
 msgid "SubTune structure malloc failed!\n"
 msgstr ""
 
-#: src/sid/xs_stil.c:168
+#: src/sid/xs_stil.c:176
 #, c-format
 msgid "Could not open STILDB '%s'\n"
 msgstr ""
@@ -5872,6 +5764,26 @@
 msgstr "%s Hakkında"
 
 #, fuzzy
+#~ msgid "Subtune Control"
+#~ msgstr "Ses kontrolü:"
+
+#, fuzzy
+#~ msgid "Override generic XMMS titles"
+#~ msgstr "Genel başlıkları geçersiz kıl"
+
+#, fuzzy
+#~ msgid "Song name/title format:"
+#~ msgstr "Başlık biçimi:"
+
+#, fuzzy
+#~ msgid "No sub-tune control."
+#~ msgstr "Ses kontrolü:"
+
+#, fuzzy
+#~ msgid "Disabled"
+#~ msgstr "DeÄŸiÅŸken"
+
+#, fuzzy
 #~ msgid "22050"
 #~ msgstr "22000 Hz"
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/scripts/makerelease.sh	Thu Sep 13 12:10:39 2007 -0500
@@ -0,0 +1,100 @@
+#!/bin/sh
+# mkrelease.sh: Creates a release suitable for distfiles.atheme.org.
+#
+# Copyright (c) 2007 atheme.org
+#
+# Permission to use, copy, modify, and/or distribute this software for
+# any purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+if [ "x$1" = "x" ]; then
+	echo "usage: $0 releasename [--automatic]"
+	exit
+else
+	RELEASENAME="$1"
+fi
+
+if [ "x$2" = "x--automatic" ]; then
+	AUTOMATIC="yes"
+fi
+
+TIP=`hg tip --template "#rev#:#node|short#"`
+
+WRKDIR=`pwd`
+
+if [ -d $RELEASENAME ]; then
+	echo "Deleting previous release named $RELEASENAME."
+	rm -rf $WRKDIR/$RELEASENAME/
+fi
+
+echo "Making release named $RELEASENAME (tip $TIP)"
+
+echo
+echo "Building root: $RELEASENAME/"
+hg archive $RELEASENAME
+cd $RELEASENAME
+sh autogen.sh
+rm -rf autogen.sh autom4te.cache
+
+# Run application specific instructions here.
+if [ -x "$WRKDIR/application.sh" ]; then
+	source $WRKDIR/application.sh
+fi
+
+cd ..
+
+echo "Building $RELEASENAME.tgz from $RELEASENAME/"
+tar zcf $RELEASENAME.tgz $RELEASENAME/
+
+echo "Building $RELEASENAME.tbz2 from $RELEASENAME/"
+tar jcf $RELEASENAME.tbz2 $RELEASENAME/
+
+PUBLISH="yes"
+
+ok="0"
+if [ "x$AUTOMATIC" != "xyes" ]; then
+	echo
+	echo "Would you like to publish these releases now?"
+	while [ $ok -eq 0 ]; do
+		echo -n "[$PUBLISH] "
+
+		read INPUT
+		case $INPUT in
+			[Yy]*)
+				PUBLISH="yes"
+				ok=1
+				;;
+			[Nn]*)
+				PUBLISH="no"
+				ok=1
+				;;
+		esac
+	done
+fi
+
+if [ "x$PUBLISH" = "xyes" ]; then
+	scp $RELEASENAME.tgz sidhe.atheme.org:/var/www/distfiles/htdocs
+	scp $RELEASENAME.tbz2 sidhe.atheme.org:/var/www/distfiles/htdocs
+
+	echo
+	echo "The releases have been published, and will be available to the entire"
+	echo "distribution network within 15 minutes."
+fi
+
+echo
+echo "Done. If you have any bugs to report, report them against"
+echo "the distfiles.atheme.org component at http://bugzilla.atheme.org"
+echo "Thanks!"
+echo
--- a/src/CoreAudio/about.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/CoreAudio/about.c	Thu Sep 13 12:10:39 2007 -0500
@@ -25,7 +25,7 @@
 	if (dialog != NULL)
 		return;
 	
-	dialog = xmms_show_message(
+	dialog = audacious_info_dialog(
 							   "About CoreAudio Plugin",
 							   "Audacious CoreAudio Plugin\n\n "
 							   "This program is free software; you can redistribute it and/or modify\n"
--- a/src/CoreAudio/audio.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/CoreAudio/audio.c	Thu Sep 13 12:10:39 2007 -0500
@@ -498,7 +498,7 @@
 
 	while (flush != -1)
 	{
-		xmms_usleep(10000);
+		g_usleep(10000);
 	}
 }
 
--- a/src/OSS/OSS.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/OSS/OSS.c	Thu Sep 13 12:10:39 2007 -0500
@@ -26,25 +26,23 @@
 #include <stdlib.h>
 
 OutputPlugin oss_op = {
-    NULL,
-    NULL,
-    "OSS Output Plugin",                       /* Description */
-    oss_init,
-    oss_cleanup,
-    oss_about,
-    oss_configure,
-    oss_get_volume,
-    oss_set_volume,
-    oss_open,
-    oss_write,
-    oss_close,
-    oss_flush,
-    oss_pause,
-    oss_free,
-    oss_playing,
-    oss_get_output_time,
-    oss_get_written_time,
-    oss_tell
+    .description = "OSS Output Plugin",                       /* Description */
+    .init = oss_init,
+    .cleanup = oss_cleanup,
+    .about = oss_about,
+    .configure = oss_configure,
+    .get_volume = oss_get_volume,
+    .set_volume = oss_set_volume,
+    .open_audio = oss_open,
+    .write_audio = oss_write,
+    .close_audio = oss_close,
+    .flush = oss_flush,
+    .pause = oss_pause,
+    .buffer_free = oss_free,
+    .buffer_playing = oss_playing,
+    .output_time = oss_get_output_time,
+    .written_time = oss_get_written_time,
+    .tell_audio = oss_tell
 };
 
 OutputPlugin *oss_oplist[] = { &oss_op, NULL };
--- a/src/OSS/about.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/OSS/about.c	Thu Sep 13 12:10:39 2007 -0500
@@ -36,7 +36,7 @@
     if (dialog != NULL)
         return;
 
-    dialog = xmms_show_message(_("About OSS Driver"),
+    dialog = audacious_info_dialog(_("About OSS Driver"),
                                _("Audacious OSS Driver\n\n "
                                  "This program is free software; you can redistribute it and/or modify\n"
                                  "it under the terms of the GNU General Public License as published by\n"
--- a/src/OSS/audio.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/OSS/audio.c	Thu Sep 13 12:10:39 2007 -0500
@@ -47,7 +47,7 @@
 static gint fragsize, device_buffer_size;
 static gchar *device_name;
 static GThread *buffer_thread;
-static gboolean realtime, select_works;
+static gboolean select_works;
 
 static int (*oss_convert_func) (void **data, int length);
 static int (*oss_stereo_convert_func) (void **data, int length, int fmt);
@@ -197,8 +197,6 @@
     if (!fd || !going)
         return 0;
 
-    if (realtime)
-        oss_calc_device_buffer_used();
     bytes = output_bytes < device_buffer_used ?
         0 : output_bytes - device_buffer_used;
 
@@ -208,13 +206,10 @@
 static int
 oss_used(void)
 {
-    if (realtime)
-        return 0;
-    else {
-        if (wr_index >= rd_index)
-            return wr_index - rd_index;
-        return buffer_size - (rd_index - wr_index);
-    }
+    if (wr_index >= rd_index)
+        return wr_index - rd_index;
+
+    return buffer_size - (rd_index - wr_index);
 }
 
 gint
@@ -222,8 +217,6 @@
 {
     if (!going)
         return 0;
-    if (realtime)
-        oss_calc_device_buffer_used();
     if (!oss_used() && (device_buffer_used - (3 * blk_size)) <= 0)
         return FALSE;
 
@@ -233,22 +226,18 @@
 gint
 oss_free(void)
 {
-    if (!realtime) {
-        if (remove_prebuffer && prebuffer) {
-            prebuffer = FALSE;
-            remove_prebuffer = FALSE;
-        }
-        if (prebuffer)
-            remove_prebuffer = TRUE;
+    if (remove_prebuffer && prebuffer) {
+        prebuffer = FALSE;
+        remove_prebuffer = FALSE;
+    }
 
-        if (rd_index > wr_index)
-            return (rd_index - wr_index) - device_buffer_size - 1;
-        return (buffer_size - (wr_index - rd_index)) - device_buffer_size - 1;
-    }
-    else if (paused)
-        return 0;
-    else
-        return 1000000;
+    if (prebuffer)
+        remove_prebuffer = TRUE;
+
+    if (rd_index > wr_index)
+        return (rd_index - wr_index) - device_buffer_size - 1;
+
+    return (buffer_size - (wr_index - rd_index)) - device_buffer_size - 1;
 }
 
 static inline ssize_t
@@ -274,42 +263,6 @@
 {
 
     audio_buf_info abuf_info;
-#if 0
-    AFormat new_format;
-    int new_frequency, new_channels;
-    EffectPlugin *ep;
-
-    new_format = input.format.xmms;
-    new_frequency = input.frequency;
-    new_channels = input.channels;
-
-
-    ep = get_current_effect_plugin();
-    if (effects_enabled() && ep && ep->query_format) {
-        ep->query_format(&new_format, &new_frequency, &new_channels);
-    }
-
-    if (new_format != effect.format.xmms ||
-        new_frequency != effect.frequency ||
-        new_channels != effect.channels) {
-        output_time_offset += (output_bytes * 1000) / output.bps;
-        output_bytes = 0;
-        close(fd);
-        fd = open(device_name, O_WRONLY);
-        oss_setup_format(new_format, new_frequency, new_channels);
-    }
-    if (effects_enabled() && ep && ep->mod_samples)
-        length = ep->mod_samples(&data, length,
-                                 input.format.xmms,
-                                 input.frequency, input.channels);
-#endif
-    if (realtime && !ioctl(fd, SNDCTL_DSP_GETOSPACE, &abuf_info)) {
-        while (abuf_info.bytes < length) {
-            xmms_usleep(10000);
-            if (ioctl(fd, SNDCTL_DSP_GETOSPACE, &abuf_info))
-                break;
-        }
-    }
 
     if (oss_convert_func != NULL)
         length = oss_convert_func(&data, length);
@@ -465,23 +418,15 @@
 {
     int cnt, off = 0;
 
-    if (!realtime) {
-        remove_prebuffer = FALSE;
+    remove_prebuffer = FALSE;
 
-        written += length;
-        while (length > 0) {
-            cnt = MIN(length, buffer_size - wr_index);
-            memcpy(buffer + wr_index, (char *) ptr + off, cnt);
-            wr_index = (wr_index + cnt) % buffer_size;
-            length -= cnt;
-            off += cnt;
-        }
-    }
-    else {
-        if (paused)
-            return;
-        oss_write_audio(ptr, length);
-        written += length;
+    written += length;
+    while (length > 0) {
+        cnt = MIN(length, buffer_size - wr_index);
+        memcpy(buffer + wr_index, (char *) ptr + off, cnt);
+        wr_index = (wr_index + cnt) % buffer_size;
+        length -= cnt;
+        off += cnt;
     }
 }
 
@@ -491,12 +436,9 @@
     if (!going)
         return;
     going = 0;
-    if (!realtime)
-        g_thread_join(buffer_thread);
-    else {
-        ioctl(fd, SNDCTL_DSP_RESET, 0);
-        close(fd);
-    }
+
+    g_thread_join(buffer_thread);
+
     g_free(device_name);
     oss_free_convert_buffer();
     wr_index = 0;
@@ -508,34 +450,18 @@
 void
 oss_flush(gint time)
 {
-    if (!realtime) {
-        flush = time;
-        while (flush != -1)
-            xmms_usleep(10000);
-    }
-    else {
-        ioctl(fd, SNDCTL_DSP_RESET, 0);
-        close(fd);
-        fd = open(device_name, O_WRONLY);
-        oss_set_audio_params();
-        output_time_offset = time;
-        written = ((guint64) time * input.bps) / 1000;
-        output_bytes = 0;
-    }
+    flush = time;
+    while (flush != -1)
+        g_usleep(10000);
 }
 
 void
 oss_pause(short p)
 {
-    if (!realtime) {
-        if (p == TRUE)
-            do_pause = TRUE;
-        else
-            unpause = TRUE;
-    }
+    if (p == TRUE)
+        do_pause = TRUE;
     else
-        paused = p;
-
+        unpause = TRUE;
 }
 
 gpointer
@@ -566,7 +492,7 @@
             }
         }
         else
-            xmms_usleep(10000);
+            g_usleep(10000);
         oss_calc_device_buffer_used();
         if (do_pause && !paused) {
             do_pause = FALSE;
@@ -694,19 +620,18 @@
 
     oss_setup_format(fmt, rate, nch);
 
-    realtime = xmms_check_realtime_priority();
+    buffer_size = (oss_cfg.buffer_size * input.bps) / 1000;
+
+    if (buffer_size < 8192)
+        buffer_size = 8192;
 
-    if (!realtime) {
-        buffer_size = (oss_cfg.buffer_size * input.bps) / 1000;
-        if (buffer_size < 8192)
-            buffer_size = 8192;
-        prebuffer_size = (buffer_size * oss_cfg.prebuffer) / 100;
-        if (buffer_size - prebuffer_size < 4096)
-            prebuffer_size = buffer_size - 4096;
+    prebuffer_size = (buffer_size * oss_cfg.prebuffer) / 100;
+    if (buffer_size - prebuffer_size < 4096)
+        prebuffer_size = buffer_size - 4096;
 
-        buffer_size += device_buffer_size;
-        buffer = g_malloc0(buffer_size);
-    }
+    buffer_size += device_buffer_size;
+    buffer = g_malloc0(buffer_size);
+
     flush = -1;
     prebuffer = TRUE;
     wr_index = rd_index = output_time_offset = written = output_bytes = 0;
@@ -716,8 +641,9 @@
     remove_prebuffer = FALSE;
 
     going = 1;
-    if (!realtime)
-        buffer_thread = g_thread_create(oss_loop, NULL, TRUE, NULL);
+
+    buffer_thread = g_thread_create(oss_loop, NULL, TRUE, NULL);
+
     return 1;
 }
 
--- a/src/OSS4/OSS4.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/OSS4/OSS4.c	Thu Sep 13 12:10:39 2007 -0500
@@ -27,25 +27,23 @@
 #include <audacious/configdb.h>
 
 OutputPlugin oss_op = {
-    NULL,
-    NULL,
-    "OSS4 Output Plugin",                       /* Description */
-    oss_init,
-    oss_cleanup,
-    oss_about,
-    oss_configure,
-    oss_get_volume,
-    oss_set_volume,
-    oss_open,
-    oss_write,
-    oss_close,
-    oss_flush,
-    oss_pause,
-    oss_free,
-    oss_playing,
-    oss_get_output_time,
-    oss_get_written_time,
-    oss_tell
+    .description = "OSS4 Output Plugin",                      /* Description */
+    .init = oss_init,
+    .cleanup = oss_cleanup,
+    .about = oss_about,
+    .configure = oss_configure,
+    .get_volume = oss_get_volume,
+    .set_volume = oss_set_volume,
+    .open_audio = oss_open,
+    .write_audio = oss_write,
+    .close_audio = oss_close,
+    .flush = oss_flush,
+    .pause = oss_pause,
+    .buffer_free = oss_free,
+    .buffer_playing = oss_playing,
+    .output_time = oss_get_output_time,
+    .written_time = oss_get_written_time,
+    .tell_audio = oss_tell
 };
 
 OutputPlugin *oss_oplist[] = { &oss_op, NULL };
--- a/src/OSS4/about.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/OSS4/about.c	Thu Sep 13 12:10:39 2007 -0500
@@ -39,7 +39,7 @@
     if (dialog != NULL)
         return;
 
-    dialog = xmms_show_message(_("About OSSv4 Driver"),
+    dialog = audacious_info_dialog(_("About OSSv4 Driver"),
                                _("Audacious OSSv4 Driver\n\n"
                                  "Based on the OSSv3 Output plugin,\n" 
                                  "Ported to OSSv4's VMIX by Cristi Magherusan <majeru@gentoo.ro>\n\n"
--- a/src/OSS4/audio.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/OSS4/audio.c	Thu Sep 13 12:10:39 2007 -0500
@@ -47,7 +47,7 @@
 static gint fragsize, device_buffer_size;
 static gchar *device_name;
 static GThread *buffer_thread;
-static gboolean realtime, select_works;
+static gboolean select_works;
 
 static int (*oss_convert_func) (void **data, int length);
 static int (*oss_stereo_convert_func) (void **data, int length, int fmt);
@@ -197,8 +197,6 @@
     if (!fd || !going)
         return 0;
 
-    if (realtime)
-        oss_calc_device_buffer_used();
     bytes = output_bytes < device_buffer_used ?
         0 : output_bytes - device_buffer_used;
 
@@ -208,13 +206,10 @@
 static int
 oss_used(void)
 {
-    if (realtime)
-        return 0;
-    else {
-        if (wr_index >= rd_index)
-            return wr_index - rd_index;
-        return buffer_size - (rd_index - wr_index);
-    }
+    if (wr_index >= rd_index)
+        return wr_index - rd_index;
+
+    return buffer_size - (rd_index - wr_index);
 }
 
 gint
@@ -222,8 +217,6 @@
 {
     if (!going)
         return 0;
-    if (realtime)
-        oss_calc_device_buffer_used();
     if (!oss_used() && (device_buffer_used - (3 * blk_size)) <= 0)
         return FALSE;
 
@@ -233,22 +226,18 @@
 gint
 oss_free(void)
 {
-    if (!realtime) {
-        if (remove_prebuffer && prebuffer) {
-            prebuffer = FALSE;
-            remove_prebuffer = FALSE;
-        }
-        if (prebuffer)
-            remove_prebuffer = TRUE;
+    if (remove_prebuffer && prebuffer) {
+        prebuffer = FALSE;
+        remove_prebuffer = FALSE;
+    }
 
-        if (rd_index > wr_index)
-            return (rd_index - wr_index) - device_buffer_size - 1;
-        return (buffer_size - (wr_index - rd_index)) - device_buffer_size - 1;
-    }
-    else if (paused)
-        return 0;
-    else
-        return 1000000;
+    if (prebuffer)
+        remove_prebuffer = TRUE;
+
+    if (rd_index > wr_index)
+        return (rd_index - wr_index) - device_buffer_size - 1;
+
+    return (buffer_size - (wr_index - rd_index)) - device_buffer_size - 1;
 }
 
 static inline ssize_t
@@ -274,42 +263,6 @@
 {
 
     audio_buf_info abuf_info;
-#if 0
-    AFormat new_format;
-    int new_frequency, new_channels;
-    EffectPlugin *ep;
-
-    new_format = input.format.xmms;
-    new_frequency = input.frequency;
-    new_channels = input.channels;
-
-
-    ep = get_current_effect_plugin();
-    if (effects_enabled() && ep && ep->query_format) {
-        ep->query_format(&new_format, &new_frequency, &new_channels);
-    }
-
-    if (new_format != effect.format.xmms ||
-        new_frequency != effect.frequency ||
-        new_channels != effect.channels) {
-        output_time_offset += (output_bytes * 1000) / output.bps;
-        output_bytes = 0;
-        close(fd);
-        fd = open(device_name, O_WRONLY);
-        oss_setup_format(new_format, new_frequency, new_channels);
-    }
-    if (effects_enabled() && ep && ep->mod_samples)
-        length = ep->mod_samples(&data, length,
-                                 input.format.xmms,
-                                 input.frequency, input.channels);
-#endif
-    if (realtime && !ioctl(fd, SNDCTL_DSP_GETOSPACE, &abuf_info)) {
-        while (abuf_info.bytes < length) {
-            xmms_usleep(10000);
-            if (ioctl(fd, SNDCTL_DSP_GETOSPACE, &abuf_info))
-                break;
-        }
-    }
 
     if (oss_convert_func != NULL)
         length = oss_convert_func(&data, length);
@@ -465,23 +418,15 @@
 {
     int cnt, off = 0;
 
-    if (!realtime) {
-        remove_prebuffer = FALSE;
+    remove_prebuffer = FALSE;
 
-        written += length;
-        while (length > 0) {
-            cnt = MIN(length, buffer_size - wr_index);
-            memcpy(buffer + wr_index, (char *) ptr + off, cnt);
-            wr_index = (wr_index + cnt) % buffer_size;
-            length -= cnt;
-            off += cnt;
-        }
-    }
-    else {
-        if (paused)
-            return;
-        oss_write_audio(ptr, length);
-        written += length;
+    written += length;
+    while (length > 0) {
+        cnt = MIN(length, buffer_size - wr_index);
+        memcpy(buffer + wr_index, (char *) ptr + off, cnt);
+        wr_index = (wr_index + cnt) % buffer_size;
+        length -= cnt;
+        off += cnt;
     }
 }
 
@@ -491,12 +436,9 @@
     if (!going)
         return;
     going = 0;
-    if (!realtime)
-        g_thread_join(buffer_thread);
-    else {
-        ioctl(fd, SNDCTL_DSP_RESET, 0);
-        close(fd);
-    }
+
+    g_thread_join(buffer_thread);
+
     g_free(device_name);
     oss_free_convert_buffer();
     wr_index = 0;
@@ -508,34 +450,18 @@
 void
 oss_flush(gint time)
 {
-    if (!realtime) {
-        flush = time;
-        while (flush != -1)
-            xmms_usleep(10000);
-    }
-    else {
-        ioctl(fd, SNDCTL_DSP_RESET, 0);
-        close(fd);
-        fd = open(device_name, O_WRONLY);
-        oss_set_audio_params();
-        output_time_offset = time;
-        written = ((guint64) time * input.bps) / 1000;
-        output_bytes = 0;
-    }
+    flush = time;
+    while (flush != -1)
+        g_usleep(10000);
 }
 
 void
 oss_pause(short p)
 {
-    if (!realtime) {
-        if (p == TRUE)
-            do_pause = TRUE;
-        else
-            unpause = TRUE;
-    }
+    if (p == TRUE)
+        do_pause = TRUE;
     else
-        paused = p;
-
+        unpause = TRUE;
 }
 
 gpointer
@@ -566,7 +492,7 @@
             }
         }
         else
-            xmms_usleep(10000);
+            g_usleep(10000);
         oss_calc_device_buffer_used();
         if (do_pause && !paused) {
             do_pause = FALSE;
@@ -694,19 +620,18 @@
 
     oss_setup_format(fmt, rate, nch);
 
-    realtime = xmms_check_realtime_priority();
+    buffer_size = (oss_cfg.buffer_size * input.bps) / 1000;
+
+    if (buffer_size < 8192)
+        buffer_size = 8192;
 
-    if (!realtime) {
-        buffer_size = (oss_cfg.buffer_size * input.bps) / 1000;
-        if (buffer_size < 8192)
-            buffer_size = 8192;
-        prebuffer_size = (buffer_size * oss_cfg.prebuffer) / 100;
-        if (buffer_size - prebuffer_size < 4096)
-            prebuffer_size = buffer_size - 4096;
+    prebuffer_size = (buffer_size * oss_cfg.prebuffer) / 100;
+    if (buffer_size - prebuffer_size < 4096)
+        prebuffer_size = buffer_size - 4096;
 
-        buffer_size += device_buffer_size;
-        buffer = g_malloc0(buffer_size);
-    }
+    buffer_size += device_buffer_size;
+    buffer = g_malloc0(buffer_size);
+
     flush = -1;
     prebuffer = TRUE;
     wr_index = rd_index = output_time_offset = written = output_bytes = 0;
@@ -716,8 +641,9 @@
     remove_prebuffer = FALSE;
 
     going = 1;
-    if (!realtime)
-        buffer_thread = g_thread_create(oss_loop, NULL, TRUE, NULL);
+
+    buffer_thread = g_thread_create(oss_loop, NULL, TRUE, NULL);
+
     return 1;
 }
 
--- a/src/aac/src/libmp4.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/aac/src/libmp4.c	Thu Sep 13 12:10:39 2007 -0500
@@ -293,7 +293,7 @@
 				  "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n"
 				  "Copyright (c) 2005-2006 Audacious team"), NULL);
 
-    aboutbox = xmms_show_message(_("About MP4 AAC player plugin"),
+    aboutbox = audacious_info_dialog(_("About MP4 AAC player plugin"),
 				 about_text,
 				 _("Ok"), FALSE, NULL, NULL);
 
@@ -311,7 +311,7 @@
 {
     seekPosition = time;
     while(buffer_playing && seekPosition != -1)
-        xmms_usleep(10000);
+        g_usleep(10000);
 }
 
 static void mp4_cleanup(void)
@@ -329,11 +329,11 @@
     {
         g_free(mp4cb);
 
-        tuple_associate_string(ti, "title", vfs_get_metadata(mp4fh, "track-name"));
-        tuple_associate_string(ti, "album", vfs_get_metadata(mp4fh, "stream-name"));
+        tuple_associate_string(ti, FIELD_TITLE, NULL, vfs_get_metadata(mp4fh, "track-name"));
+        tuple_associate_string(ti, FIELD_ALBUM, NULL, vfs_get_metadata(mp4fh, "stream-name"));
 
-        tuple_associate_string(ti, "codec", "Advanced Audio Coding (AAC)");
-        tuple_associate_string(ti, "quality", "lossy");
+        tuple_associate_string(ti, FIELD_CODEC, NULL, "Advanced Audio Coding (AAC)");
+        tuple_associate_string(ti, FIELD_QUALITY, NULL, "lossy");
 
         vfs_fclose(mp4fh);
         return ti;
@@ -389,45 +389,45 @@
         faacDecClose(decoder);
 
         msDuration = ((float)numSamples * (float)(framesize - 1.0)/(float)samplerate) * 1000;
-        tuple_associate_int(ti, "length", msDuration);
+        tuple_associate_int(ti, FIELD_LENGTH, NULL, msDuration);
 
         mp4ff_meta_get_title(mp4file, &tmpval);
         if (tmpval)
         {
-            tuple_associate_string(ti, "title", tmpval);
+            tuple_associate_string(ti, FIELD_TITLE, NULL, tmpval);
             free(tmpval);
         }
 
         mp4ff_meta_get_album(mp4file, &tmpval);
         if (tmpval)
         {
-            tuple_associate_string(ti, "album", tmpval);
+            tuple_associate_string(ti, FIELD_ALBUM, NULL, tmpval);
             free(tmpval);
         }
 
         mp4ff_meta_get_artist(mp4file, &tmpval);
         if (tmpval)
         {
-            tuple_associate_string(ti, "artist", tmpval);
+            tuple_associate_string(ti, FIELD_ARTIST, NULL, tmpval);
             free(tmpval);
         }
 
         mp4ff_meta_get_genre(mp4file, &tmpval);
         if (tmpval)
         {
-            tuple_associate_string(ti, "genre", tmpval);
+            tuple_associate_string(ti, FIELD_GENRE, NULL, tmpval);
             free(tmpval);
         }
 
         mp4ff_meta_get_date(mp4file, &tmpval);
         if (tmpval)
         {
-            tuple_associate_int(ti, "year", atoi(tmpval));
+            tuple_associate_int(ti, FIELD_YEAR, NULL, atoi(tmpval));
             free(tmpval);
         }
 
-        tuple_associate_string(ti, "codec", "Advanced Audio Coding (AAC)");
-        tuple_associate_string(ti, "quality", "lossy");
+        tuple_associate_string(ti, FIELD_CODEC, NULL, "Advanced Audio Coding (AAC)");
+        tuple_associate_string(ti, FIELD_QUALITY, NULL, "lossy");
 
         free (mp4cb);
         vfs_fclose(mp4fh);
@@ -549,7 +549,7 @@
             /* Finish playing before we close the
                output. */
             while ( playback->output->buffer_playing() ) {
-                xmms_usleep(10000);
+                g_usleep(10000);
             }
 
             playback->output->flush(seekPosition*1000);
--- a/src/adplug/adplug-xmms.cc	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/adplug/adplug-xmms.cc	Thu Sep 13 12:10:39 2007 -0500
@@ -155,7 +155,7 @@
   strcpy (tmptxt, text);
   strcpy (tmpbutton, button);
 
-  GtkWidget *msgbox = xmms_show_message (tmptitle, tmptxt, tmpbutton, FALSE,
+  GtkWidget *msgbox = audacious_info_dialog (tmptitle, tmptxt, tmpbutton, FALSE,
                                          G_CALLBACK (gtk_widget_destroyed),
                                          &msgbox);
 
@@ -182,7 +182,7 @@
                                     "Linked AdPlug library version: "),
                                    version_text, NULL);
     about_win =
-      xmms_show_message (about_title, about_text, _("Ok"), FALSE, NULL, NULL);
+      audacious_info_dialog (about_title, about_text, _("Ok"), FALSE, NULL, NULL);
     g_signal_connect (G_OBJECT (about_win), "destroy",
                       G_CALLBACK (gtk_widget_destroyed), &about_win);
     g_free (about_text);
@@ -694,16 +694,16 @@
   {
     Tuple *ti = tuple_new_from_filename(filename);
     if (! p->getauthor().empty())
-      tuple_associate_string(ti, "artist", p->getauthor().c_str());
+      tuple_associate_string(ti, FIELD_ARTIST, NULL, p->getauthor().c_str());
     if (! p->gettitle().empty())
-      tuple_associate_string(ti, "title", p->gettitle().c_str());
+      tuple_associate_string(ti, FIELD_TITLE, NULL, p->gettitle().c_str());
     else if (! p->getdesc().empty())
-      tuple_associate_string(ti, "title", p->getdesc().c_str());
+      tuple_associate_string(ti, FIELD_TITLE, NULL, p->getdesc().c_str());
     else
-      tuple_associate_string(ti, "title", g_path_get_basename(filename));
-    tuple_associate_string(ti, "codec", p->gettype().c_str());
-    tuple_associate_string(ti, "quality", "sequenced");
-    tuple_associate_int(ti, "length", p->songlength (plr.subsong));
+      tuple_associate_string(ti, FIELD_TITLE, NULL, g_path_get_basename(filename));
+    tuple_associate_string(ti, FIELD_CODEC, NULL, p->gettype().c_str());
+    tuple_associate_string(ti, FIELD_QUALITY, NULL, "sequenced");
+    tuple_associate_int(ti, FIELD_LENGTH, NULL, p->songlength (plr.subsong));
     delete p;
     return ti;
   }
@@ -715,7 +715,7 @@
 {
   char* result = tuple_formatter_make_title_string(ti, get_gentitle_format());
   if ( result )
-    *length = tuple_get_int(ti, "length");
+    *length = tuple_get_int(ti, FIELD_LENGTH, NULL);
   tuple_free((void *) ti);
 
   return result;
@@ -853,7 +853,7 @@
 
     // write sound buffer
     while (playback->output->buffer_free () < SNDBUFSIZE * sampsize)
-      xmms_usleep (10000);
+      g_usleep (10000);
     produce_audio (playback->output->written_time (),
                    bit16 ? FORMAT_16 : FORMAT_8,
                    stereo ? 2 : 1, SNDBUFSIZE * sampsize, sndbuf, NULL);
@@ -869,7 +869,7 @@
   {                             // wait for output plugin to finish if song has self-ended
     dbg_printf ("wait, ");
     while (playback->output->buffer_playing ())
-      xmms_usleep (10000);
+      g_usleep (10000);
   }
   else
   {                             // or else, flush its output buffers
@@ -1136,8 +1136,10 @@
   NULL,                         // filename (filled by XMMS)
   (gchar *)ADPLUG_NAME,                  // plugin description
   adplug_init,                  // plugin functions...
+  adplug_quit,
   adplug_about,
   adplug_config,
+  FALSE,
   adplug_is_our_file,
   NULL,                         // scan_dir (look in Input/cdaudio/cdaudio.c)
   adplug_play,
@@ -1148,7 +1150,6 @@
   adplug_get_time,
   NULL,                         // get_volume (handled by output plugin)
   NULL,                         // set_volume (...)
-  adplug_quit,
   NULL,                         // OBSOLETE - DO NOT USE!
   NULL,                         // add_vis_pcm (filled by XMMS)
   NULL,                         // set_info (filled by XMMS)
--- a/src/alac/plugin.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/alac/plugin.c	Thu Sep 13 12:10:39 2007 -0500
@@ -82,7 +82,7 @@
 	if(aboutbox != NULL)
 		return;
 
-	aboutbox = xmms_show_message(_("About Apple Lossless Audio Plugin"),
+	aboutbox = audacious_info_dialog(_("About Apple Lossless Audio Plugin"),
 				     _("Copyright (c) 2006 Audacious team\n"
 				     "Portions (c) 2005-2006 David Hammerton <crazney -at- crazney.net>"),
 				     _("Ok"), FALSE, NULL, NULL);
@@ -122,20 +122,20 @@
     Tuple *ti = tuple_new_from_filename(path);
 
     if (demux_res->tuple.art != NULL)
-        tuple_associate_string(ti, "artist", demux_res->tuple.art);
+        tuple_associate_string(ti, FIELD_ARTIST, NULL, demux_res->tuple.art);
     if (demux_res->tuple.nam != NULL)
-        tuple_associate_string(ti, "title", demux_res->tuple.nam);
+        tuple_associate_string(ti, FIELD_TITLE, NULL, demux_res->tuple.nam);
     if (demux_res->tuple.alb != NULL)
-        tuple_associate_string(ti, "album", demux_res->tuple.alb);
+        tuple_associate_string(ti, FIELD_ALBUM, NULL, demux_res->tuple.alb);
     if (demux_res->tuple.gen != NULL)
-        tuple_associate_string(ti, "genre", demux_res->tuple.gen);
+        tuple_associate_string(ti, FIELD_GENRE, NULL, demux_res->tuple.gen);
     if (demux_res->tuple.cmt != NULL)
-        tuple_associate_string(ti, "comment", demux_res->tuple.cmt);
+        tuple_associate_string(ti, FIELD_COMMENT, NULL, demux_res->tuple.cmt);
     if (demux_res->tuple.day != NULL)
-        tuple_associate_int(ti, "year", atoi(demux_res->tuple.day));
+        tuple_associate_int(ti, FIELD_YEAR, NULL, atoi(demux_res->tuple.day));
 
-    tuple_associate_string(ti, "codec", "Apple Lossless (ALAC)");
-    tuple_associate_string(ti, "quality", "lossless");
+    tuple_associate_string(ti, FIELD_CODEC, NULL, "Apple Lossless (ALAC)");
+    tuple_associate_string(ti, FIELD_QUALITY, NULL, "lossless");
 
     return ti;
 }
--- a/src/alarm/alarm.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/alarm/alarm.c	Thu Sep 13 12:10:39 2007 -0500
@@ -996,18 +996,12 @@
  */
 static GeneralPlugin alarm_plugin =
 {
-     NULL,
-     NULL,
-     "Alarm "VERSION,
-     alarm_init,
-     alarm_about,
-     alarm_configure,
-     alarm_cleanup,
+     .description = "Alarm "VERSION,
+     .init = alarm_init,
+     .about = alarm_about,
+     .configure = alarm_configure,
+     .cleanup = alarm_cleanup,
 };
 
 GeneralPlugin *alarm_gplist[] = { &alarm_plugin, NULL };
-DECLARE_PLUGIN(alarm, NULL, NULL, NULL, NULL, NULL, alarm_gplist, NULL, NULL);
-
-/*
- * vi:ai:expandtab:ts=2 sts=2 shiftwidth=2:nowrap:
- */
+SIMPLE_GENERAL_PLUGIN(alarm, alarm_gplist);
--- a/src/alarm/interface.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/alarm/interface.c	Thu Sep 13 12:10:39 2007 -0500
@@ -535,7 +535,7 @@
   gtk_spin_button_set_update_policy (GTK_SPIN_BUTTON (stop_m_spin), GTK_UPDATE_IF_VALID);
   gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (stop_m_spin), TRUE);
 
-  label78 = gtk_label_new ("minutes");
+  label78 = gtk_label_new (_("minutes"));
   gtk_widget_set_name (label78, "label78");
   gtk_widget_ref (label78);
   gtk_object_set_data_full (GTK_OBJECT (config_dialog), "label78", label78,
--- a/src/alsa/about.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/alsa/about.c	Thu Sep 13 12:10:39 2007 -0500
@@ -26,7 +26,7 @@
 	if (dialog != NULL)
 		return;
 	
-	dialog = xmms_show_message(
+	dialog = audacious_info_dialog(
 		_("About ALSA Driver"),
 		_("Audacious ALSA Driver\n\n "
 		  "This program is free software; you can redistribute it and/or modify\n"
--- a/src/alsa/alsa.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/alsa/alsa.c	Thu Sep 13 12:10:39 2007 -0500
@@ -21,25 +21,23 @@
 
 OutputPlugin alsa_op =
 {
-	NULL,
-	NULL,
-	"ALSA Output Plugin",
-	alsa_init,
-	alsa_cleanup,
-	alsa_about,
-	alsa_configure,
-	alsa_get_volume,
-	alsa_set_volume,
-	alsa_open,
-	alsa_write,
-	alsa_close,
-	alsa_flush,
-	alsa_pause,
-	alsa_free,
-	alsa_playing,
-	alsa_get_output_time,
-	alsa_get_written_time,
-	alsa_tell
+	.description = "ALSA Output Plugin",
+	.init = alsa_init,
+	.cleanup = alsa_cleanup,
+	.about = alsa_about,
+	.configure = alsa_configure,
+	.get_volume = alsa_get_volume,
+	.set_volume = alsa_set_volume,
+	.open_audio = alsa_open,
+	.write_audio = alsa_write,
+	.close_audio = alsa_close,
+	.flush = alsa_flush,
+	.pause = alsa_pause,
+	.buffer_free = alsa_free,
+	.buffer_playing = alsa_playing,
+	.output_time = alsa_get_output_time,
+	.written_time = alsa_get_written_time,
+	.tell_audio = alsa_tell
 };
 
 OutputPlugin *alsa_oplist[] = { &alsa_op, NULL };
--- a/src/alsa/audio.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/alsa/audio.c	Thu Sep 13 12:10:39 2007 -0500
@@ -155,7 +155,7 @@
 
 	while ((err = snd_pcm_resume(alsa_pcm)) == -EAGAIN)
 		/* wait until suspend flag is released */
-		xmms_usleep(1000000);
+		g_usleep(1000000);
 	if (err < 0)
 	{
 		g_warning("alsa_handle_error(): "
@@ -316,7 +316,7 @@
 {
 	flush_request = time;
 	while (flush_request != -1)
-		xmms_usleep(10000);
+		g_usleep(10000);
 }
 
 static void parse_mixer_name(char *str, char **name, int *index)
@@ -708,36 +708,6 @@
 	if (paused)
 		return;
 
-#if 0
-	new_freq = inputf->rate;
-	new_chn = inputf->channels;
-	f = inputf->xmms_format;
-
-	if (effects_enabled() && (ep = get_current_effect_plugin()) &&
-	    ep->query_format)
-		ep->query_format(&f, &new_freq, &new_chn);
-
-	if (f != effectf->xmms_format || (unsigned int)new_freq != effectf->rate ||
-	    (unsigned int)new_chn != effectf->channels)
-	{
-		debug("Changing audio format for effect plugin");
-		g_free(effectf);
-		effectf = snd_format_from_xmms(f, new_freq, new_chn);
-		if (alsa_reopen(effectf) < 0)
-		{
-			/* fatal error... */
-			alsa_close();
-			return;
-		}
-	}
-
-	if (ep)
-		length = ep->mod_samples(&data, length,
-					 inputf->xmms_format,
-					 inputf->rate,
-					 inputf->channels);
-#endif
-
 	if (alsa_convert_func != NULL)
 		length = alsa_convert_func(convertb, &data, length);
 	if (alsa_stereo_convert_func != NULL)
@@ -854,7 +824,7 @@
 			}
 		}
 		else
-			xmms_usleep(10000);
+			g_usleep(10000);
 
 		if (pause_request != paused)
 			alsa_do_pause(pause_request);
--- a/src/amidi-plug/amidi-plug.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/amidi-plug/amidi-plug.h	Thu Sep 13 12:10:39 2007 -0500
@@ -86,35 +86,23 @@
 
 InputPlugin amidiplug_ip =
 {
-  NULL,					/* handle */
-  NULL,					/* filename */
-  "AMIDI-Plug " AMIDIPLUG_VERSION " (MIDI Player)", /* description */
-  amidiplug_init,			/* init */
-  amidiplug_aboutbox,			/* aboutbox */
-  amidiplug_configure,			/* configure */
-  amidiplug_is_our_file,		/* is_our_file */
-  NULL,					/* scan_dir */
-  amidiplug_play,			/* play_file */
-  amidiplug_stop,			/* stop */
-  amidiplug_pause,			/* pause */
-  amidiplug_seek,			/* seek */
-  NULL,					/* set_eq */
-  amidiplug_get_time,			/* get_time */
-  amidiplug_get_volume,			/* get_volume */
-  amidiplug_set_volume,			/* set_volume */
-  amidiplug_cleanup,			/* cleanup */
-  NULL,					/* get_vis_type */
-  NULL,					/* add_vis_pcm */
-  NULL,					/* set_info */
-  NULL,					/* set_info_text */
-  amidiplug_get_song_info,		/* get_song_info */
-  amidiplug_file_info_box,		/* file_info_box */
-  NULL,					/* output */
-  NULL,					/* get_song_tuple */
-  NULL,					/* set_song_tuple */
-  NULL,					/* set_status_buffering */
-  amidiplug_is_our_file_from_vfs,	/* is_our_file_from_vfs */
-  amidiplug_vfs_extensions		/* vfs_extensions */
+  .description = "AMIDI-Plug " AMIDIPLUG_VERSION " (MIDI Player)", /* description */
+  .init = amidiplug_init,			/* init */
+  .about = amidiplug_aboutbox,			/* aboutbox */
+  .configure = amidiplug_configure,			/* configure */
+  .is_our_file = amidiplug_is_our_file,		/* is_our_file */
+  .play_file = amidiplug_play,			/* play_file */
+  .stop = amidiplug_stop,			/* stop */
+  .pause = amidiplug_pause,			/* pause */
+  .seek = amidiplug_seek,			/* seek */
+  .get_time = amidiplug_get_time,			/* get_time */
+  .get_volume = amidiplug_get_volume,			/* get_volume */
+  .set_volume = amidiplug_set_volume,			/* set_volume */
+  .cleanup = amidiplug_cleanup,			/* cleanup */
+  .get_song_info = amidiplug_get_song_info,		/* get_song_info */
+  .file_info_box = amidiplug_file_info_box,		/* file_info_box */
+  .is_our_file_from_vfs = amidiplug_is_our_file_from_vfs,	/* is_our_file_from_vfs */
+  .vfs_extensions = amidiplug_vfs_extensions		/* vfs_extensions */
 };
 
 #endif /* !_I_AMIDIPLUG_H */
--- a/src/aosd/aosd.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/aosd/aosd.c	Thu Sep 13 12:10:39 2007 -0500
@@ -26,7 +26,7 @@
 
 
 GeneralPlugin *aosd_gplist[] = { &aosd_gp, NULL };
-DECLARE_PLUGIN(aosd, NULL, NULL, NULL, NULL, NULL, aosd_gplist, NULL, NULL);
+SIMPLE_GENERAL_PLUGIN(aosd, aosd_gplist);
 
 aosd_cfg_t * global_config = NULL;
 gboolean plugin_is_active = FALSE;
--- a/src/aosd/aosd.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/aosd/aosd.h	Thu Sep 13 12:10:39 2007 -0500
@@ -35,13 +35,11 @@
 
 GeneralPlugin aosd_gp =
 {
-    NULL,						/* handle */
-    NULL,						/* filename */
-    "Audacious OSD " AOSD_VERSION_PLUGIN,	/* description */
-    aosd_init,					/* init */
-    aosd_about,					/* about */
-    aosd_configure,				/* configure */
-    aosd_cleanup					/* cleanup */
+    .description= "Audacious OSD " AOSD_VERSION_PLUGIN,
+    .init = aosd_init,
+    .about = aosd_about,
+    .configure = aosd_configure,
+    .cleanup = aosd_cleanup
 };
 
 #endif /* !_I_AOSD_H */
--- a/src/arts/arts.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/arts/arts.c	Thu Sep 13 12:10:39 2007 -0500
@@ -19,7 +19,7 @@
 	if (dialog)
 		return;
 
-	dialog = xmms_show_message(_("About aRts Output"),
+	dialog = audacious_info_dialog(_("About aRts Output"),
 				   _("aRts output plugin by "
 				   "H\303\245vard Kv\303\245len <havardk@xmms.org>\n"
 				   "Audacious port by Giacomo Lozito from develia.org"),
--- a/src/arts/audio.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/arts/audio.c	Thu Sep 13 12:10:39 2007 -0500
@@ -276,48 +276,6 @@
 
 void artsxmms_write(gpointer ptr, int length)
 {
-#if 0
-	AFormat new_format;
-	int new_frequency, new_channels;
-	EffectPlugin *ep;
-	
-	new_format = input_params.format;
-	new_frequency = input_params.frequency;
-	new_channels = input_params.channels;
-
-	ep = get_current_effect_plugin();
-	if (effects_enabled() && ep && ep->query_format)
-		ep->query_format(&new_format, &new_frequency, &new_channels);
-	
-	if (new_format != output_params.format ||
-	    new_frequency != output_params.frequency ||
-	    new_channels != output_params.channels)
-	{
-		/*
-		 * The effect plugins has changed the format of the stream.
-		 */
-
-		guint64 offset = (written * 1000) / output_params.bps;
-		artsxmms_set_params(&output_params, new_format,
-				    new_frequency, new_channels);
-		arts_convert_func = arts_get_convert_func(output_params.format);
-	
-		written = (offset * output_params.bps) / 1000;
-
-		artsxmms_helper_init(&output_params);
-	}
-
-	/*
-	 * Doing the effect plugin processing here adds some latency,
-	 * but the alternative is just too frigging hairy.
-	 */
-	
-	if (effects_enabled() && ep && ep->mod_samples)
-		length = ep->mod_samples(&ptr, length, input_params.format,
-					 input_params.frequency,
-					 input_params.channels);
-#endif
-
 	if (arts_convert_func)
 		arts_convert_func(ptr, length);
 
--- a/src/audiocompress/audacious-glue.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/audiocompress/audacious-glue.c	Thu Sep 13 12:10:39 2007 -0500
@@ -45,14 +45,12 @@
 
 
 static EffectPlugin xmms_plugin = {
-	NULL, NULL,
-	"AudioCompressor AGC plugin",
-	myInit,
-	myCleanup,
-	myAbout,
-	myPrefs,
-	myModify,
- 	NULL
+	.description = "AudioCompressor AGC plugin",
+	.init = myInit,
+	.cleanup = myCleanup,
+	.about = myAbout,
+	.configure = myPrefs,
+	.mod_samples = myModify,
 };
 
 EffectPlugin *audiocompress_eplist[] = { &xmms_plugin, NULL };
@@ -102,7 +100,7 @@
 			  "Simple dynamic range compressor for transparently\n"
 			  "keeping the volume level more or less consistent") , NULL );
 
-			about_xmms_compress = xmms_show_message( _("About AudioCompress") ,
+			about_xmms_compress = audacious_info_dialog( _("About AudioCompress") ,
 				about_text , _("Ok") , FALSE , NULL , NULL );
 			gtk_signal_connect( GTK_OBJECT(about_xmms_compress) , "destroy" ,
 				GTK_SIGNAL_FUNC(gtk_widget_destroyed), &about_xmms_compress );
--- a/src/blur_scope/blur_scope.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/blur_scope/blur_scope.c	Thu Sep 13 12:10:39 2007 -0500
@@ -66,20 +66,14 @@
 
 
 VisPlugin bscope_vp = {
-    NULL,
-    NULL,
-    "Blur Scope",                       /* description */
-    1,                          /* Number of PCM channels wanted */
-    0,                          /* Number of freq channels wanted */
-    bscope_init,                /* init */
-    bscope_cleanup,             /* cleanup */
-    NULL,                       /* about */
-    bscope_configure,           /* configure */
-    NULL,                       /* disable_plugin */
-    NULL,                       /* playback_start */
-    bscope_playback_stop,       /* playback_stop */
-    bscope_render_pcm,          /* render_pcm */
-    NULL                        /* render_freq */
+    .description = "Blur Scope",                       /* description */
+    .num_pcm_chs_wanted = 1, /* Number of PCM channels wanted */
+    .num_freq_chs_wanted = 0, /* Number of freq channels wanted */
+    .init = bscope_init,                /* init */
+    .cleanup = bscope_cleanup,             /* cleanup */
+    .configure = bscope_configure,           /* configure */
+    .playback_stop = bscope_playback_stop,       /* playback_stop */
+    .render_pcm = bscope_render_pcm,          /* render_pcm */
 };
 
 VisPlugin *bscope_vplist[] = { &bscope_vp, NULL };
--- a/src/cdaudio-ng/cdaudio-ng.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/cdaudio-ng/cdaudio-ng.c	Thu Sep 13 12:10:39 2007 -0500
@@ -91,31 +91,22 @@
 
 
 static InputPlugin inputplugin = {
-	NULL,
-	NULL,
-	"CD Audio Plugin NG",
-	cdaudio_init,
-	cdaudio_about,
-	cdaudio_configure,
-	cdaudio_is_our_file,
-	cdaudio_scan_dir,
-	cdaudio_play_file,
-	cdaudio_stop,
-	cdaudio_pause,
-	cdaudio_seek,
-	NULL,
-	cdaudio_get_time,
-	cdaudio_get_volume,
-	cdaudio_set_volume,
-	cdaudio_cleanup,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	cdaudio_get_song_info,
-	NULL,
-	NULL,
-	cdaudio_get_song_tuple
+	.description = "CD Audio Plugin NG",
+	.init = cdaudio_init,
+	.about = cdaudio_about,
+	.configure = cdaudio_configure,
+	.is_our_file = cdaudio_is_our_file,
+	.scan_dir = cdaudio_scan_dir,
+	.play_file = cdaudio_play_file,
+	.stop = cdaudio_stop,
+	.pause = cdaudio_pause,
+	.seek = cdaudio_seek,
+	.get_time = cdaudio_get_time,
+	.get_volume = cdaudio_get_volume,
+	.set_volume = cdaudio_set_volume,
+	.cleanup = cdaudio_cleanup,
+	.get_song_info = cdaudio_get_song_info,
+	.get_song_tuple = cdaudio_get_song_tuple
 };
 
 InputPlugin *cdaudio_iplist[] = { &inputplugin, NULL };
@@ -203,7 +194,7 @@
 						"Also thank you Tony Vroon for mentoring & guiding me.\n\n"
  						"This was a Google Summer of Code 2007 project."));
 
-    about_window = xmms_show_message(_("About CD Audio Plugin NG"), about_text, _("OK"), FALSE, NULL, NULL);
+    about_window = audacious_info_dialog(_("About CD Audio Plugin NG"), about_text, _("OK"), FALSE, NULL, NULL);
 
     g_signal_connect(G_OBJECT(about_window), "destroy",
                      G_CALLBACK(gtk_widget_destroyed), &about_window);
@@ -834,20 +825,20 @@
 		return NULL;
 
 	if(strlen(trackinfo[trackno].performer)) {
-		tuple_associate_string(tuple, "artist", trackinfo[trackno].performer);
+		tuple_associate_string(tuple, FIELD_ARTIST, NULL, trackinfo[trackno].performer);
 	}
 	if(strlen(trackinfo[0].name)) {
-		tuple_associate_string(tuple, "album", trackinfo[0].name);
+		tuple_associate_string(tuple, FIELD_ALBUM, NULL, trackinfo[0].name);
 	}
 	if(strlen(trackinfo[trackno].name)) {
-		tuple_associate_string(tuple, "title", trackinfo[trackno].name);
+		tuple_associate_string(tuple, FIELD_TITLE, NULL, trackinfo[trackno].name);
 	}
-	tuple_associate_int(tuple, "track-number", trackno);
-	tuple_associate_string(tuple, "ext", "cda"); //XXX should do? --yaz
+	tuple_associate_int(tuple, FIELD_TRACK_NUMBER, NULL, trackno);
+	tuple_associate_string(tuple, -1, "ext", "cda"); //XXX should do? --yaz
 
-	tuple_associate_int(tuple, "length", calculate_track_length(trackinfo[trackno].startlsn, trackinfo[trackno].endlsn));
+	tuple_associate_int(tuple, FIELD_LENGTH, NULL, calculate_track_length(trackinfo[trackno].startlsn, trackinfo[trackno].endlsn));
 	if(strlen(trackinfo[trackno].genre)) {
-		tuple_associate_string(tuple, "genre",  trackinfo[trackno].genre);
+		tuple_associate_string(tuple, FIELD_GENRE, NULL,  trackinfo[trackno].genre);
 	}
 	//tuple->year = 0; todo: set the year
 
--- a/src/console/Audacious_Driver.cxx	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/console/Audacious_Driver.cxx	Thu Sep 13 12:10:39 2007 -0500
@@ -208,23 +208,23 @@
 	Tuple* ti = tuple_new();
 	if ( ti )
 	{
-		tuple_associate_string(ti, "file-name", g_path_get_basename(path));
-		tuple_associate_string(ti, "file-path", g_path_get_dirname(path));
-		tuple_associate_string(ti, "artist", info.author);
-		tuple_associate_string(ti, "album", info.game);
-		tuple_associate_string(ti, "game", info.game);
-		tuple_associate_string(ti, "title", info.song ? info.song : g_path_get_basename(path));
+		tuple_associate_string(ti, FIELD_FILE_NAME, NULL, g_path_get_basename(path));
+		tuple_associate_string(ti, FIELD_FILE_PATH, NULL, g_path_get_dirname(path));
+		tuple_associate_string(ti, FIELD_ARTIST, NULL, info.author);
+		tuple_associate_string(ti, FIELD_ALBUM, NULL, info.game);
+		tuple_associate_string(ti, -1, "game", info.game);
+		tuple_associate_string(ti, FIELD_TITLE, NULL, info.song ? info.song : g_path_get_basename(path));
 		if ( info.track_count > 1 )
 		{
-			tuple_associate_int(ti, "track-number", track + 1);
-			tuple_associate_int(ti, "subsong", track);
+			tuple_associate_int(ti, FIELD_TRACK_NUMBER, NULL, track + 1);
+			tuple_associate_int(ti, -1, "subsong", track);
 		}
-		tuple_associate_string(ti, "copyright", info.copyright);
-		tuple_associate_string(ti, "console", info.system);
-		tuple_associate_string(ti, "codec", info.system);
-		tuple_associate_string(ti, "quality", "sequenced");
-		tuple_associate_string(ti, "dumper", info.dumper);
-		tuple_associate_string(ti, "comment", info.comment);
+		tuple_associate_string(ti, FIELD_COPYRIGHT, NULL, info.copyright);
+		tuple_associate_string(ti, -1, "console", info.system);
+		tuple_associate_string(ti, FIELD_CODEC, NULL, info.system);
+		tuple_associate_string(ti, FIELD_QUALITY, NULL, "sequenced");
+		tuple_associate_string(ti, -1, "dumper", info.dumper);
+		tuple_associate_string(ti, FIELD_COMMENT, NULL, info.comment);
 
 		int length = info.length;
 		if ( length <= 0 )
@@ -233,7 +233,7 @@
 			length = audcfg.loop_length * 1000;
 		else if ( length >= fade_threshold )
 			length += fade_length;
-		tuple_associate_int(ti, "length", length);
+		tuple_associate_int(ti, FIELD_LENGTH, NULL, length);
 	}
 	return ti;
 }
@@ -242,7 +242,7 @@
 {
 	char* result = tuple_formatter_make_title_string(ti, get_gentitle_format());
 	if ( result )
-		*length = tuple_get_int(ti, "length");
+		*length = tuple_get_int(ti, FIELD_LENGTH, NULL);
 	tuple_free((void *) ti);
 
 	return result;
@@ -486,13 +486,13 @@
 	console_cfg_load();
 }
 
-extern "C" void console_aboutbox(void)
+void console_aboutbox(void)
 {
 	static GtkWidget * aboutbox = NULL;
 
 	if (!aboutbox)
 	{
-		aboutbox = xmms_show_message(_("About the Console Music Decoder"),
+		aboutbox = audacious_info_dialog(_("About the Console Music Decoder"),
 						_("Console music decoder engine based on Game_Music_Emu 0.5.2.\n"
 						"Supported formats: AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ\n"
 						"Audacious implementation by: William Pitcock <nenolod@nenolod.net>, \n"
@@ -513,8 +513,10 @@
 	NULL,
 	(gchar *)"Game console audio module decoder",
 	console_init,
+	NULL,
 	console_aboutbox,
 	console_cfg_ui,
+	FALSE,
 	NULL,
 	NULL,
 	play_file,
@@ -524,7 +526,6 @@
 	NULL,
 	get_time,
 	NULL,
-	NULL,
 	NULL,   
 	NULL,
 	NULL,
@@ -542,8 +543,4 @@
 
 InputPlugin *console_iplist[] = { &console_ip, NULL };
 
-extern "C" {
-
-DECLARE_PLUGIN(console, NULL, NULL, console_iplist, NULL, NULL, NULL, NULL,NULL);
-
-};
+SIMPLE_INPUT_PLUGIN(console, console_iplist);
--- a/src/cue/cuesheet.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/cue/cuesheet.c	Thu Sep 13 12:10:39 2007 -0500
@@ -93,32 +93,17 @@
 
 InputPlugin cue_ip =
 {
-	NULL,			/* handle */
-	NULL,			/* filename */
-	"Cuesheet Plugin",	/* description */
-	cue_init,	       	/* init */
-	NULL,	       	/* about */
-	NULL,	  	   	/* configure */
-	is_our_file,
-	NULL,		/* audio cd */
-	play,
-	stop,
-	cue_pause,
-	seek,
-	NULL,		/* set eq */
-	get_time,
-	NULL,
-	NULL,
-	cue_cleanup,		/* cleanup */
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	get_song_info,	/* XXX get_song_info iface */
-	NULL,
-	NULL,
-	get_tuple,
-	NULL
+	.description = "Cuesheet Plugin",	/* description */
+	.init = cue_init,	       	/* init */
+	.is_our_file = is_our_file,
+	.play_file = play,
+	.stop = stop,
+	.pause = cue_pause,
+	.seek = seek,
+	.get_time = get_time,
+	.cleanup = cue_cleanup,		/* cleanup */
+	.get_song_info = get_song_info,	/* XXX get_song_info iface */
+	.get_song_tuple = get_tuple,
 };
 
 InputPlugin *cue_iplist[] = { &cue_ip, NULL };
@@ -240,11 +225,11 @@
 	return get_tuple_uri(uri);
 }
 
-static void _tuple_copy_field(Tuple *tuple, Tuple *tuple2, const gchar *field)
+static void _tuple_copy_field(Tuple *tuple, Tuple *tuple2, const gint nfield, const gchar *field)
 {
-    const gchar *str = tuple_get_string(tuple, field);
-    tuple_disassociate(tuple2, field);
-    tuple_associate_string(tuple2, field, str);
+    const gchar *str = tuple_get_string(tuple, nfield, field);
+    tuple_disassociate(tuple2, nfield, field);
+    tuple_associate_string(tuple2, nfield, field, str);
 }
 
 static Tuple *get_tuple_uri(gchar *uri)
@@ -289,26 +274,26 @@
 
     out = tuple_new();
 
-    _tuple_copy_field(phys_tuple, out, "file-path");
-    _tuple_copy_field(phys_tuple, out, "file-name");
-    _tuple_copy_field(phys_tuple, out, "file-exit");
-    _tuple_copy_field(phys_tuple, out, "codec");
-    _tuple_copy_field(phys_tuple, out, "quality");
-    _tuple_copy_field(phys_tuple, out, "copyright");
-    _tuple_copy_field(phys_tuple, out, "comment");
+    _tuple_copy_field(phys_tuple, out, FIELD_FILE_PATH, NULL);
+    _tuple_copy_field(phys_tuple, out, FIELD_FILE_NAME, NULL);
+    _tuple_copy_field(phys_tuple, out, FIELD_FILE_EXT, NULL);
+    _tuple_copy_field(phys_tuple, out, FIELD_CODEC, NULL);
+    _tuple_copy_field(phys_tuple, out, FIELD_QUALITY, NULL);
+    _tuple_copy_field(phys_tuple, out, FIELD_COPYRIGHT, NULL);
+    _tuple_copy_field(phys_tuple, out, FIELD_COMMENT, NULL);
 
-    tuple_associate_int(out, "length", tuple_get_int(phys_tuple, "length"));
+    tuple_associate_int(out, FIELD_LENGTH, NULL, tuple_get_int(phys_tuple, FIELD_LENGTH, NULL));
 
     tuple_free(phys_tuple);
 
-    tuple_associate_string(out, "title", cue_tracks[track].title);
-    tuple_associate_string(out, "artist", cue_tracks[track].performer ?
+    tuple_associate_string(out, FIELD_TITLE, NULL, cue_tracks[track].title);
+    tuple_associate_string(out, FIELD_ARTIST, NULL, cue_tracks[track].performer ?
 				  cue_tracks[track].performer : cue_performer);
-    tuple_associate_string(out, "album", cue_title);
-    tuple_associate_string(out, "genre", cue_genre);
+    tuple_associate_string(out, FIELD_ALBUM, NULL, cue_title);
+    tuple_associate_string(out, FIELD_GENRE, NULL, cue_genre);
     if(cue_year)
-        tuple_associate_int(out, "year", atoi(cue_year));
-    tuple_associate_int(out, "track-number", track + 1);
+        tuple_associate_int(out, FIELD_YEAR, NULL, atoi(cue_year));
+    tuple_associate_int(out, FIELD_TRACK_NUMBER, NULL, track + 1);
 
     return out;
 }
@@ -330,7 +315,7 @@
 	g_return_if_fail(tuple != NULL);
 
 	*title = tuple_formatter_make_title_string(tuple, get_gentitle_format());
-	*length = tuple_get_int(tuple, "length");
+	*length = tuple_get_int(tuple, FIELD_LENGTH, NULL);
 
 	tuple_free(tuple);
 }
--- a/src/echo_plugin/echo.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/echo_plugin/echo.c	Thu Sep 13 12:10:39 2007 -0500
@@ -23,15 +23,12 @@
 
 EffectPlugin echo_ep =
 {
-	NULL,
-	NULL,
-	"Echo Plugin", /* Description */
-	init,
-	cleanup,
-	echo_about,
-	echo_configure,
-	mod_samples,
-	NULL
+	.description = "Echo Plugin", /* Description */
+	.init = init,
+	.cleanup = cleanup,
+	.about = echo_about,
+	.configure = echo_configure,
+	.mod_samples = mod_samples,
 };
 
 static gint16 *buffer = NULL;
--- a/src/echo_plugin/gui.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/echo_plugin/gui.c	Thu Sep 13 12:10:39 2007 -0500
@@ -23,7 +23,7 @@
 	if (echo_about_dialog != NULL)
 		return;
 
-	echo_about_dialog = xmms_show_message(_("About Echo Plugin"),
+	echo_about_dialog = audacious_info_dialog(_("About Echo Plugin"),
 					      _(echo_about_text), _("Ok"),
 					      FALSE, NULL, NULL);
 	gtk_signal_connect(GTK_OBJECT(echo_about_dialog), "destroy",
--- a/src/esd/about.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/esd/about.c	Thu Sep 13 12:10:39 2007 -0500
@@ -31,7 +31,7 @@
     if (dialog != NULL)
         return;
 
-    dialog = xmms_show_message(_("About ESounD Plugin"),
+    dialog = audacious_info_dialog(_("About ESounD Plugin"),
                                _("Audacious ESounD Plugin\n\n "
                                  "This program is free software; you can redistribute it and/or modify\n"
                                  "it under the terms of the GNU General Public License as published by\n"
--- a/src/esd/audio.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/esd/audio.c	Thu Sep 13 12:10:39 2007 -0500
@@ -43,7 +43,6 @@
 static esd_format_t esd_format;
 static gint input_bps, input_format, input_frequency, input_channels;
 static GThread *buffer_thread;
-static gboolean realtime = FALSE;
 static void *(*esd_translate) (void *, gint);
 static int player_id_unique = 0;
 
@@ -227,13 +226,10 @@
 gint
 esdout_used(void)
 {
-    if (realtime)
-        return 0;
-    else {
-        if (wr_index >= rd_index)
-            return wr_index - rd_index;
-        return buffer_size - (rd_index - wr_index);
-    }
+    if (wr_index >= rd_index)
+        return wr_index - rd_index;
+
+    return buffer_size - (rd_index - wr_index);
 }
 
 gint
@@ -250,58 +246,23 @@
 gint
 esdout_free(void)
 {
-    if (!realtime) {
-        if (remove_prebuffer && prebuffer) {
-            prebuffer = FALSE;
-            remove_prebuffer = FALSE;
-        }
-        if (prebuffer)
-            remove_prebuffer = TRUE;
+    if (remove_prebuffer && prebuffer) {
+        prebuffer = FALSE;
+        remove_prebuffer = FALSE;
+    }
 
-        if (rd_index > wr_index)
-            return (rd_index - wr_index) - 1;
-        return (buffer_size - (wr_index - rd_index)) - 1;
-    }
-    else {
-        if (paused)
-            return 0;
-        else
-            return 1000000;
-    }
+    if (prebuffer)
+        remove_prebuffer = TRUE;
+
+    if (rd_index > wr_index)
+        return (rd_index - wr_index) - 1;
+
+    return (buffer_size - (wr_index - rd_index)) - 1;
 }
 
 static void
 esdout_write_audio(gpointer data, gint length)
 {
-#if 0
-    AFormat new_format;
-    gint new_frequency, new_channels;
-    EffectPlugin *ep;
-
-    new_format = input_format;
-    new_frequency = input_frequency;
-    new_channels = input_channels;
-
-    ep = get_current_effect_plugin();
-    if (effects_enabled() && ep && ep->query_format) {
-        ep->query_format(&new_format, &new_frequency, &new_channels);
-    }
-
-    if (new_format != format || new_frequency != frequency
-        || new_channels != channels) {
-        output_time_offset += (gint) ((output_bytes * 1000) / ebps);
-        output_bytes = 0;
-        esdout_setup_format(new_format, new_frequency, new_channels);
-        frequency = new_frequency;
-        channels = new_channels;
-        esd_close(fd);
-        esdout_set_audio_params();
-    }
-    if (effects_enabled() && ep && ep->mod_samples)
-        length =
-            ep->mod_samples(&data, length, input_format, input_frequency,
-                            input_channels);
-#endif
     while (length > 0) {
         int num_written;
         if (esd_translate)
@@ -322,27 +283,16 @@
 {
     gint cnt, off = 0;
 
-    if (!realtime) {
-        remove_prebuffer = FALSE;
-
-        written += length;
-        while (length > 0) {
-            cnt = MIN(length, buffer_size - wr_index);
-            memcpy((gchar *) buffer + wr_index, (gchar *) ptr + off, cnt);
-            wr_index = (wr_index + cnt) % buffer_size;
-            length -= cnt;
-            off += cnt;
+    remove_prebuffer = FALSE;
 
-        }
+    written += length;
+    while (length > 0) {
+        cnt = MIN(length, buffer_size - wr_index);
+        memcpy((gchar *) buffer + wr_index, (gchar *) ptr + off, cnt);
+        wr_index = (wr_index + cnt) % buffer_size;
+        length -= cnt;
+        off += cnt;
     }
-    else {
-        if (paused)
-            return;
-        esdout_write_audio(ptr, length);
-        written += length;
-
-    }
-
 }
 
 void
@@ -353,10 +303,7 @@
 
     going = 0;
 
-    if (!realtime)
-        g_thread_join(buffer_thread);
-    else
-        esd_close(fd);
+    g_thread_join(buffer_thread);
 
     wr_index = 0;
     rd_index = 0;
@@ -367,16 +314,10 @@
 void
 esdout_flush(gint time)
 {
-    if (!realtime) {
-        flush = time;
-        while (flush != -1)
-            g_usleep(10000);
-    }
-    else {
-        output_time_offset = time;
-        written = (guint64) (time / 10) * (guint64) (input_bps / 100);
-        output_bytes = 0;
-    }
+    flush = time;
+
+    while (flush != -1)
+        g_usleep(10000);
 }
 
 void
@@ -446,18 +387,15 @@
     input_frequency = frequency;
     input_bps = bps;
 
-    realtime = xmms_check_realtime_priority();
+    buffer_size = (esd_cfg.buffer_size * input_bps) / 1000;
+    if (buffer_size < 8192)
+        buffer_size = 8192;
+    prebuffer_size = (buffer_size * esd_cfg.prebuffer) / 100;
+    if (buffer_size - prebuffer_size < 4096)
+        prebuffer_size = buffer_size - 4096;
 
-    if (!realtime) {
-        buffer_size = (esd_cfg.buffer_size * input_bps) / 1000;
-        if (buffer_size < 8192)
-            buffer_size = 8192;
-        prebuffer_size = (buffer_size * esd_cfg.prebuffer) / 100;
-        if (buffer_size - prebuffer_size < 4096)
-            prebuffer_size = buffer_size - 4096;
+    buffer = g_malloc0(buffer_size);
 
-        buffer = g_malloc0(buffer_size);
-    }
     flush = -1;
     prebuffer = 1;
     wr_index = rd_index = output_time_offset = written = output_bytes = 0;
@@ -483,8 +421,8 @@
     }
     going = 1;
 
-    if (!realtime)
-        buffer_thread = g_thread_create(esdout_loop, NULL, TRUE, NULL);
+    buffer_thread = g_thread_create(esdout_loop, NULL, TRUE, NULL);
+
     return 1;
 }
 
--- a/src/esd/esd.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/esd/esd.c	Thu Sep 13 12:10:39 2007 -0500
@@ -21,25 +21,22 @@
 
 
 OutputPlugin esd_op = {
-    NULL,
-    NULL,
-    "ESD Output Plugin",
-    esdout_init,
-    NULL,
-    esdout_about,
-    esdout_configure,
-    esdout_get_volume,
-    esdout_set_volume,
-    esdout_open,
-    esdout_write,
-    esdout_close,
-    esdout_flush,
-    esdout_pause,
-    esdout_free,
-    esdout_playing,
-    esdout_get_output_time,
-    esdout_get_written_time,
-    esdout_tell
+    .description = "ESD Output Plugin",
+    .init = esdout_init,
+    .about = esdout_about,
+    .configure = esdout_configure,
+    .get_volume = esdout_get_volume,
+    .set_volume = esdout_set_volume,
+    .open_audio = esdout_open,
+    .write_audio = esdout_write,
+    .close_audio = esdout_close,
+    .flush = esdout_flush,
+    .pause = esdout_pause,
+    .buffer_free = esdout_free,
+    .buffer_playing = esdout_playing,
+    .output_time = esdout_get_output_time,
+    .written_time = esdout_get_written_time,
+    .tell_audio = esdout_tell
 };
 
 OutputPlugin *esd_oplist[] = { &esd_op, NULL };
--- a/src/evdev-plug/ed.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/evdev-plug/ed.c	Thu Sep 13 12:10:39 2007 -0500
@@ -29,7 +29,7 @@
 
 
 GeneralPlugin *evdevplug_gplist[] = { &ed_gp, NULL };
-DECLARE_PLUGIN(evdev-plug, NULL, NULL, NULL, NULL, NULL, evdevplug_gplist, NULL, NULL);
+SIMPLE_GENERAL_PLUGIN(evdev-plug, evdevplug_gplist);
 
 GList *ed_device_listening_list = NULL;
 gboolean plugin_is_active = FALSE;
--- a/src/evdev-plug/ed.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/evdev-plug/ed.h	Thu Sep 13 12:10:39 2007 -0500
@@ -32,13 +32,11 @@
 
 GeneralPlugin ed_gp =
 {
-    NULL,					/* handle */
-    NULL,					/* filename */
-    "EvDev-Plug " ED_VERSION_PLUGIN,		/* description */
-    ed_init,					/* init */
-    ed_about,					/* about */
-    ed_config,					/* configure */
-    ed_cleanup					/* cleanup */
+    .description = "EvDev-Plug " ED_VERSION_PLUGIN,
+    .init = ed_init,
+    .about = ed_about,
+    .configure = ed_config,	
+    .cleanup = ed_cleanup
 };
 
 #endif /* !_I_ED_H */
--- a/src/filewriter/filewriter.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/filewriter/filewriter.c	Thu Sep 13 12:10:39 2007 -0500
@@ -92,30 +92,24 @@
 
 OutputPlugin file_op =
 {
-    NULL,
-    NULL,
-    "FileWriter Plugin",
-    file_init,
-    NULL,
-    file_about,
-    file_configure,
-    NULL,
-    NULL,
-    file_open,
-    file_write,
-    file_close,
-    file_flush,
-    file_pause,
-    file_free,
-    file_playing,
-    file_get_output_time,
-    file_get_written_time,
-    NULL
+    .description = "FileWriter Plugin",
+    .init = file_init,
+    .about = file_about,
+    .configure = file_configure,
+    .open_audio = file_open,
+    .write_audio = file_write,
+    .close_audio = file_close,
+    .flush = file_flush,
+    .pause = file_pause,
+    .buffer_free = file_free,
+    .buffer_playing = file_playing,
+    .output_time = file_get_output_time,
+    .written_time = file_get_written_time
 };
 
 OutputPlugin *file_oplist[] = { &file_op, NULL };
 
-DECLARE_PLUGIN(filewriter, NULL, NULL, NULL, file_oplist, NULL, NULL, NULL, NULL);
+SIMPLE_OUTPUT_PLUGIN(filewriter, file_oplist);
 
 static void set_plugin(void)
 {
@@ -166,7 +160,7 @@
     if (dialog != NULL)
         return;
 
-    dialog = xmms_show_message(_("About FileWriter-Plugin"),
+    dialog = audacious_info_dialog(_("About FileWriter-Plugin"),
                                _("FileWriter-Plugin\n\n"
                                "This program is free software; you can redistribute it and/or modify\n"
                                "it under the terms of the GNU General Public License as published by\n"
@@ -189,19 +183,11 @@
 static gint file_open(AFormat fmt, gint rate, gint nch)
 {
     gchar *filename = NULL, *temp = NULL;
+    const gchar *directory;
     gint pos;
     gint rv;
     Playlist *playlist;
 
-    if (xmms_check_realtime_priority())
-    {
-        xmms_show_message(_("Error"),
-                          _("You cannot use the FileWriter plugin\n"
-                            "when you're running in realtime mode."),
-                          _("OK"), FALSE, NULL, NULL);
-        return 0;
-    }
-
     input.format = fmt;
     input.frequency = rate;
     input.channels = nch;
@@ -228,7 +214,7 @@
     }
     if (filename == NULL)
     {
-        filename = g_strdup(tuple_get_string(tuple, "file-name"));
+        filename = g_strdup(tuple_get_string(tuple, FIELD_FILE_NAME, NULL));
         if (!use_suffix)
             if ((temp = strrchr(filename, '.')) != NULL)
                 *temp = '\0';
@@ -239,10 +225,8 @@
 
     if (prependnumber)
     {
-        gint number;
-        if (tuple && tuple_get_int(tuple, "track-number"))
-            number = tuple_get_int(tuple, "track-number");
-        else
+        gint number = tuple_get_int(tuple, FIELD_TRACK_NUMBER, NULL);
+        if (!tuple || !number)
             number = pos + 1;
 
         temp = g_strdup_printf("%.02d %s", number, filename);
@@ -250,15 +234,13 @@
         filename = temp;
     }
 
-    gchar *directory;
     if (save_original)
-        directory = g_strdup(tuple_get_string(tuple, "file-path"));
+        directory = tuple_get_string(tuple, FIELD_FILE_PATH, NULL);
     else
-        directory = g_strdup(file_path);
+        directory = file_path;
 
     temp = g_strdup_printf("file://%s/%s.%s",
                            directory, filename, fileext_str[fileext]);
-    g_free(directory);
     g_free(filename);
     filename = temp;
 
@@ -327,26 +309,6 @@
 
 static void file_write(void *ptr, gint length)
 {
-    AFormat new_format;
-    int new_frequency, new_channels;
-    EffectPlugin *ep;
-
-    new_format = input.format;
-    new_frequency = input.frequency;
-    new_channels = input.channels;
-
-    ep = get_current_effect_plugin();
-    if ( effects_enabled() && ep && ep->query_format ) {
-        ep->query_format(&new_format,&new_frequency,&new_channels);
-    }
-
-    if ( effects_enabled() && ep && ep->mod_samples ) {
-        length = ep->mod_samples(&ptr,length,
-                                 input.format,
-                                 input.frequency,
-                                 input.channels );
-    }
-
     if (input.format == FMT_S8 || input.format == FMT_S16_BE ||
         input.format == FMT_U16_LE || input.format == FMT_U16_BE ||
         input.format == FMT_U16_NE)
--- a/src/filewriter/flac.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/filewriter/flac.c	Thu Sep 13 12:10:39 2007 -0500
@@ -107,14 +107,14 @@
 
         meta = FLAC__metadata_object_new(FLAC__METADATA_TYPE_VORBIS_COMMENT);
 
-        INSERT_VORBIS_COMMENT(tuple_get_string(tuple, "title"), "title=%s");
-        INSERT_VORBIS_COMMENT(tuple_get_string(tuple, "artist"), "artist=%s");
-        INSERT_VORBIS_COMMENT(tuple_get_string(tuple, "album"), "album=%s");
-        INSERT_VORBIS_COMMENT(tuple_get_string(tuple, "genre"), "genre=%s");
-        INSERT_VORBIS_COMMENT(tuple_get_string(tuple, "comment"), "comment=%s");
-        INSERT_VORBIS_COMMENT(tuple_get_string(tuple, "date"), "date=%s");
-        INSERT_VORBIS_COMMENT(tuple_get_int(tuple, "year"), "year=%d");
-        INSERT_VORBIS_COMMENT(tuple_get_int(tuple, "track-number"), "tracknumber=%d");
+        INSERT_VORBIS_COMMENT(tuple_get_string(tuple, FIELD_TITLE, NULL), "title=%s");
+        INSERT_VORBIS_COMMENT(tuple_get_string(tuple, FIELD_ARTIST, NULL), "artist=%s");
+        INSERT_VORBIS_COMMENT(tuple_get_string(tuple, FIELD_ALBUM, NULL), "album=%s");
+        INSERT_VORBIS_COMMENT(tuple_get_string(tuple, FIELD_GENRE, NULL), "genre=%s");
+        INSERT_VORBIS_COMMENT(tuple_get_string(tuple, FIELD_COMMENT, NULL), "comment=%s");
+        INSERT_VORBIS_COMMENT(tuple_get_string(tuple, FIELD_DATE, NULL), "date=%s");
+        INSERT_VORBIS_COMMENT(tuple_get_int(tuple, FIELD_YEAR, NULL), "year=%d");
+        INSERT_VORBIS_COMMENT(tuple_get_int(tuple, FIELD_TRACK_NUMBER, NULL), "tracknumber=%d");
 
         FLAC__stream_encoder_set_metadata(flac_encoder, &meta, 1);
     }
--- a/src/filewriter/mp3.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/filewriter/mp3.c	Thu Sep 13 12:10:39 2007 -0500
@@ -207,24 +207,24 @@
     if (tuple) {
         /* XXX write UTF-8 even though libmp3lame does id3v2.3. --yaz */
 #ifdef DEBUG
-        g_print("track_name = %s\n", tuple_get_string(tuple, "title"));
+        g_print("track_name = %s\n", tuple_get_string(tuple, FIELD_TITLE, NULL));
 #endif
-        lameid3.track_name = g_strdup(tuple_get_string(tuple, "title"));
+        lameid3.track_name = g_strdup(tuple_get_string(tuple, FIELD_TITLE, NULL));
         id3tag_set_title(gfp, lameid3.track_name);
 
-        lameid3.performer = g_strdup(tuple_get_string(tuple, "artist"));
+        lameid3.performer = g_strdup(tuple_get_string(tuple, FIELD_ARTIST, NULL));
         id3tag_set_artist(gfp, lameid3.performer);
 
-        lameid3.album_name = g_strdup(tuple_get_string(tuple, "album"));
+        lameid3.album_name = g_strdup(tuple_get_string(tuple, FIELD_ALBUM, NULL));
         id3tag_set_album(gfp, lameid3.album_name);
 
-        lameid3.genre = g_strdup(tuple_get_string(tuple, "genre"));
+        lameid3.genre = g_strdup(tuple_get_string(tuple, FIELD_GENRE, NULL));
         id3tag_set_genre(gfp, lameid3.genre);
 
-        lameid3.year = g_strdup_printf("%d", tuple_get_int(tuple, "year"));
+        lameid3.year = g_strdup_printf("%d", tuple_get_int(tuple, FIELD_YEAR, NULL));
         id3tag_set_year(gfp, lameid3.year);
 
-        lameid3.track_number = g_strdup_printf("%d", tuple_get_int(tuple, "track-number"));
+        lameid3.track_number = g_strdup_printf("%d", tuple_get_int(tuple, FIELD_TRACK_NUMBER, NULL));
         id3tag_set_track(gfp, lameid3.track_number);
 
         //        id3tag_write_v1(gfp);
--- a/src/filewriter/vorbis.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/filewriter/vorbis.c	Thu Sep 13 12:10:39 2007 -0500
@@ -85,32 +85,32 @@
     if (tuple)
     {
         const gchar *scratch;
+        gchar tmpstr[32];
+        gint scrint;
 
-        if ((scratch = tuple_get_string(tuple, "title")))
+        if ((scratch = tuple_get_string(tuple, FIELD_TITLE, NULL)))
             vorbis_comment_add_tag(&vc, "title", (gchar *) scratch);
-        if ((scratch = tuple_get_string(tuple, "artist")))
+        if ((scratch = tuple_get_string(tuple, FIELD_ARTIST, NULL)))
             vorbis_comment_add_tag(&vc, "artist", (gchar *) scratch);
-        if ((scratch = tuple_get_string(tuple, "album")))
+        if ((scratch = tuple_get_string(tuple, FIELD_ALBUM, NULL)))
             vorbis_comment_add_tag(&vc, "album", (gchar *) scratch);
-        if ((scratch = tuple_get_string(tuple, "genre")))
+        if ((scratch = tuple_get_string(tuple, FIELD_GENRE, NULL)))
             vorbis_comment_add_tag(&vc, "genre", (gchar *) scratch);
-        if ((scratch = tuple_get_string(tuple, "date")))
+        if ((scratch = tuple_get_string(tuple, FIELD_DATE, NULL)))
             vorbis_comment_add_tag(&vc, "date", (gchar *) scratch);
-        if ((scratch = tuple_get_string(tuple, "comment")))
+        if ((scratch = tuple_get_string(tuple, FIELD_COMMENT, NULL)))
             vorbis_comment_add_tag(&vc, "comment", (gchar *) scratch);
 
-        if (tuple_get_int(tuple, "track-number"))
+        if ((scrint = tuple_get_int(tuple, FIELD_TRACK_NUMBER, NULL)))
         {
-            gchar *tmp = g_strdup_printf("%d", tuple_get_int(tuple, "track-number"));
-            vorbis_comment_add_tag(&vc, "tracknumber", tmp);
-            g_free(tmp);
+            g_snprintf(tmpstr, sizeof(tmpstr), "%d", scrint);
+            vorbis_comment_add_tag(&vc, "tracknumber", tmpstr);
         }
 
-        if (tuple_get_int(tuple, "year"))
+        if ((scrint = tuple_get_int(tuple, FIELD_YEAR, NULL)))
         {
-            gchar *tmp = g_strdup_printf("%d", tuple_get_int(tuple, "year"));
-            vorbis_comment_add_tag(&vc, "year", tmp);
-            g_free(tmp);
+            g_snprintf(tmpstr, sizeof(tmpstr), "%d", scrint);
+            vorbis_comment_add_tag(&vc, "year", tmpstr);
         }
     }
 
--- a/src/flacng/plugin.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/flacng/plugin.c	Thu Sep 13 12:10:39 2007 -0500
@@ -30,35 +30,18 @@
 static gchar *flac_fmts[] = { "flac", NULL };
 
 InputPlugin flac_ip = {
-    NULL,
-    NULL,
-    "FLACng Audio Plugin",
-    flac_init,
-    flac_aboutbox,
-    NULL,
-    flac_is_our_file,
-    NULL,
-    flac_play_file,
-    flac_stop,
-    flac_pause,
-    flac_seek,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    flac_get_song_info,
-    NULL,
-    NULL,
-    flac_get_song_tuple,	// get a tuple
-    NULL,
-    NULL,			// write a tuple back to a file as a tag
-    flac_is_our_fd,	// version of is_our_file which is handed an FD
-    flac_fmts			// vector of fileextensions allowed by the plugin
+    .description = "FLACng Audio Plugin",
+    .init = flac_init,
+    .about = flac_aboutbox,
+    .is_our_file = flac_is_our_file,
+    .play_file = flac_play_file,
+    .stop = flac_stop,
+    .pause = flac_pause,
+    .seek = flac_seek,
+    .get_song_info = flac_get_song_info,
+    .get_song_tuple = flac_get_song_tuple,	// get a tuple
+    .is_our_file_from_vfs = flac_is_our_fd,	// version of is_our_file which is handed an FD
+    .vfs_extensions = flac_fmts			// vector of fileextensions allowed by the plugin
 };
 
 InputPlugin *flac_iplist[] = { &flac_ip, NULL };
@@ -631,7 +614,7 @@
     seek_to = time;
 
     while (-1 != seek_to) {
-        xmms_usleep(10000);
+        g_usleep(10000);
     }
 
     _LEAVE;
@@ -738,7 +721,7 @@
                                "\n"
                                "http://www.skytale.net/projects/bmp-flac2/"), NULL);
 
-    about_window = xmms_show_message(_("About FLAC Audio Plugin"),
+    about_window = audacious_info_dialog(_("About FLAC Audio Plugin"),
                                      about_text,
                                      _("OK"), FALSE, NULL, NULL);
 
--- a/src/flacng/seekable_stream_callbacks.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/flacng/seekable_stream_callbacks.c	Thu Sep 13 12:10:39 2007 -0500
@@ -20,7 +20,6 @@
 #include <string.h>
 #include <FLAC/all.h>
 #include <glib.h>
-#include <glib/gi18n.h>
 #include <audacious/vfs.h>
 #include "flacng.h"
 #include "tools.h"
--- a/src/flacng/tools.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/flacng/tools.c	Thu Sep 13 12:10:39 2007 -0500
@@ -241,29 +241,29 @@
 
     out = tuple_new_from_filename(filename);
 
-    tuple_associate_string(out, "codec", "Free Lossless Audio Codec (FLAC)");
-    tuple_associate_string(out, "quality", "lossless");
+    tuple_associate_string(out, FIELD_CODEC, NULL, "Free Lossless Audio Codec (FLAC)");
+    tuple_associate_string(out, FIELD_CODEC, NULL, "lossless");
 
-    tuple_associate_string(out, "artist", info->comment.artist);
-    tuple_associate_string(out, "title", info->comment.title);
-    tuple_associate_string(out, "album", info->comment.album);
-    tuple_associate_string(out, "genre", info->comment.genre);
+    tuple_associate_string(out, FIELD_ARTIST, NULL, info->comment.artist);
+    tuple_associate_string(out, FIELD_TITLE, NULL, info->comment.title);
+    tuple_associate_string(out, FIELD_ALBUM, NULL, info->comment.album);
+    tuple_associate_string(out, FIELD_GENRE, NULL, info->comment.genre);
 
     if (info->comment.tracknumber != NULL)
-        tuple_associate_int(out, "track-number", atoi(info->comment.tracknumber));
+        tuple_associate_int(out, FIELD_TRACK_NUMBER, NULL, atoi(info->comment.tracknumber));
 
     if (info->comment.date != NULL)
-        tuple_associate_int(out, "year", atoi(info->comment.date));
+        tuple_associate_int(out, FIELD_YEAR, NULL, atoi(info->comment.date));
 
     /*
      * Calculate the stream length (milliseconds)
      */
     if (0 == info->stream.samplerate) {
         _ERROR("Invalid sample rate for stream!");
-        tuple_associate_int(out, "length", -1);
+        tuple_associate_int(out, FIELD_LENGTH, NULL, -1);
     } else {
-        tuple_associate_int(out, "length", (info->stream.samples / info->stream.samplerate) * 1000);
-        _DEBUG("Stream length: %d seconds", tuple_get_int(out, "length"));
+        tuple_associate_int(out, FIELD_LENGTH, NULL, (info->stream.samples / info->stream.samplerate) * 1000);
+        _DEBUG("Stream length: %d seconds", tuple_get_int(out, FIELD_LENGTH, NULL));
     }
 
     _DEBUG("Tuple created: [%p]", out);
--- a/src/hotkey/plugin.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/hotkey/plugin.c	Thu Sep 13 12:10:39 2007 -0500
@@ -51,7 +51,7 @@
 
 #include <audacious/i18n.h>
 
-/* for xmms_show_message () */
+/* for audacious_info_dialog () */
 #include <audacious/util.h>
 
 
@@ -129,17 +129,15 @@
 
 static GeneralPlugin audacioushotkey =
 {
-	NULL,
-	NULL,
-	"Global Hotkey",
-	init,
-	about,
-	configure,
-	cleanup
+	.description = "Global Hotkey",
+	.init = init,
+	.about = about,
+	.configure = configure,
+	.cleanup = cleanup
 };
 
 GeneralPlugin *hotkey_gplist[] = { &audacioushotkey, NULL };
-DECLARE_PLUGIN(hotkey, NULL, NULL, NULL, NULL, NULL, hotkey_gplist, NULL, NULL);
+SIMPLE_GENERAL_PLUGIN(hotkey, hotkey_gplist);
 
 
 
@@ -902,7 +900,7 @@
 {
 	static GtkWidget *dialog;
 
-	dialog = xmms_show_message (_("About Global Hotkey Plugin"),
+	dialog = audacious_info_dialog (_("About Global Hotkey Plugin"),
 				_("Global Hotkey Plugin\n"
 				"Control the player with global key combinations or multimedia keys.\n\n"
 				"Copyright (C) 2007 Sascha Hlusiak <contact@saschahlusiak.de>\n\n"
--- a/src/jack/jack.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/jack/jack.c	Thu Sep 13 12:10:39 2007 -0500
@@ -429,72 +429,9 @@
 void jack_write(gpointer ptr, gint length)
 {
   long written;
-#if 0
-  EffectPlugin *ep;
-  AFormat new_format;
-  int new_frequency, new_channels;
-  long positionMS;
-#endif
 
   TRACE("starting length of %d\n", length);
 
-#if 0
-  /* copy the current values into temporary values */
-  new_format = input.format;
-  new_frequency = input.frequency;
-  new_channels = input.channels;
-
-  /* query xmms for the current plugin */
-  ep = get_current_effect_plugin();
-  if(effects_enabled() && ep && ep->query_format)
-  {
-    ep->query_format(&new_format, &new_frequency, &new_channels);
-  }
-
-  /* if the format has changed take this into account by modifying */
-  /* the time offset and reopening the device with the new format settings */
-  if (new_format != effect.format ||
-      new_frequency != effect.frequency ||
-      new_channels != effect.channels)
-  {
-    TRACE("format changed, storing new values and opening/closing jack\n");
-    TRACE("effect.format == %d, new_format == %d, effect.frequency == %ld, new_frequency == %d, effect.channels == %d, new_channels = %d\n",
-	  effect.format, new_format, effect.frequency, new_frequency, effect.channels, new_channels);
-
-    positionMS = JACK_GetPosition(driver, MILLISECONDS, PLAYED);
-
-    jack_close();
-    jack_open(new_format, new_frequency, new_channels);
-
-    /* restore the position after the open and close */
-    JACK_SetState(driver, PAUSED);
-    JACK_SetPosition(driver, MILLISECONDS, positionMS);
-    JACK_SetState(driver, PLAYING);
-  }
-
-  /* if effects are enabled and we have a plugin, run the current */
-  /* samples through the plugin */
-  if (effects_enabled() && ep && ep->mod_samples)
-  {
-    length = ep->mod_samples(&ptr, length,
-                             input.format,
-                             input.frequency,
-                             input.channels);
-    TRACE("effects_enabled(), length is now %d\n", length);
-  }
-
-  TRACE("effect.frequency == %ld, input.frequency == %ld, output.frequency == %ld\n",
-        effect.frequency, input.frequency, output.frequency);
-
-  /* if we need rate conversion, perform it here */
-  if((effect.frequency != output.frequency) && isXmmsFrequencyAvailable)
-  {
-    TRACE("performing rate conversion from '%ld'(effect) to '%ld'(output)\n", effect.frequency, output.frequency);
-    length = freq_convert (convertb, &ptr, length, effect.frequency, output.frequency);
-  }
-
-  TRACE("length = %d\n", length);
-#endif
   /* loop until we have written all the data out to the jack device */
   /* this is due to xmms' audio driver api */
   char *buf = (char*)ptr;
@@ -594,7 +531,7 @@
 
 	if ( aboutbox == NULL )
 	{
-		aboutbox = xmms_show_message(
+		aboutbox = audacious_info_dialog(
 			_("About JACK Output Plugin 0.17"),
 			_("XMMS jack Driver 0.17\n\n"
 			  "xmms-jack.sf.net\nChris Morgan<cmorgan@alum.wpi.edu>\n\n"
@@ -615,27 +552,25 @@
 
 OutputPlugin jack_op =
 {
-	NULL,
-	NULL,
-	"JACK Output Plugin 0.17",
-	jack_init,
-	jack_cleanup,
-	jack_about,
-	jack_configure,
-	jack_get_volume,
-	jack_set_volume,
-	jack_open,
-	jack_write,
-	jack_close,
-	jack_flush,
-	jack_pause,
-	jack_free,
-	jack_playing,
-	jack_get_output_time,
-	jack_get_written_time,
-	jack_tell_audio
+	.description = "JACK Output Plugin 0.17",
+	.init = jack_init,
+	.cleanup = jack_cleanup,
+	.about = jack_about,
+	.configure = jack_configure,
+	.get_volume = jack_get_volume,
+	.set_volume = jack_set_volume,
+	.open_audio = jack_open,
+	.write_audio = jack_write,
+	.close_audio = jack_close,
+	.flush = jack_flush,
+	.pause = jack_pause,
+	.buffer_free = jack_free,
+	.buffer_playing = jack_playing,
+	.output_time = jack_get_output_time,
+	.written_time = jack_get_written_time,
+	.tell_audio = jack_tell_audio
 };
 
 OutputPlugin *jack_oplist[] = { &jack_op, NULL };
 
-DECLARE_PLUGIN(jack, NULL, NULL, NULL, jack_oplist, NULL, NULL, NULL, NULL);
+SIMPLE_OUTPUT_PLUGIN(jack, jack_oplist);
--- a/src/ladspa/ladspa.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/ladspa/ladspa.c	Thu Sep 13 12:10:39 2007 -0500
@@ -117,14 +117,11 @@
 static GtkWidget *config_window = NULL, *run_clist = NULL;
 
 static EffectPlugin ladspa_ep = {
-  NULL, NULL,
-  PLUGIN_NAME,
-  start,
-  stop,
-  NULL,
-  configure,
-  apply_effect,
-  NULL
+  .description = PLUGIN_NAME,
+  .init = start,
+  .cleanup = stop,
+  .configure = configure,
+  .mod_samples = apply_effect,
 };
 
 EffectPlugin *ladspa_eplist[] = { &ladspa_ep, NULL };
--- a/src/m3u/m3u.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/m3u/m3u.c	Thu Sep 13 12:10:39 2007 -0500
@@ -92,8 +92,7 @@
     if ((file = vfs_fopen(uri ? uri : filename, "rb")) == NULL)
         return;
 
-    if (uri)
-        g_free(uri);
+    g_free(uri);
 
     line = g_malloc(line_len);
     while (vfs_fgets(line, line_len, file)) {
@@ -134,9 +133,7 @@
 
         uri = g_filename_to_uri(line, NULL, NULL);
         playlist_load_ins_file(playlist, uri ? uri : line, filename, pos, ext_title, ext_len);
-
-        if (uri)
-            g_free(uri);
+        g_free(uri);
 
         str_replace_in(&ext_title, NULL);
         ext_len = -1;
@@ -163,13 +160,13 @@
 
     fn = g_filename_to_uri(filename, NULL, NULL);
     file = vfs_fopen(fn ? fn : filename, "wb");
-    g_free(fn); fn = NULL;
+    g_free(fn);
     g_return_if_fail(file != NULL);
 
     if (cfg.use_pl_metadata)
         vfs_fprintf(file, "#EXTM3U\n");
 
-    PLAYLIST_LOCK(playlist->mutex);
+    PLAYLIST_LOCK(playlist);
 
     for (node = playlist->entries; node; node = g_list_next(node)) {
         PlaylistEntry *entry = PLAYLIST_ENTRY(node->data);
@@ -194,11 +191,10 @@
 
         fn = g_filename_from_uri(entry->filename, NULL, NULL);
         vfs_fprintf(file, "%s\n", fn ? fn : entry->filename);
-
-        g_free(fn); fn = NULL;
+        g_free(fn);
     }
 
-    PLAYLIST_UNLOCK(playlist->mutex);
+    PLAYLIST_UNLOCK(playlist);
 
     vfs_fclose(file);
 }
--- a/src/madplug/decoder.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/madplug/decoder.c	Thu Sep 13 12:10:39 2007 -0500
@@ -192,7 +192,7 @@
     info->duration = mad_timer_zero; // should be cleared before loop, if we use it as break condition.
 
     if(info->fileinfo_request == TRUE) {
-        tuple_associate_int(info->tuple, "length", -1);
+        tuple_associate_int(info->tuple, FIELD_LENGTH, NULL, -1);
         info->fileinfo_request = FALSE;
     }
 
@@ -270,10 +270,10 @@
             g_message("size = %d", stream.next_frame - stream.this_frame);
 #endif
 #endif
-            if(tuple_get_int(info->tuple, "length") == -1)
+            if(tuple_get_int(info->tuple, FIELD_LENGTH, NULL) == -1)
                 mad_timer_add(&info->duration, header.duration);
             else {
-                gint length = tuple_get_int(info->tuple, "length");
+                gint length = tuple_get_int(info->tuple, FIELD_LENGTH, NULL);
 
                 info->duration.seconds = length / 1000;
                 info->duration.fraction = length % 1000;
@@ -357,7 +357,7 @@
 #ifdef DEBUG
                 g_message("info->frames = %d", info->frames);
 #endif
-                if(tuple_get_int(info->tuple, "length") == -1) {
+                if(tuple_get_int(info->tuple, FIELD_LENGTH, NULL) == -1) {
                     if(xing_bitrate > 0.0) {
                         /* calc duration with xing info */
                         double tmp = 8 * (double)info->xing.bytes * 1000 / xing_bitrate;
@@ -371,7 +371,7 @@
                     }
                 }
                 else {
-                    gint length = tuple_get_int(info->tuple, "length");
+                    gint length = tuple_get_int(info->tuple, FIELD_LENGTH, NULL);
 
                     info->duration.seconds = length / 1000;
                     info->duration.fraction = length % 1000;
--- a/src/madplug/fileinfo.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/madplug/fileinfo.c	Thu Sep 13 12:10:39 2007 -0500
@@ -155,7 +155,7 @@
     /* read tag from file */
     id3file = id3_file_open(info.filename, ID3_FILE_MODE_READWRITE);
     if (!id3file) {
-        xmms_show_message(_("File Info"), _("Couldn't open file!"), _("Ok"),
+        audacious_info_dialog(_("File Info"), _("Couldn't open file!"), _("Ok"),
                           FALSE, NULL, NULL);
         return;
     }
@@ -233,7 +233,7 @@
     printf("about to write id3tag\n");
 #endif
     if (id3_file_update(id3file) != 0) {
-        xmms_show_message(_("File Info"), _("Couldn't write tag!"), _("Ok"), FALSE,
+        audacious_info_dialog(_("File Info"), _("Couldn't write tag!"), _("Ok"), FALSE,
                           NULL, NULL);
     }
     id3_file_close(id3file);
--- a/src/madplug/input.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/madplug/input.c	Thu Sep 13 12:10:39 2007 -0500
@@ -322,12 +322,12 @@
     return rtn;
 }
 
-static void input_set_and_free_tag(struct id3_tag *tag, Tuple *tuple, const gchar *frame, const gchar *tuple_name)
+static void input_set_and_free_tag(struct id3_tag *tag, Tuple *tuple, const gchar *frame, const gint nfield)
 {
     gchar *scratch = input_id3_get_string(tag, frame);
 
-    tuple_associate_string(tuple, tuple_name, scratch);
-    tuple_associate_string(tuple, frame, scratch);
+    tuple_associate_string(tuple, nfield, NULL, scratch);
+    tuple_associate_string(tuple, -1, frame, scratch);
 
     g_free(scratch);
 }
@@ -339,7 +339,7 @@
     if (info->tuple == NULL) {
         tuple = tuple_new();
         info->tuple = tuple;
-        tuple_associate_int(info->tuple, "length", -1);
+        tuple_associate_int(info->tuple, FIELD_LENGTH, NULL, -1);
     }
 }
 
@@ -349,19 +349,17 @@
 static void input_read_tag(struct mad_info_t *info)
 {
     gchar *string = NULL;
-    gchar *realfn = NULL;
     Tuple *tuple;
     glong curpos = 0;
 
 #ifdef DEBUG
     g_message("f: input_read_tag");
 #endif
-    if (info->tuple == NULL) {
-        tuple = tuple_new();
-        info->tuple = tuple;
-    }
-    else
-        tuple = info->tuple;
+    if (info->tuple != NULL)
+        tuple_free(info->tuple);
+        
+    tuple = tuple_new_from_filename(info->filename);
+    info->tuple = tuple;
 
     if(info->infile) {
         curpos = vfs_ftell(info->infile);
@@ -386,15 +384,15 @@
         return;
     }
 
-    input_set_and_free_tag(info->tag, tuple, ID3_FRAME_ARTIST, "artist");
-    input_set_and_free_tag(info->tag, tuple, ID3_FRAME_TITLE, "title");
-    input_set_and_free_tag(info->tag, tuple, ID3_FRAME_ALBUM, "album");
-    input_set_and_free_tag(info->tag, tuple, ID3_FRAME_GENRE, "genre");
-    input_set_and_free_tag(info->tag, tuple, ID3_FRAME_COMMENT, "comment");
+    input_set_and_free_tag(info->tag, tuple, ID3_FRAME_ARTIST, FIELD_ARTIST);
+    input_set_and_free_tag(info->tag, tuple, ID3_FRAME_TITLE, FIELD_TITLE);
+    input_set_and_free_tag(info->tag, tuple, ID3_FRAME_ALBUM, FIELD_ALBUM);
+    input_set_and_free_tag(info->tag, tuple, ID3_FRAME_GENRE, FIELD_GENRE);
+    input_set_and_free_tag(info->tag, tuple, ID3_FRAME_COMMENT, FIELD_COMMENT);
 
     string = input_id3_get_string(info->tag, ID3_FRAME_TRACK);
     if (string) {
-        tuple_associate_int(tuple, "track-number", atoi(string));
+        tuple_associate_int(tuple, FIELD_TRACK_NUMBER, NULL, atoi(string));
         g_free(string);
         string = NULL;
     }
@@ -406,7 +404,7 @@
         string = input_id3_get_string(info->tag, "TYER");
 
     if (string) {
-        tuple_associate_int(tuple, "year", atoi(string));
+        tuple_associate_int(tuple, FIELD_YEAR, NULL, atoi(string));
         g_free(string);
         string = NULL;
     }
@@ -414,33 +412,17 @@
     // length
     string = input_id3_get_string(info->tag, "TLEN");
     if (string) {
-        tuple_associate_int(tuple, "length", atoi(string));
+        tuple_associate_int(tuple, FIELD_LENGTH, NULL, atoi(string));
 #ifdef DEBUG
         g_message("input_read_tag: TLEN = %d", atoi(string));
 #endif	
         g_free(string);
         string = NULL;
-    }
-    
-    realfn = g_filename_from_uri(info->filename, NULL, NULL);
+    } else
+        tuple_associate_int(tuple, FIELD_LENGTH, NULL, -1);
     
-    string = g_strdup(g_basename(realfn ? realfn : info->filename));
-    tuple_associate_string(tuple, "file-name", string);
-    g_free(string);
-
-    string = g_path_get_dirname(realfn ? realfn : info->filename);
-    tuple_associate_string(tuple, "file-path", string);
-    g_free(string);
-
-    if ((string = strrchr(realfn ? realfn : info->filename, '.'))) {
-        *string = '\0';         // make filename end at dot.
-        tuple_associate_string(tuple, "file-ext", string + 1);
-    }
-
-    g_free(realfn); realfn = NULL;
-
-    tuple_associate_string(tuple, "codec", "MPEG Audio (MP3)");
-    tuple_associate_string(tuple, "quality", "lossy");
+    tuple_associate_string(tuple, FIELD_CODEC, NULL, "MPEG Audio (MP3)");
+    tuple_associate_string(tuple, FIELD_QUALITY, NULL, "lossy");
 
     info->title = tuple_formatter_make_title_string(tuple, audmad_config.title_override == TRUE ?
         audmad_config.id3_format : get_gentitle_format());
@@ -470,8 +452,8 @@
 
         g_free(info->title);
         info->title = NULL;
-        tuple_disassociate(info->tuple, "title");
-        tuple_disassociate(info->tuple, "album");
+        tuple_disassociate(info->tuple, FIELD_TITLE, NULL);
+        tuple_disassociate(info->tuple, FIELD_ALBUM, NULL);
 
         tmp = vfs_get_metadata(info->infile, "track-name");
         if(tmp){
@@ -479,7 +461,7 @@
             gchar *scratch;
 
             scratch = str_to_utf8(tmp);
-            tuple_associate_string(info->tuple, "title", scratch);
+            tuple_associate_string(info->tuple, FIELD_TITLE, NULL, scratch);
             g_free(scratch);
 
             g_free(tmp);
@@ -492,8 +474,8 @@
             gchar *scratch;
 
             scratch = str_to_utf8(tmp);
-            tuple_associate_string(info->tuple, "album", scratch);
-            tuple_associate_string(info->tuple, "stream", scratch);
+            tuple_associate_string(info->tuple, FIELD_ALBUM, NULL, scratch);
+            tuple_associate_string(info->tuple, -1, "stream", scratch);
             g_free(scratch);
 
             g_free(tmp);
--- a/src/madplug/plugin.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/madplug/plugin.c	Thu Sep 13 12:10:39 2007 -0500
@@ -516,14 +516,14 @@
     }
 
     if (input_get_info(&myinfo, info.remote ? TRUE : audmad_config.fast_play_time_calc) == TRUE) {
-        if(tuple_get_string(myinfo.tuple, "track-name"))
-            *title = g_strdup(tuple_get_string(myinfo.tuple, "track-name"));
+        if(tuple_get_string(myinfo.tuple, -1, "track-name"))
+            *title = g_strdup(tuple_get_string(myinfo.tuple, -1, "track-name"));
         else
             *title = g_strdup(url);
-        if(tuple_get_int(myinfo.tuple, "length") == -1)
+        if(tuple_get_int(myinfo.tuple, FIELD_LENGTH, NULL) == -1)
             *length = mad_timer_count(myinfo.duration, MAD_UNITS_MILLISECONDS);
         else
-            *length = tuple_get_int(myinfo.tuple, "length");
+            *length = tuple_get_int(myinfo.tuple, FIELD_LENGTH, NULL);
     }
     else {
         *title = g_strdup(url);
@@ -553,10 +553,10 @@
     }
 
     if (input_get_info(&myinfo, info.remote ? TRUE : audmad_config.fast_play_time_calc) == TRUE) {
-        if(tuple_get_int(myinfo.tuple, "length") == -1)
+        if(tuple_get_int(myinfo.tuple, FIELD_LENGTH, NULL) == -1)
             *length = mad_timer_count(myinfo.duration, MAD_UNITS_MILLISECONDS);
         else
-            *length = tuple_get_int(myinfo.tuple, "length");
+            *length = tuple_get_int(myinfo.tuple, FIELD_LENGTH, NULL);
     }
     else {
         *length = -1;
@@ -592,7 +592,7 @@
     MAD_VERSION_MAJOR, MAD_VERSION_MINOR, MAD_VERSION_PATCH,
     MAD_VERSION_EXTRA);
 
-    aboutbox = xmms_show_message(_("About MPEG Audio Plugin"),
+    aboutbox = audacious_info_dialog(_("About MPEG Audio Plugin"),
                                  scratch,
                                  _("Ok"), FALSE, NULL, NULL);
 
@@ -617,7 +617,7 @@
         va_end(args);
         GDK_THREADS_ENTER();
         error_dialog =
-            xmms_show_message(_("Error"), string, _("Ok"), FALSE, 0, 0);
+            audacious_info_dialog(_("Error"), string, _("Ok"), FALSE, 0, 0);
         gtk_signal_connect(GTK_OBJECT(error_dialog), "destroy",
                            GTK_SIGNAL_FUNC(gtk_widget_destroyed),
                            &error_dialog);
@@ -629,9 +629,9 @@
 extern void audmad_get_file_info(char *filename);
 extern void audmad_configure();
 
-static void __set_and_free(Tuple *tuple, gchar *name, gchar *value)
+static void __set_and_free(Tuple *tuple, gint nfield, gchar *name, gchar *value)
 {
-    tuple_associate_string(tuple, name, value);
+    tuple_associate_string(tuple, nfield, name, value);
     g_free(value);
 }
 
@@ -657,7 +657,7 @@
     if(info.remote && mad_timer_count(info.duration, MAD_UNITS_SECONDS) <= 0){
         if((fd && vfs_is_streaming(fd)) || (info.playback && info.playback->playing)) {
             gchar *tmp = NULL;
-            tuple = tuple_new();
+            tuple = tuple_new_from_filename(filename);
 
 #ifdef DEBUG
             if(info.playback)
@@ -668,7 +668,7 @@
                 gchar *scratch;
 
                 scratch = str_to_utf8(tmp);
-                tuple_associate_string(tuple, "title", scratch);
+                tuple_associate_string(tuple, FIELD_TITLE, NULL, scratch);
                 g_free(tmp);
                 g_free(scratch);
 
@@ -679,7 +679,7 @@
                 gchar *scratch;
 
                 scratch = str_to_utf8(tmp);
-                tuple_associate_string(tuple, "title", scratch);
+                tuple_associate_string(tuple, FIELD_TITLE, NULL, scratch);
                 g_free(tmp);
                 g_free(scratch);
 
@@ -687,17 +687,11 @@
             }
 
 #ifdef DEBUG
-            g_message("audmad_get_song_tuple: track_name = %s", tuple_get_string(tuple, "track-name"));
-            g_message("audmad_get_song_tuple: stream_name = %s", tuple_get_string(tuple, "stream-name"));
+            g_message("audmad_get_song_tuple: track_name = %s", tuple_get_string(tuple, -1, "track-name"));
+            g_message("audmad_get_song_tuple: stream_name = %s", tuple_get_string(tuple, -1, "stream-name"));
 #endif
-            realfn = g_filename_from_uri(filename, NULL, NULL);
-            __set_and_free(tuple, "file-name", g_path_get_basename(realfn ? realfn : filename));
-            __set_and_free(tuple, "file-path", g_path_get_dirname(realfn ? realfn : filename));
-            tuple_associate_string(tuple, "file-ext", extname(realfn ? realfn : filename));
-            g_free(realfn); realfn = NULL;
-
-            tuple_associate_int(tuple, "length", -1);
-            tuple_associate_int(tuple, "mtime", 0); // this indicates streaming
+            tuple_associate_int(tuple, FIELD_LENGTH, NULL, -1);
+            tuple_associate_int(tuple, FIELD_MTIME, NULL, 0); // this indicates streaming
 #ifdef DEBUG
             g_message("get_song_tuple: remote: tuple");
 #endif
@@ -718,7 +712,7 @@
     }
 
     tuple = tuple_new();
-    tuple_associate_int(tuple, "length", -1);
+    tuple_associate_int(tuple, FIELD_LENGTH, NULL, -1);
 
     id3file = id3_file_vfsopen(fd, ID3_FILE_MODE_READONLY);
 
@@ -726,9 +720,9 @@
 
         tag = id3_file_tag(id3file);
         if (tag) {
-            __set_and_free(tuple, "artist", input_id3_get_string(tag, ID3_FRAME_ARTIST));
-            __set_and_free(tuple, "album", input_id3_get_string(tag, ID3_FRAME_ALBUM));
-            __set_and_free(tuple, "title", input_id3_get_string(tag, ID3_FRAME_TITLE));
+            __set_and_free(tuple, FIELD_ARTIST, NULL, input_id3_get_string(tag, ID3_FRAME_ARTIST));
+            __set_and_free(tuple, FIELD_ALBUM, NULL, input_id3_get_string(tag, ID3_FRAME_ALBUM));
+            __set_and_free(tuple, FIELD_TITLE, NULL, input_id3_get_string(tag, ID3_FRAME_TITLE));
 
             // year
             string = NULL;
@@ -737,22 +731,22 @@
                 string = input_id3_get_string(tag, "TYER");
 
             if (string) {
-                tuple_associate_int(tuple, "year", atoi(string));
+                tuple_associate_int(tuple, FIELD_YEAR, NULL, atoi(string));
                 g_free(string);
                 string = NULL;
             }
             realfn = g_filename_from_uri(filename, NULL, NULL);
-            __set_and_free(tuple, "file-name", g_path_get_basename(realfn ? realfn : filename));
-            __set_and_free(tuple, "file-path", g_path_get_dirname(realfn ? realfn : filename));
-            tuple_associate_string(tuple, "file-ext", extname(realfn ? realfn : filename));
+            __set_and_free(tuple, FIELD_FILE_NAME, NULL, g_path_get_basename(realfn ? realfn : filename));
+            __set_and_free(tuple, FIELD_FILE_PATH, NULL, g_path_get_dirname(realfn ? realfn : filename));
+            tuple_associate_string(tuple, FIELD_FILE_EXT, NULL, extname(realfn ? realfn : filename));
             g_free(realfn); realfn = NULL;
 
             // length
             string = input_id3_get_string(tag, "TLEN");
             if (string) {
-                tuple_associate_int(tuple, "length", atoi(string));
+                tuple_associate_int(tuple, FIELD_LENGTH, NULL, atoi(string));
 #ifdef DEBUG
-                g_message("get_song_tuple: TLEN = %d", tuple_get_int(tuple, "length"));
+                g_message("get_song_tuple: TLEN = %d", tuple_get_int(tuple, FIELD_LENGTH, NULL));
 #endif
                 g_free(string);
                 string = NULL;
@@ -761,46 +755,46 @@
                 char *dummy = NULL;
                 int length = 0;
                 audmad_get_song_length(filename, &length, fd);
-                tuple_associate_int(tuple, "length", length);
+                tuple_associate_int(tuple, FIELD_LENGTH, NULL, length);
                 g_free(dummy);
             }
 
             // track number
             string = input_id3_get_string(tag, ID3_FRAME_TRACK);
             if (string) {
-                tuple_associate_int(tuple, "track-number", atoi(string));
+                tuple_associate_int(tuple, FIELD_TRACK_NUMBER, NULL, atoi(string));
                 g_free(string);
                 string = NULL;
             }
             // genre
-            __set_and_free(tuple, "genre", input_id3_get_string(tag, ID3_FRAME_GENRE));
-            __set_and_free(tuple, "comment", input_id3_get_string(tag, ID3_FRAME_COMMENT));
+            __set_and_free(tuple, FIELD_GENRE, NULL, input_id3_get_string(tag, ID3_FRAME_GENRE));
+            __set_and_free(tuple, FIELD_COMMENT, NULL, input_id3_get_string(tag, ID3_FRAME_COMMENT));
 #ifdef DEBUG
-            g_message("genre = %s", tuple_get_string(tuple, "genre"));
+            g_message("genre = %s", tuple_get_string(tuple, FIELD_GENRE, NULL));
 #endif
         }
         id3_file_close(id3file);
     } // id3file
     else { // no id3tag
         realfn = g_filename_from_uri(filename, NULL, NULL);
-        __set_and_free(tuple, "file-name", g_path_get_basename(realfn ? realfn : filename));
-        __set_and_free(tuple, "file-path", g_path_get_dirname(realfn ? realfn : filename));
-        tuple_associate_string(tuple, "file-ext", extname(realfn ? realfn : filename));
+        __set_and_free(tuple, FIELD_FILE_NAME, NULL, g_path_get_basename(realfn ? realfn : filename));
+        __set_and_free(tuple, FIELD_FILE_PATH, NULL, g_path_get_dirname(realfn ? realfn : filename));
+        tuple_associate_string(tuple, FIELD_FILE_EXT, NULL, extname(realfn ? realfn : filename));
         g_free(realfn); realfn = NULL;
         // length
         {
             char *dummy = NULL;
             int length = 0;
-            if(tuple_get_int(tuple, "length") == -1) {
+            if(tuple_get_int(tuple, FIELD_LENGTH, NULL) == -1) {
                 audmad_get_song_length(filename, &length, fd);
-                tuple_associate_int(tuple, "length", length);
+                tuple_associate_int(tuple, FIELD_LENGTH, NULL, length);
             }
             g_free(dummy);
         }
     }
 
-    tuple_associate_string(tuple, "quality", "lossy");
-    tuple_associate_string(tuple, "codec", "MPEG Audio (MP3)");
+    tuple_associate_string(tuple, FIELD_QUALITY, NULL, "lossy");
+    tuple_associate_string(tuple, FIELD_CODEC, NULL, "MPEG Audio (MP3)");
 
     if(local_fd)
         vfs_fclose(fd);
--- a/src/metronom/metronom.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/metronom/metronom.c	Thu Sep 13 12:10:39 2007 -0500
@@ -82,7 +82,7 @@
 static void metronom_about(void)
 {
 	static GtkWidget *box;
-	box = xmms_show_message(
+	box = audacious_info_dialog(
 		_("About Metronom"),
 		_("A Tact Generator by Martin Strauss <mys@faveve.uni-stuttgart.de>\n\nTo use it, add a URL: tact://beats*num/den\ne.g. tact://77 to play 77 beats per minute\nor   tact://60*3/4 to play 60 bpm in 3/4 tacts"), _("Ok"),
 		FALSE, NULL, NULL);
@@ -148,7 +148,7 @@
 			t++;
 		}
 		while(playback->output->buffer_free() < BUF_BYTES && going)
-			xmms_usleep(30000);
+			g_usleep(30000);
 		if (going)
 			produce_audio(playback->output->written_time(), FMT_S16_LE, 1, BUF_BYTES, data, &going);
 	}
@@ -270,34 +270,15 @@
 
 static InputPlugin metronom_ip =
 {
-	NULL,
-	NULL,
-	"Tact Generator",
-	metronom_init,
-	metronom_about,
-	NULL,
-	metronom_is_our_file,
-	NULL,
-	metronom_play,
-	metronom_stop,
-	metronom_pause,
-	NULL,
-	NULL,
-	metronom_get_time,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	metronom_song_info,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
+	.description = "Tact Generator",
+	.init = metronom_init,
+	.about = metronom_about,
+	.is_our_file = metronom_is_our_file,
+	.play_file = metronom_play,
+	.stop = metronom_stop,
+	.pause = metronom_pause,
+	.get_time = metronom_get_time,
+	.get_song_info = metronom_song_info,
 };
 
 InputPlugin *metronom_iplist[] = { &metronom_ip, NULL };
--- a/src/modplug/gui/interface.cxx	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/modplug/gui/interface.cxx	Thu Sep 13 12:10:39 2007 -0500
@@ -10,6 +10,7 @@
 #include <sys/stat.h>
 #include <unistd.h>
 #include <string.h>
+#include <stdio.h>
 
 #include <gdk/gdkkeysyms.h>
 #include <gtk/gtk.h>
@@ -18,6 +19,13 @@
 #include "interface.h"
 #include "support.h"
 
+#define GLADE_HOOKUP_OBJECT(component,widget,name) \
+  g_object_set_data_full (G_OBJECT (component), name, \
+    gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
+
+#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
+  g_object_set_data (G_OBJECT (component), name, widget)
+
 GtkWidget*
 create_Config (void)
 {
@@ -28,31 +36,73 @@
   GtkWidget *hbox2;
   GtkWidget *frame1;
   GtkWidget *vbox4;
-  GSList *vbox4_group = NULL;
   GtkWidget *bit16;
+  GSList *bit16_group = NULL;
   GtkWidget *bit8;
+  GtkWidget *xlabel2;
   GtkWidget *frame2;
   GtkWidget *vbox5;
-  GSList *vbox5_group = NULL;
   GtkWidget *stereo;
+  GSList *stereo_group = NULL;
   GtkWidget *mono;
-  GtkWidget *hbox10;
-  GtkWidget *frame3;
-  GtkWidget *vbox6;
-  GSList *vbox6_group = NULL;
-  GtkWidget *samp48;
-  GtkWidget *samp44;
-  GtkWidget *samp22;
-  GtkWidget *samp11;
+  GtkWidget *label3;
+  GtkWidget *hbox14;
   GtkWidget *frame9;
   GtkWidget *vbox15;
-  GSList *vbox15_group = NULL;
   GtkWidget *resampNearest;
+  GSList *resampNearest_group = NULL;
   GtkWidget *resampLinear;
   GtkWidget *resampSpline;
   GtkWidget *resampPolyphase;
+  GtkWidget *label4;
+  GtkWidget *frame3;
+  GtkWidget *vbox6;
+  GtkWidget *samp44;
+  GSList *samp44_group = NULL;
+  GtkWidget *samp22;
+  GtkWidget *samp11;
+  GtkWidget *label5;
   GtkWidget *label2;
   GtkWidget *vbox7;
+  GtkWidget *hbox15;
+  GtkWidget *frame5;
+  GtkWidget *vbox20;
+  GtkWidget *fxReverb;
+  GtkWidget *table1;
+  GtkWidget *fxReverbDepth;
+  GtkWidget *fxReverbDelay;
+  GtkWidget *xlabel3;
+  GtkWidget *xlabel4;
+  GtkWidget *label6;
+  GtkWidget *frame6;
+  GtkWidget *vbox21;
+  GtkWidget *fxBassBoost;
+  GtkWidget *table2;
+  GtkWidget *fxBassAmount;
+  GtkWidget *fxBassRange;
+  GtkWidget *xlabel5;
+  GtkWidget *xlabel6;
+  GtkWidget *label7;
+  GtkWidget *hbox16;
+  GtkWidget *frame7;
+  GtkWidget *vbox22;
+  GtkWidget *fxSurround;
+  GtkWidget *table3;
+  GtkWidget *fxSurroundDepth;
+  GtkWidget *fxSurroundDelay;
+  GtkWidget *xlabel7;
+  GtkWidget *label8;
+  GtkWidget *xlabel8;
+  GtkWidget *frame10;
+  GtkWidget *vbox16;
+  GtkWidget *fxPreamp;
+  GtkWidget *hbox11;
+  GtkWidget *label19;
+  GtkWidget *fxPreampLevel;
+  GtkWidget *label20;
+  GtkWidget *label9;
+  GtkWidget *label10;
+  GtkWidget *vbox19;
   GtkWidget *frame4;
   GtkWidget *hbox3;
   GtkWidget *vbox8;
@@ -61,703 +111,711 @@
   GtkWidget *vbox9;
   GtkWidget *fxNR;
   GtkWidget *fxAmigaMOD;
-  GtkWidget *frame5;
-  GtkWidget *hbox4;
-  GtkWidget *fxReverb;
-  GtkWidget *vbox10;
-  GtkWidget *table1;
-  GtkWidget *fxReverbDepth;
-  GtkWidget *fxReverbDelay;
-  GtkWidget *label3;
-  GtkWidget *label4;
-  GtkWidget *frame6;
-  GtkWidget *hbox5;
-  GtkWidget *fxBassBoost;
-  GtkWidget *vbox11;
-  GtkWidget *table2;
-  GtkWidget *fxBassAmount;
-  GtkWidget *fxBassRange;
-  GtkWidget *label5;
-  GtkWidget *label6;
-  GtkWidget *frame7;
-  GtkWidget *hbox6;
-  GtkWidget *fxSurround;
-  GtkWidget *vbox12;
-  GtkWidget *table3;
-  GtkWidget *fxSurroundDepth;
-  GtkWidget *fxSurroundDelay;
-  GtkWidget *label7;
-  GtkWidget *label8;
-  GtkWidget *frame10;
-  GtkWidget *vbox16;
-  GtkWidget *label20;
-  GtkWidget *hbox11;
-  GtkWidget *fxPreamp;
-  GtkWidget *label19;
-  GtkWidget *fxPreampLevel;
+  GtkWidget *label21;
   GtkWidget *frame11;
   GtkWidget *vbox17;
-  GSList *loopGroup_group = NULL;
   GtkWidget *fxNoLoop;
+  GSList *fxNoLoop_group = NULL;
   GtkWidget *hbox13;
   GtkWidget *fxLoopFinite;
   GtkObject *fxLoopCount_adj;
   GtkWidget *fxLoopCount;
-  GtkWidget *label21;
+  GtkWidget *xlabel21;
   GtkWidget *fxLoopForever;
-  GtkWidget *label10;
+  GtkWidget *label22;
+  GtkWidget *xlabel22;
   GtkWidget *hbuttonbox2;
   GtkWidget *config_ok;
   GtkWidget *config_apply;
   GtkWidget *config_cancel;
 
   Config = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  gtk_object_set_data (GTK_OBJECT (Config), "Config", Config);
-  gtk_widget_set_usize (Config, -1, -1);
+  gtk_widget_set_name (Config, "Config");
+  gtk_widget_set_size_request (Config, 500, -1);
   gtk_window_set_title (GTK_WINDOW (Config), _("ModPlug Configuration"));
-  gtk_window_set_policy (GTK_WINDOW (Config), FALSE, FALSE, FALSE);
+  gtk_window_set_resizable (GTK_WINDOW (Config), FALSE);
 
   vbox2 = gtk_vbox_new (FALSE, 0);
-  gtk_container_set_border_width(GTK_CONTAINER(vbox2),5);
-  gtk_widget_ref (vbox2);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "vbox2", vbox2,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox2, "vbox2");
   gtk_widget_show (vbox2);
   gtk_container_add (GTK_CONTAINER (Config), vbox2);
 
   notebook1 = gtk_notebook_new ();
-  gtk_widget_ref (notebook1);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "notebook1", notebook1,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (notebook1, "notebook1");
   gtk_widget_show (notebook1);
-  gtk_box_pack_start (GTK_BOX (vbox2), notebook1, TRUE, TRUE, 5);
-  gtk_container_set_border_width (GTK_CONTAINER (notebook1), 0);
+  gtk_box_pack_start (GTK_BOX (vbox2), notebook1, TRUE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (notebook1), 4);
 
   vbox3 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox3);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "vbox3", vbox3,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox3, "vbox3");
   gtk_widget_show (vbox3);
   gtk_container_add (GTK_CONTAINER (notebook1), vbox3);
-  gtk_container_set_border_width (GTK_CONTAINER (vbox3), 6);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox3), 2);
 
-  hbox2 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_ref (hbox2);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "hbox2", hbox2,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  hbox2 = gtk_hbox_new (FALSE, 2);
+  gtk_widget_set_name (hbox2, "hbox2");
   gtk_widget_show (hbox2);
-  gtk_box_pack_start (GTK_BOX (vbox3), hbox2, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (vbox3), hbox2, FALSE, TRUE, 0);
 
-  frame1 = gtk_frame_new (_("Resolution"));
-  gtk_widget_ref (frame1);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "frame1", frame1,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  frame1 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame1, "frame1");
   gtk_widget_show (frame1);
   gtk_box_pack_start (GTK_BOX (hbox2), frame1, TRUE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (frame1), 2);
 
   vbox4 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox4);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "vbox4", vbox4,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox4, "vbox4");
   gtk_widget_show (vbox4);
   gtk_container_add (GTK_CONTAINER (frame1), vbox4);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox4), 2);
 
-  bit16 = gtk_radio_button_new_with_label (vbox4_group, _("16 bit"));
-  vbox4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (bit16));
-  gtk_widget_ref (bit16);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "bit16", bit16,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  bit16 = gtk_radio_button_new_with_mnemonic (NULL, _("16 bit"));
+  gtk_widget_set_name (bit16, "bit16");
   gtk_widget_show (bit16);
   gtk_box_pack_start (GTK_BOX (vbox4), bit16, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (bit16), bit16_group);
+  bit16_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (bit16));
 
-  bit8 = gtk_radio_button_new_with_label (vbox4_group, _("8 bit"));
-  vbox4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (bit8));
-  gtk_widget_ref (bit8);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "bit8", bit8,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  bit8 = gtk_radio_button_new_with_mnemonic (NULL, _("8 bit"));
+  gtk_widget_set_name (bit8, "bit8");
   gtk_widget_show (bit8);
   gtk_box_pack_start (GTK_BOX (vbox4), bit8, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (bit8), bit16_group);
+  bit16_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (bit8));
 
-  frame2 = gtk_frame_new (_("Channels"));
-  gtk_widget_ref (frame2);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "frame2", frame2,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  xlabel2 = gtk_label_new (_("Resolution"));
+  gtk_widget_set_name (xlabel2, "xlabel2");
+  gtk_widget_show (xlabel2);
+  gtk_frame_set_label_widget (GTK_FRAME (frame1), xlabel2);
+
+  frame2 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame2, "frame2");
   gtk_widget_show (frame2);
   gtk_box_pack_start (GTK_BOX (hbox2), frame2, TRUE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (frame2), 2);
 
   vbox5 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox5);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "vbox5", vbox5,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox5, "vbox5");
   gtk_widget_show (vbox5);
   gtk_container_add (GTK_CONTAINER (frame2), vbox5);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox5), 2);
 
-  stereo = gtk_radio_button_new_with_label (vbox5_group, _("Stereo"));
-  vbox5_group = gtk_radio_button_group (GTK_RADIO_BUTTON (stereo));
-  gtk_widget_ref (stereo);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "stereo", stereo,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  stereo = gtk_radio_button_new_with_mnemonic (NULL, _("Stereo"));
+  gtk_widget_set_name (stereo, "stereo");
   gtk_widget_show (stereo);
   gtk_box_pack_start (GTK_BOX (vbox5), stereo, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (stereo), stereo_group);
+  stereo_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (stereo));
 
-  mono = gtk_radio_button_new_with_label (vbox5_group, _("Mono (downmix)"));
-  vbox5_group = gtk_radio_button_group (GTK_RADIO_BUTTON (mono));
-  gtk_widget_ref (mono);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "mono", mono,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  mono = gtk_radio_button_new_with_mnemonic (NULL, _("Mono (downmix)"));
+  gtk_widget_set_name (mono, "mono");
   gtk_widget_show (mono);
   gtk_box_pack_start (GTK_BOX (vbox5), mono, FALSE, FALSE, 0);
-
-  hbox10 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_ref (hbox10);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "hbox10", hbox10,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (hbox10);
-  gtk_box_pack_start (GTK_BOX (vbox3), hbox10, TRUE, TRUE, 0);
-
-  frame3 = gtk_frame_new (_("Sampling Rate"));
-  gtk_widget_ref (frame3);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "frame3", frame3,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (frame3);
-  gtk_box_pack_start (GTK_BOX (hbox10), frame3, TRUE, TRUE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (mono), stereo_group);
+  stereo_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (mono));
 
-  vbox6 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox6);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "vbox6", vbox6,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (vbox6);
-  gtk_container_add (GTK_CONTAINER (frame3), vbox6);
-
-  samp48 = gtk_radio_button_new_with_label (vbox6_group, _("48 kHz"));
-  vbox6_group = gtk_radio_button_group (GTK_RADIO_BUTTON (samp48));
-  gtk_widget_ref (samp48);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "samp48", samp48,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (samp48);
-  gtk_box_pack_start (GTK_BOX (vbox6), samp48, FALSE, FALSE, 0);
+  label3 = gtk_label_new (_("Channels"));
+  gtk_widget_set_name (label3, "label3");
+  gtk_widget_show (label3);
+  gtk_frame_set_label_widget (GTK_FRAME (frame2), label3);
 
-  samp44 = gtk_radio_button_new_with_label (vbox6_group, _("44 kHz"));
-  vbox6_group = gtk_radio_button_group (GTK_RADIO_BUTTON (samp44));
-  gtk_widget_ref (samp44);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "samp44", samp44,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (samp44);
-  gtk_box_pack_start (GTK_BOX (vbox6), samp44, FALSE, FALSE, 0);
+  hbox14 = gtk_hbox_new (FALSE, 0);
+  gtk_widget_set_name (hbox14, "hbox14");
+  gtk_widget_show (hbox14);
+  gtk_box_pack_start (GTK_BOX (vbox3), hbox14, FALSE, TRUE, 0);
 
-  samp22 = gtk_radio_button_new_with_label (vbox6_group, _("22 kHz"));
-  vbox6_group = gtk_radio_button_group (GTK_RADIO_BUTTON (samp22));
-  gtk_widget_ref (samp22);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "samp22", samp22,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (samp22);
-  gtk_box_pack_start (GTK_BOX (vbox6), samp22, FALSE, FALSE, 0);
-
-  samp11 = gtk_radio_button_new_with_label (vbox6_group, _("11 kHz"));
-  vbox6_group = gtk_radio_button_group (GTK_RADIO_BUTTON (samp11));
-  gtk_widget_ref (samp11);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "samp11", samp11,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (samp11);
-  gtk_box_pack_start (GTK_BOX (vbox6), samp11, FALSE, FALSE, 0);
-
-  frame9 = gtk_frame_new (_("Resampling"));
-  gtk_widget_ref (frame9);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "frame9", frame9,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  frame9 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame9, "frame9");
   gtk_widget_show (frame9);
-  gtk_box_pack_start (GTK_BOX (hbox10), frame9, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (hbox14), frame9, TRUE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (frame9), 2);
 
   vbox15 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox15);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "vbox15", vbox15,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox15, "vbox15");
   gtk_widget_show (vbox15);
   gtk_container_add (GTK_CONTAINER (frame9), vbox15);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox15), 2);
 
-  resampNearest = gtk_radio_button_new_with_label (vbox15_group, _("Nearest (fastest)"));
-  vbox15_group = gtk_radio_button_group (GTK_RADIO_BUTTON (resampNearest));
-  gtk_widget_ref (resampNearest);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "resampNearest", resampNearest,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  resampNearest = gtk_radio_button_new_with_mnemonic (NULL, _("Nearest (fastest)"));
+  gtk_widget_set_name (resampNearest, "resampNearest");
   gtk_widget_show (resampNearest);
   gtk_box_pack_start (GTK_BOX (vbox15), resampNearest, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (resampNearest), resampNearest_group);
+  resampNearest_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (resampNearest));
 
-  resampLinear = gtk_radio_button_new_with_label (vbox15_group, _("Linear (fast)"));
-  vbox15_group = gtk_radio_button_group (GTK_RADIO_BUTTON (resampLinear));
-  gtk_widget_ref (resampLinear);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "resampLinear", resampLinear,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  resampLinear = gtk_radio_button_new_with_mnemonic (NULL, _("Linear (fast)"));
+  gtk_widget_set_name (resampLinear, "resampLinear");
   gtk_widget_show (resampLinear);
   gtk_box_pack_start (GTK_BOX (vbox15), resampLinear, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (resampLinear), resampNearest_group);
+  resampNearest_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (resampLinear));
 
-  resampSpline = gtk_radio_button_new_with_label (vbox15_group, _("Spline (good quality)"));
-  vbox15_group = gtk_radio_button_group (GTK_RADIO_BUTTON (resampSpline));
-  gtk_widget_ref (resampSpline);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "resampSpline", resampSpline,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  resampSpline = gtk_radio_button_new_with_mnemonic (NULL, _("Spline (good quality)"));
+  gtk_widget_set_name (resampSpline, "resampSpline");
   gtk_widget_show (resampSpline);
   gtk_box_pack_start (GTK_BOX (vbox15), resampSpline, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (resampSpline), resampNearest_group);
+  resampNearest_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (resampSpline));
 
-  resampPolyphase = gtk_radio_button_new_with_label (vbox15_group, _("8-tap Fir (extremely high quality)"));
-  vbox15_group = gtk_radio_button_group (GTK_RADIO_BUTTON (resampPolyphase));
-  gtk_widget_ref (resampPolyphase);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "resampPolyphase", resampPolyphase,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  resampPolyphase = gtk_radio_button_new_with_mnemonic (NULL, _("8-tap Fir (extremely high quality)"));
+  gtk_widget_set_name (resampPolyphase, "resampPolyphase");
   gtk_widget_show (resampPolyphase);
   gtk_box_pack_start (GTK_BOX (vbox15), resampPolyphase, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (resampPolyphase), resampNearest_group);
+  resampNearest_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (resampPolyphase));
+
+  label4 = gtk_label_new (_("Resampling"));
+  gtk_widget_set_name (label4, "label4");
+  gtk_widget_show (label4);
+  gtk_frame_set_label_widget (GTK_FRAME (frame9), label4);
+
+  frame3 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame3, "frame3");
+  gtk_widget_show (frame3);
+  gtk_box_pack_start (GTK_BOX (hbox14), frame3, TRUE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (frame3), 2);
+
+  vbox6 = gtk_vbox_new (FALSE, 0);
+  gtk_widget_set_name (vbox6, "vbox6");
+  gtk_widget_show (vbox6);
+  gtk_container_add (GTK_CONTAINER (frame3), vbox6);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox6), 2);
+
+  samp44 = gtk_radio_button_new_with_mnemonic (NULL, _("44 kHz"));
+  gtk_widget_set_name (samp44, "samp44");
+  gtk_widget_show (samp44);
+  gtk_box_pack_start (GTK_BOX (vbox6), samp44, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (samp44), samp44_group);
+  samp44_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (samp44));
+
+  samp22 = gtk_radio_button_new_with_mnemonic (NULL, _("22 kHz"));
+  gtk_widget_set_name (samp22, "samp22");
+  gtk_widget_show (samp22);
+  gtk_box_pack_start (GTK_BOX (vbox6), samp22, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (samp22), samp44_group);
+  samp44_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (samp22));
+
+  samp11 = gtk_radio_button_new_with_mnemonic (NULL, _("11 kHz"));
+  gtk_widget_set_name (samp11, "samp11");
+  gtk_widget_show (samp11);
+  gtk_box_pack_start (GTK_BOX (vbox6), samp11, FALSE, FALSE, 0);
+  gtk_button_set_focus_on_click (GTK_BUTTON (samp11), FALSE);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (samp11), samp44_group);
+  samp44_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (samp11));
+
+  label5 = gtk_label_new (_("Sampling Rate"));
+  gtk_widget_set_name (label5, "label5");
+  gtk_widget_show (label5);
+  gtk_frame_set_label_widget (GTK_FRAME (frame3), label5);
 
   label2 = gtk_label_new (_("Quality"));
-  gtk_widget_ref (label2);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "label2", label2,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label2, "label2");
   gtk_widget_show (label2);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label2);
+  gtk_label_set_justify (GTK_LABEL (label2), GTK_JUSTIFY_CENTER);
 
   vbox7 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox7);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "vbox7", vbox7,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox7, "vbox7");
   gtk_widget_show (vbox7);
   gtk_container_add (GTK_CONTAINER (notebook1), vbox7);
-  gtk_container_set_border_width (GTK_CONTAINER (vbox7), 6);
-
-  frame4 = gtk_frame_new (_("General"));
-  gtk_widget_ref (frame4);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "frame4", frame4,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (frame4);
-  gtk_box_pack_start (GTK_BOX (vbox7), frame4, TRUE, TRUE, 0);
-
-  hbox3 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_ref (hbox3);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "hbox3", hbox3,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (hbox3);
-  gtk_container_add (GTK_CONTAINER (frame4), hbox3);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox7), 2);
 
-  vbox8 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox8);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "vbox8", vbox8,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (vbox8);
-  gtk_box_pack_start (GTK_BOX (hbox3), vbox8, TRUE, TRUE, 0);
-
-  fxUseFilename = gtk_check_button_new_with_label (_("Use Filename as Song Title"));
-  gtk_widget_ref (fxUseFilename);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxUseFilename", fxUseFilename,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (fxUseFilename);
-  gtk_box_pack_start (GTK_BOX (vbox8), fxUseFilename, FALSE, FALSE, 0);
-
-  fxFastInfo = gtk_check_button_new_with_label (_("Fast Playlist Info"));
-  gtk_widget_ref (fxFastInfo);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxFastInfo", fxFastInfo,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (fxFastInfo);
-  gtk_box_pack_start (GTK_BOX (vbox8), fxFastInfo, FALSE, FALSE, 0);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxFastInfo), TRUE);
+  hbox15 = gtk_hbox_new (FALSE, 0);
+  gtk_widget_set_name (hbox15, "hbox15");
+  gtk_widget_show (hbox15);
+  gtk_box_pack_start (GTK_BOX (vbox7), hbox15, FALSE, TRUE, 0);
 
-  vbox9 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox9);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "vbox9", vbox9,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (vbox9);
-  gtk_box_pack_start (GTK_BOX (hbox3), vbox9, TRUE, TRUE, 0);
-
-  fxNR = gtk_check_button_new_with_label (_("Noise Reduction"));
-  gtk_widget_ref (fxNR);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxNR", fxNR,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (fxNR);
-  gtk_box_pack_start (GTK_BOX (vbox9), fxNR, FALSE, FALSE, 0);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxNR), TRUE);
+  frame5 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame5, "frame5");
+  gtk_widget_show (frame5);
+  gtk_box_pack_start (GTK_BOX (hbox15), frame5, TRUE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (frame5), 2);
 
-  fxAmigaMOD = gtk_check_button_new_with_label (_("Play Amiga MOD"));
-  gtk_widget_ref (fxAmigaMOD);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxAmigaMOD", fxAmigaMOD,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (fxAmigaMOD);
-  gtk_box_pack_start (GTK_BOX (vbox9), fxAmigaMOD, FALSE, FALSE, 0);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxAmigaMOD), TRUE);
+  vbox20 = gtk_vbox_new (FALSE, 0);
+  gtk_widget_set_name (vbox20, "vbox20");
+  gtk_widget_show (vbox20);
+  gtk_container_add (GTK_CONTAINER (frame5), vbox20);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox20), 2);
 
-  frame5 = gtk_frame_new (_("Reverb"));
-  gtk_widget_ref (frame5);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "frame5", frame5,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (frame5);
-  gtk_box_pack_start (GTK_BOX (vbox7), frame5, TRUE, TRUE, 0);
-
-  hbox4 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_ref (hbox4);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "hbox4", hbox4,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (hbox4);
-  gtk_container_add (GTK_CONTAINER (frame5), hbox4);
-
-  fxReverb = gtk_check_button_new_with_label (_("Enable"));
-  gtk_widget_ref (fxReverb);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxReverb", fxReverb,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  fxReverb = gtk_check_button_new_with_mnemonic (_("Enable"));
+  gtk_widget_set_name (fxReverb, "fxReverb");
   gtk_widget_show (fxReverb);
-  gtk_box_pack_start (GTK_BOX (hbox4), fxReverb, FALSE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (vbox20), fxReverb, FALSE, FALSE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (fxReverb), 2);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxReverb), TRUE);
 
-  vbox10 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox10);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "vbox10", vbox10,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (vbox10);
-  gtk_box_pack_start (GTK_BOX (hbox4), vbox10, TRUE, TRUE, 0);
-
   table1 = gtk_table_new (2, 2, FALSE);
-  gtk_widget_ref (table1);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "table1", table1,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (table1, "table1");
   gtk_widget_show (table1);
-  gtk_box_pack_start (GTK_BOX (vbox10), table1, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (vbox20), table1, TRUE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (table1), 2);
+  gtk_table_set_row_spacings (GTK_TABLE (table1), 4);
+  gtk_table_set_col_spacings (GTK_TABLE (table1), 4);
 
   fxReverbDepth = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (30, 0, 100, 0, 0, 0)));
-  gtk_widget_ref (fxReverbDepth);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxReverbDepth", fxReverbDepth,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (fxReverbDepth, "fxReverbDepth");
   gtk_widget_show (fxReverbDepth);
   gtk_table_attach (GTK_TABLE (table1), fxReverbDepth, 1, 2, 0, 1,
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
 
   fxReverbDelay = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (90, 40, 200, 0, 0, 0)));
-  gtk_widget_ref (fxReverbDelay);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxReverbDelay", fxReverbDelay,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (fxReverbDelay, "fxReverbDelay");
   gtk_widget_show (fxReverbDelay);
   gtk_table_attach (GTK_TABLE (table1), fxReverbDelay, 1, 2, 1, 2,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
 
-  label3 = gtk_label_new (_("Depth"));
-  gtk_widget_ref (label3);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "label3", label3,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (label3);
-  gtk_table_attach (GTK_TABLE (table1), label3, 0, 1, 0, 1,
+  xlabel3 = gtk_label_new (_("Depth"));
+  gtk_widget_set_name (xlabel3, "xlabel3");
+  gtk_widget_show (xlabel3);
+  gtk_table_attach (GTK_TABLE (table1), xlabel3, 0, 1, 0, 1,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (xlabel3), GTK_JUSTIFY_CENTER);
 
-  label4 = gtk_label_new (_("Delay"));
-  gtk_widget_ref (label4);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "label4", label4,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (label4);
-  gtk_table_attach (GTK_TABLE (table1), label4, 0, 1, 1, 2,
+  xlabel4 = gtk_label_new (_("Delay"));
+  gtk_widget_set_name (xlabel4, "xlabel4");
+  gtk_widget_show (xlabel4);
+  gtk_table_attach (GTK_TABLE (table1), xlabel4, 0, 1, 1, 2,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (xlabel4), GTK_JUSTIFY_CENTER);
 
-  frame6 = gtk_frame_new (_("Bass Boost"));
-  gtk_widget_ref (frame6);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "frame6", frame6,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (frame6);
-  gtk_box_pack_start (GTK_BOX (vbox7), frame6, TRUE, TRUE, 0);
+  label6 = gtk_label_new (_("Reverb"));
+  gtk_widget_set_name (label6, "label6");
+  gtk_widget_show (label6);
+  gtk_frame_set_label_widget (GTK_FRAME (frame5), label6);
 
-  hbox5 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_ref (hbox5);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "hbox5", hbox5,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (hbox5);
-  gtk_container_add (GTK_CONTAINER (frame6), hbox5);
+  frame6 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame6, "frame6");
+  gtk_widget_show (frame6);
+  gtk_box_pack_start (GTK_BOX (hbox15), frame6, TRUE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (frame6), 2);
 
-  fxBassBoost = gtk_check_button_new_with_label (_("Enable"));
-  gtk_widget_ref (fxBassBoost);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxBassBoost", fxBassBoost,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  vbox21 = gtk_vbox_new (FALSE, 0);
+  gtk_widget_set_name (vbox21, "vbox21");
+  gtk_widget_show (vbox21);
+  gtk_container_add (GTK_CONTAINER (frame6), vbox21);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox21), 2);
+
+  fxBassBoost = gtk_check_button_new_with_mnemonic (_("Enable"));
+  gtk_widget_set_name (fxBassBoost, "fxBassBoost");
   gtk_widget_show (fxBassBoost);
-  gtk_box_pack_start (GTK_BOX (hbox5), fxBassBoost, FALSE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (vbox21), fxBassBoost, FALSE, FALSE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (fxBassBoost), 2);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxBassBoost), TRUE);
 
-  vbox11 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox11);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "vbox11", vbox11,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (vbox11);
-  gtk_box_pack_start (GTK_BOX (hbox5), vbox11, TRUE, TRUE, 0);
-
   table2 = gtk_table_new (2, 2, FALSE);
-  gtk_widget_ref (table2);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "table2", table2,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (table2, "table2");
   gtk_widget_show (table2);
-  gtk_box_pack_start (GTK_BOX (vbox11), table2, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (vbox21), table2, TRUE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (table2), 2);
+  gtk_table_set_row_spacings (GTK_TABLE (table2), 4);
+  gtk_table_set_col_spacings (GTK_TABLE (table2), 4);
 
   fxBassAmount = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (30, 0, 100, 0, 0, 0)));
-  gtk_widget_ref (fxBassAmount);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxBassAmount", fxBassAmount,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (fxBassAmount, "fxBassAmount");
   gtk_widget_show (fxBassAmount);
   gtk_table_attach (GTK_TABLE (table2), fxBassAmount, 1, 2, 0, 1,
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
 
   fxBassRange = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (30, 10, 100, 0, 0, 0)));
-  gtk_widget_ref (fxBassRange);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxBassRange", fxBassRange,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (fxBassRange, "fxBassRange");
   gtk_widget_show (fxBassRange);
   gtk_table_attach (GTK_TABLE (table2), fxBassRange, 1, 2, 1, 2,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
 
-  label5 = gtk_label_new (_("Amount"));
-  gtk_widget_ref (label5);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "label5", label5,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (label5);
-  gtk_table_attach (GTK_TABLE (table2), label5, 0, 1, 0, 1,
+  xlabel5 = gtk_label_new (_("Amount"));
+  gtk_widget_set_name (xlabel5, "xlabel5");
+  gtk_widget_show (xlabel5);
+  gtk_table_attach (GTK_TABLE (table2), xlabel5, 0, 1, 0, 1,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (xlabel5), GTK_JUSTIFY_CENTER);
 
-  label6 = gtk_label_new (_("Range"));
-  gtk_widget_ref (label6);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "label6", label6,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (label6);
-  gtk_table_attach (GTK_TABLE (table2), label6, 0, 1, 1, 2,
+  xlabel6 = gtk_label_new (_("Range"));
+  gtk_widget_set_name (xlabel6, "xlabel6");
+  gtk_widget_show (xlabel6);
+  gtk_table_attach (GTK_TABLE (table2), xlabel6, 0, 1, 1, 2,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (xlabel6), GTK_JUSTIFY_CENTER);
 
-  frame7 = gtk_frame_new (_("Surround"));
-  gtk_widget_ref (frame7);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "frame7", frame7,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (frame7);
-  gtk_box_pack_start (GTK_BOX (vbox7), frame7, TRUE, TRUE, 0);
+  label7 = gtk_label_new (_("Bass Boost"));
+  gtk_widget_set_name (label7, "label7");
+  gtk_widget_show (label7);
+  gtk_frame_set_label_widget (GTK_FRAME (frame6), label7);
+
+  hbox16 = gtk_hbox_new (FALSE, 0);
+  gtk_widget_set_name (hbox16, "hbox16");
+  gtk_widget_show (hbox16);
+  gtk_box_pack_start (GTK_BOX (vbox7), hbox16, FALSE, TRUE, 0);
 
-  hbox6 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_ref (hbox6);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "hbox6", hbox6,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (hbox6);
-  gtk_container_add (GTK_CONTAINER (frame7), hbox6);
+  frame7 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame7, "frame7");
+  gtk_widget_show (frame7);
+  gtk_box_pack_start (GTK_BOX (hbox16), frame7, TRUE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (frame7), 2);
 
-  fxSurround = gtk_check_button_new_with_label (_("Enable"));
-  gtk_widget_ref (fxSurround);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxSurround", fxSurround,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  vbox22 = gtk_vbox_new (FALSE, 0);
+  gtk_widget_set_name (vbox22, "vbox22");
+  gtk_widget_show (vbox22);
+  gtk_container_add (GTK_CONTAINER (frame7), vbox22);
+
+  fxSurround = gtk_check_button_new_with_mnemonic (_("Enable"));
+  gtk_widget_set_name (fxSurround, "fxSurround");
   gtk_widget_show (fxSurround);
-  gtk_box_pack_start (GTK_BOX (hbox6), fxSurround, FALSE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (vbox22), fxSurround, FALSE, FALSE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (fxSurround), 2);
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxSurround), TRUE);
 
-  vbox12 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox12);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "vbox12", vbox12,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (vbox12);
-  gtk_box_pack_start (GTK_BOX (hbox6), vbox12, TRUE, TRUE, 0);
-
   table3 = gtk_table_new (2, 2, FALSE);
-  gtk_widget_ref (table3);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "table3", table3,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (table3, "table3");
   gtk_widget_show (table3);
-  gtk_box_pack_start (GTK_BOX (vbox12), table3, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (vbox22), table3, TRUE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (table3), 2);
+  gtk_table_set_row_spacings (GTK_TABLE (table3), 4);
+  gtk_table_set_col_spacings (GTK_TABLE (table3), 4);
 
   fxSurroundDepth = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (20, 0, 100, 0, 0, 0)));
-  gtk_widget_ref (fxSurroundDepth);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxSurroundDepth", fxSurroundDepth,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (fxSurroundDepth, "fxSurroundDepth");
   gtk_widget_show (fxSurroundDepth);
   gtk_table_attach (GTK_TABLE (table3), fxSurroundDepth, 1, 2, 0, 1,
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
 
   fxSurroundDelay = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (20, 5, 40, 0, 0, 0)));
-  gtk_widget_ref (fxSurroundDelay);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxSurroundDelay", fxSurroundDelay,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (fxSurroundDelay, "fxSurroundDelay");
   gtk_widget_show (fxSurroundDelay);
   gtk_table_attach (GTK_TABLE (table3), fxSurroundDelay, 1, 2, 1, 2,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
 
-  label7 = gtk_label_new (_("Depth"));
-  gtk_widget_ref (label7);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "label7", label7,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (label7);
-  gtk_table_attach (GTK_TABLE (table3), label7, 0, 1, 0, 1,
+  xlabel7 = gtk_label_new (_("Depth"));
+  gtk_widget_set_name (xlabel7, "xlabel7");
+  gtk_widget_show (xlabel7);
+  gtk_table_attach (GTK_TABLE (table3), xlabel7, 0, 1, 0, 1,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (xlabel7), GTK_JUSTIFY_CENTER);
 
   label8 = gtk_label_new (_("Delay"));
-  gtk_widget_ref (label8);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "label8", label8,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label8, "label8");
   gtk_widget_show (label8);
   gtk_table_attach (GTK_TABLE (table3), label8, 0, 1, 1, 2,
                     (GtkAttachOptions) (0),
                     (GtkAttachOptions) (0), 0, 0);
+  gtk_label_set_justify (GTK_LABEL (label8), GTK_JUSTIFY_CENTER);
 
-  frame10 = gtk_frame_new (_("Preamp"));
-  gtk_widget_ref (frame10);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "frame10", frame10,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  xlabel8 = gtk_label_new (_("Surround"));
+  gtk_widget_set_name (xlabel8, "xlabel8");
+  gtk_widget_show (xlabel8);
+  gtk_frame_set_label_widget (GTK_FRAME (frame7), xlabel8);
+
+  frame10 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame10, "frame10");
   gtk_widget_show (frame10);
-  gtk_box_pack_start (GTK_BOX (vbox7), frame10, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (hbox16), frame10, TRUE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (frame10), 2);
 
-  vbox16 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox16);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "vbox16", vbox16,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  vbox16 = gtk_vbox_new (FALSE, 2);
+  gtk_widget_set_name (vbox16, "vbox16");
   gtk_widget_show (vbox16);
   gtk_container_add (GTK_CONTAINER (frame10), vbox16);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox16), 4);
 
-  label20 = gtk_label_new (_("Note:  Setting the preamp too high may cause\nclipping / distortion!"));
-  gtk_widget_ref (label20);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "label20", label20,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (label20);
-  gtk_box_pack_start (GTK_BOX (vbox16), label20, FALSE, FALSE, 0);
+  fxPreamp = gtk_check_button_new_with_mnemonic (_("Enable"));
+  gtk_widget_set_name (fxPreamp, "fxPreamp");
+  gtk_widget_show (fxPreamp);
+  gtk_box_pack_start (GTK_BOX (vbox16), fxPreamp, FALSE, FALSE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (fxPreamp), 2);
 
-  hbox11 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_ref (hbox11);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "hbox11", hbox11,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  hbox11 = gtk_hbox_new (FALSE, 4);
+  gtk_widget_set_name (hbox11, "hbox11");
   gtk_widget_show (hbox11);
   gtk_box_pack_start (GTK_BOX (vbox16), hbox11, TRUE, TRUE, 0);
 
-  fxPreamp = gtk_check_button_new_with_label (_("Enable"));
-  gtk_widget_ref (fxPreamp);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxPreamp", fxPreamp,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (fxPreamp);
-  gtk_box_pack_start (GTK_BOX (hbox11), fxPreamp, FALSE, FALSE, 0);
-
   label19 = gtk_label_new (_("Volume"));
-  gtk_widget_ref (label19);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "label19", label19,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label19, "label19");
   gtk_widget_show (label19);
   gtk_box_pack_start (GTK_BOX (hbox11), label19, FALSE, FALSE, 0);
+  gtk_label_set_justify (GTK_LABEL (label19), GTK_JUSTIFY_CENTER);
 
   fxPreampLevel = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, -3, 3, 1, 0, 0)));
-  gtk_widget_ref (fxPreampLevel);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxPreampLevel", fxPreampLevel,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (fxPreampLevel, "fxPreampLevel");
   gtk_widget_show (fxPreampLevel);
   gtk_box_pack_start (GTK_BOX (hbox11), fxPreampLevel, TRUE, TRUE, 0);
 
-  frame11 = gtk_frame_new (_("Looping"));
-  gtk_widget_ref (frame11);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "frame11", frame11,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  label20 = gtk_label_new (_("Note:  Setting the preamp\ntoo high may cause clipping\n(annoying clicks and pops)!"));
+  gtk_widget_set_name (label20, "label20");
+  gtk_widget_show (label20);
+  gtk_box_pack_start (GTK_BOX (vbox16), label20, FALSE, FALSE, 0);
+  gtk_label_set_justify (GTK_LABEL (label20), GTK_JUSTIFY_CENTER);
+
+  label9 = gtk_label_new (_("Preamp"));
+  gtk_widget_set_name (label9, "label9");
+  gtk_widget_show (label9);
+  gtk_frame_set_label_widget (GTK_FRAME (frame10), label9);
+
+  label10 = gtk_label_new (_("Effects"));
+  gtk_widget_set_name (label10, "label10");
+  gtk_widget_show (label10);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label10);
+  gtk_label_set_justify (GTK_LABEL (label10), GTK_JUSTIFY_CENTER);
+
+  vbox19 = gtk_vbox_new (FALSE, 0);
+  gtk_widget_set_name (vbox19, "vbox19");
+  gtk_widget_show (vbox19);
+  gtk_container_add (GTK_CONTAINER (notebook1), vbox19);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox19), 2);
+
+  frame4 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame4, "frame4");
+  gtk_widget_show (frame4);
+  gtk_box_pack_start (GTK_BOX (vbox19), frame4, FALSE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (frame4), 2);
+
+  hbox3 = gtk_hbox_new (FALSE, 0);
+  gtk_widget_set_name (hbox3, "hbox3");
+  gtk_widget_show (hbox3);
+  gtk_container_add (GTK_CONTAINER (frame4), hbox3);
+  gtk_container_set_border_width (GTK_CONTAINER (hbox3), 2);
+
+  vbox8 = gtk_vbox_new (FALSE, 0);
+  gtk_widget_set_name (vbox8, "vbox8");
+  gtk_widget_show (vbox8);
+  gtk_box_pack_start (GTK_BOX (hbox3), vbox8, TRUE, TRUE, 0);
+
+  fxUseFilename = gtk_check_button_new_with_mnemonic (_("Use Filename as Song Title"));
+  gtk_widget_set_name (fxUseFilename, "fxUseFilename");
+  gtk_widget_show (fxUseFilename);
+  gtk_box_pack_start (GTK_BOX (vbox8), fxUseFilename, FALSE, FALSE, 0);
+
+  fxFastInfo = gtk_check_button_new_with_mnemonic (_("Fast Playlist Info"));
+  gtk_widget_set_name (fxFastInfo, "fxFastInfo");
+  gtk_widget_show (fxFastInfo);
+  gtk_box_pack_start (GTK_BOX (vbox8), fxFastInfo, FALSE, FALSE, 0);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxFastInfo), TRUE);
+
+  vbox9 = gtk_vbox_new (FALSE, 0);
+  gtk_widget_set_name (vbox9, "vbox9");
+  gtk_widget_show (vbox9);
+  gtk_box_pack_start (GTK_BOX (hbox3), vbox9, TRUE, TRUE, 0);
+
+  fxNR = gtk_check_button_new_with_mnemonic (_("Noise Reduction"));
+  gtk_widget_set_name (fxNR, "fxNR");
+  gtk_widget_show (fxNR);
+  gtk_box_pack_start (GTK_BOX (vbox9), fxNR, FALSE, FALSE, 0);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxNR), TRUE);
+
+  fxAmigaMOD = gtk_check_button_new_with_mnemonic (_("Play Amiga MOD"));
+  gtk_widget_set_name (fxAmigaMOD, "fxAmigaMOD");
+  gtk_widget_show (fxAmigaMOD);
+  gtk_box_pack_start (GTK_BOX (vbox9), fxAmigaMOD, FALSE, FALSE, 0);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (fxAmigaMOD), TRUE);
+
+  label21 = gtk_label_new (_("General"));
+  gtk_widget_set_name (label21, "label21");
+  gtk_widget_show (label21);
+  gtk_frame_set_label_widget (GTK_FRAME (frame4), label21);
+
+  frame11 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame11, "frame11");
   gtk_widget_show (frame11);
-  gtk_box_pack_start (GTK_BOX (vbox7), frame11, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (vbox19), frame11, FALSE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (frame11), 2);
 
   vbox17 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox17);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "vbox17", vbox17,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox17, "vbox17");
   gtk_widget_show (vbox17);
   gtk_container_add (GTK_CONTAINER (frame11), vbox17);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox17), 2);
 
-  fxNoLoop = gtk_radio_button_new_with_label (loopGroup_group, _("Don't loop"));
-  loopGroup_group = gtk_radio_button_group (GTK_RADIO_BUTTON (fxNoLoop));
-  gtk_widget_ref (fxNoLoop);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxNoLoop", fxNoLoop,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  fxNoLoop = gtk_radio_button_new_with_mnemonic (NULL, _("Don't loop"));
+  gtk_widget_set_name (fxNoLoop, "fxNoLoop");
   gtk_widget_show (fxNoLoop);
   gtk_box_pack_start (GTK_BOX (vbox17), fxNoLoop, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (fxNoLoop), fxNoLoop_group);
+  fxNoLoop_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (fxNoLoop));
 
   hbox13 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_ref (hbox13);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "hbox13", hbox13,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (hbox13, "hbox13");
   gtk_widget_show (hbox13);
   gtk_box_pack_start (GTK_BOX (vbox17), hbox13, FALSE, FALSE, 0);
 
-  fxLoopFinite = gtk_radio_button_new_with_label (loopGroup_group, _("Loop"));
-  loopGroup_group = gtk_radio_button_group (GTK_RADIO_BUTTON (fxLoopFinite));
-  gtk_widget_ref (fxLoopFinite);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxLoopFinite", fxLoopFinite,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  fxLoopFinite = gtk_radio_button_new_with_mnemonic (NULL, _("Loop"));
+  gtk_widget_set_name (fxLoopFinite, "fxLoopFinite");
   gtk_widget_show (fxLoopFinite);
   gtk_box_pack_start (GTK_BOX (hbox13), fxLoopFinite, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (fxLoopFinite), fxNoLoop_group);
+  fxNoLoop_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (fxLoopFinite));
 
   fxLoopCount_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10);
   fxLoopCount = gtk_spin_button_new (GTK_ADJUSTMENT (fxLoopCount_adj), 1, 0);
-  gtk_widget_ref (fxLoopCount);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxLoopCount", fxLoopCount,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (fxLoopCount, "fxLoopCount");
   gtk_widget_show (fxLoopCount);
   gtk_box_pack_start (GTK_BOX (hbox13), fxLoopCount, FALSE, TRUE, 0);
 
-  label21 = gtk_label_new (_("time(s)"));
-  gtk_widget_ref (label21);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "label21", label21,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (label21);
-  gtk_box_pack_start (GTK_BOX (hbox13), label21, FALSE, FALSE, 0);
+  xlabel21 = gtk_label_new (_("time(s)"));
+  gtk_widget_set_name (xlabel21, "xlabel21");
+  gtk_widget_show (xlabel21);
+  gtk_box_pack_start (GTK_BOX (hbox13), xlabel21, FALSE, FALSE, 0);
+  gtk_label_set_justify (GTK_LABEL (xlabel21), GTK_JUSTIFY_CENTER);
 
-  fxLoopForever = gtk_radio_button_new_with_label (loopGroup_group, _("Loop forever"));
-  loopGroup_group = gtk_radio_button_group (GTK_RADIO_BUTTON (fxLoopForever));
-  gtk_widget_ref (fxLoopForever);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "fxLoopForever", fxLoopForever,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  fxLoopForever = gtk_radio_button_new_with_mnemonic (NULL, _("Loop forever"));
+  gtk_widget_set_name (fxLoopForever, "fxLoopForever");
   gtk_widget_show (fxLoopForever);
   gtk_box_pack_start (GTK_BOX (vbox17), fxLoopForever, FALSE, FALSE, 0);
+  gtk_radio_button_set_group (GTK_RADIO_BUTTON (fxLoopForever), fxNoLoop_group);
+  fxNoLoop_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (fxLoopForever));
 
-  label10 = gtk_label_new (_("Effects"));
-  gtk_widget_ref (label10);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "label10", label10,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (label10);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label10);
+  label22 = gtk_label_new (_("Looping"));
+  gtk_widget_set_name (label22, "label22");
+  gtk_widget_show (label22);
+  gtk_frame_set_label_widget (GTK_FRAME (frame11), label22);
+
+  xlabel22 = gtk_label_new (_("Misc"));
+  gtk_widget_set_name (xlabel22, "xlabel22");
+  gtk_widget_show (xlabel22);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 2), xlabel22);
+  gtk_label_set_justify (GTK_LABEL (xlabel22), GTK_JUSTIFY_CENTER);
 
   hbuttonbox2 = gtk_hbutton_box_new ();
-  gtk_widget_ref (hbuttonbox2);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "hbuttonbox2", hbuttonbox2,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (hbuttonbox2, "hbuttonbox2");
   gtk_widget_show (hbuttonbox2);
   gtk_box_pack_start (GTK_BOX (vbox2), hbuttonbox2, TRUE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox2), 4);
   gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox2), GTK_BUTTONBOX_END);
-  gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbuttonbox2), 5);
+  gtk_box_set_spacing (GTK_BOX (hbuttonbox2), 8);
 
-  config_ok = gtk_button_new_with_label (_("OK"));
-  gtk_widget_ref (config_ok);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "config_ok", config_ok,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  config_ok = gtk_button_new_with_mnemonic (_("OK"));
+  gtk_widget_set_name (config_ok, "config_ok");
   gtk_widget_show (config_ok);
   gtk_container_add (GTK_CONTAINER (hbuttonbox2), config_ok);
   GTK_WIDGET_SET_FLAGS (config_ok, GTK_CAN_DEFAULT);
 
-  config_apply = gtk_button_new_with_label (_("Apply"));
-  gtk_widget_ref (config_apply);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "config_apply", config_apply,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  config_apply = gtk_button_new_with_mnemonic (_("Apply"));
+  gtk_widget_set_name (config_apply, "config_apply");
   gtk_widget_show (config_apply);
   gtk_container_add (GTK_CONTAINER (hbuttonbox2), config_apply);
   GTK_WIDGET_SET_FLAGS (config_apply, GTK_CAN_DEFAULT);
 
-  config_cancel = gtk_button_new_with_label (_("Cancel"));
-  gtk_widget_ref (config_cancel);
-  gtk_object_set_data_full (GTK_OBJECT (Config), "config_cancel", config_cancel,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  config_cancel = gtk_button_new_with_mnemonic (_("Cancel"));
+  gtk_widget_set_name (config_cancel, "config_cancel");
   gtk_widget_show (config_cancel);
   gtk_container_add (GTK_CONTAINER (hbuttonbox2), config_cancel);
   GTK_WIDGET_SET_FLAGS (config_cancel, GTK_CAN_DEFAULT);
 
-  gtk_signal_connect (GTK_OBJECT (Config), "delete_event",
-                      GTK_SIGNAL_FUNC (hide_window),
-                      NULL);
-  gtk_signal_connect (GTK_OBJECT (config_ok), "clicked",
-                      GTK_SIGNAL_FUNC (on_config_ok_clicked),
-                      NULL);
-  gtk_signal_connect (GTK_OBJECT (config_apply), "clicked",
-                      GTK_SIGNAL_FUNC (on_config_apply_clicked),
-                      NULL);
-  gtk_signal_connect (GTK_OBJECT (config_cancel), "clicked",
-                      GTK_SIGNAL_FUNC (on_config_cancel_clicked),
-                      NULL);
+  g_signal_connect ((gpointer) Config, "delete_event",
+                    G_CALLBACK (hide_window),
+                    NULL);
+  g_signal_connect ((gpointer) config_ok, "clicked",
+                    G_CALLBACK (on_config_ok_clicked),
+                    NULL);
+  g_signal_connect ((gpointer) config_apply, "clicked",
+                    G_CALLBACK (on_config_apply_clicked),
+                    NULL);
+  g_signal_connect ((gpointer) config_cancel, "clicked",
+                    G_CALLBACK (on_config_cancel_clicked),
+                    NULL);
+
+  /* Store pointers to all widgets, for use by lookup_widget(). */
+  GLADE_HOOKUP_OBJECT_NO_REF (Config, Config, "Config");
+  GLADE_HOOKUP_OBJECT (Config, vbox2, "vbox2");
+  GLADE_HOOKUP_OBJECT (Config, notebook1, "notebook1");
+  GLADE_HOOKUP_OBJECT (Config, vbox3, "vbox3");
+  GLADE_HOOKUP_OBJECT (Config, hbox2, "hbox2");
+  GLADE_HOOKUP_OBJECT (Config, frame1, "frame1");
+  GLADE_HOOKUP_OBJECT (Config, vbox4, "vbox4");
+  GLADE_HOOKUP_OBJECT (Config, bit16, "bit16");
+  GLADE_HOOKUP_OBJECT (Config, bit8, "bit8");
+  GLADE_HOOKUP_OBJECT (Config, xlabel2, "xlabel2");
+  GLADE_HOOKUP_OBJECT (Config, frame2, "frame2");
+  GLADE_HOOKUP_OBJECT (Config, vbox5, "vbox5");
+  GLADE_HOOKUP_OBJECT (Config, stereo, "stereo");
+  GLADE_HOOKUP_OBJECT (Config, mono, "mono");
+  GLADE_HOOKUP_OBJECT (Config, label3, "label3");
+  GLADE_HOOKUP_OBJECT (Config, hbox14, "hbox14");
+  GLADE_HOOKUP_OBJECT (Config, frame9, "frame9");
+  GLADE_HOOKUP_OBJECT (Config, vbox15, "vbox15");
+  GLADE_HOOKUP_OBJECT (Config, resampNearest, "resampNearest");
+  GLADE_HOOKUP_OBJECT (Config, resampLinear, "resampLinear");
+  GLADE_HOOKUP_OBJECT (Config, resampSpline, "resampSpline");
+  GLADE_HOOKUP_OBJECT (Config, resampPolyphase, "resampPolyphase");
+  GLADE_HOOKUP_OBJECT (Config, label4, "label4");
+  GLADE_HOOKUP_OBJECT (Config, frame3, "frame3");
+  GLADE_HOOKUP_OBJECT (Config, vbox6, "vbox6");
+  GLADE_HOOKUP_OBJECT (Config, samp44, "samp44");
+  GLADE_HOOKUP_OBJECT (Config, samp22, "samp22");
+  GLADE_HOOKUP_OBJECT (Config, samp11, "samp11");
+  GLADE_HOOKUP_OBJECT (Config, label5, "label5");
+  GLADE_HOOKUP_OBJECT (Config, label2, "label2");
+  GLADE_HOOKUP_OBJECT (Config, vbox7, "vbox7");
+  GLADE_HOOKUP_OBJECT (Config, hbox15, "hbox15");
+  GLADE_HOOKUP_OBJECT (Config, frame5, "frame5");
+  GLADE_HOOKUP_OBJECT (Config, vbox20, "vbox20");
+  GLADE_HOOKUP_OBJECT (Config, fxReverb, "fxReverb");
+  GLADE_HOOKUP_OBJECT (Config, table1, "table1");
+  GLADE_HOOKUP_OBJECT (Config, fxReverbDepth, "fxReverbDepth");
+  GLADE_HOOKUP_OBJECT (Config, fxReverbDelay, "fxReverbDelay");
+  GLADE_HOOKUP_OBJECT (Config, xlabel3, "xlabel3");
+  GLADE_HOOKUP_OBJECT (Config, xlabel4, "xlabel4");
+  GLADE_HOOKUP_OBJECT (Config, label6, "label6");
+  GLADE_HOOKUP_OBJECT (Config, frame6, "frame6");
+  GLADE_HOOKUP_OBJECT (Config, vbox21, "vbox21");
+  GLADE_HOOKUP_OBJECT (Config, fxBassBoost, "fxBassBoost");
+  GLADE_HOOKUP_OBJECT (Config, table2, "table2");
+  GLADE_HOOKUP_OBJECT (Config, fxBassAmount, "fxBassAmount");
+  GLADE_HOOKUP_OBJECT (Config, fxBassRange, "fxBassRange");
+  GLADE_HOOKUP_OBJECT (Config, xlabel5, "xlabel5");
+  GLADE_HOOKUP_OBJECT (Config, xlabel6, "xlabel6");
+  GLADE_HOOKUP_OBJECT (Config, label7, "label7");
+  GLADE_HOOKUP_OBJECT (Config, hbox16, "hbox16");
+  GLADE_HOOKUP_OBJECT (Config, frame7, "frame7");
+  GLADE_HOOKUP_OBJECT (Config, vbox22, "vbox22");
+  GLADE_HOOKUP_OBJECT (Config, fxSurround, "fxSurround");
+  GLADE_HOOKUP_OBJECT (Config, table3, "table3");
+  GLADE_HOOKUP_OBJECT (Config, fxSurroundDepth, "fxSurroundDepth");
+  GLADE_HOOKUP_OBJECT (Config, fxSurroundDelay, "fxSurroundDelay");
+  GLADE_HOOKUP_OBJECT (Config, xlabel7, "xlabel7");
+  GLADE_HOOKUP_OBJECT (Config, label8, "label8");
+  GLADE_HOOKUP_OBJECT (Config, xlabel8, "xlabel8");
+  GLADE_HOOKUP_OBJECT (Config, frame10, "frame10");
+  GLADE_HOOKUP_OBJECT (Config, vbox16, "vbox16");
+  GLADE_HOOKUP_OBJECT (Config, fxPreamp, "fxPreamp");
+  GLADE_HOOKUP_OBJECT (Config, hbox11, "hbox11");
+  GLADE_HOOKUP_OBJECT (Config, label19, "label19");
+  GLADE_HOOKUP_OBJECT (Config, fxPreampLevel, "fxPreampLevel");
+  GLADE_HOOKUP_OBJECT (Config, label20, "label20");
+  GLADE_HOOKUP_OBJECT (Config, label9, "label9");
+  GLADE_HOOKUP_OBJECT (Config, label10, "label10");
+  GLADE_HOOKUP_OBJECT (Config, vbox19, "vbox19");
+  GLADE_HOOKUP_OBJECT (Config, frame4, "frame4");
+  GLADE_HOOKUP_OBJECT (Config, hbox3, "hbox3");
+  GLADE_HOOKUP_OBJECT (Config, vbox8, "vbox8");
+  GLADE_HOOKUP_OBJECT (Config, fxUseFilename, "fxUseFilename");
+  GLADE_HOOKUP_OBJECT (Config, fxFastInfo, "fxFastInfo");
+  GLADE_HOOKUP_OBJECT (Config, vbox9, "vbox9");
+  GLADE_HOOKUP_OBJECT (Config, fxNR, "fxNR");
+  GLADE_HOOKUP_OBJECT (Config, fxAmigaMOD, "fxAmigaMOD");
+  GLADE_HOOKUP_OBJECT (Config, label21, "label21");
+  GLADE_HOOKUP_OBJECT (Config, frame11, "frame11");
+  GLADE_HOOKUP_OBJECT (Config, vbox17, "vbox17");
+  GLADE_HOOKUP_OBJECT (Config, fxNoLoop, "fxNoLoop");
+  GLADE_HOOKUP_OBJECT (Config, hbox13, "hbox13");
+  GLADE_HOOKUP_OBJECT (Config, fxLoopFinite, "fxLoopFinite");
+  GLADE_HOOKUP_OBJECT (Config, fxLoopCount, "fxLoopCount");
+  GLADE_HOOKUP_OBJECT (Config, xlabel21, "xlabel21");
+  GLADE_HOOKUP_OBJECT (Config, fxLoopForever, "fxLoopForever");
+  GLADE_HOOKUP_OBJECT (Config, label22, "label22");
+  GLADE_HOOKUP_OBJECT (Config, xlabel22, "xlabel22");
+  GLADE_HOOKUP_OBJECT (Config, hbuttonbox2, "hbuttonbox2");
+  GLADE_HOOKUP_OBJECT (Config, config_ok, "config_ok");
+  GLADE_HOOKUP_OBJECT (Config, config_apply, "config_apply");
+  GLADE_HOOKUP_OBJECT (Config, config_cancel, "config_cancel");
 
   return Config;
 }
@@ -781,182 +839,160 @@
   GtkWidget *info_instruments;
   GtkWidget *label17;
   GtkWidget *scrolledwindow3;
-  GtkWidget *viewport3;
   GtkWidget *info_message;
   GtkWidget *label18;
   GtkWidget *hbuttonbox3;
   GtkWidget *info_close;
 
   Info = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-  gtk_object_set_data (GTK_OBJECT (Info), "Info", Info);
-  gtk_widget_set_usize (Info, -1, 264);
+  gtk_widget_set_name (Info, "Info");
   gtk_window_set_title (GTK_WINDOW (Info), _("MOD Info"));
 
   vbox14 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_ref (vbox14);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "vbox14", vbox14,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (vbox14, "vbox14");
   gtk_widget_show (vbox14);
   gtk_container_add (GTK_CONTAINER (Info), vbox14);
 
   notebook2 = gtk_notebook_new ();
-  gtk_widget_ref (notebook2);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "notebook2", notebook2,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (notebook2, "notebook2");
   gtk_widget_show (notebook2);
   gtk_box_pack_start (GTK_BOX (vbox14), notebook2, TRUE, TRUE, 8);
-  gtk_container_set_border_width (GTK_CONTAINER (notebook2), 6);
+  gtk_container_set_border_width (GTK_CONTAINER (notebook2), 4);
 
   hbox9 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_ref (hbox9);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "hbox9", hbox9,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (hbox9, "hbox9");
   gtk_widget_show (hbox9);
   gtk_container_add (GTK_CONTAINER (notebook2), hbox9);
+  gtk_container_set_border_width (GTK_CONTAINER (hbox9), 2);
 
   label11 = gtk_label_new (_("Filename:\nTitle:\nType:\nLength:\nSpeed:\nTempo:\nSamples:\nInstruments:\nPatterns:\nChannels:"));
-  gtk_widget_ref (label11);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "label11", label11,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label11, "label11");
   gtk_widget_show (label11);
   gtk_box_pack_start (GTK_BOX (hbox9), label11, FALSE, FALSE, 4);
-  gtk_label_set_justify (GTK_LABEL (label11), GTK_JUSTIFY_LEFT);
 
-  info_general = gtk_label_new ("---\n---\n---\n---\n---\n---\n---\n---\n---\n---");
-  gtk_widget_ref (info_general);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "info_general", info_general,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  info_general = gtk_label_new (_("---\n---\n---\n---\n---\n---\n---\n---\n---\n---"));
+  gtk_widget_set_name (info_general, "info_general");
   gtk_widget_show (info_general);
   gtk_box_pack_start (GTK_BOX (hbox9), info_general, FALSE, FALSE, 4);
-  gtk_label_set_justify (GTK_LABEL (info_general), GTK_JUSTIFY_LEFT);
 
   label13 = gtk_label_new (_("General"));
-  gtk_widget_ref (label13);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "label13", label13,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label13, "label13");
   gtk_widget_show (label13);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook2), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook2), 0), label13);
+  gtk_label_set_justify (GTK_LABEL (label13), GTK_JUSTIFY_CENTER);
 
   scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
-  gtk_widget_ref (scrolledwindow1);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "scrolledwindow1", scrolledwindow1,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (scrolledwindow1, "scrolledwindow1");
   gtk_widget_show (scrolledwindow1);
   gtk_container_add (GTK_CONTAINER (notebook2), scrolledwindow1);
   gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow1), 6);
+  GTK_WIDGET_UNSET_FLAGS (scrolledwindow1, GTK_CAN_FOCUS);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
 
   viewport1 = gtk_viewport_new (NULL, NULL);
-  gtk_widget_ref (viewport1);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "viewport1", viewport1,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (viewport1, "viewport1");
   gtk_widget_show (viewport1);
   gtk_container_add (GTK_CONTAINER (scrolledwindow1), viewport1);
 
   info_samples = gtk_label_new ("");
-  gtk_widget_ref (info_samples);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "info_samples", info_samples,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (info_samples, "info_samples");
   gtk_widget_show (info_samples);
   gtk_container_add (GTK_CONTAINER (viewport1), info_samples);
-  gtk_label_set_justify (GTK_LABEL (info_samples), GTK_JUSTIFY_LEFT);
   gtk_misc_set_alignment (GTK_MISC (info_samples), 7.45058e-09, 7.45058e-09);
-  gtk_label_set_selectable(GTK_LABEL (info_samples), TRUE);
 
   label15 = gtk_label_new (_("Samples"));
-  gtk_widget_ref (label15);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "label15", label15,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label15, "label15");
   gtk_widget_show (label15);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook2), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook2), 1), label15);
+  gtk_label_set_justify (GTK_LABEL (label15), GTK_JUSTIFY_CENTER);
 
   scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
-  gtk_widget_ref (scrolledwindow2);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "scrolledwindow2", scrolledwindow2,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (scrolledwindow2, "scrolledwindow2");
   gtk_widget_show (scrolledwindow2);
   gtk_container_add (GTK_CONTAINER (notebook2), scrolledwindow2);
   gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow2), 6);
+  GTK_WIDGET_UNSET_FLAGS (scrolledwindow2, GTK_CAN_FOCUS);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
 
   viewport2 = gtk_viewport_new (NULL, NULL);
-  gtk_widget_ref (viewport2);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "viewport2", viewport2,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (viewport2, "viewport2");
   gtk_widget_show (viewport2);
   gtk_container_add (GTK_CONTAINER (scrolledwindow2), viewport2);
 
   info_instruments = gtk_label_new ("");
-  gtk_widget_ref (info_instruments);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "info_instruments", info_instruments,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (info_instruments, "info_instruments");
   gtk_widget_show (info_instruments);
   gtk_container_add (GTK_CONTAINER (viewport2), info_instruments);
-  gtk_label_set_justify (GTK_LABEL (info_instruments), GTK_JUSTIFY_LEFT);
   gtk_misc_set_alignment (GTK_MISC (info_instruments), 1.49012e-08, 7.45058e-09);
-  gtk_label_set_selectable(GTK_LABEL (info_instruments), TRUE);
 
   label17 = gtk_label_new (_("Instruments"));
-  gtk_widget_ref (label17);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "label17", label17,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label17, "label17");
   gtk_widget_show (label17);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook2), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook2), 2), label17);
+  gtk_label_set_justify (GTK_LABEL (label17), GTK_JUSTIFY_CENTER);
 
   scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL);
-  gtk_widget_ref (scrolledwindow3);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "scrolledwindow3", scrolledwindow3,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (scrolledwindow3, "scrolledwindow3");
   gtk_widget_show (scrolledwindow3);
   gtk_container_add (GTK_CONTAINER (notebook2), scrolledwindow3);
-  gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow3), 6);
+  GTK_WIDGET_UNSET_FLAGS (scrolledwindow3, GTK_CAN_FOCUS);
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
-
-  viewport3 = gtk_viewport_new (NULL, NULL);
-  gtk_widget_ref (viewport3);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "viewport3", viewport3,
-                            (GtkDestroyNotify) gtk_widget_unref);
-  gtk_widget_show (viewport3);
-  gtk_container_add (GTK_CONTAINER (scrolledwindow3), viewport3);
+  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_SHADOW_IN);
 
-  info_message = gtk_label_new ("");
-  gtk_widget_ref (info_message);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "info_message", info_message,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  info_message = gtk_text_view_new ();
+  gtk_widget_set_name (info_message, "info_message");
   gtk_widget_show (info_message);
-  gtk_container_add (GTK_CONTAINER (viewport3), info_message);
-  gtk_label_set_justify (GTK_LABEL (info_message), GTK_JUSTIFY_LEFT);
-  gtk_label_set_line_wrap(GTK_LABEL (info_message), TRUE);
-  gtk_label_set_selectable(GTK_LABEL (info_message), TRUE);
+  gtk_container_add (GTK_CONTAINER (scrolledwindow3), info_message);
+  gtk_text_view_set_editable (GTK_TEXT_VIEW (info_message), FALSE);
+  gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (info_message), GTK_WRAP_WORD);
 
   label18 = gtk_label_new (_("Message"));
-  gtk_widget_ref (label18);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "label18", label18,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (label18, "label18");
   gtk_widget_show (label18);
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook2), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook2), 3), label18);
+  gtk_label_set_justify (GTK_LABEL (label18), GTK_JUSTIFY_CENTER);
 
   hbuttonbox3 = gtk_hbutton_box_new ();
-  gtk_widget_ref (hbuttonbox3);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "hbuttonbox3", hbuttonbox3,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  gtk_widget_set_name (hbuttonbox3, "hbuttonbox3");
   gtk_widget_show (hbuttonbox3);
   gtk_box_pack_start (GTK_BOX (vbox14), hbuttonbox3, FALSE, FALSE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox3), 2);
+  gtk_box_set_spacing (GTK_BOX (hbuttonbox3), 30);
 
-  info_close = gtk_button_new_with_label (_("Close"));
-  gtk_widget_ref (info_close);
-  gtk_object_set_data_full (GTK_OBJECT (Info), "info_close", info_close,
-                            (GtkDestroyNotify) gtk_widget_unref);
+  info_close = gtk_button_new_with_mnemonic (_("Close"));
+  gtk_widget_set_name (info_close, "info_close");
   gtk_widget_show (info_close);
   gtk_container_add (GTK_CONTAINER (hbuttonbox3), info_close);
   GTK_WIDGET_SET_FLAGS (info_close, GTK_CAN_DEFAULT);
 
-  gtk_signal_connect (GTK_OBJECT (Info), "delete_event",
-                      GTK_SIGNAL_FUNC (hide_window),
-                      NULL);
-  gtk_signal_connect (GTK_OBJECT (info_close), "clicked",
-                      GTK_SIGNAL_FUNC (on_info_close_clicked),
-                      NULL);
+  g_signal_connect ((gpointer) Info, "delete_event",
+                    G_CALLBACK (hide_window),
+                    NULL);
+  g_signal_connect ((gpointer) info_close, "clicked",
+                    G_CALLBACK (on_info_close_clicked),
+                    NULL);
+
+  /* Store pointers to all widgets, for use by lookup_widget(). */
+  GLADE_HOOKUP_OBJECT_NO_REF (Info, Info, "Info");
+  GLADE_HOOKUP_OBJECT (Info, vbox14, "vbox14");
+  GLADE_HOOKUP_OBJECT (Info, notebook2, "notebook2");
+  GLADE_HOOKUP_OBJECT (Info, hbox9, "hbox9");
+  GLADE_HOOKUP_OBJECT (Info, label11, "label11");
+  GLADE_HOOKUP_OBJECT (Info, info_general, "info_general");
+  GLADE_HOOKUP_OBJECT (Info, label13, "label13");
+  GLADE_HOOKUP_OBJECT (Info, scrolledwindow1, "scrolledwindow1");
+  GLADE_HOOKUP_OBJECT (Info, viewport1, "viewport1");
+  GLADE_HOOKUP_OBJECT (Info, info_samples, "info_samples");
+  GLADE_HOOKUP_OBJECT (Info, label15, "label15");
+  GLADE_HOOKUP_OBJECT (Info, scrolledwindow2, "scrolledwindow2");
+  GLADE_HOOKUP_OBJECT (Info, viewport2, "viewport2");
+  GLADE_HOOKUP_OBJECT (Info, info_instruments, "info_instruments");
+  GLADE_HOOKUP_OBJECT (Info, label17, "label17");
+  GLADE_HOOKUP_OBJECT (Info, scrolledwindow3, "scrolledwindow3");
+  GLADE_HOOKUP_OBJECT (Info, info_message, "info_message");
+  GLADE_HOOKUP_OBJECT (Info, label18, "label18");
+  GLADE_HOOKUP_OBJECT (Info, hbuttonbox3, "hbuttonbox3");
+  GLADE_HOOKUP_OBJECT (Info, info_close, "info_close");
 
   return Info;
 }
--- a/src/modplug/gui/main.cxx	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/modplug/gui/main.cxx	Thu Sep 13 12:10:39 2007 -0500
@@ -9,7 +9,10 @@
 
 #include <gtk/gtk.h>
 #include <libintl.h>
+extern "C" {
 #include "audacious/util.h"
+#include "audacious/strings.h"
+}
 
 #include "interface.h"
 #include "support.h"
@@ -42,7 +45,7 @@
 	{
 		gchar * about_text = g_strjoin( "" , _("Modplug Input Plugin for Audacious ver") ,
 				VERSION , _("\nModplug sound engine written by Olivier Lapicque.\nXMMS interface for Modplug by Kenton Varda.\n(c)2000 Olivier Lapicque and Kenton Varda.\nUpdates and Maintainance by Konstanty Bialkowski.\nPorted to BMP by Theofilos Intzoglou.") , NULL );
-		AboutWin = xmms_show_message( _("About Modplug") , about_text , _("Ok") , FALSE , NULL , NULL );
+		AboutWin = audacious_info_dialog( _("About Modplug") , about_text , _("Ok") , FALSE , NULL , NULL );
 		gtk_signal_connect( GTK_OBJECT(AboutWin) , "destroy" ,
 			GTK_SIGNAL_FUNC(gtk_widget_destroyed), &AboutWin);
 		g_free( about_text );
@@ -152,7 +155,7 @@
 
 	uint32 lSongTime, lNumSamples, lNumInstruments, i;
 	string lInfo;
-	char lBuffer[33];
+	gchar lBuffer[33];
 	stringstream lStrStream(ios::out);   //C++ replacement for sprintf()
 
 	CSoundFile* lSoundFile;
@@ -160,6 +163,7 @@
 	Archive* lArchive;
 	string lShortFN;
 	uint32 lPos;
+	gchar *tmps;
 
 	lPos = aFilename.find_last_of('/') + 1;
 	lShortFN = aFilename.substr(lPos);
@@ -177,7 +181,9 @@
 
 	lInfo = lShortFN;
 	lInfo += '\n';
-	lInfo += lSoundFile->GetTitle();
+	tmps = str_to_utf8(lSoundFile->GetTitle());
+	lInfo += tmps;
+	g_free(tmps);
 	lInfo += '\n';
 
 	switch(lSoundFile->GetType())
@@ -275,7 +281,9 @@
 	for(i = 0; i < lNumSamples; i++)
 	{
 		lSoundFile->GetSampleName(i, lBuffer);
-		lInfo += lBuffer;
+		tmps = str_to_utf8(lBuffer);
+		lInfo += tmps;
+		g_free(tmps);
 		lInfo += '\n';
 	}
 	gtk_label_set_text((GtkLabel*)lookup_widget(InfoWin, "info_samples"), lInfo.c_str());
@@ -284,7 +292,9 @@
 	for(i = 0; i < lNumInstruments; i++)
 	{
 		lSoundFile->GetInstrumentName(i, lBuffer);
-		lInfo += lBuffer;
+		tmps = str_to_utf8(lBuffer);
+		lInfo += tmps;
+		g_free(tmps);
 		lInfo += '\n';
 	}
 	gtk_label_set_text((GtkLabel*)lookup_widget(InfoWin, "info_instruments"), lInfo.c_str());
@@ -296,7 +306,9 @@
 	//gtk_text_backward_delete(textbox, length);
 	length = lSoundFile->GetSongComments(message, MAX_MESSAGE_LENGTH, 80);
 	if (length != 0) {
-		gtk_label_set_text((GtkLabel*)lookup_widget(InfoWin, "info_message"), message);
+		tmps = str_to_utf8(message);
+		gtk_label_set_text((GtkLabel*)lookup_widget(InfoWin, "info_message"), tmps);
+		g_free(tmps);
 	}
 	
 	//unload the file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/modplug/gui/modplug.glade	Thu Sep 13 12:10:39 2007 -0500
@@ -0,0 +1,2028 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
+
+<glade-interface>
+
+<widget class="GtkWindow" id="Config">
+  <property name="width_request">500</property>
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">ModPlug Configuration</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">False</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <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="hide_window"/>
+
+  <child>
+    <widget class="GtkVBox" id="vbox2">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child>
+	<widget class="GtkNotebook" id="notebook1">
+	  <property name="border_width">4</property>
+	  <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="vbox3">
+	      <property name="border_width">2</property>
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">0</property>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox2">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">2</property>
+
+		  <child>
+		    <widget class="GtkFrame" id="frame1">
+		      <property name="border_width">2</property>
+		      <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="vbox4">
+			  <property name="border_width">2</property>
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="bit16">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">16 bit</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>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="bit8">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">8 bit</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">bit16</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="xlabel2">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Resolution</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="frame2">
+		      <property name="border_width">2</property>
+		      <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="vbox5">
+			  <property name="border_width">2</property>
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="stereo">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Stereo</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>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="mono">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Mono (downmix)</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">stereo</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="label3">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Channels</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="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox14">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">0</property>
+
+		  <child>
+		    <widget class="GtkFrame" id="frame9">
+		      <property name="border_width">2</property>
+		      <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="vbox15">
+			  <property name="border_width">2</property>
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="resampNearest">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Nearest (fastest)</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>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="resampLinear">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Linear (fast)</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">resampNearest</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="resampSpline">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Spline (good quality)</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">resampNearest</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="resampPolyphase">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">8-tap Fir (extremely high quality)</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">resampNearest</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="label4">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Resampling</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="frame3">
+		      <property name="border_width">2</property>
+		      <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="vbox6">
+			  <property name="border_width">2</property>
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="samp44">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">44 kHz</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>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="samp22">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">22 kHz</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">samp44</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="samp11">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">11 kHz</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">False</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			      <property name="group">samp44</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="label5">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Sampling Rate</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="padding">0</property>
+		  <property name="expand">False</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="label2">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Quality</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="vbox7">
+	      <property name="border_width">2</property>
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">0</property>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox15">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">0</property>
+
+		  <child>
+		    <widget class="GtkFrame" id="frame5">
+		      <property name="border_width">2</property>
+		      <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="vbox20">
+			  <property name="border_width">2</property>
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="fxReverb">
+			      <property name="border_width">2</property>
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Enable</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">True</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>
+
+			  <child>
+			    <widget class="GtkTable" id="table1">
+			      <property name="border_width">2</property>
+			      <property name="visible">True</property>
+			      <property name="n_rows">2</property>
+			      <property name="n_columns">2</property>
+			      <property name="homogeneous">False</property>
+			      <property name="row_spacing">4</property>
+			      <property name="column_spacing">4</property>
+
+			      <child>
+				<widget class="GtkHScale" id="fxReverbDepth">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="draw_value">True</property>
+				  <property name="value_pos">GTK_POS_TOP</property>
+				  <property name="digits">1</property>
+				  <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
+				  <property name="inverted">False</property>
+				  <property name="adjustment">30 0 100 0 0 0</property>
+				</widget>
+				<packing>
+				  <property name="left_attach">1</property>
+				  <property name="right_attach">2</property>
+				  <property name="top_attach">0</property>
+				  <property name="bottom_attach">1</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkHScale" id="fxReverbDelay">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="draw_value">True</property>
+				  <property name="value_pos">GTK_POS_TOP</property>
+				  <property name="digits">1</property>
+				  <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
+				  <property name="inverted">False</property>
+				  <property name="adjustment">90 40 200 0 0 0</property>
+				</widget>
+				<packing>
+				  <property name="left_attach">1</property>
+				  <property name="right_attach">2</property>
+				  <property name="top_attach">1</property>
+				  <property name="bottom_attach">2</property>
+				  <property name="x_options">fill</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkLabel" id="xlabel3">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes">Depth</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="left_attach">0</property>
+				  <property name="right_attach">1</property>
+				  <property name="top_attach">0</property>
+				  <property name="bottom_attach">1</property>
+				  <property name="x_options"></property>
+				  <property name="y_options"></property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkLabel" id="xlabel4">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes">Delay</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="left_attach">0</property>
+				  <property name="right_attach">1</property>
+				  <property name="top_attach">1</property>
+				  <property name="bottom_attach">2</property>
+				  <property name="x_options"></property>
+				  <property name="y_options"></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">Reverb</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="frame6">
+		      <property name="border_width">2</property>
+		      <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="vbox21">
+			  <property name="border_width">2</property>
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="fxBassBoost">
+			      <property name="border_width">2</property>
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Enable</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">True</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>
+
+			  <child>
+			    <widget class="GtkTable" id="table2">
+			      <property name="border_width">2</property>
+			      <property name="visible">True</property>
+			      <property name="n_rows">2</property>
+			      <property name="n_columns">2</property>
+			      <property name="homogeneous">False</property>
+			      <property name="row_spacing">4</property>
+			      <property name="column_spacing">4</property>
+
+			      <child>
+				<widget class="GtkHScale" id="fxBassAmount">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="draw_value">True</property>
+				  <property name="value_pos">GTK_POS_TOP</property>
+				  <property name="digits">1</property>
+				  <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
+				  <property name="inverted">False</property>
+				  <property name="adjustment">30 0 100 0 0 0</property>
+				</widget>
+				<packing>
+				  <property name="left_attach">1</property>
+				  <property name="right_attach">2</property>
+				  <property name="top_attach">0</property>
+				  <property name="bottom_attach">1</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkHScale" id="fxBassRange">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="draw_value">True</property>
+				  <property name="value_pos">GTK_POS_TOP</property>
+				  <property name="digits">1</property>
+				  <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
+				  <property name="inverted">False</property>
+				  <property name="adjustment">30 10 100 0 0 0</property>
+				</widget>
+				<packing>
+				  <property name="left_attach">1</property>
+				  <property name="right_attach">2</property>
+				  <property name="top_attach">1</property>
+				  <property name="bottom_attach">2</property>
+				  <property name="x_options">fill</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkLabel" id="xlabel5">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes">Amount</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="left_attach">0</property>
+				  <property name="right_attach">1</property>
+				  <property name="top_attach">0</property>
+				  <property name="bottom_attach">1</property>
+				  <property name="x_options"></property>
+				  <property name="y_options"></property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkLabel" id="xlabel6">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes">Range</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="left_attach">0</property>
+				  <property name="right_attach">1</property>
+				  <property name="top_attach">1</property>
+				  <property name="bottom_attach">2</property>
+				  <property name="x_options"></property>
+				  <property name="y_options"></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="label7">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Bass Boost</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="padding">0</property>
+		  <property name="expand">False</property>
+		  <property name="fill">True</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkHBox" id="hbox16">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">0</property>
+
+		  <child>
+		    <widget class="GtkFrame" id="frame7">
+		      <property name="border_width">2</property>
+		      <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="vbox22">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="fxSurround">
+			      <property name="border_width">2</property>
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Enable</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">True</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>
+
+			  <child>
+			    <widget class="GtkTable" id="table3">
+			      <property name="border_width">2</property>
+			      <property name="visible">True</property>
+			      <property name="n_rows">2</property>
+			      <property name="n_columns">2</property>
+			      <property name="homogeneous">False</property>
+			      <property name="row_spacing">4</property>
+			      <property name="column_spacing">4</property>
+
+			      <child>
+				<widget class="GtkHScale" id="fxSurroundDepth">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="draw_value">True</property>
+				  <property name="value_pos">GTK_POS_TOP</property>
+				  <property name="digits">1</property>
+				  <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
+				  <property name="inverted">False</property>
+				  <property name="adjustment">20 0 100 0 0 0</property>
+				</widget>
+				<packing>
+				  <property name="left_attach">1</property>
+				  <property name="right_attach">2</property>
+				  <property name="top_attach">0</property>
+				  <property name="bottom_attach">1</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkHScale" id="fxSurroundDelay">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="draw_value">True</property>
+				  <property name="value_pos">GTK_POS_TOP</property>
+				  <property name="digits">1</property>
+				  <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
+				  <property name="inverted">False</property>
+				  <property name="adjustment">20 5 40 0 0 0</property>
+				</widget>
+				<packing>
+				  <property name="left_attach">1</property>
+				  <property name="right_attach">2</property>
+				  <property name="top_attach">1</property>
+				  <property name="bottom_attach">2</property>
+				  <property name="x_options">fill</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkLabel" id="xlabel7">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes">Depth</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="left_attach">0</property>
+				  <property name="right_attach">1</property>
+				  <property name="top_attach">0</property>
+				  <property name="bottom_attach">1</property>
+				  <property name="x_options"></property>
+				  <property name="y_options"></property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkLabel" id="label8">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes">Delay</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="left_attach">0</property>
+				  <property name="right_attach">1</property>
+				  <property name="top_attach">1</property>
+				  <property name="bottom_attach">2</property>
+				  <property name="x_options"></property>
+				  <property name="y_options"></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="xlabel8">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Surround</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="frame10">
+		      <property name="border_width">2</property>
+		      <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="vbox16">
+			  <property name="border_width">4</property>
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">2</property>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="fxPreamp">
+			      <property name="border_width">2</property>
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Enable</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>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox11">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">4</property>
+
+			      <child>
+				<widget class="GtkLabel" id="label19">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes">Volume</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="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkHScale" id="fxPreampLevel">
+				  <property name="visible">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="draw_value">True</property>
+				  <property name="value_pos">GTK_POS_TOP</property>
+				  <property name="digits">1</property>
+				  <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
+				  <property name="inverted">False</property>
+				  <property name="adjustment">0 -3 3 1 0 0</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>
+
+			  <child>
+			    <widget class="GtkLabel" id="label20">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">Note:  Setting the preamp
+too high may cause clipping
+(annoying clicks and pops)!</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="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+			</widget>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label9">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Preamp</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="padding">0</property>
+		  <property name="expand">False</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="label10">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Effects</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="vbox19">
+	      <property name="border_width">2</property>
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">0</property>
+
+	      <child>
+		<widget class="GtkFrame" id="frame4">
+		  <property name="border_width">2</property>
+		  <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="GtkHBox" id="hbox3">
+		      <property name="border_width">2</property>
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">0</property>
+
+		      <child>
+			<widget class="GtkVBox" id="vbox8">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="fxUseFilename">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Use Filename as Song Title</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>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="fxFastInfo">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Fast Playlist Info</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">True</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>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkVBox" id="vbox9">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="fxNR">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Noise Reduction</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">True</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>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="fxAmigaMOD">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Play Amiga MOD</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">True</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>
+			<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="label21">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">General</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">True</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkFrame" id="frame11">
+		  <property name="border_width">2</property>
+		  <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="vbox17">
+		      <property name="border_width">2</property>
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">0</property>
+
+		      <child>
+			<widget class="GtkRadioButton" id="fxNoLoop">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">Don't loop</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>
+
+		      <child>
+			<widget class="GtkHBox" id="hbox13">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
+
+			  <child>
+			    <widget class="GtkRadioButton" id="fxLoopFinite">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Loop</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">fxNoLoop</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="fxLoopCount">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="climb_rate">1</property>
+			      <property name="digits">0</property>
+			      <property name="numeric">False</property>
+			      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+			      <property name="snap_to_ticks">False</property>
+			      <property name="wrap">False</property>
+			      <property name="adjustment">1 0 100 1 10 10</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkLabel" id="xlabel21">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">time(s)</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="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</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="GtkRadioButton" id="fxLoopForever">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">Loop forever</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">fxNoLoop</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="label22">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Looping</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">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="xlabel22">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Misc</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">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkHButtonBox" id="hbuttonbox2">
+	  <property name="border_width">4</property>
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+	  <property name="spacing">8</property>
+
+	  <child>
+	    <widget class="GtkButton" id="config_ok">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">OK</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <signal name="clicked" handler="on_config_ok_clicked"/>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="config_apply">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Apply</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <signal name="clicked" handler="on_config_apply_clicked"/>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="config_cancel">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Cancel</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <signal name="clicked" handler="on_config_cancel_clicked"/>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkWindow" id="Info">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">MOD Info</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <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="hide_window"/>
+
+  <child>
+    <widget class="GtkVBox" id="vbox14">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child>
+	<widget class="GtkNotebook" id="notebook2">
+	  <property name="border_width">4</property>
+	  <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="GtkHBox" id="hbox9">
+	      <property name="border_width">2</property>
+	      <property name="visible">True</property>
+	      <property name="homogeneous">False</property>
+	      <property name="spacing">0</property>
+
+	      <child>
+		<widget class="GtkLabel" id="label11">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Filename:
+Title:
+Type:
+Length:
+Speed:
+Tempo:
+Samples:
+Instruments:
+Patterns:
+Channels:</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">4</property>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
+		</packing>
+	      </child>
+
+	      <child>
+		<widget class="GtkLabel" id="info_general">
+		  <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="padding">4</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="label13">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">General</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="GtkScrolledWindow" id="scrolledwindow1">
+	      <property name="border_width">6</property>
+	      <property name="visible">True</property>
+	      <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+	      <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
+	      <property name="shadow_type">GTK_SHADOW_NONE</property>
+	      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+	      <child>
+		<widget class="GtkViewport" id="viewport1">
+		  <property name="visible">True</property>
+		  <property name="shadow_type">GTK_SHADOW_IN</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="info_samples">
+		      <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">7.45058015283e-09</property>
+		      <property name="yalign">7.45058015283e-09</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>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label15">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Samples</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="GtkScrolledWindow" id="scrolledwindow2">
+	      <property name="border_width">6</property>
+	      <property name="visible">True</property>
+	      <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+	      <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
+	      <property name="shadow_type">GTK_SHADOW_NONE</property>
+	      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+	      <child>
+		<widget class="GtkViewport" id="viewport2">
+		  <property name="visible">True</property>
+		  <property name="shadow_type">GTK_SHADOW_IN</property>
+
+		  <child>
+		    <widget class="GtkLabel" id="info_instruments">
+		      <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">1.49012002737e-08</property>
+		      <property name="yalign">7.45058015283e-09</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>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label17">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Instruments</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="GtkScrolledWindow" id="scrolledwindow3">
+	      <property name="visible">True</property>
+	      <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+	      <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
+	      <property name="shadow_type">GTK_SHADOW_IN</property>
+	      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+	      <child>
+		<widget class="GtkTextView" id="info_message">
+		  <property name="visible">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="editable">False</property>
+		  <property name="overwrite">False</property>
+		  <property name="accepts_tab">True</property>
+		  <property name="justification">GTK_JUSTIFY_LEFT</property>
+		  <property name="wrap_mode">GTK_WRAP_WORD</property>
+		  <property name="cursor_visible">True</property>
+		  <property name="pixels_above_lines">0</property>
+		  <property name="pixels_below_lines">0</property>
+		  <property name="pixels_inside_wrap">0</property>
+		  <property name="left_margin">0</property>
+		  <property name="right_margin">0</property>
+		  <property name="indent">0</property>
+		  <property name="text" translatable="yes"></property>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label18">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Message</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">8</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkHButtonBox" id="hbuttonbox3">
+	  <property name="border_width">2</property>
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_DEFAULT_STYLE</property>
+	  <property name="spacing">30</property>
+
+	  <child>
+	    <widget class="GtkButton" id="info_close">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Close</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <signal name="clicked" handler="on_info_close_clicked"/>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">False</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+</glade-interface>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/modplug/gui/modplug.gladep	Thu Sep 13 12:10:39 2007 -0500
@@ -0,0 +1,16 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
+
+<glade-project>
+  <name>ModPlug</name>
+  <program_name>modplug</program_name>
+  <source_directory>.</source_directory>
+  <pixmaps_directory>.</pixmaps_directory>
+  <gnome_support>FALSE</gnome_support>
+  <use_widget_names>TRUE</use_widget_names>
+  <output_main_file>FALSE</output_main_file>
+  <output_build_files>FALSE</output_build_files>
+  <main_source_file>interface.cxx</main_source_file>
+  <handler_source_file>callbacks.cxx</handler_source_file>
+  <support_source_file>support.cxx</support_source_file>
+</glade-project>
--- a/src/modplug/gui/support.cxx	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/modplug/gui/support.cxx	Thu Sep 13 12:10:39 2007 -0500
@@ -10,18 +10,12 @@
 #include <sys/stat.h>
 #include <unistd.h>
 #include <string.h>
+#include <stdio.h>
 
 #include <gtk/gtk.h>
 
 #include "support.h"
 
-/* This is an internally used function to check if a pixmap file exists. */
-static gchar* check_file_exists        (const gchar     *directory,
-                                        const gchar     *filename);
-
-/* This is an internally used function to create pixmaps. */
-static GtkWidget* create_dummy_pixmap  (GtkWidget       *widget);
-
 GtkWidget*
 lookup_widget                          (GtkWidget       *widget,
                                         const gchar     *widget_name)
@@ -34,47 +28,20 @@
         parent = gtk_menu_get_attach_widget (GTK_MENU (widget));
       else
         parent = widget->parent;
+      if (!parent)
+        parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey");
       if (parent == NULL)
         break;
       widget = parent;
     }
 
-  found_widget = (GtkWidget*) gtk_object_get_data (GTK_OBJECT (widget),
-                                                   widget_name);
+  found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget),
+                                                 widget_name);
   if (!found_widget)
     g_warning ("Widget not found: %s", widget_name);
   return found_widget;
 }
 
-/* This is a dummy pixmap we use when a pixmap can't be found. */
-static const char *dummy_pixmap_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"1 1 1 1",
-"  c None",
-/* pixels */
-" "
-};
-
-/* This is an internally used function to create pixmaps. */
-static GtkWidget*
-create_dummy_pixmap                    (GtkWidget       *widget)
-{
-  GdkColormap *colormap;
-  GdkPixmap *gdkpixmap;
-  GdkBitmap *mask;
-  GtkWidget *pixmap;
-
-  colormap = gtk_widget_get_colormap (widget);
-  gdkpixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &mask,
-                                                     NULL, (gchar **)dummy_pixmap_xpm);
-  if (gdkpixmap == NULL)
-    g_error ("Couldn't create replacement pixmap.");
-  pixmap = gtk_pixmap_new (gdkpixmap, mask);
-  gdk_pixmap_unref (gdkpixmap);
-  gdk_bitmap_unref (mask);
-  return pixmap;
-}
-
 static GList *pixmaps_directories = NULL;
 
 /* Use this function to set the directory containing installed pixmaps. */
@@ -85,75 +52,93 @@
                                         g_strdup (directory));
 }
 
+/* This is an internally used function to find pixmap files. */
+static gchar*
+find_pixmap_file                       (const gchar     *filename)
+{
+  GList *elem;
+
+  /* We step through each of the pixmaps directory to find it. */
+  elem = pixmaps_directories;
+  while (elem)
+    {
+      gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data,
+                                         G_DIR_SEPARATOR_S, filename);
+      if (g_file_test (pathname, G_FILE_TEST_EXISTS))
+        return pathname;
+      g_free (pathname);
+      elem = elem->next;
+    }
+  return NULL;
+}
+
 /* This is an internally used function to create pixmaps. */
 GtkWidget*
 create_pixmap                          (GtkWidget       *widget,
                                         const gchar     *filename)
 {
-  gchar *found_filename = NULL;
-  GdkColormap *colormap;
-  GdkPixmap *gdkpixmap;
-  GdkBitmap *mask;
+  gchar *pathname = NULL;
   GtkWidget *pixmap;
-  GList *elem;
+
+  if (!filename || !filename[0])
+      return gtk_image_new ();
 
-  /* We first try any pixmaps directories set by the application. */
-  elem = pixmaps_directories;
-  while (elem)
+  pathname = find_pixmap_file (filename);
+
+  if (!pathname)
     {
-      found_filename = check_file_exists ((gchar*)elem->data, filename);
-      if (found_filename)
-        break;
-      elem = elem->next;
+      g_warning (_("Couldn't find pixmap file: %s"), filename);
+      return gtk_image_new ();
     }
 
-  /* If we haven't found the pixmap, try the source directory. */
-  if (!found_filename)
-    {
-      found_filename = check_file_exists ("../pixmaps", filename);
-    }
-
-  if (!found_filename)
-    {
-      g_warning (_("Couldn't find pixmap file: %s"), filename);
-      return create_dummy_pixmap (widget);
-    }
-
-  colormap = gtk_widget_get_colormap (widget);
-  gdkpixmap = gdk_pixmap_colormap_create_from_xpm (NULL, colormap, &mask,
-                                                   NULL, found_filename);
-  if (gdkpixmap == NULL)
-    {
-      g_warning (_("Error loading pixmap file: %s"), found_filename);
-      g_free (found_filename);
-      return create_dummy_pixmap (widget);
-    }
-  g_free (found_filename);
-  pixmap = gtk_pixmap_new (gdkpixmap, mask);
-  gdk_pixmap_unref (gdkpixmap);
-  gdk_bitmap_unref (mask);
+  pixmap = gtk_image_new_from_file (pathname);
+  g_free (pathname);
   return pixmap;
 }
 
-/* This is an internally used function to check if a pixmap file exists. */
-gchar*
-check_file_exists                      (const gchar     *directory,
-                                        const gchar     *filename)
+/* This is an internally used function to create pixmaps. */
+GdkPixbuf*
+create_pixbuf                          (const gchar     *filename)
 {
-  gchar *full_filename;
-  struct stat s;
-  gint status;
+  gchar *pathname = NULL;
+  GdkPixbuf *pixbuf;
+  GError *error = NULL;
+
+  if (!filename || !filename[0])
+      return NULL;
+
+  pathname = find_pixmap_file (filename);
 
-  full_filename = (gchar*) g_malloc (strlen (directory) + 1
-                                     + strlen (filename) + 1);
-  strcpy (full_filename, directory);
-  strcat (full_filename, G_DIR_SEPARATOR_S);
-  strcat (full_filename, filename);
+  if (!pathname)
+    {
+      g_warning (_("Couldn't find pixmap file: %s"), filename);
+      return NULL;
+    }
 
-  status = stat (full_filename, &s);
-  if (status == 0 && S_ISREG (s.st_mode))
-    return full_filename;
-  g_free (full_filename);
-  return NULL;
+  pixbuf = gdk_pixbuf_new_from_file (pathname, &error);
+  if (!pixbuf)
+    {
+      fprintf (stderr, "Failed to load pixbuf file: %s: %s\n",
+               pathname, error->message);
+      g_error_free (error);
+    }
+  g_free (pathname);
+  return pixbuf;
 }
 
+/* This is used to set ATK action descriptions. */
+void
+glade_set_atk_action_description       (AtkAction       *action,
+                                        const gchar     *action_name,
+                                        const gchar     *description)
+{
+  gint n_actions, i;
+
+  n_actions = atk_action_get_n_actions (action);
+  for (i = 0; i < n_actions; i++)
+    {
+      if (!strcmp (atk_action_get_name (action, i), action_name))
+        atk_action_set_description (action, i, description);
+    }
+}
+
--- a/src/modplug/gui/support.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/modplug/gui/support.h	Thu Sep 13 12:10:39 2007 -0500
@@ -11,10 +11,11 @@
 /*
  * Standard gettext macros.
  */
-#if defined ENABLE_NLS && !defined __NetBSD__
+#ifdef ENABLE_NLS
 #  include <libintl.h>
 #  undef _
 #  define _(String) dgettext (PACKAGE, String)
+#  define Q_(String) g_strip_context ((String), gettext (String))
 #  ifdef gettext_noop
 #    define N_(String) gettext_noop (String)
 #  else
@@ -27,6 +28,7 @@
 #  define dcgettext(Domain,Message,Type) (Message)
 #  define bindtextdomain(Domain,Directory) (Domain)
 #  define _(String) (String)
+#  define Q_(String) g_strip_context ((String), (String))
 #  define N_(String) (String)
 #endif
 
@@ -44,8 +46,6 @@
 GtkWidget*  lookup_widget              (GtkWidget       *widget,
                                         const gchar     *widget_name);
 
-/* get_widget() is deprecated. Use lookup_widget instead. */
-#define get_widget lookup_widget
 
 /* Use this function to set the directory containing installed pixmaps. */
 void        add_pixmap_directory       (const gchar     *directory);
@@ -55,7 +55,15 @@
  * Private Functions.
  */
 
-/* This is used to create the pixmaps in the interface. */
+/* This is used to create the pixmaps used in the interface. */
 GtkWidget*  create_pixmap              (GtkWidget       *widget,
                                         const gchar     *filename);
 
+/* This is used to create the pixbufs used in the interface. */
+GdkPixbuf*  create_pixbuf              (const gchar     *filename);
+
+/* This is used to set ATK action descriptions. */
+void        glade_set_atk_action_description (AtkAction       *action,
+                                              const gchar     *action_name,
+                                              const gchar     *description);
+
--- a/src/modplug/modplugbmp.cxx	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/modplug/modplugbmp.cxx	Thu Sep 13 12:10:39 2007 -0500
@@ -19,13 +19,14 @@
 #include "audacious/tuple.h"
 #include "audacious/tuple_formatter.h"
 #include "audacious/vfs.h"
+#include "audacious/strings.h"
 }
 
 static char* format_and_free_ti( Tuple* ti, int* length )
 {
         char* result = tuple_formatter_make_title_string(ti, get_gentitle_format());
         if ( result )
-                *length = tuple_get_int(ti, "length");
+                *length = tuple_get_int(ti, FIELD_LENGTH, NULL);
         tuple_free((void *) ti);
 
         return result;
@@ -110,13 +111,13 @@
 {
 	string lExt;
 	uint32 lPos;
+	const int magicSize = 32;
+	char magic[magicSize];
 
-	gchar magic[4];
-
-	vfs_fread(magic, 1, 4, file);
+	vfs_fread(magic, 1, magicSize, file);
 	if (!memcmp(magic, UMX_MAGIC, 4))
 		return true;
-	if (!memcmp(magic, XM_MAGIC, 4))
+	if (!memcmp(magic, "Extended Module:", 16))
 		return true;
 	if (!memcmp(magic, M669_MAGIC, 2))
 		return true;
@@ -131,12 +132,22 @@
 	vfs_fread(magic, 1, 4, file);
 	if (!memcmp(magic, S3M_MAGIC, 4))
 		return true;
+
 	vfs_fseek(file, 1080, SEEK_SET);
 	vfs_fread(magic, 1, 4, file);
-	if (!memcmp(magic, MOD_MAGIC_FASTTRACKER6, 4))
-		return true;
-	if (!memcmp(magic, MOD_MAGIC_FASTTRACKER8, 4))
-		return true;
+	
+	// Check for Fast Tracker multichannel modules (xCHN, xxCH)
+	if (magic[1] == 'C' && magic[2] == 'H' && magic[3] == 'N') {
+		if (magic[0] == '6' || magic[0] == '8')
+			return true;
+	}
+	if (magic[2] == 'C' && magic[3] == 'H' && isdigit(magic[0]) && isdigit(magic[1])) {
+		int nch = (magic[0] - '0') * 10 + (magic[1] - '0');
+		if ((nch % 2 == 0) && nch >= 10)
+			return true;
+	}
+	
+	// Check for Amiga MOD module formats
 	if(mModProps.mGrabAmigaMOD) {
 	if (!memcmp(magic, MOD_MAGIC_PROTRACKER4, 4))
 		return true;
@@ -495,6 +506,7 @@
 {
 	CSoundFile* lSoundFile;
 	Archive* lArchive;
+	gchar* tmps;
 	
 	//open and mmap the file
         lArchive = OpenArchive(aFilename);
@@ -507,78 +519,43 @@
 	Tuple *ti = tuple_new_from_filename(aFilename.c_str());
 	lSoundFile = new CSoundFile;
 	lSoundFile->Create((uchar*)lArchive->Map(), lArchive->Size());
+	
 	switch(lSoundFile->GetType())
         {
-	case MOD_TYPE_MOD:
-		tuple_associate_string(ti, "codec", "ProTracker");
-		break;
-	case MOD_TYPE_S3M:
-		tuple_associate_string(ti, "codec", "Scream Tracker 3");
-		break;
-	case MOD_TYPE_XM:
-		tuple_associate_string(ti, "codec", "Fast Tracker 2");
-		break;
-	case MOD_TYPE_IT:
-		tuple_associate_string(ti, "codec", "Impulse Tracker");
-		break;
-	case MOD_TYPE_MED:
-		tuple_associate_string(ti, "codec", "OctaMed");
-		break;
-	case MOD_TYPE_MTM:
-		tuple_associate_string(ti, "codec", "MultiTracker Module");
-		break;
-	case MOD_TYPE_669:
-		tuple_associate_string(ti, "codec", "669 Composer / UNIS 669");
-		break;
-	case MOD_TYPE_ULT:
-		tuple_associate_string(ti, "codec", "Ultra Tracker");
-		break;
-	case MOD_TYPE_STM:
-		tuple_associate_string(ti, "codec", "Scream Tracker");
-		break;
-	case MOD_TYPE_FAR:
-		tuple_associate_string(ti, "codec", "Farandole");
-		break;
-	case MOD_TYPE_AMF:
-		tuple_associate_string(ti, "codec", "ASYLUM Music Format");
-		break;
-	case MOD_TYPE_AMS:
-		tuple_associate_string(ti, "codec", "AMS module");
-		break;
-	case MOD_TYPE_DSM:
-		tuple_associate_string(ti, "codec", "DSIK Internal Format");
-		break;
-	case MOD_TYPE_MDL:
-		tuple_associate_string(ti, "codec", "DigiTracker");
-		break;
-	case MOD_TYPE_OKT:
-		tuple_associate_string(ti, "codec", "Oktalyzer");
-		break;
-	case MOD_TYPE_DMF:
-		tuple_associate_string(ti, "codec", "Delusion Digital Music Fileformat (X-Tracker)");
-		break;
-	case MOD_TYPE_PTM:
-		tuple_associate_string(ti, "codec", "PolyTracker");
-		break;
-	case MOD_TYPE_DBM:
-		tuple_associate_string(ti, "codec", "DigiBooster Pro");
-		break;
-	case MOD_TYPE_MT2:
-		tuple_associate_string(ti, "codec", "MadTracker 2");
-		break;
-	case MOD_TYPE_AMF0:
-		tuple_associate_string(ti, "codec", "AMF0");
-		break;
-	case MOD_TYPE_PSM:
-		tuple_associate_string(ti, "codec", "Protracker Studio Module");
-		break;
-	default:
-		tuple_associate_string(ti, "codec", "ModPlug unknown");
-		break;
+	case MOD_TYPE_MOD:	tmps = "ProTracker"; break;
+	case MOD_TYPE_S3M:	tmps = "Scream Tracker 3"; break;
+	case MOD_TYPE_XM:	tmps = "Fast Tracker 2"; break;
+	case MOD_TYPE_IT:	tmps = "Impulse Tracker"; break;
+	case MOD_TYPE_MED:	tmps = "OctaMed"; break;
+	case MOD_TYPE_MTM:	tmps = "MultiTracker Module"; break;
+	case MOD_TYPE_669:	tmps = "669 Composer / UNIS 669"; break;
+	case MOD_TYPE_ULT:	tmps = "Ultra Tracker"; break;
+	case MOD_TYPE_STM:	tmps = "Scream Tracker"; break;
+	case MOD_TYPE_FAR:	tmps = "Farandole"; break;
+	case MOD_TYPE_AMF:	tmps = "ASYLUM Music Format"; break;
+	case MOD_TYPE_AMS:	tmps = "AMS module"; break;
+	case MOD_TYPE_DSM:	tmps = "DSIK Internal Format"; break;
+	case MOD_TYPE_MDL:	tmps = "DigiTracker"; break;
+	case MOD_TYPE_OKT:	tmps = "Oktalyzer"; break;
+	case MOD_TYPE_DMF:	tmps = "Delusion Digital Music Fileformat (X-Tracker)"; break;
+	case MOD_TYPE_PTM:	tmps = "PolyTracker"; break;
+	case MOD_TYPE_DBM:	tmps = "DigiBooster Pro"; break;
+	case MOD_TYPE_MT2:	tmps = "MadTracker 2"; break;
+	case MOD_TYPE_AMF0:	tmps = "AMF0"; break;
+	case MOD_TYPE_PSM:	tmps = "Protracker Studio Module"; break;
+	default:		tmps = "ModPlug unknown"; break;
 	}
-	tuple_associate_string(ti, "quality", "sequenced");
-	tuple_associate_string(ti, "title", lSoundFile->GetTitle());
-	tuple_associate_int(ti, "length", lSoundFile->GetSongTime() * 1000);
+	tuple_associate_string(ti, FIELD_CODEC, NULL, tmps);
+	tuple_associate_string(ti, FIELD_QUALITY, NULL, "sequenced");
+	tuple_associate_int(ti, FIELD_LENGTH, NULL, lSoundFile->GetSongTime() * 1000);
+
+	/* NOTICE! FIXME? This is actually incorrect. We _cannot_ know what charset
+	 * an arbitrary module file uses .. typically it is some DOS CP-variant,
+	 * except for true Amiga modules.
+	 */
+	tmps = str_to_utf8(lSoundFile->GetTitle());
+	tuple_associate_string(ti, FIELD_TITLE, NULL, lSoundFile->GetTitle());
+	g_free(tmps);
 	
 	//unload the file
 	lSoundFile->Destroy();
--- a/src/modplug/modplugbmp.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/modplug/modplugbmp.h	Thu Sep 13 12:10:39 2007 -0500
@@ -29,8 +29,6 @@
 #define MOD_MAGIC_STARTRACKER4X	(unsigned char [4]) { 0x45, 0x58, 0x30, 0x34 }  // "EX04" - Startracker 4 channel (Startrekker/AudioSculpture)
 #define MOD_MAGIC_STARTRACKER8X	(unsigned char [4]) { 0x45, 0x58, 0x30, 0x38 }  // "EX08" - Startracker 8 channel (Startrekker/AudioSculpture) 
 #define MOD_MAGIC_FASTTRACKER4	(unsigned char [4]) { 0x34, 0x43, 0x48, 0x4E }  // "4CHN" - Fasttracker 4 channel
-#define MOD_MAGIC_FASTTRACKER6	(unsigned char [4]) { 0x36, 0x43, 0x48, 0x4E }  // "6CHN" - Fasttracker 6 channel
-#define MOD_MAGIC_FASTTRACKER8	(unsigned char [4]) { 0x38, 0x43, 0x48, 0x4E }  // "8CHN" - Fasttracker 8 channel
 #define MOD_MAGIC_OKTALYZER8	(unsigned char [4]) { 0x43, 0x44, 0x38, 0x31 }  // "CD81" - Atari oktalyzer 8 channel
 #define MOD_MAGIC_OKTALYZER8X	(unsigned char [4]) { 0x4F, 0x4B, 0x54, 0x41 }  // "OKTA" - Atari oktalyzer 8 channel
 #define MOD_MAGIC_TAKETRACKER16	(unsigned char [4]) { 0x31, 0x36, 0x43, 0x4E }  // "16CN" - Taketracker 16 channel
--- a/src/modplug/plugin.cxx	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/modplug/plugin.cxx	Thu Sep 13 12:10:39 2007 -0500
@@ -16,108 +16,109 @@
 
 static void Init(void)
 {
-	gModplugXMMS.SetInputPlugin(gModPlug);
-	gModplugXMMS.Init();
+    gModplugXMMS.SetInputPlugin(gModPlug);
+    gModplugXMMS.Init();
 }
 
 static int CanPlayFileFromVFS(char* aFilename, VFSFile *VFSFile)
 {
-	if(gModplugXMMS.CanPlayFileFromVFS(aFilename, VFSFile))
-		return 1;
-	return 0;
+    if(gModplugXMMS.CanPlayFileFromVFS(aFilename, VFSFile))
+        return 1;
+    return 0;
 }
 
 static void PlayFile(InputPlayback *data)
 {
         char* aFilename = data->filename;
-	gModplugXMMS.SetOutputPlugin(*data->output);
-	gModplugXMMS.PlayFile(aFilename, data);
+    gModplugXMMS.SetOutputPlugin(*data->output);
+    gModplugXMMS.PlayFile(aFilename, data);
 }
 
 static void Stop(InputPlayback *data)
 {
-	gModplugXMMS.Stop();
+    gModplugXMMS.Stop();
 }
 
 static void Pause(InputPlayback *data, short aPaused)
 {
-	gModplugXMMS.Pause((bool)aPaused);
+    gModplugXMMS.Pause((bool)aPaused);
 }
 
 static void Seek(InputPlayback *data, int aTime)
 {
-	gModplugXMMS.Seek(float32(aTime));
+    gModplugXMMS.Seek(float32(aTime));
 }
 
 static int GetTime(InputPlayback *data)
 {
-	float32 lTime;
-	
-	lTime = gModplugXMMS.GetTime();
-	if(lTime == -1)
-		return -1;
-	else
-		return (int)(lTime * 1000);
+    float32 lTime;
+    
+    lTime = gModplugXMMS.GetTime();
+    if(lTime == -1)
+        return -1;
+    else
+        return (int)(lTime * 1000);
 }
 
 static Tuple* GetSongTuple(char* aFilename)
 {
-	return gModplugXMMS.GetSongTuple(aFilename);
+    return gModplugXMMS.GetSongTuple(aFilename);
 }
 
 void ShowAboutBox(void)
 {
-	ShowAboutWindow();
+    ShowAboutWindow();
 }
 
 void ShowConfigureBox(void)
 {
-	ShowConfigureWindow(gModplugXMMS.GetModProps());
+    ShowConfigureWindow(gModplugXMMS.GetModProps());
 }
 
 void ShowFileInfoBox(char* aFilename)
 {
-	ShowInfoWindow(aFilename);
+    ShowInfoWindow(aFilename);
 }
 
 const gchar *fmts[] =
-	{ "amf", "ams", "dbm", "dbf", "dsm", "far", "mdl", "stm", "ult", "j2b", "mt2",
-	  "mdz", "mdr", "mdgz", "mdbz", "mod", "s3z", "s3r", "s3gz", "s3m", "xmz", "xmr", "xmgz",
-	  "itz", "itr", "itgz", "dmf", "umx", "it", "669", "xm", "mtm", "psm", "ft2", NULL };
+    { "amf", "ams", "dbm", "dbf", "dsm", "far", "mdl", "stm", "ult", "j2b", "mt2",
+      "mdz", "mdr", "mdgz", "mdbz", "mod", "s3z", "s3r", "s3gz", "s3m", "xmz", "xmr", "xmgz",
+      "itz", "itr", "itgz", "dmf", "umx", "it", "669", "xm", "mtm", "psm", "ft2", NULL };
 
 InputPlugin gModPlug =
 {
-	NULL,
-	NULL,
-	(gchar *)"ModPlug Audio Plugin",
-	Init,
-	ShowAboutBox,
-	ShowConfigureBox,
-	NULL,
-	NULL,
-	PlayFile,
-	Stop,
-	Pause,
-	Seek,
-	NULL,
-	GetTime,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	ShowFileInfoBox,
-	NULL,	// output
-	GetSongTuple,
-	NULL,
-	NULL,
-	CanPlayFileFromVFS,	// vfs
-	(gchar **)fmts,
+    NULL,
+    NULL,
+    (gchar *)"ModPlug Audio Plugin",
+    Init,
+    NULL,
+    ShowAboutBox,
+    ShowConfigureBox,
+    FALSE,
+    NULL,
+    NULL,
+    PlayFile,
+    Stop,
+    Pause,
+    Seek,
+    NULL,
+    GetTime,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    ShowFileInfoBox,
+    NULL,   // output
+    GetSongTuple,
+    NULL,
+    NULL,
+    CanPlayFileFromVFS, // vfs
+    (gchar **)fmts
 };
 
 InputPlugin *modplug_iplist[] = { &gModPlug, NULL };
 
-DECLARE_PLUGIN(modplug, NULL, NULL, modplug_iplist, NULL, NULL, NULL, NULL,NULL);
+SIMPLE_INPUT_PLUGIN(modplug, modplug_iplist);
--- a/src/mtp_up/mtp.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/mtp_up/mtp.c	Thu Sep 13 12:10:39 2007 -0500
@@ -110,7 +110,7 @@
     Playlist *current_play = playlist_get_active();
 
     node = current_play->entries;
-    PLAYLIST_LOCK(current_play->mutex);     /*needed so that the user doesn't modify the selection*/ 
+    PLAYLIST_LOCK(current_play);            /*needed so that the user doesn't modify the selection*/ 
     while (node)                            /*while creating the list of files to be uploaded*/
     {
         entry = PLAYLIST_ENTRY(node->data);
@@ -122,7 +122,7 @@
         }
         node = g_list_next(node);
     }
-    PLAYLIST_UNLOCK(current_play->mutex);
+    PLAYLIST_UNLOCK(current_play);
     return g_list_reverse(up_list);
 }
 
@@ -135,7 +135,7 @@
     uint32_t parent_id = 0;
     struct stat sb;
 
-    from_path = g_strdup_printf("%s/%s", tuple_get_string(from_tuple, "file-path"), tuple_get_string(from_tuple, "file-name"));
+    from_path = g_strdup_printf("%s/%s", tuple_get_string(from_tuple, FIELD_FILE_PATH, NULL), tuple_get_string(from_tuple, FIELD_FILE_NAME, NULL));
     gchar *tmp;
     tmp = g_strescape(from_path,NULL);
     filename=g_filename_from_uri(tmp,NULL,NULL);
@@ -162,15 +162,15 @@
 
     /* track metadata*/
     tr = LIBMTP_new_track_t();
-    tr->title =g_strdup((gchar*) tuple_get_string(from_tuple, "title")); 
-    tr->artist =g_strdup((gchar*) tuple_get_string(from_tuple,"artist"));
-    tr->album = g_strdup((gchar*)tuple_get_string(from_tuple,"album"));
+    tr->title = g_strdup((gchar*) tuple_get_string(from_tuple, FIELD_TITLE, NULL)); 
+    tr->artist = g_strdup((gchar*) tuple_get_string(from_tuple, FIELD_ARTIST, NULL));
+    tr->album = g_strdup((gchar*)tuple_get_string(from_tuple, FIELD_ALBUM, NULL));
     tr->filesize = filesize;
-    tr->filename = g_strdup(tuple_get_string(from_tuple, "file-name"));
-    tr->duration = (uint32_t)tuple_get_int(from_tuple, "length");
+    tr->filename = g_strdup(tuple_get_string(from_tuple, FIELD_FILE_NAME, NULL));
+    tr->duration = (uint32_t)tuple_get_int(from_tuple, FIELD_LENGTH, NULL);
     tr->filetype = find_filetype (from_path);
-    tr->genre = g_strdup((gchar*)tuple_get_string(from_tuple, "genre"));
-    tr->date = g_strdup_printf("%d",tuple_get_int(from_tuple, "year"));
+    tr->genre = g_strdup((gchar*)tuple_get_string(from_tuple, FIELD_GENRE, NULL));
+    tr->date = g_strdup_printf("%d",tuple_get_int(from_tuple, FIELD_YEAR, NULL));
     g_free(filename);
     g_free(from_path);
     g_free(tmp); 
@@ -184,7 +184,7 @@
     uint32_t parent_id = 0;
     LIBMTP_track_t *gentrack;
     gentrack = track_metadata(from_tuple);
-    from_path = g_strdup_printf("%s/%s", tuple_get_string(from_tuple, "file-path"), tuple_get_string(from_tuple, "file-name"));
+    from_path = g_strdup_printf("%s/%s", tuple_get_string(from_tuple, FIELD_FILE_PATH, NULL), tuple_get_string(from_tuple, FIELD_FILE_NAME, NULL));
     if(gentrack == NULL) return 1;
     comp = g_strescape(from_path,NULL);
     g_free(from_path);
--- a/src/musepack/libmpc.cxx	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/musepack/libmpc.cxx	Thu Sep 13 12:10:39 2007 -0500
@@ -15,8 +15,10 @@
     NULL,           //Filename                  char* filename
     (gchar *)"Musepack Audio Plugin",
     mpcOpenPlugin,  //Open Plugin               [CALLBACK]
+    NULL,           //Cleanup                   [UNUSED]
     mpcAboutBox,    //Show About box            [CALLBACK]
     mpcConfigBox,   //Show Configure box        [CALLBACK]
+    FALSE,          //Enabled/Disabled          [BOOLEAN]
     mpcIsOurFile,   //Check if it's our file    [CALLBACK]
     NULL,           //Scan the directory        [UNUSED]
     mpcPlay,        //Play                      [CALLBACK]
@@ -27,7 +29,6 @@
     mpcGetTime,     //Get Time                  [CALLBACK]
     NULL,           //Get Volume                [UNUSED]
     NULL,           //Set Volume                [UNUSED]
-    NULL,           //Close Plugin              [UNUSED]
     NULL,           //Obsolete                  [UNUSED]
     NULL,           //Visual plugins            add_vis_pcm(int time, AFormat fmt, int nch, int length, void *ptr)
     NULL,           //Set Info Settings         set_info(char *title, int length, int rate, int freq, int nch)
@@ -145,7 +146,7 @@
         char* titleText      = g_strdup_printf(_("Musepack Decoder Plugin 1.2"));
         const char* contentText = _("Plugin code by\nBenoit Amiaux\nMartin Spuler\nKuniklo\n\nGet latest version at http://musepack.net\n");
         const char* buttonText  = _("Nevermind");
-        aboutBox = xmms_show_message(titleText, contentText, buttonText, FALSE, NULL, NULL);
+        aboutBox = audacious_info_dialog(titleText, contentText, buttonText, FALSE, NULL, NULL);
         widgets.aboutBox = aboutBox;
         g_signal_connect(G_OBJECT(aboutBox), "destroy", G_CALLBACK(gtk_widget_destroyed), &widgets.aboutBox);
     }
@@ -358,14 +359,14 @@
 
         MpcInfo tags = getTags(p_Filename);
 
-        tuple_associate_string(tuple, "date", tags.date);
-        tuple_associate_string(tuple, "title", tags.title);
-        tuple_associate_string(tuple, "artist", tags.artist);
-        tuple_associate_string(tuple, "album", tags.album);
-        tuple_associate_int(tuple, "track-number", tags.track);
-        tuple_associate_int(tuple, "year", tags.year);
-        tuple_associate_string(tuple, "genre", tags.genre);
-        tuple_associate_string(tuple, "comment", tags.comment);
+        tuple_associate_string(tuple, FIELD_DATE, NULL, tags.date);
+        tuple_associate_string(tuple, FIELD_TITLE, NULL, tags.title);
+        tuple_associate_string(tuple, FIELD_ARTIST, NULL, tags.artist);
+        tuple_associate_string(tuple, FIELD_ALBUM, NULL, tags.album);
+        tuple_associate_int(tuple, FIELD_TRACK_NUMBER, NULL, tags.track);
+        tuple_associate_int(tuple, FIELD_YEAR, NULL, tags.year);
+        tuple_associate_string(tuple, FIELD_GENRE, NULL, tags.genre);
+        tuple_associate_string(tuple, FIELD_COMMENT, NULL, tags.comment);
 
         freeTags(tags);
 
@@ -374,14 +375,14 @@
         mpc_reader_setup_file_vfs(&reader, input);
         mpc_streaminfo_read(&info, &reader.reader);
 
-        tuple_associate_int(tuple, "length", static_cast<int> (1000 * mpc_streaminfo_get_length(&info)));
+        tuple_associate_int(tuple, FIELD_LENGTH, NULL, static_cast<int> (1000 * mpc_streaminfo_get_length(&info)));
 
         gchar *scratch = g_strdup_printf("Musepack v%d (encoder %s)", info.stream_version, info.encoder);
-        tuple_associate_string(tuple, "codec", scratch);
+        tuple_associate_string(tuple, FIELD_CODEC, NULL, scratch);
         g_free(scratch);
 
         scratch = g_strdup_printf("lossy (%s)", info.profile_name);
-        tuple_associate_string(tuple, "quality", scratch);
+        tuple_associate_string(tuple, FIELD_QUALITY, NULL, scratch);
         g_free(scratch);
 
         vfs_fclose(input);
@@ -864,7 +865,7 @@
         else
         {
             lockRelease();
-            xmms_usleep(10000);
+            g_usleep(10000);
         }
     }
     return endThread(filename, input, false);
--- a/src/null/null.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/null/null.c	Thu Sep 13 12:10:39 2007 -0500
@@ -62,7 +62,7 @@
 			           _(" by Christian Birchinger <joker@netswarm.net>\n"
 			             "based on the XMMS plugin by Håvard Kvål <havardk@xmms.org>"), NULL);
 
-	about = xmms_show_message(_("About Null Output"),
+	about = audacious_info_dialog(_("About Null Output"),
 				  about_text,
 				  _("Ok"), FALSE, NULL, NULL);
 
@@ -149,22 +149,12 @@
 
 static void null_write(void *ptr, int length)
 {
-#if 0
-	EffectPlugin *ep;
-#endif
 	if (timer && !started)
 	{
 		g_timer_start(timer);
 		started = TRUE;
 	}
 
-#if 0
-	if ((ep = get_current_effect_plugin()) != NULL &&
-	    effects_enabled() && ep->mod_samples)
-		ep->mod_samples(&ptr, length, input_format.format,
-				input_format.frequency, input_format.channels);
-#endif
-
 	written += length;
 }
 
@@ -240,25 +230,19 @@
 
 OutputPlugin null_op =
 {
-	NULL,
-	NULL,
-	"Null Output Plugin",
-	null_init,
-	NULL,			/* cleanup */
-	null_about,
-	null_configure,
-	NULL,			/* Get volume */
-	NULL,			/* Set volume */
-	null_open,
-	null_write,
-	null_close,
-	null_flush,
-	null_pause,
-	null_buffer_free,
-	null_playing,
-	null_get_output_time,
-	null_get_written_time,
-	NULL			/* tell */
+	.description = "Null Output Plugin",
+	.init = null_init,
+	.about = null_about,
+	.configure = null_configure,
+	.open_audio = null_open,
+	.write_audio = null_write,
+	.close_audio = null_close,
+	.flush = null_flush,
+	.pause = null_pause,
+	.buffer_free = null_buffer_free,
+	.buffer_playing = null_playing,
+	.output_time = null_get_output_time,
+	.written_time = null_get_written_time,
 };
 
 OutputPlugin *null_oplist[] = { &null_op, NULL };
--- a/src/paranormal/plugin.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/paranormal/plugin.c	Thu Sep 13 12:10:39 2007 -0500
@@ -60,20 +60,15 @@
 
 static VisPlugin pn_vp = 
 {
-  NULL,
-  NULL,
-  "Paranormal Visualization Studio",
-  2,
-  2,
-  pn_xmms_init,
-  pn_xmms_cleanup,
-  pn_xmms_about,
-  pn_xmms_configure,
-  NULL, /* disable_plugin */
-  NULL, /* pn_xmms_playback_start */
-  NULL, /* pn_xmms_playback_stop */
-  pn_xmms_render_pcm,
-  pn_xmms_render_freq
+  .description = "Paranormal Visualization Studio",
+  .num_pcm_chs_wanted = 2,
+  .num_freq_chs_wanted = 2,
+  .init = pn_xmms_init,
+  .cleanup = pn_xmms_cleanup,
+  .about = pn_xmms_about,
+  .configure = pn_xmms_configure,
+  .render_pcm = pn_xmms_render_pcm,
+  .render_freq = pn_xmms_render_freq
 };
 
 VisPlugin *pn_vplist[] = { &pn_vp, NULL };
@@ -266,7 +261,7 @@
 static void
 pn_xmms_about (void)
 {
-  xmms_show_message("About Paranormal Visualization Studio", 
+  audacious_info_dialog("About Paranormal Visualization Studio", 
 
 "Paranormal Visualization Studio " VERSION "\n\n\
 Copyright (C) 2006, William Pitcock <nenolod -at- nenolod.net>\n\
--- a/src/pls/pls.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/pls/pls.c	Thu Sep 13 12:10:39 2007 -0500
@@ -110,7 +110,7 @@
     vfs_fprintf(file, "[playlist]\n");
     vfs_fprintf(file, "NumberOfEntries=%d\n", playlist_get_length(playlist));
 
-    PLAYLIST_LOCK(playlist->mutex);
+    PLAYLIST_LOCK(playlist);
 
     for (node = playlist->entries; node; node = g_list_next(node)) {
         PlaylistEntry *entry = PLAYLIST_ENTRY(node->data);
@@ -127,7 +127,7 @@
         g_free(fn);
     }
 
-    PLAYLIST_UNLOCK(playlist->mutex);
+    PLAYLIST_UNLOCK(playlist);
 
     vfs_fclose(file);
 }
--- a/src/projectm/main.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/projectm/main.c	Thu Sep 13 12:10:39 2007 -0500
@@ -73,20 +73,17 @@
 
 // Callback functions
 VisPlugin projectM_vtable = {
-  NULL, // Handle, filled in by xmms
-  NULL, // Filename, filled in by xmms
-  "projectM v0.99",       // description
-  2, // # of PCM channels for render_pcm()
-  0, // # of freq channels wanted for render_freq()
-  projectM_xmms_init,     // Called when plugin is enabled
-  projectM_cleanup,        // Called when plugin is disabled
-  projectM_about,          // Show the about box
-  projectM_configure,      // Show the configure box
-  NULL,                     // Called to disable plugin, filled in by xmms
-  projectM_playback_start, // Called when playback starts
-  projectM_playback_stop,  // Called when playback stops
-  projectM_render_pcm,      // Render the PCM data, must return quickly
-  projectM_render_freq     // Render the freq data, must return quickly
+  .description = "projectM v0.99",       // description
+  .num_pcm_chs_wanted = 2, // # of PCM channels for render_pcm()
+  .num_freq_chs_wanted = 0, // # of freq channels wanted for render_freq()
+  .init = projectM_xmms_init,     // Called when plugin is enabled
+  .cleanup = projectM_cleanup,        // Called when plugin is disabled
+  .about = projectM_about,          // Show the about box
+  .configure = projectM_configure,      // Show the configure box
+  .playback_start = projectM_playback_start, // Called when playback starts
+  .playback_stop = projectM_playback_stop,  // Called when playback stops
+  .render_pcm = projectM_render_pcm,      // Render the PCM data, must return quickly
+  .render_freq = projectM_render_freq     // Render the freq data, must return quickly
 };
 
 VisPlugin *projectM_vplist[] = { &projectM_vtable, NULL };
--- a/src/pulse_audio/pulse_audio.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/pulse_audio/pulse_audio.c	Thu Sep 13 12:10:39 2007 -0500
@@ -674,7 +674,7 @@
     if (dialog != NULL)
         return;
 
-    dialog = xmms_show_message(
+    dialog = audacious_info_dialog(
             _("About Audacious PulseAudio Output Plugin"),
             _("Audacious PulseAudio Output Plugin\n\n "
             "This program is free software; you can redistribute it and/or modify\n"
@@ -704,27 +704,21 @@
 }
 
 static OutputPlugin pulse_op = {
-        NULL,
-        NULL,
-        "PulseAudio Output Plugin",
-        NULL,
-	NULL,
-        pulse_about,
-        NULL,
-        pulse_get_volume,
-        pulse_set_volume,
-        pulse_open,
-        pulse_write,
-        pulse_close,
-        pulse_flush,
-        pulse_pause,
-        pulse_free,
-        pulse_playing,
-        pulse_get_output_time,
-        pulse_get_written_time,
-	NULL,
+        .description = "PulseAudio Output Plugin",
+        .about = pulse_about,
+        .get_volume = pulse_get_volume,
+        .set_volume = pulse_set_volume,
+        .open_audio = pulse_open,
+        .write_audio = pulse_write,
+        .close_audio = pulse_close,
+        .flush = pulse_flush,
+        .pause = pulse_pause,
+        .buffer_free = pulse_free,
+        .buffer_playing = pulse_playing,
+        .output_time = pulse_get_output_time,
+        .written_time = pulse_get_written_time,
 };
 
 OutputPlugin *pulse_oplist[] = { &pulse_op, NULL };
 
-DECLARE_PLUGIN(pulse, NULL, NULL, NULL, pulse_oplist, NULL, NULL, NULL, NULL);
+SIMPLE_OUTPUT_PLUGIN(pulser, pulse_oplist);
--- a/src/rootvis/rootvis.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/rootvis/rootvis.c	Thu Sep 13 12:10:39 2007 -0500
@@ -23,28 +23,20 @@
 
 // Callback functions
 VisPlugin rootvis_vtable = {
-	0, // Handle, filled in by xmms
-	0, // Filename, filled in by xmms
-
-	"Root Spectrum Analyzer 0.0.8",  // description
-
-	0, // # of PCM channels for render_pcm()
-	2, // # of freq channels wanted for render_freq()
-
-	rootvis_init,           // Called when plugin is enabled
-	rootvis_cleanup,        // Called when plugin is disabled
-	NULL,//rootvis_about,          // Show the about box
-	rootvis_configure,      // Show the configure box
-	NULL,                     // Called to disable plugin, filled in by xmms
-	rootvis_playback_start, // Called when playback starts
-	rootvis_playback_stop,  // Called when playback stops
-	NULL,                     // Render the PCM data, must return quickly
-	rootvis_render_freq     // Render the freq data, must return quickly
+	.description = "Root Spectrum Analyzer 0.0.8",
+	.num_pcm_chs_wanted = 0,
+	.num_freq_chs_wanted = 2,
+	.init = rootvis_init,
+	.cleanup = rootvis_cleanup,
+	.configure = rootvis_configure,
+	.playback_start = rootvis_playback_start,
+	.playback_stop = rootvis_playback_stop,
+	.render_freq = rootvis_render_freq
 };
 
 VisPlugin *rootvis_vplist[] = { &rootvis_vtable, NULL };
 
-DECLARE_PLUGIN(rootvis, NULL, NULL, NULL, NULL, NULL, NULL, rootvis_vplist,NULL);
+SIMPLE_VISUAL_PLUGIN(rootvis, rootvis_vplist);
 
 // X related
 struct rootvis_x {
--- a/src/rovascope/plugin.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/rovascope/plugin.c	Thu Sep 13 12:10:39 2007 -0500
@@ -60,20 +60,15 @@
 
 static VisPlugin pn_vp = 
 {
-  NULL,
-  NULL,
-  "Rovascope " VERSION,
-  2,
-  2,
-  pn_xmms_init,
-  pn_xmms_cleanup,
-  pn_xmms_about,
-  pn_xmms_configure,
-  NULL, /* disable_plugin */
-  NULL, /* pn_xmms_playback_start */
-  NULL, /* pn_xmms_playback_stop */
-  pn_xmms_render_pcm,
-  pn_xmms_render_freq
+  .description = "Rovascope " VERSION,
+  .num_pcm_chs_wanted = 2,
+  .num_freq_chs_wanted = 2,
+  .init = pn_xmms_init,
+  .cleanup = pn_xmms_cleanup,
+  .about = pn_xmms_about,
+  .configure = pn_xmms_configure,
+  .render_pcm = pn_xmms_render_pcm,
+  .render_freq = pn_xmms_render_freq
 };
 
 VisPlugin *rovascope_vplist[] = { &pn_vp, NULL };
@@ -267,7 +262,7 @@
 static void
 pn_xmms_about (void)
 {
-  xmms_show_message("About Rovascope", 
+  audacious_info_dialog("About Rovascope", 
 
 "Rovascope " VERSION "\n\n\
 Copyright (C) 2007, William Pitcock <nenolod -at- dereferenced.org>\n\
--- a/src/scrobbler/fmt.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/scrobbler/fmt.c	Thu Sep 13 12:10:39 2007 -0500
@@ -9,11 +9,17 @@
 
 char *fmt_escape(const char *str)
 {
+	if (str == NULL)
+		return "";
+
 	return curl_escape(str, 0);
 }
 
 char *fmt_unescape(char *str)
 {
+	if (str == NULL)
+		return "";
+
 	return curl_unescape(str, 0);
 }
 
@@ -23,7 +29,7 @@
 	static char buf[30];
 
 	tm = gmt ? gmtime(&t) : localtime(&t);
-	snprintf(buf, sizeof(buf), "%d-%.2d-%.2d %.2d:%.2d:%.2d",
+	g_snprintf(buf, sizeof(buf), "%d-%.2d-%.2d %.2d:%.2d:%.2d",
 			tm->tm_year + 1900,
 			tm->tm_mon + 1,
 			tm->tm_mday,
--- a/src/scrobbler/gerpok.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/scrobbler/gerpok.c	Thu Sep 13 12:10:39 2007 -0500
@@ -92,10 +92,10 @@
 
 	item = malloc(sizeof(item_t));
 
-	item->artist = fmt_escape(tuple_get_string(tuple, "artist"));
-	item->title = fmt_escape(tuple_get_string(tuple, "title"));
+	item->artist = fmt_escape(tuple_get_string(tuple, FIELD_ARTIST, NULL));
+	item->title = fmt_escape(tuple_get_string(tuple, FIELD_TITLE, NULL));
 	item->utctime = fmt_escape(fmt_timestr(time(NULL), 1));
-	snprintf(item->len, sizeof(item->len), "%d", len);
+	g_snprintf(item->len, sizeof(item->len), "%d", len);
 
 #ifdef NOTYET
 	if(tuple->mb == NULL)
@@ -106,7 +106,7 @@
 		item->mb = fmt_escape((char*)tuple->mb);
 #endif
 
-	if((album = tuple_get_string(tuple, "album")))
+	if((album = tuple_get_string(tuple, FIELD_ALBUM, NULL)))
 		item->album = fmt_escape("");
 	else
 		item->album = fmt_escape((char*) album);
@@ -412,7 +412,7 @@
 	char buf[4096];
 	CURL *curl;
 
-	snprintf(buf, sizeof(buf), "%s/?hs=true&p=%s&c=%s&v=%s&u=%s",
+	g_snprintf(buf, sizeof(buf), "%s/?hs=true&p=%s&c=%s&v=%s&u=%s",
 			SCROBBLER_HS_URL, SCROBBLER_VERSION,
 			SCROBBLER_CLI_ID, SCROBBLER_IMPLEMENTATION, gerpok_sc_username);
 
@@ -568,9 +568,9 @@
 
 static gchar *gerpok_sc_itemtag(char c, int n, char *str)
 {
-    static char buf[SCROBBLER_SB_MAXLEN]; 
-    snprintf(buf, SCROBBLER_SB_MAXLEN, "&%c[%d]=%s", c, n, str);
-    return buf;
+	static char buf[SCROBBLER_SB_MAXLEN]; 
+	g_snprintf(buf, SCROBBLER_SB_MAXLEN, "&%c[%d]=%s", c, n, str);
+	return buf;
 }
 
 #define cfa(f, l, n, v) \
@@ -748,7 +748,7 @@
 
 	cachesize = written = 0;
 
-	snprintf(buf, sizeof(buf), "%s/gerpokqueue.txt", audacious_get_localdir());
+	g_snprintf(buf, sizeof(buf), "%s/gerpokqueue.txt", audacious_get_localdir());
 
 	if (!(fd = fopen(buf, "r")))
 		return;
@@ -832,7 +832,7 @@
 		return;
 	}
 
-	snprintf(buf, sizeof(buf), "%s/gerpokqueue.txt", audacious_get_localdir());
+	g_snprintf(buf, sizeof(buf), "%s/gerpokqueue.txt", audacious_get_localdir());
 
 	if (!(fd = fopen(buf, "w")))
 	{
--- a/src/scrobbler/gtkstuff.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/scrobbler/gtkstuff.c	Thu Sep 13 12:10:39 2007 -0500
@@ -19,7 +19,7 @@
 
 	tmp = g_strdup_printf(_("Audacious AudioScrobbler Plugin\n\n"
 				"Originally created by Audun Hove <audun@nlc.no> and Pipian <pipian@pipian.com>\n"));
-	aboutbox = xmms_show_message(_("About Scrobbler Plugin"),
+	aboutbox = audacious_info_dialog(_("About Scrobbler Plugin"),
 			tmp,
 			_("Ok"), FALSE, NULL, NULL);
 
@@ -38,7 +38,7 @@
 			"%s\n"),
 			errortxt);
 
-	xmms_show_message(_("Scrobbler Error"),
+	audacious_info_dialog(_("Scrobbler Error"),
 			tmp,
 			_("OK"), FALSE, NULL, NULL);
 	g_free(tmp);
--- a/src/scrobbler/plugin.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/scrobbler/plugin.c	Thu Sep 13 12:10:39 2007 -0500
@@ -56,13 +56,10 @@
 
 static GeneralPlugin scrobbler_gp =
 {
-	NULL,
-	NULL,
-	"Scrobbler Plugin",
-	init,
-	about_show,
-	NULL,
-	cleanup
+	.description = "Scrobbler Plugin",
+	.init = init,
+	.about = about_show,
+	.cleanup = cleanup
 };
 
 static gboolean ishttp(const char *a)
@@ -243,16 +240,19 @@
 			if (tuple == NULL)
 				continue;
 
-			if (ishttp(tuple_get_string(tuple, "file-name")))
+			if (ishttp(tuple_get_string(tuple, FIELD_FILE_NAME, NULL)))
 				continue;
 
-			if(tuple_get_string(tuple, "artist") != NULL && tuple_get_string(tuple, "title") != NULL)
+			if (tuple_get_string(tuple, FIELD_ARTIST, NULL) != NULL &&
+				tuple_get_string(tuple, FIELD_TITLE, NULL) != NULL)
 			{
 				pdebug(fmt_vastr(
 					"submitting artist: %s, title: %s",
-					tuple_get_string(tuple, "artist"), tuple_get_string(tuple, "title")), DEBUG);
-				sc_addentry(m_scrobbler, tuple, tuple_get_int(tuple, "length") / 1000);
-				gerpok_sc_addentry(m_scrobbler, tuple, tuple_get_int(tuple, "length") / 1000);
+					tuple_get_string(tuple, FIELD_ARTIST, NULL),
+					tuple_get_string(tuple, FIELD_TITLE, NULL)), DEBUG);
+				
+				sc_addentry(m_scrobbler, tuple, tuple_get_int(tuple, FIELD_LENGTH, NULL) / 1000);
+				gerpok_sc_addentry(m_scrobbler, tuple, tuple_get_int(tuple, FIELD_LENGTH, NULL) / 1000);
 			}
 			else
 				pdebug("tuple does not contain an artist or a title, not submitting.", DEBUG);
--- a/src/scrobbler/scrobbler.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/scrobbler/scrobbler.c	Thu Sep 13 12:10:39 2007 -0500
@@ -131,11 +131,12 @@
 
 	item = malloc(sizeof(item_t));
 
-	item->artist = fmt_escape(tuple_get_string(tuple, "artist"));
-	item->title = fmt_escape(tuple_get_string(tuple, "title"));
-	snprintf(item->utctime, sizeof(item->utctime), "%ld", time(NULL));
-	snprintf(item->len, sizeof(item->len), "%d", len);
-	snprintf(item->track, sizeof(item->track), "%d", tuple_get_int(tuple, "track-number"));
+	item->artist = fmt_escape(tuple_get_string(tuple, FIELD_ARTIST, NULL));
+	item->title = fmt_escape(tuple_get_string(tuple, FIELD_TITLE, NULL));
+	g_snprintf(item->utctime, sizeof(item->utctime), "%ld", time(NULL));
+	g_snprintf(item->len, sizeof(item->len), "%d", len);
+	g_snprintf(item->track, sizeof(item->track), "%d",
+		tuple_get_int(tuple, FIELD_TRACK_NUMBER, NULL));
 
 #ifdef NOTYET
 	if(tuple->mb == NULL)
@@ -146,7 +147,7 @@
 		item->mb = fmt_escape((char*)tuple->mb);
 #endif
 
-	if((album = tuple_get_string(tuple, "album")))
+	if((album = tuple_get_string(tuple, FIELD_ALBUM, NULL)) != NULL)
 		item->album = fmt_escape("");
 	else
 		item->album = fmt_escape((char*) album);
@@ -442,7 +443,7 @@
 	hexify(auth, strlen(auth));
 	auth_tmp = g_strdup(sc_response_hash);
 
-	snprintf(buf, sizeof(buf), "%s/?hs=true&p=%s&c=%s&v=%s&u=%s&t=%ld&a=%s",
+	g_snprintf(buf, sizeof(buf), "%s/?hs=true&p=%s&c=%s&v=%s&u=%s&t=%ld&a=%s",
 			SCROBBLER_HS_URL, SCROBBLER_VERSION,
 			SCROBBLER_CLI_ID, SCROBBLER_IMPLEMENTATION, sc_username, time(NULL),
 			auth_tmp);
@@ -600,9 +601,9 @@
 
 static gchar *sc_itemtag(char c, int n, char *str)
 {
-    static char buf[SCROBBLER_SB_MAXLEN]; 
-    snprintf(buf, SCROBBLER_SB_MAXLEN, "&%c[%d]=%s", c, n, str);
-    return buf;
+	static char buf[SCROBBLER_SB_MAXLEN]; 
+	g_snprintf(buf, SCROBBLER_SB_MAXLEN, "&%c[%d]=%s", c, n, str);
+	return buf;
 }
 
 #define cfa(f, l, n, v) \
@@ -673,10 +674,11 @@
 	/*cfa(&post, &last, "debug", "failed");*/
 
 	entry = g_strdup_printf("s=%s&a=%s&t=%s&b=%s&l=%d&n=%d&m=", sc_session_id,
-		tuple_get_string(tuple, "artist"),
-		tuple_get_string(tuple, "title"),
-		tuple_get_string(tuple, "album") ? tuple_get_string(tuple, "album") : "",
-		tuple_get_int(tuple, "length") / 1000, tuple_get_int(tuple, "track-number"));
+		tuple_get_string(tuple, FIELD_ARTIST, NULL),
+		tuple_get_string(tuple, FIELD_TITLE, NULL),
+		tuple_get_string(tuple, FIELD_ALBUM, NULL) ? tuple_get_string(tuple, FIELD_ALBUM, NULL) : "",
+		tuple_get_int(tuple, FIELD_LENGTH, NULL) / 1000,
+		tuple_get_int(tuple, FIELD_TRACK_NUMBER, NULL));
 
 	curl_easy_setopt(curl, CURLOPT_POSTFIELDS, (char *) entry);
 	memset(sc_curl_errbuf, 0, sizeof(sc_curl_errbuf));
@@ -831,7 +833,7 @@
 
 	cachesize = written = 0;
 
-	snprintf(buf, sizeof(buf), "%s/scrobblerqueue.txt", audacious_get_localdir());
+	g_snprintf(buf, sizeof(buf), "%s/scrobblerqueue.txt", audacious_get_localdir());
 
 	if (!(fd = fopen(buf, "r")))
 		return;
@@ -883,9 +885,9 @@
 		{
 			Tuple *tuple = tuple_new();
 
-			tuple_associate_string(tuple, "artist", xmms_urldecode_plain(artist));
-			tuple_associate_string(tuple, "title", xmms_urldecode_plain(title));
-			tuple_associate_string(tuple, "album", xmms_urldecode_plain(album));
+			tuple_associate_string(tuple, FIELD_ARTIST, NULL, xmms_urldecode_plain(artist));
+			tuple_associate_string(tuple, FIELD_TITLE, NULL, xmms_urldecode_plain(title));
+			tuple_associate_string(tuple, FIELD_ALBUM, NULL, xmms_urldecode_plain(album));
 
 			item = q_put(tuple, atoi(len));
 
@@ -926,7 +928,7 @@
 		return;
 	}
 
-	snprintf(buf, sizeof(buf), "%s/scrobblerqueue.txt", audacious_get_localdir());
+	g_snprintf(buf, sizeof(buf), "%s/scrobblerqueue.txt", audacious_get_localdir());
 
 	if (!(fd = fopen(buf, "w")))
 	{
--- a/src/sexypsf/plugin.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sexypsf/plugin.c	Thu Sep 13 12:10:39 2007 -0500
@@ -123,7 +123,6 @@
 
     playback->output->close_audio();
     if (!(stop)) nextsong = TRUE;
-    g_thread_exit(NULL);
     return NULL;
 }
 
@@ -227,18 +226,18 @@
 
     if (tmp->length) {
         tuple = tuple_new_from_filename(fn);
-	tuple_associate_int(tuple, "length", tmp->length);
-	tuple_associate_string(tuple, "artist", tmp->artist);
-	tuple_associate_string(tuple, "album", tmp->game);
-	tuple_associate_string(tuple, "game", tmp->game);
-        tuple_associate_string(tuple, "title", tmp->title);
-        tuple_associate_string(tuple, "genre", tmp->genre);
-        tuple_associate_string(tuple, "copyright", tmp->copyright);
-        tuple_associate_string(tuple, "quality", "sequenced");
-        tuple_associate_string(tuple, "codec", "PlayStation Audio");
-        tuple_associate_string(tuple, "console", "PlayStation");
-        tuple_associate_string(tuple, "dumper", tmp->psfby);
-        tuple_associate_string(tuple, "comment", tmp->comment);
+	tuple_associate_int(tuple, FIELD_LENGTH, NULL, tmp->length);
+	tuple_associate_string(tuple, FIELD_ARTIST, NULL, tmp->artist);
+	tuple_associate_string(tuple, FIELD_ALBUM, NULL, tmp->game);
+	tuple_associate_string(tuple, -1, "game", tmp->game);
+        tuple_associate_string(tuple, FIELD_TITLE, NULL, tmp->title);
+        tuple_associate_string(tuple, FIELD_GENRE, NULL, tmp->genre);
+        tuple_associate_string(tuple, FIELD_COPYRIGHT, NULL, tmp->copyright);
+        tuple_associate_string(tuple, FIELD_QUALITY, NULL, "sequenced");
+        tuple_associate_string(tuple, FIELD_CODEC, NULL, "PlayStation Audio");
+        tuple_associate_string(tuple, -1, "console", "PlayStation");
+        tuple_associate_string(tuple, -1, "dumper", tmp->psfby);
+        tuple_associate_string(tuple, FIELD_COMMENT, NULL, tmp->comment);
 
         sexypsf_freepsfinfo(tmp);
     }
@@ -264,35 +263,16 @@
 
 InputPlugin sexypsf_ip =
 {
-    NULL,
-    NULL,
-    "PSF Audio Plugin",
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    sexypsf_xmms_play,
-    sexypsf_xmms_stop,
-    sexypsf_xmms_pause,
-    sexypsf_xmms_seek,
-    NULL,
-    sexypsf_xmms_gettime,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    sexypsf_xmms_getsonginfo,
-    NULL,
-    NULL,
-    get_tuple_psf,
-    NULL,
-    NULL,
-    is_our_fd,
-    sexypsf_fmts,
+    .description = "PSF Audio Plugin",
+    .play_file = sexypsf_xmms_play,
+    .stop = sexypsf_xmms_stop,
+    .pause = sexypsf_xmms_pause,
+    .seek = sexypsf_xmms_seek,
+    .get_time = sexypsf_xmms_gettime,
+    .get_song_info = sexypsf_xmms_getsonginfo,
+    .get_song_tuple = get_tuple_psf,
+    .is_our_file_from_vfs = is_our_fd,
+    .vfs_extensions = sexypsf_fmts,
 };
 
 InputPlugin *sexypsf_iplist[] = { &sexypsf_ip, NULL };
--- a/src/shnplug/gtk.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/shnplug/gtk.c	Thu Sep 13 12:10:39 2007 -0500
@@ -82,7 +82,7 @@
 		return;
 	}
 
-	about_box = xmms_show_message(
+	about_box = audacious_info_dialog(
 		(gchar *) "About " PACKAGE,
 		(gchar *) PACKAGE " version " VERSION "\n"
 			  "Copyright (C) 2000-2007 Jason Jordan <shnutils@freeshell.org>\n"
--- a/src/shnplug/shn.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/shnplug/shn.c	Thu Sep 13 12:10:39 2007 -0500
@@ -796,7 +796,7 @@
 		this_shn->wave_header.channels, bytes_to_write, this_shn->vars.buffer);
 
 	while(shn_ip.output->buffer_free() < bytes_to_write && playback->playing && this_shn->vars.seek_to == -1)
-		xmms_usleep(10000);
+		g_usleep(10000);
 
 	if(playback->playing && this_shn->vars.seek_to == -1) {
 		if (shn_cfg.swap_bytes)
@@ -1187,7 +1187,7 @@
                 goto restart;
               }
               else
-                xmms_usleep(10000);
+                g_usleep(10000);
             }
 
             goto cleanup;
@@ -1227,7 +1227,7 @@
     write_and_wait(this_shn,this_shn->vars.bytes_in_buf);
     shn_ip.output->buffer_free();
     shn_ip.output->buffer_free();
-    xmms_usleep(10000);
+    g_usleep(10000);
 
 finish:
 
@@ -1328,7 +1328,7 @@
 	shnfile->vars.seek_to = time;
 
 	while (shnfile->vars.seek_to != -1)
-		xmms_usleep(10000);
+		g_usleep(10000);
 }
 
 static void shn_get_file_info(char *filename, char **title, int *length)
--- a/src/sid/Makefile	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/Makefile	Thu Sep 13 12:10:39 2007 -0500
@@ -35,6 +35,7 @@
 	xs_sidplay1.cc	\
 	xs_sidplay2.cc	\
 	xs_curve.c	\
+	xs_slsup.c	\
 	xmms-sid.c
 
 OBJECTS1 = ${SOURCES:.c=.o}
--- a/src/sid/xmms-sid.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xmms-sid.c	Thu Sep 13 12:10:39 2007 -0500
@@ -28,7 +28,6 @@
 
 #include <stdarg.h>
 #include <gdk/gdkkeysyms.h>
-#include <gtk/gtk.h>
 
 #include "xs_config.h"
 #include "xs_length.h"
@@ -38,6 +37,9 @@
 #include "xs_interface.h"
 #include "xs_glade.h"
 #include "xs_player.h"
+#include "xs_slsup.h"
+#include "audacious/playlist.h"
+
 
 /*
  * Include player engines
@@ -86,20 +88,7 @@
 XS_MUTEX(xs_status);
 static XS_THREAD_T xs_decode_thread;
 
-static GtkWidget *xs_subctrl = NULL;
-static GtkObject *xs_subctrl_adj = NULL;
-XS_MUTEX(xs_subctrl);
-
-void		xs_subctrl_close(void);
-void		xs_subctrl_update(void);
-
-static t_xs_sldb *xs_sldb_db = NULL;
-XS_MUTEX(xs_sldb_db);
-
-gint		xs_songlen_init(void);
-void		xs_songlen_close(void);
-t_xs_sldb_node *xs_songlen_get(const gchar *);
-
+void xs_get_song_tuple_info(Tuple *pResult, t_xs_tuneinfo *pInfo, gint subTune);
 
 /*
  * Error messages
@@ -107,7 +96,7 @@
 void xs_error(const char *fmt, ...)
 {
 	va_list ap;
-	fprintf(stderr, "XMMS-SID: ");
+	fprintf(stderr, "AUD-SID: ");
 	va_start(ap, fmt);
 	vfprintf(stderr, fmt, ap);
 	va_end(ap);
@@ -135,6 +124,8 @@
 	gint iPlayer;
 	gboolean isInitialized;
 
+	XSDEBUG("xs_reinit() thread = %p\n", g_thread_self());
+
 	/* Stop playing, if we are */
 	XS_MUTEX_LOCK(xs_status);
 	if (xs_status.isPlaying) {
@@ -230,7 +221,6 @@
 	XSDEBUG("xs_init()\n");
 
 	/* Initialize and get configuration */
-	xs_memset(&xs_cfg, 0, sizeof(xs_cfg));
 	xs_init_configuration();
 	xs_read_configuration();
 
@@ -268,271 +258,294 @@
  */
 gint xs_is_our_file(gchar *pcFilename)
 {
+	gint result = 0;
 	t_xs_file *f;
 	assert(xs_status.sidPlayer);
 
 	/* Check the filename */
 	if (pcFilename == NULL)
-		return FALSE;
+		return 0;
 
 	if ((f = xs_fopen(pcFilename, "rb")) != NULL) {
 		if (xs_status.sidPlayer->plrProbe(f))
-			return TRUE;
+			result = 1;
 		xs_fclose(f);
 	}
 
-	return FALSE;
+	return result;
+}
+
+static gchar * xs_has_tracknumber(gchar *pcFilename)
+{
+	gchar *tmpSep = xs_strrchr(pcFilename, '?');
+	if (tmpSep && g_ascii_isdigit(*(tmpSep + 1)))
+		return tmpSep;
+	else
+		return NULL;
+}
+
+gboolean xs_get_trackinfo(const gchar *pcFilename, gchar **pcResult, gint *pTrack)
+{
+	gchar *tmpSep;
+
+	*pcResult = g_strdup(pcFilename);
+	tmpSep = xs_has_tracknumber(*pcResult);
+
+	if (tmpSep) {
+		*tmpSep = '\0';
+		*pTrack = atoi(tmpSep + 1);
+		return TRUE;
+	} else {
+		*pTrack = -1;
+		return FALSE;
+	}
 }
 
 
 gint xs_is_our_file_vfs(gchar *pcFilename, t_xs_file *f)
 {
+	gint tmpResult = 0, tmpDummy = 0;
 	assert(xs_status.sidPlayer);
 
 	/* Check the filename */
 	if (pcFilename == NULL)
-		return FALSE;
-
-	return xs_status.sidPlayer->plrProbe(f);
-}
-
+		return 0;
 
-static gboolean xs_schedule_subctrl_update(gpointer unused)
-{
-	(void) unused;
-	gboolean isPlaying;
+#ifdef LULZ
+	/* FIXME! ATTENTION! Subtune addition is now temporarily disabled
+	 * again, due to following reason: the way it currently is "supposed"
+	 * to be done is horribly broken and causes an "infinite recursive
+	 * addition loop" in some cases. - ccr
+	 */
+	if (xs_has_tracknumber(pcFilename) != NULL)
+		return 1;
+#endif
 	
-	XS_MUTEX_LOCK(xs_status);
-	isPlaying = xs_status.isPlaying;
-	XS_MUTEX_UNLOCK(xs_status);
+	if (xs_status.sidPlayer->plrProbe(f)) {
+#ifdef LULZ
+		t_xs_tuneinfo *pInfo;
+		
+		pInfo = xs_status.sidPlayer->plrGetSIDInfo(pcFilename);
+		
+		if (pInfo->nsubTunes > 1) {
+			gint i;
+			for (i = 1; i <= pInfo->nsubTunes; i++) {
+				gchar *tmpStr = g_strdup_printf("%s?%d", pcFilename, i);
+				gboolean doAdd = FALSE;
+					
+				if (xs_cfg.subAutoMinOnly) {
+					if (i == pInfo->startTune ||
+						pInfo->subTunes[i - 1].tuneLength >= xs_cfg.subAutoMinTime)
+						doAdd = TRUE;
+				} else
+					doAdd = TRUE;
+					
+				if (doAdd)
+					playlist_add_url(playlist_get_active(), tmpStr);
 
-	if (isPlaying)
-		xs_subctrl_update();
+				g_free(tmpStr);
+			}
 
-	return FALSE;
+			tmpResult = -1;
+		} else
+			tmpResult = 1;
+			
+		xs_tuneinfo_free(pInfo);
+#else
+		tmpResult = 1;
+#endif
+	}
+		
+	return tmpResult;
 }
 
 
 /*
- * Main playing thread loop
+ * Start playing the given file
  */
-void *xs_playthread(void *argPointer)
+void xs_play_file(InputPlayback *pb)
 {
-	InputPlayback *pb = argPointer;
-	t_xs_status myStatus;
-	t_xs_tuneinfo *myTune;
-	gboolean audioOpen = FALSE, doPlay = FALSE, isFound = FALSE;
-	gint audioGot, songLength, i;
-	gchar *audioBuffer = NULL, *oversampleBuffer = NULL;
-	Tuple *tmpTitle;
+	t_xs_tuneinfo *tmpTune;
+	gboolean audioOpen = FALSE;
+	gint audioGot, tmpLength, i, subTune;
+	gchar *tmpFilename, *audioBuffer = NULL, *oversampleBuffer = NULL, *tmpTitle;
+	Tuple *tmpTuple;
+
+	assert(pb);
+	assert(xs_status.sidPlayer);
+	
+	XSDEBUG("play '%s'\n", pb->filename);
+
+	XS_MUTEX_LOCK(xs_status);
+
+	/* Get tune information */
+	xs_get_trackinfo(pb->filename, &tmpFilename, &subTune);
+	if ((xs_status.tuneInfo = xs_status.sidPlayer->plrGetSIDInfo(tmpFilename)) == NULL) {
+		XS_MUTEX_UNLOCK(xs_status);
+		g_free(tmpFilename);
+		return;
+	}
 
-	(void) argPointer;
+	/* Initialize the tune */
+	if (!xs_status.sidPlayer->plrLoadSID(&xs_status, tmpFilename)) {
+		XS_MUTEX_UNLOCK(xs_status);
+		g_free(tmpFilename);
+		xs_tuneinfo_free(xs_status.tuneInfo);
+		xs_status.tuneInfo = NULL;
+		return;
+	}
+	
+	g_free(tmpFilename);
+	tmpFilename = NULL;
+
+	XSDEBUG("load ok\n");
 
-	/* Initialize */
-	XSDEBUG("entering player thread\n");
-	XS_MUTEX_LOCK(xs_status);
-	memcpy(&myStatus, &xs_status, sizeof(t_xs_status));
-	myTune = xs_status.tuneInfo;
-	for (i = 0; i <= myTune->nsubTunes; i++)
-		myTune->subTunes[i].tunePlayed = FALSE;
-	XS_MUTEX_UNLOCK(xs_status);
+	/* Set general status information */
+	xs_status.isPlaying = TRUE;
+	xs_status.isError = FALSE;
+	tmpTune = xs_status.tuneInfo;
+
+	if (subTune < 1 || subTune > xs_status.tuneInfo->nsubTunes)
+		xs_status.currSong = xs_status.tuneInfo->startTune;
+	else
+		xs_status.currSong = subTune;
+
+	XSDEBUG("subtune #%i selected (#%d wanted), initializing...\n", xs_status.currSong, subTune);
+
+
+	/* We are ready */
+	xs_decode_thread = g_thread_self();
+	XSDEBUG("playing thread = %p\n", xs_decode_thread);
+	pb->set_pb_ready(pb);
+
 
 	/* Allocate audio buffer */
 	audioBuffer = (gchar *) g_malloc(XS_AUDIOBUF_SIZE);
 	if (audioBuffer == NULL) {
 		xs_error(_("Couldn't allocate memory for audio data buffer!\n"));
+		XS_MUTEX_UNLOCK(xs_status);
 		goto xs_err_exit;
 	}
-
-	if (myStatus.oversampleEnable) {
-		oversampleBuffer = (gchar *) g_malloc(XS_AUDIOBUF_SIZE * myStatus.oversampleFactor);
+	
+	if (xs_status.oversampleEnable) {
+		oversampleBuffer = (gchar *) g_malloc(XS_AUDIOBUF_SIZE * xs_status.oversampleFactor);
 		if (oversampleBuffer == NULL) {
 			xs_error(_("Couldn't allocate memory for audio oversampling buffer!\n"));
+			XS_MUTEX_UNLOCK(xs_status);
 			goto xs_err_exit;
 		}
 	}
 
-	/*
-	 * Main player loop: while not stopped, loop here - play subtunes
-	 */
-	audioOpen = FALSE;
-	doPlay = TRUE;
-	while (xs_status.isPlaying && doPlay) {
-		/* Automatic sub-tune change logic */
-		XS_MUTEX_LOCK(xs_cfg);
-		XS_MUTEX_LOCK(xs_status);
-		myStatus.isPlaying = TRUE;
+
+	/* Check minimum playtime */
+	tmpLength = tmpTune->subTunes[xs_status.currSong - 1].tuneLength;
+	if (xs_cfg.playMinTimeEnable && (tmpLength >= 0)) {
+		if (tmpLength < xs_cfg.playMinTime)
+			tmpLength = xs_cfg.playMinTime;
+	}
+
+	/* Initialize song */
+	if (!xs_status.sidPlayer->plrInitSong(&xs_status)) {
+		xs_error(_("Couldn't initialize SID-tune '%s' (sub-tune #%i)!\n"),
+		      tmpTune->sidFilename, xs_status.currSong);
+		XS_MUTEX_UNLOCK(xs_status);
+		goto xs_err_exit;
+	}
 		
-		if (xs_status.currSong < 1 || myStatus.currSong < 1) {
-			XS_MUTEX_UNLOCK(xs_status);
-			XS_MUTEX_UNLOCK(xs_cfg);
-			goto xs_err_exit;
-		}
+	/* Open the audio output */
+	XSDEBUG("open audio output (%d, %d, %d)\n",
+		xs_status.audioFormat, xs_status.audioFrequency, xs_status.audioChannels);
 		
-		if (xs_cfg.subAutoEnable && (myStatus.currSong == xs_status.currSong)) {
-			/* Check if currently selected sub-tune has been played already */
-			if (myTune->subTunes[myStatus.currSong-1].tunePlayed) {
-				/* Find a tune that has not been played */
-				XSDEBUG("tune #%i already played, finding next match ...\n", myStatus.currSong);
-				isFound = FALSE;
-				i = 0;
-				while (!isFound && (++i <= myTune->nsubTunes)) {
-					if (xs_cfg.subAutoMinOnly) {
-						/* A tune with minimum length must be found */
-						if (!myTune->subTunes[i-1].tunePlayed &&
-							myTune->subTunes[i-1].tuneLength >= xs_cfg.subAutoMinTime)
-							isFound = TRUE;
-					} else {
-						/* Any unplayed tune is okay */
-						if (!myTune->subTunes[i-1].tunePlayed)
-							isFound = TRUE;
-					}
-				}
+	if (!pb->output->open_audio(xs_status.audioFormat, xs_status.audioFrequency, xs_status.audioChannels)) {
+		xs_error(_("Couldn't open XMMS audio output (fmt=%x, freq=%i, nchan=%i)!\n"),
+			xs_status.audioFormat,
+			xs_status.audioFrequency,
+			xs_status.audioChannels);
+
+		xs_status.isError = TRUE;
+		XS_MUTEX_UNLOCK(xs_status);
+		goto xs_err_exit;
+	}
+
+	audioOpen = TRUE;
+
+	/* Set song information for current subtune */
+	XSDEBUG("foobar #1\n");
+	xs_status.sidPlayer->plrUpdateSIDInfo(&xs_status);
+	XS_MUTEX_UNLOCK(xs_status);
+	tmpTuple = tuple_new_from_filename(tmpTune->sidFilename);
+	xs_get_song_tuple_info(tmpTuple, tmpTune, xs_status.currSong);
 
-				if (isFound) {
-					/* Set the new sub-tune */
-					XSDEBUG("found #%i\n", i);
-					xs_status.currSong = i;
-				} else
-					/* This is the end */
-					doPlay = FALSE;
+	tmpTitle = tuple_formatter_process_string(tmpTuple,
+		xs_cfg.titleOverride ? xs_cfg.titleFormat : get_gentitle_format());
+	
+	XSDEBUG("foobar #4\n");
+	XS_MUTEX_LOCK(xs_status);
+	xs_plugin_ip.set_info(
+		tmpTitle,
+		(tmpLength > 0) ? (tmpLength * 1000) : 0,
+		-1,
+		xs_status.audioFrequency,
+		xs_status.audioChannels);
+		
+	g_free(tmpTitle);
+	
+	XS_MUTEX_UNLOCK(xs_status);
+	XSDEBUG("playing\n");
+	while (xs_status.isPlaying) {
+		/* Render audio data */
+		XS_MUTEX_LOCK(xs_status);
+		if (xs_status.oversampleEnable) {
+			/* Perform oversampled rendering */
+			audioGot = xs_status.sidPlayer->plrFillBuffer(
+				&xs_status,
+				oversampleBuffer,
+				(XS_AUDIOBUF_SIZE * xs_status.oversampleFactor));
+
+			audioGot /= xs_status.oversampleFactor;
 
+			/* Execute rate-conversion with filtering */
+			if (xs_filter_rateconv(audioBuffer, oversampleBuffer,
+				xs_status.audioFormat, xs_status.oversampleFactor, audioGot) < 0) {
+				xs_error(_("Oversampling rate-conversion pass failed.\n"));
+				xs_status.isError = TRUE;
 				XS_MUTEX_UNLOCK(xs_status);
-				XS_MUTEX_UNLOCK(xs_cfg);
-				continue;	/* This is ugly, but ... */
+				goto xs_err_exit;
+			}
+		} else {
+			audioGot = xs_status.sidPlayer->plrFillBuffer(
+				&xs_status, audioBuffer, XS_AUDIOBUF_SIZE);
+		}
+
+		/* I <3 visualice/haujobb */
+		produce_audio(pb->output->written_time(),
+			xs_status.audioFormat, xs_status.audioChannels,
+			audioGot, audioBuffer, NULL);
+		
+		XS_MUTEX_UNLOCK(xs_status);
+
+		/* Wait a little */
+		while (xs_status.isPlaying && (pb->output->buffer_free() < audioGot))
+			g_usleep(500);
+
+		/* Check if we have played enough */
+		XS_MUTEX_LOCK(xs_status);
+		if (xs_cfg.playMaxTimeEnable) {
+			if (xs_cfg.playMaxTimeUnknown) {
+				if ((tmpLength < 0) &&
+					(pb->output->output_time() >= (xs_cfg.playMaxTime * 1000)))
+					xs_status.isPlaying = FALSE;
+			} else {
+				if (pb->output->output_time() >= (xs_cfg.playMaxTime * 1000))
+					xs_status.isPlaying = FALSE;
 			}
 		}
 
-		/* Tell that we are initializing, update sub-tune controls */
-		myStatus.currSong = xs_status.currSong;
-		myTune->subTunes[myStatus.currSong-1].tunePlayed = TRUE;
-		XS_MUTEX_UNLOCK(xs_status);
-		XS_MUTEX_UNLOCK(xs_cfg);
-
-		XSDEBUG("subtune #%i selected, initializing...\n", myStatus.currSong);
-
-		g_idle_add_full( G_PRIORITY_HIGH_IDLE , xs_schedule_subctrl_update , NULL , NULL );
-
-		/* Check minimum playtime */
-		songLength = myTune->subTunes[myStatus.currSong-1].tuneLength;
-		if (xs_cfg.playMinTimeEnable && (songLength >= 0)) {
-			if (songLength < xs_cfg.playMinTime)
-				songLength = xs_cfg.playMinTime;
-		}
-
-		/* Initialize song */
-		if (!myStatus.sidPlayer->plrInitSong(&myStatus)) {
-			xs_error(_("Couldn't initialize SID-tune '%s' (sub-tune #%i)!\n"),
-			      myTune->sidFilename, myStatus.currSong);
-			goto xs_err_exit;
-		}
-		
-		/* Open the audio output */
-		XSDEBUG("open audio output (%d, %d, %d)\n",
-			myStatus.audioFormat, myStatus.audioFrequency, myStatus.audioChannels);
-		
-		if (!pb->output->
-			open_audio(myStatus.audioFormat, myStatus.audioFrequency, myStatus.audioChannels)) {
-			xs_error(_("Couldn't open XMMS audio output (fmt=%x, freq=%i, nchan=%i)!\n"),
-				myStatus.audioFormat,
-				myStatus.audioFrequency,
-				myStatus.audioChannels);
-
-			XS_MUTEX_LOCK(xs_status);
-			xs_status.isError = TRUE;
-			XS_MUTEX_UNLOCK(xs_status);
-			goto xs_err_exit;
+		if (tmpLength >= 0) {
+			if (pb->output->output_time() >= (tmpLength * 1000))
+				xs_status.isPlaying = FALSE;
 		}
-
-		audioOpen = TRUE;
-
-		/* Set song information for current subtune */
-		XSDEBUG("set tune info\n");
-		myStatus.sidPlayer->plrUpdateSIDInfo(&myStatus);
-/*
-		tmpTitle = xs_make_titlestring(myTune, myStatus.currSong);
-		
-		xs_plugin_ip.set_info(
-			tmpTitle,
-			(songLength > 0) ? (songLength * 1000) : 0,
-			-1,
-			myStatus.audioFrequency,
-			myStatus.audioChannels);
-		
-		g_free(tmpTitle);
-*/		
-		XSDEBUG("playing\n");
-
-		/*
-		 * Play the subtune
-		 */
-		while (xs_status.isPlaying && myStatus.isPlaying && (xs_status.currSong == myStatus.currSong)) {
-			/* Render audio data */
-			if (myStatus.oversampleEnable) {
-				/* Perform oversampled rendering */
-				audioGot = myStatus.sidPlayer->plrFillBuffer(
-					&myStatus,
-					oversampleBuffer,
-					(XS_AUDIOBUF_SIZE * myStatus.oversampleFactor));
-
-				audioGot /= myStatus.oversampleFactor;
-
-				/* Execute rate-conversion with filtering */
-				if (xs_filter_rateconv(audioBuffer, oversampleBuffer,
-					myStatus.audioFormat, myStatus.oversampleFactor, audioGot) < 0) {
-					xs_error(_("Oversampling rate-conversion pass failed.\n"));
-					XS_MUTEX_LOCK(xs_status);
-					xs_status.isError = TRUE;
-					XS_MUTEX_UNLOCK(xs_status);
-					goto xs_err_exit;
-				}
-			} else {
-				audioGot = myStatus.sidPlayer->plrFillBuffer(
-					&myStatus, audioBuffer, XS_AUDIOBUF_SIZE);
-			}
-
-			/* I <3 visualice/haujobb */
-			produce_audio(pb->output->written_time(),
-				myStatus.audioFormat, myStatus.audioChannels,
-				audioGot, audioBuffer, NULL);
-
-			/* Wait a little */
-			while (xs_status.isPlaying &&
-				(xs_status.currSong == myStatus.currSong) &&
-				(pb->output->buffer_free() < audioGot))
-				xmms_usleep(500);
-
-			/* Check if we have played enough */
-			if (xs_cfg.playMaxTimeEnable) {
-				if (xs_cfg.playMaxTimeUnknown) {
-					if ((songLength < 0) &&
-						(pb->output->output_time() >= (xs_cfg.playMaxTime * 1000)))
-						myStatus.isPlaying = FALSE;
-				} else {
-					if (pb->output->output_time() >= (xs_cfg.playMaxTime * 1000))
-						myStatus.isPlaying = FALSE;
-				}
-			}
-
-			if (songLength >= 0) {
-				if (pb->output->output_time() >= (songLength * 1000))
-					myStatus.isPlaying = FALSE;
-			}
-		}
-
-		XSDEBUG("subtune ended/stopped\n");
-
-		/* Close audio output plugin */
-		if (audioOpen) {
-			XSDEBUG("close audio #1\n");
-			pb->output->close_audio();
-			audioOpen = FALSE;
-			XSDEBUG("closed\n");
-		}
-
-		/* Now determine if we continue by selecting other subtune or something */
-		if (!myStatus.isPlaying && !xs_cfg.subAutoEnable)
-			doPlay = FALSE;
+		XS_MUTEX_UNLOCK(xs_status);
 	}
 
 xs_err_exit:
@@ -563,46 +576,6 @@
 
 
 /*
- * Start playing the given file
- * Here we load the tune and initialize the playing thread.
- * Usually you would also initialize the output-plugin, but
- * this is XMMS-SID and we do it on the player thread instead.
- */
-void xs_play_file(InputPlayback *pb)
-{
-	assert(pb);
-	assert(xs_status.sidPlayer);
-	
-	XSDEBUG("play '%s'\n", pb->filename);
-
-	/* Get tune information */
-	if ((xs_status.tuneInfo = xs_status.sidPlayer->plrGetSIDInfo(pb->filename)) == NULL)
-		return;
-
-	/* Initialize the tune */
-	if (!xs_status.sidPlayer->plrLoadSID(&xs_status, pb->filename)) {
-		xs_tuneinfo_free(xs_status.tuneInfo);
-		xs_status.tuneInfo = NULL;
-		return;
-	}
-
-	XSDEBUG("load ok\n");
-
-	/* Set general status information */
-	xs_status.isPlaying = TRUE;
-	xs_status.isError = FALSE;
-	xs_status.currSong = xs_status.tuneInfo->startTune;
-
-	/* Start the playing thread! */
-	xs_decode_thread = g_thread_self();
-	pb->set_pb_ready(pb);
-	xs_playthread(pb);
-
-	XSDEBUG("playback is done\n");
-}
-
-
-/*
  * Stop playing
  * Here we set the playing status to stop and wait for playing
  * thread to shut down. In any "correctly" done plugin, this is
@@ -618,9 +591,6 @@
 	
 	XSDEBUG("stop requested\n");
 
-	/* Close the sub-tune control window, if any */
-	xs_subctrl_close();
-
 	/* Lock xs_status and stop playing thread */
 	XS_MUTEX_LOCK(xs_status);
 	if (xs_status.isPlaying) {
@@ -634,11 +604,6 @@
 
 	XSDEBUG("done, updating status\n");
 	
-	/* Status is now stopped, update the sub-tune
-	 * controller in fileinfo window (if open)
-	 */
-	xs_fileinfo_update();
-
 	/* Free tune information */
 	XS_MUTEX_LOCK(xs_status);
 	xs_status.sidPlayer->plrDeleteSID(&xs_status);
@@ -654,233 +619,15 @@
  */
 void xs_pause(InputPlayback *pb, short pauseState)
 {
-	xs_subctrl_close();
-	xs_fileinfo_update();
 	pb->output->pause(pauseState);
 }
 
 
 /*
- * Pop-up subtune selector
- */
-void xs_subctrl_setsong(void)
-{
-	gint n;
-
-	XS_MUTEX_LOCK(xs_status);
-	XS_MUTEX_LOCK(xs_subctrl);
-
-	if (xs_status.tuneInfo && xs_status.isPlaying) {
-		n = (gint) GTK_ADJUSTMENT(xs_subctrl_adj)->value;
-		if ((n >= 1) && (n <= xs_status.tuneInfo->nsubTunes))
-			xs_status.currSong = n;
-	}
-
-	XS_MUTEX_UNLOCK(xs_subctrl);
-	XS_MUTEX_UNLOCK(xs_status);
-}
-
-
-void xs_subctrl_prevsong(void)
-{
-	XS_MUTEX_LOCK(xs_status);
-
-	if (xs_status.tuneInfo && xs_status.isPlaying) {
-		if (xs_status.currSong > 1)
-			xs_status.currSong--;
-	}
-
-	XS_MUTEX_UNLOCK(xs_status);
-
-	xs_subctrl_update();
-}
-
-
-void xs_subctrl_nextsong(void)
-{
-	XS_MUTEX_LOCK(xs_status);
-
-	if (xs_status.tuneInfo && xs_status.isPlaying) {
-		if (xs_status.currSong < xs_status.tuneInfo->nsubTunes)
-			xs_status.currSong++;
-	}
-
-	XS_MUTEX_UNLOCK(xs_status);
-
-	xs_subctrl_update();
-}
-
-
-void xs_subctrl_update(void)
-{
-	GtkAdjustment *tmpAdj;
-
-	XS_MUTEX_LOCK(xs_status);
-	XS_MUTEX_LOCK(xs_subctrl);
-
-	/* Check if control window exists, we are currently playing and have a tune */
-	if (xs_subctrl) {
-		if (xs_status.tuneInfo && xs_status.isPlaying) {
-			tmpAdj = GTK_ADJUSTMENT(xs_subctrl_adj);
-
-			tmpAdj->value = xs_status.currSong;
-			tmpAdj->lower = 1;
-			tmpAdj->upper = xs_status.tuneInfo->nsubTunes;
-			XS_MUTEX_UNLOCK(xs_status);
-			XS_MUTEX_UNLOCK(xs_subctrl);
-			gtk_adjustment_value_changed(tmpAdj);
-		} else {
-			XS_MUTEX_UNLOCK(xs_status);
-			XS_MUTEX_UNLOCK(xs_subctrl);
-			xs_subctrl_close();
-		}
-	} else {
-		XS_MUTEX_UNLOCK(xs_subctrl);
-		XS_MUTEX_UNLOCK(xs_status);
-	}
-
-	xs_fileinfo_update();
-}
-
-
-void xs_subctrl_close(void)
-{
-	XS_MUTEX_LOCK(xs_subctrl);
-
-	if (xs_subctrl) {
-		gtk_widget_destroy(xs_subctrl);
-		xs_subctrl = NULL;
-	}
-
-	XS_MUTEX_UNLOCK(xs_subctrl);
-}
-
-
-gboolean xs_subctrl_keypress(GtkWidget * win, GdkEventKey * ev)
-{
-	(void) win;
-
-	if (ev->keyval == GDK_Escape)
-		xs_subctrl_close();
-
-	return FALSE;
-}
-
-
-void xs_subctrl_open(void)
-{
-	GtkWidget *frame25, *hbox15, *subctrl_prev, *subctrl_current, *subctrl_next;
-
-	XS_MUTEX_LOCK(xs_subctrl);
-	if (!xs_status.tuneInfo || !xs_status.isPlaying ||
-		xs_subctrl || (xs_status.tuneInfo->nsubTunes <= 1)) {
-		XS_MUTEX_UNLOCK(xs_subctrl);
-		return;
-	}
-
-	/* Create the pop-up window */
-	xs_subctrl = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-	gtk_window_set_type_hint(GTK_WINDOW(xs_subctrl), GDK_WINDOW_TYPE_HINT_DIALOG);
-	gtk_widget_set_name(xs_subctrl, "xs_subctrl");
-	g_object_set_data(G_OBJECT(xs_subctrl), "xs_subctrl", xs_subctrl);
-
-	gtk_window_set_title(GTK_WINDOW(xs_subctrl), _("Subtune Control"));
-	gtk_window_set_position(GTK_WINDOW(xs_subctrl), GTK_WIN_POS_MOUSE);
-	gtk_container_set_border_width(GTK_CONTAINER(xs_subctrl), 0);
-	gtk_window_set_policy(GTK_WINDOW(xs_subctrl), FALSE, FALSE, FALSE);
-
-	g_signal_connect(G_OBJECT(xs_subctrl), "destroy", G_CALLBACK(gtk_widget_destroyed), &xs_subctrl);
-
-	g_signal_connect(G_OBJECT(xs_subctrl), "focus_out_event", G_CALLBACK(xs_subctrl_close), NULL);
-
-	gtk_widget_realize(xs_subctrl);
-	gdk_window_set_decorations(xs_subctrl->window, (GdkWMDecoration) 0);
-
-
-	/* Create the control widgets */
-	frame25 = gtk_frame_new(NULL);
-	gtk_container_add(GTK_CONTAINER(xs_subctrl), frame25);
-	gtk_container_set_border_width(GTK_CONTAINER(frame25), 2);
-	gtk_frame_set_shadow_type(GTK_FRAME(frame25), GTK_SHADOW_OUT);
-
-	hbox15 = gtk_hbox_new(FALSE, 4);
-	gtk_container_add(GTK_CONTAINER(frame25), hbox15);
-
-	subctrl_prev = gtk_button_new_with_label(" < ");
-	gtk_widget_set_name(subctrl_prev, "subctrl_prev");
-	gtk_box_pack_start(GTK_BOX(hbox15), subctrl_prev, FALSE, FALSE, 0);
-
-	xs_subctrl_adj = gtk_adjustment_new(xs_status.currSong, 1, xs_status.tuneInfo->nsubTunes, 1, 1, 0);
-	g_signal_connect(G_OBJECT(xs_subctrl_adj), "value_changed", G_CALLBACK(xs_subctrl_setsong), NULL);
-
-	subctrl_current = gtk_hscale_new(GTK_ADJUSTMENT(xs_subctrl_adj));
-	gtk_widget_set_size_request(subctrl_current, 80, -1);
-	gtk_widget_set_name(subctrl_current, "subctrl_current");
-	gtk_box_pack_start(GTK_BOX(hbox15), subctrl_current, FALSE, TRUE, 0);
-	gtk_scale_set_digits(GTK_SCALE(subctrl_current), 0);
-	gtk_range_set_update_policy(GTK_RANGE(subctrl_current), GTK_UPDATE_DELAYED);
-	gtk_widget_grab_focus(subctrl_current);
-
-	subctrl_next = gtk_button_new_with_label(" > ");
-	gtk_widget_set_name(subctrl_next, "subctrl_next");
-	gtk_box_pack_start(GTK_BOX(hbox15), subctrl_next, FALSE, FALSE, 0);
-
-	g_signal_connect(G_OBJECT(subctrl_prev), "clicked", G_CALLBACK(xs_subctrl_prevsong), NULL);
-
-	g_signal_connect(G_OBJECT(subctrl_next), "clicked", G_CALLBACK(xs_subctrl_nextsong), NULL);
-
-	g_signal_connect(G_OBJECT(xs_subctrl), "key_press_event", G_CALLBACK(xs_subctrl_keypress), NULL);
-
-	gtk_widget_show_all(xs_subctrl);
-
-	XS_MUTEX_UNLOCK(xs_subctrl);
-}
-
-
-/*
- * Set the time-seek position
- * The playing thread will do the "seeking", which means sub-tune
- * changing in XMMS-SID's case. iTime argument is time in seconds,
- * in contrast to milliseconds used in other occasions.
- *
- * This function is called whenever position slider is clicked or
- * other method of seeking is used (keyboard, etc.)
+ * A stub seek function (Audacious will crash if seek is NULL)
  */
 void xs_seek(InputPlayback *pb, gint iTime)
 {
-	/* Check status */
-	XS_MUTEX_LOCK(xs_status);
-	if (!xs_status.tuneInfo || !xs_status.isPlaying) {
-		XS_MUTEX_UNLOCK(xs_status);
-		return;
-	}
-
-	/* Act according to settings */
-	switch (xs_cfg.subsongControl) {
-	case XS_SSC_SEEK:
-		if (iTime < xs_status.lastTime) {
-			if (xs_status.currSong > 1)
-				xs_status.currSong--;
-		} else if (iTime > xs_status.lastTime) {
-			if (xs_status.currSong < xs_status.tuneInfo->nsubTunes)
-				xs_status.currSong++;
-		}
-		break;
-
-	case XS_SSC_POPUP:
-		xs_subctrl_open();
-		break;
-
-		/* If we have song-position patch, check settings */
-#ifdef HAVE_SONG_POSITION
-	case XS_SSC_PATCH:
-		if ((iTime > 0) && (iTime <= xs_status.tuneInfo->nsubTunes))
-			xs_status.currSong = iTime;
-		break;
-#endif
-	}
-
-	XS_MUTEX_UNLOCK(xs_status);
 }
 
 
@@ -912,19 +659,6 @@
 		return -1;
 	}
 
-	/* Let's see what we do */
-	switch (xs_cfg.subsongControl) {
-	case XS_SSC_SEEK:
-		xs_status.lastTime = (pb->output->output_time() / 1000);
-		break;
-
-#ifdef HAVE_SONG_POSITION
-	case XS_SSC_PATCH:
-		set_song_position(xs_status.currSong, 1, xs_status.tuneInfo->nsubTunes);
-		break;
-#endif
-	}
-
 	XS_MUTEX_UNLOCK(xs_status);
 
 	/* Return output time reported by audio output plugin */
@@ -932,68 +666,19 @@
 }
 
 
-#ifndef AUDACIOUS_PLUGIN
-/* Return song information: called by XMMS when initially loading the playlist.
- * Subsequent changes to information are made by the player thread,
- * which uses xs_plugin_ip.set_info();
+/* Return song information Tuple
  */
-void xs_get_song_info(gchar * songFilename, gchar ** songTitle, gint * songLength)
+void xs_get_song_tuple_info(Tuple *pResult, t_xs_tuneinfo *pInfo, gint subTune)
 {
-	t_xs_tuneinfo *pInfo;
-	
-	XS_MUTEX_LOCK(xs_status);
-
-	/* Get tune information from emulation engine */
-	pInfo = xs_status.sidPlayer->plrGetSIDInfo(songFilename);
-	if (!pInfo) {
-		XS_MUTEX_UNLOCK(xs_status);
-		return;
-	}
-
-	/* Get sub-tune information, if available */
-	if ((pInfo->startTune > 0) && (pInfo->startTune <= pInfo->nsubTunes)) {
-		gint tmpInt;
-		
-		(*songTitle) = xs_make_titlestring(pInfo, pInfo->startTune);
-
-		tmpInt = pInfo->subTunes[pInfo->startTune-1].tuneLength;
-		if (tmpInt < 0)
-			(*songLength) = -1;
-		else
-			(*songLength) = (tmpInt * 1000);
-	}
+	gchar *tmpStr, tmpStr2[64];
 
-	/* Free tune information */
-	xs_tuneinfo_free(pInfo);
-	XS_MUTEX_UNLOCK(xs_status);
-}
-
-#else
-
-Tuple * xs_get_song_tuple(gchar *songFilename)
-{
-	t_xs_tuneinfo *pInfo;
-	Tuple *pResult;
-	gchar *tmpStr;
-
-	XS_MUTEX_LOCK(xs_status);
+	tuple_associate_string(pResult, FIELD_TITLE, NULL, pInfo->sidName);
+	tuple_associate_string(pResult, FIELD_ARTIST, NULL, pInfo->sidComposer);
+	tuple_associate_string(pResult, FIELD_GENRE, NULL, "SID-tune");
+	tuple_associate_string(pResult, FIELD_COPYRIGHT, NULL, pInfo->sidCopyright);
 
-	pResult = tuple_new_from_filename(songFilename);
-
-	/* Get tune information from emulation engine */
-	pInfo = xs_status.sidPlayer->plrGetSIDInfo(songFilename);
-	if (!pInfo) {
-		XS_MUTEX_UNLOCK(xs_status);
-		return pResult;
-	}
-
-	tuple_associate_string(pResult, "title", pInfo->sidName);
-	tuple_associate_string(pResult, "artist", pInfo->sidComposer);
-	tuple_associate_int(pResult, "track-number", pInfo->startTune);
-	tuple_associate_string(pResult, "genre", "SID-tune");
-	tuple_associate_string(pResult, "copyright", pInfo->sidCopyright);
-	tuple_associate_string(pResult, "format", pInfo->sidFormat);
-	tuple_associate_int(pResult, "subtunes", pInfo->nsubTunes);
+	tuple_associate_int(pResult, -1, "subtunes", pInfo->nsubTunes);
+	tuple_associate_string(pResult, -1, "sid-format", pInfo->sidFormat);
 
 	switch (pInfo->sidModel) {
 		case XS_SIDMODEL_6581: tmpStr = "6581"; break;
@@ -1001,181 +686,70 @@
 		case XS_SIDMODEL_ANY: tmpStr = "ANY"; break;
 		default: tmpStr = "?"; break;
 	}
-	tuple_associate_string(pResult, "sid-model", tmpStr);
-
+	tuple_associate_string(pResult, -1, "sid-model", tmpStr);
+	
 	/* Get sub-tune information, if available */
-	if ((pInfo->startTune > 0) && (pInfo->startTune <= pInfo->nsubTunes)) {
-		gint tmpInt = pInfo->subTunes[pInfo->startTune-1].tuneLength;
-		tuple_associate_int(pResult, "length", (tmpInt < 0) ? -1 : tmpInt * 1000);
+	if (subTune < 0 || pInfo->startTune > pInfo->nsubTunes)
+		subTune = pInfo->startTune;
+	
+	if ((subTune > 0) && (subTune <= pInfo->nsubTunes)) {
+		gint tmpInt = pInfo->subTunes[subTune - 1].tuneLength;
+		tuple_associate_int(pResult, FIELD_LENGTH, NULL, (tmpInt < 0) ? -1 : tmpInt * 1000);
 		
-	}
+		tmpInt = pInfo->subTunes[subTune - 1].tuneSpeed;
+		if (tmpInt > 0) {
+			switch (tmpInt) {
+			case XS_CLOCK_PAL: tmpStr = "PAL"; break;
+			case XS_CLOCK_NTSC: tmpStr = "NTSC"; break;
+			case XS_CLOCK_ANY: tmpStr = "ANY"; break;
+			case XS_CLOCK_VBI: tmpStr = "VBI"; break;
+			case XS_CLOCK_CIA: tmpStr = "CIA"; break;
+			default:
+				g_snprintf(tmpStr2, sizeof(tmpStr2), "%dHz", tmpInt);
+				tmpStr = tmpStr2;
+				break;
+			}
+		} else
+			tmpStr = "?";
 
-	/* Free tune information */
-	xs_tuneinfo_free(pInfo);
-	XS_MUTEX_UNLOCK(xs_status);
-	return pResult;
-}
-#endif
-
+		tuple_associate_string(pResult, -1, "sid-speed", tmpStr);
+	} else
+		subTune = 1;
 
-/* Allocate a new tune information structure
- */
-t_xs_tuneinfo *xs_tuneinfo_new(const gchar * pcFilename,
-		gint nsubTunes, gint startTune, const gchar * sidName,
-		const gchar * sidComposer, const gchar * sidCopyright,
-		gint loadAddr, gint initAddr, gint playAddr,
-		gint dataFileLen, const gchar *sidFormat, gint sidModel)
+	tuple_associate_int(pResult, -1, "subtune", subTune);
+	tuple_associate_int(pResult, FIELD_TRACK_NUMBER, NULL, subTune);
+
+	if (xs_cfg.titleOverride)
+		tuple_associate_string(pResult, FIELD_FORMATTER, NULL, xs_cfg.titleFormat);
+}
+
+Tuple * xs_get_song_tuple(gchar *songFilename)
 {
-	t_xs_tuneinfo *pResult;
-	t_xs_sldb_node *tmpLength;
-	gint i;
-
-	/* Allocate structure */
-	pResult = (t_xs_tuneinfo *) g_malloc0(sizeof(t_xs_tuneinfo));
-	if (!pResult) {
-		xs_error(_("Could not allocate memory for t_xs_tuneinfo ('%s')\n"),
-			pcFilename);
-		return NULL;
-	}
+	Tuple *tmpResult;
+	gchar *tmpFilename;
+	t_xs_tuneinfo *tmpInfo;
+	gint subTune;
 
-	pResult->sidFilename = g_filename_to_utf8(pcFilename, -1, NULL, NULL, NULL);
-	if (!pResult->sidFilename) {
-		xs_error(_("Could not allocate sidFilename ('%s')\n"),
-			pcFilename);
-		g_free(pResult);
-		return NULL;
-	}
+	/* Get information from URL */
+	xs_get_trackinfo(songFilename, &tmpFilename, &subTune);
 
-	/* Allocate space for subtune information */
-	pResult->subTunes = g_malloc0(sizeof(t_xs_subtuneinfo) * (nsubTunes + 1));
-	if (!pResult->subTunes) {
-		xs_error(_("Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n"),
-			pcFilename, nsubTunes);
-
-		g_free(pResult->sidFilename);
-		g_free(pResult);
+	tmpResult = tuple_new_from_filename(tmpFilename);
+	if (!tmpResult) {
+		g_free(tmpFilename);
 		return NULL;
 	}
 
-	/* The following allocations don't matter if they fail */
-	pResult->sidName = XS_CS_SID(sidName);
-	pResult->sidComposer = XS_CS_SID(sidComposer);
-	pResult->sidCopyright = XS_CS_SID(sidCopyright);
-
-	pResult->nsubTunes = nsubTunes;
-	pResult->startTune = startTune;
-
-	pResult->loadAddr = loadAddr;
-	pResult->initAddr = initAddr;
-	pResult->playAddr = playAddr;
-	pResult->dataFileLen = dataFileLen;
-	pResult->sidFormat = XS_CS_SID(sidFormat);
-	
-	pResult->sidModel = sidModel;
-
-	/* Get length information (NOTE: Do not free this!) */
-	tmpLength = xs_songlen_get(pcFilename);
-	
-	/* Fill in sub-tune information */
-	for (i = 0; i < pResult->nsubTunes; i++) {
-		if (tmpLength && (i < tmpLength->nLengths))
-			pResult->subTunes[i].tuneLength = tmpLength->sLengths[i];
-		else
-			pResult->subTunes[i].tuneLength = -1;
-		
-		pResult->subTunes[i].tuneSpeed = -1;
-	}
-	
-	return pResult;
-}
-
-
-/* Free given tune information structure
- */
-void xs_tuneinfo_free(t_xs_tuneinfo * pTune)
-{
-	if (!pTune) return;
-
-	g_free(pTune->subTunes);
-	g_free(pTune->sidFilename);
-	g_free(pTune->sidName);
-	g_free(pTune->sidComposer);
-	g_free(pTune->sidCopyright);
-	g_free(pTune->sidFormat);
-	g_free(pTune);
-}
-
-
-/* Song length database handling glue
- */
-gint xs_songlen_init(void)
-{
-	XS_MUTEX_LOCK(xs_cfg);
-
-	if (!xs_cfg.songlenDBPath) {
-		XS_MUTEX_UNLOCK(xs_cfg);
-		return -1;
-	}
+	/* Get tune information from emulation engine */
+	XS_MUTEX_LOCK(xs_status);
+	tmpInfo = xs_status.sidPlayer->plrGetSIDInfo(tmpFilename);
+	XS_MUTEX_UNLOCK(xs_status);
+	g_free(tmpFilename);
 
-	XS_MUTEX_LOCK(xs_sldb_db);
-
-	/* Check if already initialized */
-	if (xs_sldb_db)
-		xs_sldb_free(xs_sldb_db);
-
-	/* Allocate database */
-	xs_sldb_db = (t_xs_sldb *) g_malloc0(sizeof(t_xs_sldb));
-	if (!xs_sldb_db) {
-		XS_MUTEX_UNLOCK(xs_cfg);
-		XS_MUTEX_UNLOCK(xs_sldb_db);
-		return -2;
-	}
-
-	/* Read the database */
-	if (xs_sldb_read(xs_sldb_db, xs_cfg.songlenDBPath) != 0) {
-		xs_sldb_free(xs_sldb_db);
-		xs_sldb_db = NULL;
-		XS_MUTEX_UNLOCK(xs_cfg);
-		XS_MUTEX_UNLOCK(xs_sldb_db);
-		return -3;
-	}
+	if (!tmpInfo)
+		return tmpResult;
+	
+	xs_get_song_tuple_info(tmpResult, tmpInfo, subTune);
+	xs_tuneinfo_free(tmpInfo);
 
-	/* Create index */
-	if (xs_sldb_index(xs_sldb_db) != 0) {
-		xs_sldb_free(xs_sldb_db);
-		xs_sldb_db = NULL;
-		XS_MUTEX_UNLOCK(xs_cfg);
-		XS_MUTEX_UNLOCK(xs_sldb_db);
-		return -4;
-	}
-
-	XS_MUTEX_UNLOCK(xs_cfg);
-	XS_MUTEX_UNLOCK(xs_sldb_db);
-	return 0;
+	return tmpResult;
 }
-
-
-void xs_songlen_close(void)
-{
-	XS_MUTEX_LOCK(xs_sldb_db);
-	xs_sldb_free(xs_sldb_db);
-	xs_sldb_db = NULL;
-	XS_MUTEX_UNLOCK(xs_sldb_db);
-}
-
-
-t_xs_sldb_node *xs_songlen_get(const gchar * pcFilename)
-{
-	t_xs_sldb_node *pResult;
-
-	XS_MUTEX_LOCK(xs_sldb_db);
-
-	if (xs_cfg.songlenDBEnable && xs_sldb_db)
-		pResult = xs_sldb_get(xs_sldb_db, pcFilename);
-	else
-		pResult = NULL;
-
-	XS_MUTEX_UNLOCK(xs_sldb_db);
-
-	return pResult;
-}
--- a/src/sid/xmms-sid.glade	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xmms-sid.glade	Thu Sep 13 12:10:39 2007 -0500
@@ -5,7 +5,7 @@
 
 <widget class="GtkWindow" id="xs_configwin">
   <property name="visible">True</property>
-  <property name="title" translatable="yes">Audacious-SID Configuration</property>
+  <property name="title" translatable="yes">Audacious-SID configuration</property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
   <property name="window_position">GTK_WIN_POS_NONE</property>
   <property name="modal">False</property>
@@ -18,6 +18,7 @@
   <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="xs_configwin_delete"/>
 
   <child>
     <widget class="GtkVBox" id="w_vbox1">
@@ -280,7 +281,7 @@
 			      <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="invisible_char">â—</property>
 			      <property name="activates_default">False</property>
 			    </widget>
 			  </child>
@@ -297,188 +298,6 @@
 				  <child>
 				    <widget class="GtkLabel" id="convertwidget3">
 				      <property name="visible">True</property>
-				      <property name="label" translatable="no">8000</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</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>
-				  </child>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkListItem" id="convertwidget4">
-				  <property name="visible">True</property>
-
-				  <child>
-				    <widget class="GtkLabel" id="convertwidget5">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="no">11025</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</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>
-				  </child>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkListItem" id="convertwidget6">
-				  <property name="visible">True</property>
-
-				  <child>
-				    <widget class="GtkLabel" id="convertwidget7">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="no">22050</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</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>
-				  </child>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkListItem" id="convertwidget8">
-				  <property name="visible">True</property>
-
-				  <child>
-				    <widget class="GtkLabel" id="convertwidget9">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="no">44100</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</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>
-				  </child>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkListItem" id="convertwidget10">
-				  <property name="visible">True</property>
-
-				  <child>
-				    <widget class="GtkLabel" id="convertwidget11">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="no">48000</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</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>
-				  </child>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkListItem" id="convertwidget12">
-				  <property name="visible">True</property>
-
-				  <child>
-				    <widget class="GtkLabel" id="convertwidget13">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="no">64000</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</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>
-				  </child>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkListItem" id="convertwidget14">
-				  <property name="visible">True</property>
-
-				  <child>
-				    <widget class="GtkLabel" id="convertwidget15">
-				      <property name="visible">True</property>
-				      <property name="label" translatable="no">96000</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</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>
-				  </child>
-				</widget>
-			      </child>
-
-			      <child>
-				<widget class="GtkListItem" id="convertwidget16">
-				  <property name="visible">True</property>
-
-				  <child>
-				    <widget class="GtkLabel" id="convertwidget17">
-				      <property name="visible">True</property>
 				      <property name="label" translatable="yes"></property>
 				      <property name="use_underline">False</property>
 				      <property name="use_markup">False</property>
@@ -997,7 +816,7 @@
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
-		  <property name="expand">True</property>
+		  <property name="expand">False</property>
 		  <property name="fill">True</property>
 		</packing>
 	      </child>
@@ -1794,7 +1613,7 @@
 			      <property name="border_width">2</property>
 			      <property name="visible">True</property>
 			      <property name="value_in_list">False</property>
-			      <property name="allow_empty">True</property>
+			      <property name="allow_empty">False</property>
 			      <property name="case_sensitive">False</property>
 			      <property name="enable_arrow_keys">True</property>
 			      <property name="enable_arrows_always">False</property>
@@ -1808,126 +1627,22 @@
 				  <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="invisible_char">â—</property>
 				  <property name="activates_default">False</property>
 				</widget>
 			      </child>
 
 			      <child internal-child="list">
-				<widget class="GtkList" id="convertwidget18">
+				<widget class="GtkList" id="convertwidget4">
 				  <property name="visible">True</property>
 				  <property name="selection_mode">GTK_SELECTION_BROWSE</property>
 
 				  <child>
-				    <widget class="GtkListItem" id="convertwidget19">
-				      <property name="visible">True</property>
-
-				      <child>
-					<widget class="GtkLabel" id="convertwidget20">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">6581 (reSID)</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</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>
-				      </child>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkListItem" id="convertwidget21">
+				    <widget class="GtkListItem" id="convertwidget5">
 				      <property name="visible">True</property>
 
 				      <child>
-					<widget class="GtkLabel" id="convertwidget22">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">8580 (reSID)</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</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>
-				      </child>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkListItem" id="convertwidget23">
-				      <property name="visible">True</property>
-
-				      <child>
-					<widget class="GtkLabel" id="convertwidget24">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">6581R1 (alankila)</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</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>
-				      </child>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkListItem" id="convertwidget25">
-				      <property name="visible">True</property>
-
-				      <child>
-					<widget class="GtkLabel" id="convertwidget26">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">6581R4 (alankila)</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</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>
-				      </child>
-				    </widget>
-				  </child>
-
-				  <child>
-				    <widget class="GtkListItem" id="convertwidget27">
-				      <property name="visible">True</property>
-
-				      <child>
-					<widget class="GtkLabel" id="convertwidget28">
+					<widget class="GtkLabel" id="convertwidget6">
 					  <property name="visible">True</property>
 					  <property name="label" translatable="yes"></property>
 					  <property name="use_underline">False</property>
@@ -1962,17 +1677,38 @@
 			      <property name="border_width">2</property>
 			      <property name="visible">True</property>
 			      <property name="n_rows">2</property>
-			      <property name="n_columns">2</property>
+			      <property name="n_columns">3</property>
 			      <property name="homogeneous">True</property>
 			      <property name="row_spacing">4</property>
 			      <property name="column_spacing">4</property>
 
 			      <child>
+				<widget class="GtkButton" id="cfg_sp2_filter_export">
+				  <property name="visible">True</property>
+				  <property name="can_default">True</property>
+				  <property name="can_focus">True</property>
+				  <property name="label" translatable="yes">Export</property>
+				  <property name="use_underline">True</property>
+				  <property name="relief">GTK_RELIEF_NORMAL</property>
+				  <property name="focus_on_click">True</property>
+				  <signal name="clicked" handler="xs_cfg_sp2_filter_export"/>
+				</widget>
+				<packing>
+				  <property name="left_attach">2</property>
+				  <property name="right_attach">3</property>
+				  <property name="top_attach">1</property>
+				  <property name="bottom_attach">2</property>
+				  <property name="x_options">fill</property>
+				  <property name="y_options"></property>
+				</packing>
+			      </child>
+
+			      <child>
 				<widget class="GtkButton" id="cfg_sp2_filter_load">
 				  <property name="visible">True</property>
 				  <property name="can_default">True</property>
 				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Load</property>
+				  <property name="label" translatable="yes">Use</property>
 				  <property name="use_underline">True</property>
 				  <property name="relief">GTK_RELIEF_NORMAL</property>
 				  <property name="focus_on_click">True</property>
@@ -2021,8 +1757,8 @@
 				  <signal name="clicked" handler="xs_cfg_sp2_filter_import"/>
 				</widget>
 				<packing>
-				  <property name="left_attach">0</property>
-				  <property name="right_attach">1</property>
+				  <property name="left_attach">1</property>
+				  <property name="right_attach">2</property>
 				  <property name="top_attach">1</property>
 				  <property name="bottom_attach">2</property>
 				  <property name="x_options">fill</property>
@@ -2031,21 +1767,21 @@
 			      </child>
 
 			      <child>
-				<widget class="GtkButton" id="cfg_sp2_filter_export">
+				<widget class="GtkButton" id="cfg_sp2_filter_delete">
 				  <property name="visible">True</property>
 				  <property name="can_default">True</property>
 				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Export</property>
+				  <property name="label" translatable="yes">Delete</property>
 				  <property name="use_underline">True</property>
 				  <property name="relief">GTK_RELIEF_NORMAL</property>
 				  <property name="focus_on_click">True</property>
-				  <signal name="clicked" handler="xs_cfg_sp2_filter_export"/>
+				  <signal name="clicked" handler="xs_cfg_sp2_filter_delete"/>
 				</widget>
 				<packing>
-				  <property name="left_attach">1</property>
-				  <property name="right_attach">2</property>
-				  <property name="top_attach">1</property>
-				  <property name="bottom_attach">2</property>
+				  <property name="left_attach">2</property>
+				  <property name="right_attach">3</property>
+				  <property name="top_attach">0</property>
+				  <property name="bottom_attach">1</property>
 				  <property name="x_options">fill</property>
 				  <property name="y_options"></property>
 				</packing>
@@ -2527,7 +2263,7 @@
 			  <property name="active">False</property>
 			  <property name="inconsistent">False</property>
 			  <property name="draw_indicator">True</property>
-			  <signal name="toggled" handler="xs_cfg_sld_enable_toggled"/>
+			  <signal name="toggled" handler="xs_cfg_sldb_enable_toggled"/>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -2577,7 +2313,7 @@
 			      <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="invisible_char">â—</property>
 			      <property name="activates_default">False</property>
 			    </widget>
 			    <packing>
@@ -2596,7 +2332,7 @@
 			      <property name="use_underline">True</property>
 			      <property name="relief">GTK_RELIEF_NORMAL</property>
 			      <property name="focus_on_click">True</property>
-			      <signal name="clicked" handler="xs_cfg_sld_dbbrowse"/>
+			      <signal name="clicked" handler="xs_cfg_sldb_browse"/>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -2674,12 +2410,331 @@
 	  </child>
 
 	  <child>
-	    <widget class="GtkVBox" id="w_vbox33">
+	    <widget class="GtkFrame" id="frame1">
+	      <property name="border_width">4</property>
+	      <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="vbox1">
+		  <property name="border_width">2</property>
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">2</property>
+
+		  <child>
+		    <widget class="GtkCheckButton" id="cfg_ftitle_override">
+		      <property name="visible">True</property>
+		      <property name="tooltip" translatable="yes">By enabling this option you can specify a custom Tuplez formatting string for SID-files. The SID-plugin specific Tuplez tags are described shortly below.</property>
+		      <property name="can_focus">True</property>
+		      <property name="label" translatable="yes">Override generic Tuplez format string</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="xs_cfg_ftitle_override_toggled" last_modification_time="Wed, 05 Sep 2007 21:51:50 GMT"/>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkVBox" id="cfg_ftitle_box">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">0</property>
+
+		      <child>
+			<widget class="GtkEntry" id="cfg_ftitle_format">
+			  <property name="visible">True</property>
+			  <property name="tooltip" translatable="yes">Tuplez format string for SID-files</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">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="cfg_ftitle_descs">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Descriptions of &lt;i&gt;SID-specific&lt;/i&gt; Tuplez fields go here. &lt;b&gt;:D&lt;/b&gt;</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">True</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">True</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">8</property>
+			  <property name="ypad">8</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">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="label29">
+		  <property name="visible">True</property>
+		  <property name="label" translatable="yes">Song title format:</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="tab_expand">False</property>
+	      <property name="tab_fill">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="w_label27">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Title</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="w_vbox19">
 	      <property name="visible">True</property>
 	      <property name="homogeneous">False</property>
 	      <property name="spacing">0</property>
 
 	      <child>
+		<widget class="GtkFrame" id="w_frame31">
+		  <property name="border_width">4</property>
+		  <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="w_vbox35">
+		      <property name="border_width">2</property>
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">2</property>
+
+		      <child>
+			<widget class="GtkCheckButton" id="cfg_subauto_enable">
+			  <property name="visible">True</property>
+			  <property name="tooltip" translatable="yes">If enabled, sub-tunes of each file will be added to playlist. If disabled, only the default sub-tune will be added.</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">Add sub-tunes to playlist</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="xs_cfg_subauto_enable_toggled"/>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkCheckButton" id="cfg_subauto_min_only">
+			  <property name="visible">True</property>
+			  <property name="tooltip" translatable="yes">Only add sub-tunes that have a duration of at least specified time.</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">Only tunes with specified minimum duration</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="xs_cfg_subauto_min_only_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="cfg_subauto_box">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">2</property>
+
+			  <child>
+			    <widget class="GtkLabel" id="w_label52">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">Playtime:</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</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="cfg_subauto_mintime">
+			      <property name="visible">True</property>
+			      <property name="can_focus">True</property>
+			      <property name="climb_rate">1</property>
+			      <property name="digits">0</property>
+			      <property name="numeric">False</property>
+			      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
+			      <property name="snap_to_ticks">False</property>
+			      <property name="wrap">False</property>
+			      <property name="adjustment">15 1 32767 1 60 60</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkLabel" id="w_label53">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">seconds</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</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>
+			</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="label21">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Sub-tune handling:</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">True</property>
+		</packing>
+	      </child>
+
+	      <child>
 		<widget class="GtkFrame" id="w_frame7">
 		  <property name="border_width">4</property>
 		  <property name="visible">True</property>
@@ -2768,7 +2823,7 @@
 				  <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="invisible_char">â—</property>
 				  <property name="activates_default">False</property>
 				</widget>
 			      </child>
@@ -2874,7 +2929,7 @@
 				  <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="invisible_char">â—</property>
 				  <property name="activates_default">False</property>
 				</widget>
 			      </child>
@@ -2955,581 +3010,7 @@
 		<packing>
 		  <property name="padding">0</property>
 		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkFrame" id="w_frame16">
-		  <property name="border_width">4</property>
-		  <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="vbox1">
-		      <property name="border_width">2</property>
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkCheckButton" id="cfg_ftitle_override">
-			  <property name="visible">True</property>
-			  <property name="tooltip" translatable="yes">XMMS v1.2.5 and later support generic titlestring formatting (see XMMS preferences). This option can be enabled to override those generic titles with Audacious-SID specific ones. Formatting mnemonics are explained briefly below.</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Override generic XMMS titles</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="xs_cfg_ftitle_override_toggled"/>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkVBox" id="cfg_ftitle_box">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">2</property>
-
-			  <child>
-			    <widget class="GtkEntry" id="cfg_ftitle_format">
-			      <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">2</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="w_hbox9">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">True</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="cfg_ftitle_desc1">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">%% - '%' character
-%p - Performer/composer
-%t - Song name (title)
-%c - Copyright
-%s - File type
-%m - SID model</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.0399999991059</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="GtkLabel" id="cfg_ftitle_desc2">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">%C - Speed/clock (PAL/NTSC)
-%n - Subtune
-%N - Number of subtunes
-%f - Filename
-%F - File path
-%e - File extension</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.0399999991059</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>
-			    </widget>
-			    <packing>
-			      <property name="padding">2</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</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="label19">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Song name/title format:</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">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="w_label23">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">Title</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="w_vbox19">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkFrame" id="w_frame28">
-		  <property name="border_width">4</property>
-		  <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="w_vbox31">
-		      <property name="border_width">2</property>
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">2</property>
-
-		      <child>
-			<widget class="GtkRadioButton" id="cfg_subctrl_none">
-			  <property name="visible">True</property>
-			  <property name="tooltip" translatable="yes">No sub-tune control.</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Disabled</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>
-
-		      <child>
-			<widget class="GtkRadioButton" id="cfg_subctrl_seek">
-			  <property name="visible">True</property>
-			  <property name="tooltip" translatable="yes">Seeking backwards/forwards selects previous/next sub-tune, similar to selector used in XMMS-SidPlay.</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Seek back/forward changes sub-tune</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">cfg_subctrl_none</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkRadioButton" id="cfg_subctrl_popup">
-			  <property name="visible">True</property>
-			  <property name="tooltip" translatable="yes">By pressing the seekbar a sub-tune control window pops up, in style of UADE (Unix Amiga Delitracker Emulator)</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Pop-up via seekbar (UADE-style)</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">cfg_subctrl_none</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkRadioButton" id="cfg_subctrl_patch">
-			  <property name="visible">True</property>
-			  <property name="tooltip" translatable="yes">Seekbar works as a sub-tune selector (Best option if you have patched your XMMS with the song-position patch.)</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Song-position patch</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">cfg_subctrl_none</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="label20">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Sub-tune control:</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">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkFrame" id="w_frame31">
-		  <property name="border_width">4</property>
-		  <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="w_vbox35">
-		      <property name="border_width">2</property>
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">2</property>
-
-		      <child>
-			<widget class="GtkCheckButton" id="cfg_subauto_enable">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Go through all sub-tunes in file</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="xs_cfg_subauto_enable_toggled"/>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkCheckButton" id="cfg_subauto_min_only">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Only tunes with specified minimum length </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="xs_cfg_subauto_min_only_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="cfg_subauto_box">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">2</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="w_label52">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Playtime:</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</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="cfg_subauto_mintime">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="climb_rate">1</property>
-			      <property name="digits">0</property>
-			      <property name="numeric">False</property>
-			      <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-			      <property name="snap_to_ticks">False</property>
-			      <property name="wrap">False</property>
-			      <property name="adjustment">15 1 32767 1 60 60</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkLabel" id="w_label53">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">seconds</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</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>
-			</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="label21">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Automatic sub-tune changes:</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">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkFrame" id="w_frame22">
-		  <property name="border_width">4</property>
-		  <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="w_vbox22">
-		      <property name="border_width">2</property>
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkCheckButton" id="cfg_detectmagic">
-			  <property name="visible">True</property>
-			  <property name="tooltip" translatable="yes">Determine if file is a SID-tune by checking the file contents. If NOT selected, filetype is determined by checking filename extension (.sid, .dat, ...)</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Detect file by contents (slower)</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="label22">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Miscellaneous 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">True</property>
+		  <property name="fill">False</property>
 		</packing>
 	      </child>
 	    </widget>
@@ -3574,7 +3055,7 @@
 	  <property name="border_width">4</property>
 	  <property name="visible">True</property>
 	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-	  <property name="spacing">15</property>
+	  <property name="spacing">8</property>
 
 	  <child>
 	    <widget class="GtkButton" id="cfg_ok">
@@ -3616,12 +3097,12 @@
 </widget>
 
 <widget class="GtkWindow" id="xs_fileinfowin">
+  <property name="width_request">400</property>
   <property name="visible">True</property>
   <property name="title" translatable="yes">Audacious-SID Fileinfo</property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
   <property name="window_position">GTK_WIN_POS_NONE</property>
   <property name="modal">False</property>
-  <property name="default_width">400</property>
   <property name="resizable">True</property>
   <property name="destroy_with_parent">False</property>
   <property name="decorated">True</property>
@@ -3640,98 +3121,6 @@
       <property name="spacing">0</property>
 
       <child>
-	<widget class="GtkAlignment" id="w_alignment8">
-	  <property name="border_width">2</property>
-	  <property name="visible">True</property>
-	  <property name="xalign">0.5</property>
-	  <property name="yalign">0.5</property>
-	  <property name="xscale">0.10000000149</property>
-	  <property name="yscale">1</property>
-	  <property name="top_padding">0</property>
-	  <property name="bottom_padding">0</property>
-	  <property name="left_padding">0</property>
-	  <property name="right_padding">0</property>
-
-	  <child>
-	    <widget class="GtkFrame" id="w_frame30">
-	      <property name="border_width">2</property>
-	      <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="GtkHBox" id="w_hbox19">
-		  <property name="border_width">4</property>
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkButton" id="fileinfo_subctrl_prev">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes"> &lt; </property>
-		      <property name="use_underline">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <signal name="clicked" handler="xs_subctrl_prevsong"/>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHScale" id="fileinfo_subctrl_adj">
-		      <property name="width_request">80</property>
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="draw_value">True</property>
-		      <property name="value_pos">GTK_POS_TOP</property>
-		      <property name="digits">0</property>
-		      <property name="update_policy">GTK_UPDATE_CONTINUOUS</property>
-		      <property name="inverted">False</property>
-		      <property name="adjustment">0 0 0 0 0 0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkButton" id="fileinfo_subctrl_next">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="label" translatable="yes"> &gt; </property>
-		      <property name="use_underline">True</property>
-		      <property name="relief">GTK_RELIEF_NORMAL</property>
-		      <property name="focus_on_click">True</property>
-		      <signal name="clicked" handler="xs_subctrl_nextsong"/>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-	      </child>
-	    </widget>
-	  </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="w_frame14">
 	  <property name="border_width">4</property>
 	  <property name="visible">True</property>
@@ -3870,7 +3259,7 @@
 		  <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="invisible_char">â—</property>
 		  <property name="activates_default">False</property>
 		</widget>
 		<packing>
@@ -3891,7 +3280,7 @@
 		  <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="invisible_char">â—</property>
 		  <property name="activates_default">False</property>
 		</widget>
 		<packing>
@@ -3912,7 +3301,7 @@
 		  <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="invisible_char">â—</property>
 		  <property name="activates_default">False</property>
 		</widget>
 		<packing>
@@ -3933,7 +3322,7 @@
 		  <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="invisible_char">â—</property>
 		  <property name="activates_default">False</property>
 		</widget>
 		<packing>
@@ -3996,26 +3385,18 @@
 		  <property name="border_width">2</property>
 		  <property name="visible">True</property>
 		  <property name="can_focus">True</property>
-		  <property name="history">0</property>
+		  <property name="history">-1</property>
 
 		  <child internal-child="menu">
-		    <widget class="GtkMenu" id="convertwidget29">
+		    <widget class="GtkMenu" id="convertwidget7">
 		      <property name="visible">True</property>
-
-		      <child>
-			<widget class="GtkMenuItem" id="convertwidget30">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes"> </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>
+		  <property name="expand">False</property>
+		  <property name="fill">False</property>
 		</packing>
 	      </child>
 
@@ -4066,7 +3447,7 @@
 		      <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="invisible_char">â—</property>
 		      <property name="activates_default">False</property>
 		    </widget>
 		    <packing>
@@ -4115,7 +3496,7 @@
 		      <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="invisible_char">â—</property>
 		      <property name="activates_default">False</property>
 		    </widget>
 		    <packing>
@@ -4164,7 +3545,7 @@
 		      <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="invisible_char">â—</property>
 		      <property name="activates_default">False</property>
 		    </widget>
 		    <packing>
@@ -4253,7 +3634,7 @@
 
       <child>
 	<widget class="GtkButton" id="button2">
-	  <property name="border_width">6</property>
+	  <property name="border_width">4</property>
 	  <property name="visible">True</property>
 	  <property name="can_default">True</property>
 	  <property name="has_default">True</property>
@@ -4275,7 +3656,7 @@
   </child>
 </widget>
 
-<widget class="GtkFileSelection" id="xs_sldbfileselector">
+<widget class="GtkFileSelection" id="xs_sldb_fs">
   <property name="border_width">10</property>
   <property name="visible">True</property>
   <property name="title" translatable="yes">Select HVSC song length database</property>
@@ -4292,6 +3673,7 @@
   <property name="focus_on_map">True</property>
   <property name="urgency_hint">False</property>
   <property name="show_fileops">True</property>
+  <signal name="delete_event" handler="xs_sldb_fs_delete"/>
 
   <child internal-child="cancel_button">
     <widget class="GtkButton" id="cancel_button2">
@@ -4300,7 +3682,7 @@
       <property name="can_focus">True</property>
       <property name="relief">GTK_RELIEF_NORMAL</property>
       <property name="focus_on_click">True</property>
-      <signal name="clicked" handler="xs_cfg_sldb_fs_cancel"/>
+      <signal name="clicked" handler="xs_sldb_fs_cancel"/>
     </widget>
   </child>
 
@@ -4311,15 +3693,15 @@
       <property name="can_focus">True</property>
       <property name="relief">GTK_RELIEF_NORMAL</property>
       <property name="focus_on_click">True</property>
-      <signal name="clicked" handler="xs_cfg_sldb_fs_ok"/>
+      <signal name="clicked" handler="xs_sldb_fs_ok"/>
     </widget>
   </child>
 </widget>
 
-<widget class="GtkFileSelection" id="xs_stilfileselector">
+<widget class="GtkFileSelection" id="xs_stil_fs">
   <property name="border_width">10</property>
   <property name="visible">True</property>
-  <property name="title" translatable="yes">Select STIL-database </property>
+  <property name="title" translatable="yes">Select STIL-database</property>
   <property name="type">GTK_WINDOW_TOPLEVEL</property>
   <property name="window_position">GTK_WIN_POS_NONE</property>
   <property name="modal">True</property>
@@ -4333,6 +3715,7 @@
   <property name="focus_on_map">True</property>
   <property name="urgency_hint">False</property>
   <property name="show_fileops">True</property>
+  <signal name="delete_event" handler="xs_stil_fs_delete"/>
 
   <child internal-child="cancel_button">
     <widget class="GtkButton" id="cancel_button3">
@@ -4341,7 +3724,7 @@
       <property name="can_focus">True</property>
       <property name="relief">GTK_RELIEF_NORMAL</property>
       <property name="focus_on_click">True</property>
-      <signal name="clicked" handler="xs_cfg_stil_fs_cancel"/>
+      <signal name="clicked" handler="xs_stil_fs_cancel"/>
     </widget>
   </child>
 
@@ -4352,12 +3735,12 @@
       <property name="can_focus">True</property>
       <property name="relief">GTK_RELIEF_NORMAL</property>
       <property name="focus_on_click">True</property>
-      <signal name="clicked" handler="xs_cfg_stil_fs_ok"/>
+      <signal name="clicked" handler="xs_stil_fs_ok"/>
     </widget>
   </child>
 </widget>
 
-<widget class="GtkFileSelection" id="xs_hvscpathselector">
+<widget class="GtkFileSelection" id="xs_hvsc_fs">
   <property name="border_width">10</property>
   <property name="visible">True</property>
   <property name="title" translatable="yes">Select HVSC location prefix</property>
@@ -4374,6 +3757,7 @@
   <property name="focus_on_map">True</property>
   <property name="urgency_hint">False</property>
   <property name="show_fileops">True</property>
+  <signal name="delete_event" handler="xs_hvsc_fs_delete"/>
 
   <child internal-child="cancel_button">
     <widget class="GtkButton" id="cancel_button4">
@@ -4382,7 +3766,7 @@
       <property name="can_focus">True</property>
       <property name="relief">GTK_RELIEF_NORMAL</property>
       <property name="focus_on_click">True</property>
-      <signal name="clicked" handler="xs_cfg_hvsc_fs_cancel"/>
+      <signal name="clicked" handler="xs_hvsc_fs_cancel"/>
     </widget>
   </child>
 
@@ -4393,7 +3777,205 @@
       <property name="can_focus">True</property>
       <property name="relief">GTK_RELIEF_NORMAL</property>
       <property name="focus_on_click">True</property>
-      <signal name="clicked" handler="xs_cfg_hvsc_fs_ok"/>
+      <signal name="clicked" handler="xs_hvsc_fs_ok"/>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkFileSelection" id="xs_filter_import_fs">
+  <property name="border_width">10</property>
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Select SIDPlay2 filters file for importing</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">True</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <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="show_fileops">True</property>
+  <signal name="delete_event" handler="xs_filter_import_fs_delete"/>
+
+  <child internal-child="cancel_button">
+    <widget class="GtkButton" id="cancel_button64">
+      <property name="visible">True</property>
+      <property name="can_default">True</property>
+      <property name="can_focus">True</property>
+      <property name="relief">GTK_RELIEF_NORMAL</property>
+      <property name="focus_on_click">True</property>
+      <signal name="clicked" handler="xs_filter_import_fs_cancel"/>
+    </widget>
+  </child>
+
+  <child internal-child="ok_button">
+    <widget class="GtkButton" id="ok_button64">
+      <property name="visible">True</property>
+      <property name="can_default">True</property>
+      <property name="can_focus">True</property>
+      <property name="relief">GTK_RELIEF_NORMAL</property>
+      <property name="focus_on_click">True</property>
+      <signal name="clicked" handler="xs_filter_import_fs_ok"/>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkFileSelection" id="xs_filter_export_fs">
+  <property name="border_width">10</property>
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Select SIDPlay2 filters file for exporting</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">True</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <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="show_fileops">True</property>
+  <signal name="delete_event" handler="xs_filter_export_fs_delete"/>
+
+  <child internal-child="cancel_button">
+    <widget class="GtkButton" id="cancel_button64">
+      <property name="visible">True</property>
+      <property name="can_default">True</property>
+      <property name="can_focus">True</property>
+      <property name="relief">GTK_RELIEF_NORMAL</property>
+      <property name="focus_on_click">True</property>
+      <signal name="clicked" handler="xs_filter_export_fs_cancel"/>
+    </widget>
+  </child>
+
+  <child internal-child="ok_button">
+    <widget class="GtkButton" id="ok_button64">
+      <property name="visible">True</property>
+      <property name="can_default">True</property>
+      <property name="can_focus">True</property>
+      <property name="relief">GTK_RELIEF_NORMAL</property>
+      <property name="focus_on_click">True</property>
+      <signal name="clicked" handler="xs_filter_export_fs_ok"/>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkDialog" id="xs_confirmwin">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Confirm selected action</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <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>
+  <signal name="delete_event" handler="xs_confirmwin_delete"/>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox1">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+	<widget class="GtkHButtonBox" id="dialog-action_area1">
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+	  <child>
+	    <widget class="GtkHButtonBox" id="hbuttonbox2">
+	      <property name="visible">True</property>
+	      <property name="layout_style">GTK_BUTTONBOX_END</property>
+	      <property name="spacing">8</property>
+
+	      <child>
+		<widget class="GtkButton" id="xs_confirm_yes">
+		  <property name="visible">True</property>
+		  <property name="can_default">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">Yes</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		</widget>
+	      </child>
+
+	      <child>
+		<widget class="GtkButton" id="xs_confirm_no">
+		  <property name="visible">True</property>
+		  <property name="can_default">True</property>
+		  <property name="can_focus">True</property>
+		  <property name="label" translatable="yes">No</property>
+		  <property name="use_underline">True</property>
+		  <property name="relief">GTK_RELIEF_NORMAL</property>
+		  <property name="focus_on_click">True</property>
+		</widget>
+	      </child>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkFrame" id="xs_confirm_frame">
+	  <property name="border_width">6</property>
+	  <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>
+	    <placeholder/>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="label25">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Confirm selected action</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>
   </child>
 </widget>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/sid/xmms-sid.gladep	Thu Sep 13 12:10:39 2007 -0500
@@ -0,0 +1,20 @@
+<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
+
+<glade-project>
+  <name>audacious-sid</name>
+  <program_name>audacious-sid</program_name>
+  <source_directory>.</source_directory>
+  <pixmaps_directory>.</pixmaps_directory>
+  <gnome_support>FALSE</gnome_support>
+  <use_widget_names>TRUE</use_widget_names>
+  <output_main_file>FALSE</output_main_file>
+  <output_build_files>FALSE</output_build_files>
+  <backup_source_files>FALSE</backup_source_files>
+  <main_source_file>xs_interface.c</main_source_file>
+  <main_header_file>xs_interface.h</main_header_file>
+  <handler_source_file>xs_genui.c</handler_source_file>
+  <handler_header_file>xs_genui.h</handler_header_file>
+  <support_source_file>xs_glade.c</support_source_file>
+  <support_header_file>xs_glade.h</support_header_file>
+</glade-project>
--- a/src/sid/xmms-sid.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xmms-sid.h	Thu Sep 13 12:10:39 2007 -0500
@@ -63,8 +63,8 @@
 
 /* Configuration section identifier
  */
-#define XS_PACKAGE_STRING	"Audacious-SID v0.8.0beta18"
-#define XS_CONFIG_IDENT		"sid"		/* Configuration file identifier */
+#define XS_PACKAGE_STRING	"Audacious-SID"
+#define XS_CONFIG_IDENT		"sid"
 
 /* Default audio rendering frequency in Hz
  */
@@ -106,15 +106,27 @@
 #define XS_THREAD_EXIT(M)	g_thread_exit(M)
 #define XS_THREAD_JOIN(M)	g_thread_join(M)
 #define XS_MPP(M)		M ## _mutex
-#define XS_MUTEX(M)		GStaticMutex	XS_MPP(M) = G_STATIC_MUTEX_INIT
+#define XS_MUTEX(M)		GStaticMutex XS_MPP(M) = G_STATIC_MUTEX_INIT
 #define XS_MUTEX_H(M)		extern GStaticMutex XS_MPP(M)
-#define XS_MUTEX_LOCK(M)	g_static_mutex_lock(&XS_MPP(M))
-#define XS_MUTEX_UNLOCK(M)	g_static_mutex_unlock(&XS_MPP(M))
+#ifdef XS_MUTEX_DEBUG
+#  define XS_MUTEX_LOCK(M)	{			\
+	gboolean tmpRes;				\
+	XSDEBUG("XS_MUTEX_TRYLOCK(" #M ")\n");	\
+	tmpRes = g_static_mutex_trylock(&XS_MPP(M));	\
+	XSDEBUG("[" #M "] = %s\n", tmpRes ? "TRUE" : "FALSE");	\
+	}
+#  define XS_MUTEX_UNLOCK(M)	{ XSDEBUG("XS_MUTEX_UNLOCK(" #M ")\n"); g_static_mutex_unlock(&XS_MPP(M)); }
+#else
+#  define XS_MUTEX_LOCK(M)	g_static_mutex_lock(&XS_MPP(M))
+#  define XS_MUTEX_UNLOCK(M)	g_static_mutex_unlock(&XS_MPP(M))
+#endif
 
 /* Character set conversion helper macros
  */
-#define XS_CS_SID(M)	g_convert(M, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL)
-#define XS_CS_STIL(M)	g_convert(M, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL)
+#define XS_CS_FILENAME(M)	g_filename_to_utf8(M, -1, NULL, NULL, NULL)
+#define XS_CS_SID(M)		g_convert(M, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL)
+#define XS_CS_STIL(M)		g_convert(M, -1, "UTF-8", "ISO-8859-1", NULL, NULL, NULL)
+#define XS_CS_FREE(M)		g_free(M)
 
 /* Shorthands for linked lists
  */
@@ -168,15 +180,8 @@
 Tuple *	xs_get_song_tuple(gchar *);
 void	xs_about(void);
 
-
-t_xs_tuneinfo *xs_tuneinfo_new(const gchar * pcFilename,
-		gint nsubTunes, gint startTune, const gchar * sidName,
-		const gchar * sidComposer, const gchar * sidCopyright,
-		gint loadAddr, gint initAddr, gint playAddr,
-		gint dataFileLen, const gchar *sidFormat, gint sidModel);
-void	xs_tuneinfo_free(t_xs_tuneinfo *);
-
 void	xs_error(const char *, ...);
+gboolean xs_get_trackinfo(const gchar *, gchar **, gint *);
 
 
 /* Debugging
@@ -191,6 +196,29 @@
 #  endif
 #endif
 
+
+/* And even some Gtk+ macro crap here, yay.
+ */
+#define XS_DEF_WINDOW_DELETE(ME, MV)					\
+gboolean xs_ ## ME ## _delete(GtkWidget *w, GdkEvent *e, gpointer d) {	\
+	(void) w; (void) e; (void) d;					\
+	if (xs_ ## MV ) {						\
+		gtk_widget_destroy(xs_ ## MV );				\
+		xs_ ## MV = NULL;					\
+	}								\
+	return FALSE;							\
+}
+
+#define XS_DEF_WINDOW_CLOSE(ME, MV)			\
+void xs_ ## ME (GtkButton *b, gpointer d) {		\
+	(void) b; (void) d;				\
+	gtk_widget_destroy(xs_ ## MV );			\
+	xs_ ## MV = NULL;				\
+}
+
+#define XS_SIGNAL_CONNECT(SOBJ, SNAME, SFUNC, SDATA)		\
+	g_signal_connect(G_OBJECT(SOBJ), SNAME, G_CALLBACK(SFUNC), SDATA)
+
 #ifdef __cplusplus
 }
 #endif
--- a/src/sid/xs_about.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_about.c	Thu Sep 13 12:10:39 2007 -0500
@@ -51,12 +51,8 @@
 #endif
 
 
-gint xs_about_ok(void)
-{
-	gtk_widget_destroy(xs_aboutwin);
-	xs_aboutwin = NULL;
-	return 0;
-}
+XS_DEF_WINDOW_CLOSE(about_ok, aboutwin)
+XS_DEF_WINDOW_DELETE(about, aboutwin)
 
 
 /*
@@ -72,6 +68,7 @@
 	GtkWidget *about_text;
 	GtkWidget *alignment6;
 	GtkWidget *about_close;
+	gchar tmpStr[64];
 
 	/* Check if there already is an open about window */
 	if (xs_aboutwin != NULL) {
@@ -84,8 +81,11 @@
 	gtk_window_set_type_hint(GTK_WINDOW(xs_aboutwin), GDK_WINDOW_TYPE_HINT_DIALOG);
 	gtk_widget_set_name(xs_aboutwin, "xs_aboutwin");
 	gtk_object_set_data(GTK_OBJECT(xs_aboutwin), "xs_aboutwin", xs_aboutwin);
-	gtk_window_set_title(GTK_WINDOW(xs_aboutwin), "About " XS_PACKAGE_STRING);
-	gtk_window_set_default_size(GTK_WINDOW(xs_aboutwin), 300, -1);
+	g_snprintf(tmpStr, sizeof(tmpStr), _("About %s"), XS_PACKAGE_STRING);
+	gtk_window_set_title(GTK_WINDOW(xs_aboutwin), tmpStr);
+	gtk_window_set_default_size(GTK_WINDOW(xs_aboutwin), 350, -1);
+
+	XS_SIGNAL_CONNECT(xs_aboutwin, "delete_event", xs_about_delete, NULL);
 
 	about_vbox1 = gtk_vbox_new(FALSE, 0);
 	gtk_widget_set_name(about_vbox1, "about_vbox1");
@@ -153,6 +153,11 @@
 	gtk_text_buffer_set_text(
 	GTK_TEXT_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(about_text))),
 			"\n"
+			"This release of XMMS-SID is dedicated to\n"
+			"            Richard Joseph\n"
+			" - Now gone, but forever in our hearts -\n"
+			"\n"
+			"\n"
 			"(C) Copyright 1999-2007\n"
 			"\tTecnic Software productions (TNSP)\n"
 			"\n"
@@ -201,7 +206,7 @@
 	gtk_box_pack_start(GTK_BOX(about_vbox1), alignment6, FALSE, TRUE, 0);
 	gtk_container_set_border_width(GTK_CONTAINER(alignment6), 8);
 
-	about_close = gtk_button_new_with_label("Close");
+	about_close = gtk_button_new_with_label(_("Close"));
 	gtk_widget_set_name(about_close, "about_close");
 	gtk_widget_ref(about_close);
 	gtk_object_set_data_full(GTK_OBJECT(xs_aboutwin), "about_close", about_close,
@@ -210,8 +215,7 @@
 	gtk_container_add(GTK_CONTAINER(alignment6), about_close);
 	GTK_WIDGET_SET_FLAGS(about_close, GTK_CAN_DEFAULT);
 
-	gtk_signal_connect(GTK_OBJECT(about_close), "clicked",
-		GTK_SIGNAL_FUNC(xs_about_ok), NULL);
+	XS_SIGNAL_CONNECT(about_close, "clicked", xs_about_ok, NULL);
 
 	gtk_widget_show(xs_aboutwin);
 }
--- a/src/sid/xs_config.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_config.c	Thu Sep 13 12:10:39 2007 -0500
@@ -54,6 +54,7 @@
 #define XS_CFG_GET_BOOL		xmms_cfg_read_boolean
 #endif
 #include <stdio.h>
+#include <ctype.h>
 #include "xs_glade.h"
 #include "xs_interface.h"
 #include "xs_support.h"
@@ -65,10 +66,21 @@
 static GtkWidget *xs_configwin = NULL,
 	*xs_sldb_fileselector = NULL,
 	*xs_stil_fileselector = NULL,
-	*xs_hvsc_pathselector = NULL;
+	*xs_hvsc_selector = NULL,
+	*xs_filt_importselector = NULL,
+	*xs_filt_exportselector = NULL;
 
 #define LUW(x)	lookup_widget(xs_configwin, x)
 
+/* Samplerates
+ */
+static const gchar *xs_samplerates_table[] = {
+	"8000", "11025", "22050", 
+	"44100", "48000", "64000",
+	"96000"
+};
+
+static const gint xs_nsamplerates_table = (sizeof(xs_samplerates_table) / sizeof(xs_samplerates_table[0]));
 
 /*
  * Configuration specific stuff
@@ -76,7 +88,7 @@
 XS_MUTEX(xs_cfg);
 struct t_xs_cfg xs_cfg;
 
-t_xs_cfg_item xs_cfgtable[] = {
+static t_xs_cfg_item xs_cfgtable[] = {
 { CTYPE_INT,	&xs_cfg.audioBitsPerSample,	"audioBitsPerSample" },
 { CTYPE_INT,	&xs_cfg.audioChannels,		"audioChannels" },
 { CTYPE_INT,	&xs_cfg.audioFrequency,		"audioFrequency" },
@@ -95,6 +107,7 @@
 
 { CTYPE_INT,	&xs_cfg.sid2Builder,		"sid2Builder" },
 { CTYPE_INT,	&xs_cfg.sid2OptLevel,		"sid2OptLevel" },
+{ CTYPE_INT,	&xs_cfg.sid2NFilterPresets,	"sid2NFilterPresets" },
 
 { CTYPE_BOOL,	&xs_cfg.oversampleEnable,	"oversampleEnable" },
 { CTYPE_INT,	&xs_cfg.oversampleFactor,	"oversampleFactor" },
@@ -111,8 +124,10 @@
 { CTYPE_STR,	&xs_cfg.stilDBPath,		"stilDBPath" },
 { CTYPE_STR,	&xs_cfg.hvscPath,		"hvscPath" },
 
+#ifndef AUDACIOUS_PLUGIN
 { CTYPE_INT,	&xs_cfg.subsongControl,		"subsongControl" },
 { CTYPE_BOOL,	&xs_cfg.detectMagic,		"detectMagic" },
+#endif
 
 { CTYPE_BOOL,	&xs_cfg.titleOverride,		"titleOverride" },
 { CTYPE_STR,	&xs_cfg.titleFormat,		"titleFormat" },
@@ -125,7 +140,7 @@
 static const gint xs_cfgtable_max = (sizeof(xs_cfgtable) / sizeof(t_xs_cfg_item));
 
 
-t_xs_wid_item xs_widtable[] = {
+static t_xs_wid_item xs_widtable[] = {
 { WTYPE_BGROUP,	CTYPE_INT,	"cfg_res_16bit",	&xs_cfg.audioBitsPerSample,	XS_RES_16BIT },
 { WTYPE_BGROUP,	CTYPE_INT,	"cfg_res_8bit",		&xs_cfg.audioBitsPerSample,	XS_RES_8BIT },
 { WTYPE_BGROUP,	CTYPE_INT,	"cfg_chn_mono",		&xs_cfg.audioChannels,		XS_CHN_MONO },
@@ -169,12 +184,14 @@
 { WTYPE_TEXT,	CTYPE_STR,	"cfg_stil_dbpath",	&xs_cfg.stilDBPath,		0 },
 { WTYPE_TEXT,	CTYPE_STR,	"cfg_hvsc_path",	&xs_cfg.hvscPath,		0 },
 
+#ifndef AUDACIOUS_PLUGIN
 { WTYPE_BGROUP,	CTYPE_INT,	"cfg_subctrl_none",	&xs_cfg.subsongControl,		XS_SSC_NONE },
 { WTYPE_BGROUP,	CTYPE_INT,	"cfg_subctrl_seek",	&xs_cfg.subsongControl,		XS_SSC_SEEK },
 { WTYPE_BGROUP,	CTYPE_INT,	"cfg_subctrl_popup",	&xs_cfg.subsongControl,		XS_SSC_POPUP },
 { WTYPE_BGROUP,	CTYPE_INT,	"cfg_subctrl_patch",	&xs_cfg.subsongControl,		XS_SSC_PATCH },
 
 { WTYPE_BUTTON,	CTYPE_BOOL,	"cfg_detectmagic",	&xs_cfg.detectMagic,		0 },
+#endif
 
 { WTYPE_BUTTON,	CTYPE_BOOL,	"cfg_ftitle_override",	&xs_cfg.titleOverride,		0 },
 { WTYPE_TEXT,	CTYPE_STR,	"cfg_ftitle_format",	&xs_cfg.titleFormat,		0 },
@@ -195,6 +212,8 @@
 	XSDEBUG("initializing configuration ...\n");
 	XS_MUTEX_LOCK(xs_cfg);
 
+	xs_memset(&xs_cfg, 0, sizeof(xs_cfg));
+	
 	/* Initialize values with sensible defaults */
 	xs_cfg.audioBitsPerSample = XS_RES_16BIT;
 	xs_cfg.audioChannels = XS_CHN_MONO;
@@ -203,6 +222,7 @@
 	xs_cfg.mos8580 = FALSE;
 	xs_cfg.forceModel = FALSE;
 
+	/* Filter values */
 	xs_cfg.emulateFilters = TRUE;
 	xs_cfg.sid1FilterFs = XS_SIDPLAY1_FS;
 	xs_cfg.sid1FilterFm = XS_SIDPLAY1_FM;
@@ -224,6 +244,8 @@
 	xs_cfg.forceSpeed = FALSE;
 
 	xs_cfg.sid2OptLevel = 0;
+	xs_cfg.sid2NFilterPresets = 0;
+
 #ifdef HAVE_RESID_BUILDER
 	xs_cfg.sid2Builder = XS_BLD_RESID;
 #else
@@ -253,21 +275,22 @@
 	xs_pstrcpy(&xs_cfg.stilDBPath, "~/C64Music/DOCUMENTS/STIL.txt");
 	xs_pstrcpy(&xs_cfg.hvscPath, "~/C64Music");
 
-#ifdef HAVE_SONG_POSITION
+#if defined(HAVE_SONG_POSITION) && !defined(AUDACIOUS_PLUGIN)
 	xs_cfg.subsongControl = XS_SSC_PATCH;
 #else
 	xs_cfg.subsongControl = XS_SSC_POPUP;
 #endif
-
 	xs_cfg.detectMagic = FALSE;
 
-#if defined(HAVE_XMMSEXTRA) || defined(AUDACIOUS_PLUGIN)
-	xs_cfg.titleOverride = FALSE;
-#else
+#ifndef HAVE_XMMSEXTRA
 	xs_cfg.titleOverride = TRUE;
 #endif
-	xs_pstrcpy(&xs_cfg.titleFormat, "%p - %t (%c) [%n/%N][%m/%C]");
 
+#ifdef AUDACIOUS_PLUGIN
+	xs_pstrcpy(&xs_cfg.titleFormat, "${artist} - ${title} (${copyright}) <${subtune}/${subtunes}> [${sid-model}/${sid-speed}]");
+#else
+	xs_pstrcpy(&xs_cfg.titleFormat, "%p - %t (%c) <%n/%N> [%m/%C]");
+#endif
 
 	xs_cfg.subAutoEnable = FALSE;
 	xs_cfg.subAutoMinOnly = TRUE;
@@ -292,8 +315,6 @@
 	g_snprintf(tmpKey, sizeof(tmpKey), "filter%dNPoints", nFilter);
 	if (!XS_CFG_GET_INT(cfg, XS_CONFIG_IDENT, tmpKey, &(pResult->npoints)))
 		return FALSE;
-	if (pResult->npoints > XS_SIDPLAY2_NFPOINTS)
-		return FALSE;
 	
 	g_snprintf(tmpKey, sizeof(tmpKey), "filter%dName", nFilter);
 	if (!XS_CFG_GET_STRING(cfg, XS_CONFIG_IDENT, tmpKey, &tmpStr))
@@ -310,9 +331,10 @@
 		return FALSE;
 	
 	for (i = 0, j = 0; i < pResult->npoints; i++, j += XS_FITEM) {
-		sscanf(&tmpStr[j], "%4x%4x",
+		if (sscanf(&tmpStr[j], "%4x%4x",
 			&(pResult->points[i].x),
-			&(pResult->points[i].y));
+			&(pResult->points[i].y)) != 2)
+			return FALSE;
 	}
 	
 	return TRUE;
@@ -370,34 +392,113 @@
 /* Filter exporting and importing. These functions export/import
  * filter settings to/from SIDPlay2 INI-type files.
  */
-static gboolean xs_filters_import(gchar *pcFilename, t_xs_sid2_filter **pFilters, gint *nFilters)
+static gboolean xs_fgetitem(gchar *inLine, size_t *linePos, gchar sep, gchar *tmpStr, size_t tmpMax)
+{
+	size_t i;
+	for (i = 0; i < tmpMax && inLine[*linePos] &&
+		!isspace(inLine[*linePos]) &&
+		inLine[*linePos] != sep; i++, (*linePos)++)
+		tmpStr[i] = inLine[*linePos];
+	tmpStr[i] = 0;
+	xs_findnext(inLine, linePos);
+	return (inLine[*linePos] == sep);
+}
+
+static gboolean xs_filters_import(const gchar *pcFilename, t_xs_sid2_filter **pFilters, gint *nFilters)
 {
 	FILE *inFile;
-	t_xs_sid2_filter *f;
+	gchar inLine[XS_BUF_SIZE], tmpStr[XS_BUF_SIZE];
+	gchar *sectName = NULL;
+	gboolean sectBegin;
+	size_t lineNum, i;
+	t_xs_sid2_filter *tmpFilter;
+
+fprintf(stderr, "xs_filters_import(%s)\n", pcFilename);
+
+	if ((inFile = fopen(pcFilename, "ra")) == NULL)
+		return FALSE;
+
+fprintf(stderr, "importing...\n");
 	
-	if ((inFile = fopen(pcFilename, "rb")) == NULL)
-		return FALSE;
-	
-	
+	sectBegin = FALSE;
+	lineNum = 0;
+	while (fgets(inLine, XS_BUF_SIZE, inFile) != NULL) {
+		size_t linePos = 0;
+		lineNum++;
+		
+		xs_findnext(inLine, &linePos);
+		if (isalpha(inLine[linePos]) && sectBegin) {
+			/* A new key/value pair */
+			if (!xs_fgetitem(inLine, &linePos, '=', tmpStr, XS_BUF_SIZE)) {
+				fprintf(stderr, "invalid line: %s [expect =']'", inLine);
+			} else {
+				linePos++;
+				xs_findnext(inLine, &linePos);
+				if (!strncmp(tmpStr, "points", 6)) {
+					fprintf(stderr, "points=%s\n", &inLine[linePos]);
+				} else if (!strncmp(tmpStr, "point", 5)) {
+				} else if (!strncmp(tmpStr, "type", 4)) {
+				} else {
+					fprintf(stderr, "warning: ukn def: %s @ %s\n",
+						tmpStr, sectName);
+				}
+			}
+		} else if (inLine[linePos] == '[') {
+			/* Check for existing section */
+			if (sectBegin) {
+				/* Submit definition */
+				fprintf(stderr, "filter ends: %s\n", sectName);
+				if ((tmpFilter = g_malloc0(sizeof(t_xs_sid2_filter))) == NULL) {
+					fprintf(stderr, "could not allocate ..\n");
+				} else {
+					
+				}
+				g_free(sectName);
+			}
+			
+			/* New filter(?) section starts */
+			linePos++;
+			for (i = 0; i < XS_BUF_SIZE && inLine[linePos] && inLine[linePos] != ']'; i++, linePos++)
+				tmpStr[i] = inLine[linePos];
+			tmpStr[i] = 0;
+			
+			if (inLine[linePos] != ']') {
+				fprintf(stderr, "invalid! expected ']': %s\n", inLine);
+			} else {
+				sectName = strdup(tmpStr);
+				fprintf(stderr, "filter: %s\n", sectName);
+				sectBegin = TRUE;
+			}
+		} else if ((inLine[linePos] != ';') && (inLine[linePos] != 0)) {
+			/* Syntax error */
+			fprintf(stderr, "syntax error: %s\n", inLine);
+		}
+	}
 	
 	fclose(inFile);
-	return FALSE;
+	return TRUE;
 }
 
 
-static gboolean xs_filters_export(gchar *pcFilename, t_xs_sid2_filter *pFilters, gint nFilters)
+static gboolean xs_filters_export(const gchar *pcFilename, t_xs_sid2_filter **pFilters, gint nFilters)
 {
 	FILE *outFile;
-	t_xs_sid2_filter *f = pFilters;
+	t_xs_sid2_filter *f;
 	gint n;
 	
 	/* Open/create the file */
-	if ((outFile = fopen(pcFilename, "wb")) == NULL)
+	if ((outFile = fopen(pcFilename, "wa")) == NULL)
 		return FALSE;
 	
+	/* Header */
+	fprintf(outFile,
+		"; SIDPlay2 compatible filter definition file\n"
+		"; Exported by " PACKAGE_STRING "\n\n");
+	
 	/* Write each filter spec in "INI"-style format */
 	for (n = 0; n < nFilters; n++) {
 		gint i;
+		f = pFilters[n];
 		
 		fprintf(outFile,
 		"[%s]\n"
@@ -473,6 +574,20 @@
 		}
 	}
 	
+	/* Filters and presets are a special case */
+	xs_filter_load_into(cfg, 0, &xs_cfg.sid2Filter);
+	
+	if (xs_cfg.sid2NFilterPresets > 0) {
+		xs_cfg.sid2FilterPresets = g_malloc0(xs_cfg.sid2NFilterPresets * sizeof(t_xs_sid2_filter *));
+		if (!xs_cfg.sid2FilterPresets) {
+			xs_error(_("Allocation of sid2FilterPresets structure failed!\n"));
+		} else {
+			for (i = 0; i < xs_cfg.sid2NFilterPresets; i++) {
+				xs_cfg.sid2FilterPresets[i] = xs_filter_load(cfg, i);
+			}
+		}
+	}
+
 	XS_CONFIG_FREE(cfg);
 
 	XS_MUTEX_UNLOCK(xs_cfg);
@@ -495,6 +610,7 @@
 
 #ifndef AUDACIOUS_PLUGIN
 	if (!cfg) cfg = xmms_cfg_new();
+	if (!cfg) return -1;
 #endif
 
 	/* Write the new settings to XMMS configuration file */
@@ -526,6 +642,7 @@
 		}
 	}
 
+
 	XS_CONFIG_WRITE(cfg);
 	XS_CONFIG_FREE(cfg);
 
@@ -537,11 +654,7 @@
 
 /* Configuration panel was canceled
  */
-void xs_cfg_cancel(void)
-{
-	gtk_widget_destroy(xs_configwin);
-	xs_configwin = NULL;
-}
+XS_DEF_WINDOW_CLOSE(cfg_cancel, configwin)
 
 
 /* Configuration was accepted, save the settings
@@ -619,6 +732,13 @@
 			break;
 		}
 	}
+	
+	/* Get filter settings */
+	/*
+	if (!xs_curve_get_points(XS_CURVE(LUW("")), &xs_cfg.sid2Filter.points, &xs_cfg.sid2Filter.npoints)) {
+		xs_error(_("Warning: Could not get filter curve widget points!\n"));
+	}
+	*/
 
 	/* Release lock */
 	XS_MUTEX_UNLOCK(xs_cfg);
@@ -635,22 +755,9 @@
 }
 
 
-/* Reset filter settings to defaults
- */
-void xs_cfg_sp1_filter_reset(GtkButton * button, gpointer user_data)
-{
-	(void) button;
-	(void) user_data;
-
-	gtk_adjustment_set_value(gtk_range_get_adjustment(GTK_RANGE(LUW("cfg_emu_filt_fs"))), XS_SIDPLAY1_FS);
-	gtk_adjustment_set_value(gtk_range_get_adjustment(GTK_RANGE(LUW("cfg_emu_filt_fm"))), XS_SIDPLAY1_FM);
-	gtk_adjustment_set_value(gtk_range_get_adjustment(GTK_RANGE(LUW("cfg_emu_filt_ft"))), XS_SIDPLAY1_FT);
-}
-
-
 /* HVSC songlength-database file selector response-functions
  */
-void xs_cfg_sld_dbbrowse(GtkButton * button, gpointer user_data)
+void xs_cfg_sldb_browse(GtkButton * button, gpointer user_data)
 {
 	(void) button;
 	(void) user_data;
@@ -660,7 +767,7 @@
 		return;
 	}
 
-	xs_sldb_fileselector = create_xs_sldbfileselector();
+	xs_sldb_fileselector = create_xs_sldb_fs();
 	XS_MUTEX_LOCK(xs_cfg);
 	gtk_file_selection_set_filename(GTK_FILE_SELECTION(xs_sldb_fileselector), xs_cfg.songlenDBPath);
 	XS_MUTEX_UNLOCK(xs_cfg);
@@ -668,8 +775,11 @@
 }
 
 
-void xs_cfg_sldb_fs_ok(void)
+void xs_sldb_fs_ok(GtkButton *button, gpointer user_data)
 {
+	(void) button;
+	(void) user_data;
+	
 	/* Selection was accepted! */
 	gtk_entry_set_text(GTK_ENTRY(LUW("cfg_sld_dbpath")),
 			   gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_sldb_fileselector)));
@@ -679,13 +789,8 @@
 	xs_sldb_fileselector = NULL;
 }
 
-
-void xs_cfg_sldb_fs_cancel(void)
-{
-	/* Close file selector window */
-	gtk_widget_destroy(xs_sldb_fileselector);
-	xs_sldb_fileselector = NULL;
-}
+XS_DEF_WINDOW_CLOSE(sldb_fs_cancel, sldb_fileselector)
+XS_DEF_WINDOW_DELETE(sldb_fs, sldb_fileselector)
 
 
 /* STIL-database file selector response-functions
@@ -700,7 +805,7 @@
 		return;
 	}
 
-	xs_stil_fileselector = create_xs_stilfileselector();
+	xs_stil_fileselector = create_xs_stil_fs();
 	XS_MUTEX_LOCK(xs_cfg);
 	gtk_file_selection_set_filename(GTK_FILE_SELECTION(xs_stil_fileselector), xs_cfg.stilDBPath);
 	XS_MUTEX_UNLOCK(xs_cfg);
@@ -708,11 +813,14 @@
 }
 
 
-void xs_cfg_stil_fs_ok(void)
+void xs_stil_fs_ok(GtkButton *button, gpointer user_data)
 {
+	(void) button;
+	(void) user_data;
+
 	/* Selection was accepted! */
 	gtk_entry_set_text(GTK_ENTRY(LUW("cfg_stil_dbpath")),
-			   gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_stil_fileselector)));
+		gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_stil_fileselector)));
 
 	/* Close file selector window */
 	gtk_widget_destroy(xs_stil_fileselector);
@@ -720,12 +828,8 @@
 }
 
 
-void xs_cfg_stil_fs_cancel(void)
-{
-	/* Close file selector window */
-	gtk_widget_destroy(xs_stil_fileselector);
-	xs_stil_fileselector = NULL;
-}
+XS_DEF_WINDOW_CLOSE(stil_fs_cancel, stil_fileselector)
+XS_DEF_WINDOW_DELETE(stil_fs, stil_fileselector)
 
 
 /* HVSC location selector response-functions
@@ -735,39 +839,237 @@
 	(void) button;
 	(void) user_data;
 
-	if (xs_hvsc_pathselector != NULL) {
-		gdk_window_raise(xs_hvsc_pathselector->window);
+	if (xs_hvsc_selector != NULL) {
+		gdk_window_raise(xs_hvsc_selector->window);
 		return;
 	}
 
-	xs_hvsc_pathselector = create_xs_hvscpathselector();
+	xs_hvsc_selector = create_xs_hvsc_fs();
 	XS_MUTEX_LOCK(xs_cfg);
-	gtk_file_selection_set_filename(GTK_FILE_SELECTION(xs_hvsc_pathselector), xs_cfg.hvscPath);
+	gtk_file_selection_set_filename(GTK_FILE_SELECTION(xs_hvsc_selector), xs_cfg.hvscPath);
 	XS_MUTEX_UNLOCK(xs_cfg);
-	gtk_widget_show(xs_hvsc_pathselector);
+	gtk_widget_show(xs_hvsc_selector);
+}
+
+
+void xs_hvsc_fs_ok(GtkButton *button, gpointer user_data)
+{
+	(void) button;
+	(void) user_data;
+
+	/* Selection was accepted! */
+	gtk_entry_set_text(GTK_ENTRY(LUW("cfg_hvsc_path")),
+		gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_hvsc_selector)));
+
+	/* Close file selector window */
+	gtk_widget_destroy(xs_hvsc_selector);
+	xs_hvsc_selector = NULL;
+}
+
+
+XS_DEF_WINDOW_CLOSE(hvsc_fs_cancel, hvsc_selector)
+XS_DEF_WINDOW_DELETE(hvsc_fs, hvsc_selector)
+
+
+/* Filter handling
+ */
+void xs_cfg_sp1_filter_reset(GtkButton * button, gpointer user_data)
+{
+	(void) button;
+	(void) user_data;
+
+	gtk_adjustment_set_value(gtk_range_get_adjustment(GTK_RANGE(LUW("cfg_sp1_filter_fs"))), XS_SIDPLAY1_FS);
+	gtk_adjustment_set_value(gtk_range_get_adjustment(GTK_RANGE(LUW("cfg_sp1_filter_fm"))), XS_SIDPLAY1_FM);
+	gtk_adjustment_set_value(gtk_range_get_adjustment(GTK_RANGE(LUW("cfg_sp1_filter_ft"))), XS_SIDPLAY1_FT);
+}
+
+
+void xs_cfg_sp2_filter_update(XSCurve *curve, t_xs_sid2_filter *f)
+{
+	assert(curve);
+	assert(f);
+	
+	xs_curve_reset(curve);
+	xs_curve_set_range(curve, 0,0, XS_SIDPLAY2_NFPOINTS, XS_SIDPLAY2_FMAX);
+	if (!xs_curve_set_points(curve, f->points, f->npoints)) {
+		// FIXME
+		xs_error(_("Warning: Could not set filter curve widget points!\n"));
+	}
+}
+
+
+void xs_cfg_sp2_presets_update(void)
+{
+	GList *tmpList = NULL;
+	gint i;
+	
+	for (i = 0; i < xs_cfg.sid2NFilterPresets; i++) {
+		tmpList = g_list_append(tmpList,
+			(gpointer) xs_cfg.sid2FilterPresets[i]->name);
+	}
+	
+	gtk_combo_set_popdown_strings(GTK_COMBO(LUW("cfg_sp2_filter_combo")), tmpList);
+	g_list_free(tmpList);
+}
+
+
+void xs_cfg_sp2_filter_load(GtkButton *button, gpointer user_data)
+{
+	const gchar *tmpStr;
+	gint i, j;
+	
+	(void) button;
+	(void) user_data;
+	
+	XS_MUTEX_LOCK(xs_cfg);
+	
+	tmpStr = gtk_entry_get_text(GTK_ENTRY(LUW("cfg_sp2_filter_combo_entry")));
+	for (i = 0, j = -1; i < xs_cfg.sid2NFilterPresets; i++) {
+		if (!strcmp(tmpStr, xs_cfg.sid2FilterPresets[i]->name)) {
+			j = i;
+			break;
+		}
+	}
+	
+	if (j != -1) {
+		fprintf(stderr, "Updating from '%s'\n", tmpStr);
+		xs_cfg_sp2_filter_update(
+			XS_CURVE(LUW("cfg_sp2_filter_curve")),
+			xs_cfg.sid2FilterPresets[i]);
+	} else {
+		/* error/warning: no such filter preset */
+		fprintf(stderr, "No such filter preset '%s'!\n", tmpStr);
+	}
+	
+	XS_MUTEX_UNLOCK(xs_cfg);
 }
 
 
-void xs_cfg_hvsc_fs_ok(void)
+void xs_cfg_sp2_filter_save(GtkButton *button, gpointer user_data)
 {
-	/* Selection was accepted! */
-	gtk_entry_set_text(GTK_ENTRY(LUW("cfg_hvsc_path")),
-			   gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_hvsc_pathselector)));
+	/*
+	1) check if textentry matches any current filter name
+		yes) ask if saving over ok?
+		no) ...
+		
+	2) save current filter to the name		
+	*/
+	const gchar *tmpStr;
+	gint i, j;
+	
+	(void) button;
+	(void) user_data;
+	
+	XS_MUTEX_LOCK(xs_cfg);
+	
+	tmpStr = gtk_entry_get_text(GTK_ENTRY(LUW("cfg_sp2_filter_combo_entry")));
+	for (i = 0, j = -1; i < xs_cfg.sid2NFilterPresets; i++) {
+		if (!strcmp(tmpStr, xs_cfg.sid2FilterPresets[i]->name)) {
+			j = i;
+			break;
+		}
+	}
+	
+	if (j != -1) {
+		fprintf(stderr, "Found, confirm overwrite?\n");
+	}
+	
+	fprintf(stderr, "saving!\n");
+	
+	xs_cfg_sp2_presets_update();
+	
+	XS_MUTEX_UNLOCK(xs_cfg);
+}
 
-	/* Close file selector window */
-	gtk_widget_destroy(xs_hvsc_pathselector);
-	xs_hvsc_pathselector = NULL;
+
+void xs_cfg_sp2_filter_delete(GtkButton *button, gpointer user_data)
+{
+	(void) button;
+	(void) user_data;
+	/*
+	1) confirm
+	2) delete
+	*/
 }
 
 
-void xs_cfg_hvsc_fs_cancel(void)
+void xs_cfg_sp2_filter_import(GtkButton *button, gpointer user_data)
 {
+	(void) button;
+	(void) user_data;
+
+	if (xs_filt_importselector != NULL) {
+		gdk_window_raise(xs_filt_importselector->window);
+		return;
+	}
+
+	xs_filt_importselector = create_xs_filter_import_fs();
+	gtk_widget_show(xs_filt_importselector);
+}
+
+
+void xs_filter_import_fs_ok(GtkButton *button, gpointer user_data)
+{
+	const gchar *tmpStr;
+	(void) button;
+	(void) user_data;
+	
+	XS_MUTEX_LOCK(xs_cfg);
+
+	/* Selection was accepted! */
+	tmpStr = gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_filt_importselector));
+	xs_filters_import(tmpStr, xs_cfg.sid2FilterPresets, &xs_cfg.sid2NFilterPresets);
+	xs_cfg_sp2_presets_update();
+
 	/* Close file selector window */
-	gtk_widget_destroy(xs_hvsc_pathselector);
-	xs_hvsc_pathselector = NULL;
+	gtk_widget_destroy(xs_filt_importselector);
+	xs_filt_importselector = NULL;
+	XS_MUTEX_UNLOCK(xs_cfg);
+}
+
+
+XS_DEF_WINDOW_CLOSE(filter_import_fs_cancel, filt_importselector)
+XS_DEF_WINDOW_DELETE(filter_import_fs, filt_importselector)
+
+
+void xs_cfg_sp2_filter_export(GtkButton *button, gpointer user_data)
+{
+	(void) button;
+	(void) user_data;
+
+	if (xs_filt_exportselector != NULL) {
+		gdk_window_raise(xs_filt_exportselector->window);
+		return;
+	}
+
+	xs_filt_exportselector = create_xs_filter_export_fs();
+	gtk_widget_show(xs_filt_exportselector);
 }
 
 
+void xs_filter_export_fs_ok(GtkButton *button, gpointer user_data)
+{
+	const gchar *tmpStr;
+	(void) button;
+	(void) user_data;
+
+	XS_MUTEX_LOCK(xs_cfg);
+
+	/* Selection was accepted! */
+	tmpStr = gtk_file_selection_get_filename(GTK_FILE_SELECTION(xs_filt_exportselector));
+	xs_filters_export(tmpStr, xs_cfg.sid2FilterPresets, xs_cfg.sid2NFilterPresets);
+
+	/* Close file selector window */
+	gtk_widget_destroy(xs_filt_exportselector);
+	xs_filt_exportselector = NULL;
+	XS_MUTEX_UNLOCK(xs_cfg);
+}
+
+
+XS_DEF_WINDOW_CLOSE(filter_export_fs_cancel, filt_exportselector)
+XS_DEF_WINDOW_DELETE(filter_export_fs, filt_exportselector)
+
+
 /* Selection toggle handlers
  */
 void xs_cfg_emu_filters_toggled(GtkToggleButton * togglebutton, gpointer user_data)
@@ -856,7 +1158,7 @@
 }
 
 
-void xs_cfg_sld_enable_toggled(GtkToggleButton * togglebutton, gpointer user_data)
+void xs_cfg_sldb_enable_toggled(GtkToggleButton * togglebutton, gpointer user_data)
 {
 	gboolean isActive = GTK_TOGGLE_BUTTON(togglebutton)->active;
 
@@ -931,81 +1233,84 @@
 }
 
 
+XS_DEF_WINDOW_DELETE(configwin, configwin)
+
+
 /* Execute the configuration panel
  */
 void xs_configure(void)
 {
 	gint i;
 	gfloat tmpValue;
-	gchar tmpStr[32];
-	GtkWidget *c;
+	gchar tmpStr[64];
+	GList *tmpList = NULL;
+	GtkWidget *tmpCurve;
 
 	/* Check if the window already exists */
-	if (xs_configwin != NULL) {
+	if (xs_configwin) {
 		gdk_window_raise(xs_configwin->window);
 		return;
 	}
 
 	/* Create the window */
 	xs_configwin = create_xs_configwin();
-
+	
 	/* Get lock on configuration */
 	XS_MUTEX_LOCK(xs_cfg);
 
+	/* Add samplerates */
+	for (i = 0; i < xs_nsamplerates_table; i++) {
+		tmpList = g_list_append (tmpList,
+			(gpointer) xs_samplerates_table[i]);
+	}
+	gtk_combo_set_popdown_strings(GTK_COMBO(LUW("cfg_samplerate_combo")), tmpList);
+	g_list_free(tmpList);
+	
 	/* Create the custom filter curve widget for libSIDPlay2 */
-	c = xs_curve_new();
-	xs_curve_reset(XS_CURVE(c));
-	xs_curve_set_range(XS_CURVE(c),
-		0,0, XS_SIDPLAY2_NFPOINTS, XS_SIDPLAY2_FMAX);
-	xs_curve_set_points(XS_CURVE(c),
-		xs_cfg.sid2Filter.points, xs_cfg.sid2Filter.npoints);
-	
-	gtk_widget_set_name(c, "cfg_sp2_filter_curve");
-	gtk_widget_ref(c);
+	xs_cfg_sp2_presets_update();
+	tmpCurve = xs_curve_new();
+	xs_cfg_sp2_filter_update(XS_CURVE(tmpCurve), &xs_cfg.sid2Filter);
+	gtk_widget_set_name(tmpCurve, "cfg_sp2_filter_curve");
+	gtk_widget_ref(tmpCurve);
 	gtk_object_set_data_full(GTK_OBJECT(xs_configwin),
-		"cfg_sp2_filter_curve", c, (GtkDestroyNotify) gtk_widget_unref);
-	gtk_widget_show(c);
-	gtk_container_add(GTK_CONTAINER(LUW("cfg_sp2_filter_frame")), c);
+		"cfg_sp2_filter_curve", tmpCurve, (GtkDestroyNotify) gtk_widget_unref);
+	gtk_widget_show(tmpCurve);
+	gtk_container_add(GTK_CONTAINER(LUW("cfg_sp2_filter_frame")), tmpCurve);
 
 
 	/* Based on available optional parts, gray out options */
 #ifndef HAVE_SIDPLAY1
 	gtk_widget_set_sensitive(LUW("cfg_emu_sidplay1"), FALSE);
-	gtk_widget_set_sensitive(LUW("cfg_box_sidplay1"), FALSE);
+	gtk_widget_set_sensitive(LUW("cfg_box_filter_sidplay1"), FALSE);
 #endif
 
 #ifndef HAVE_SIDPLAY2
 	gtk_widget_set_sensitive(LUW("cfg_emu_sidplay2"), FALSE);
-	gtk_widget_set_sensitive(LUW("cfg_box_sidplay2"), FALSE);
+	gtk_widget_set_sensitive(LUW("cfg_box_filter_sidplay2"), FALSE);
 #endif
 
+	gtk_widget_set_sensitive(LUW("cfg_resid_frame"), FALSE);
+
 #if !defined(HAVE_XMMSEXTRA) && !defined(AUDACIOUS_PLUGIN)
 	gtk_widget_set_sensitive(LUW("cfg_ftitle_override"), FALSE);
 	xs_cfg.titleOverride = TRUE;
 #endif
 
-#ifndef HAVE_SONG_POSITION
+#if !defined(HAVE_SONG_POSITION) && !defined(AUDACIOUS_PLUGIN)
 	gtk_widget_set_sensitive(LUW("cfg_subctrl_patch"), FALSE);
 #endif
 
-#ifdef AUDACIOUS_PLUGIN
-	gtk_widget_set_sensitive(LUW("cfg_detectmagic"), FALSE);
-#endif
-
-	/* Update the widget sensitivities */
-	gtk_widget_set_sensitive(LUW("cfg_resid_frame"), FALSE);
-		
-	xs_cfg_emu_filters_toggled((GtkToggleButton *) LUW("cfg_emu_filters"), NULL);
-	xs_cfg_ftitle_override_toggled((GtkToggleButton *) LUW("cfg_ftitle_override"), NULL);
-	xs_cfg_emu_sidplay1_toggled((GtkToggleButton *) LUW("cfg_emu_sidplay1"), NULL);
-	xs_cfg_emu_sidplay2_toggled((GtkToggleButton *) LUW("cfg_emu_sidplay2"), NULL);
-	xs_cfg_oversample_toggled((GtkToggleButton *) LUW("cfg_oversample"), NULL);
-	xs_cfg_mintime_enable_toggled((GtkToggleButton *) LUW("cfg_mintime_enable"), NULL);
-	xs_cfg_maxtime_enable_toggled((GtkToggleButton *) LUW("cfg_maxtime_enable"), NULL);
-	xs_cfg_sld_enable_toggled((GtkToggleButton *) LUW("cfg_sld_enable"), NULL);
-	xs_cfg_stil_enable_toggled((GtkToggleButton *) LUW("cfg_stil_enable"), NULL);
-	xs_cfg_subauto_enable_toggled((GtkToggleButton *) LUW("cfg_subauto_enable"), NULL);
-	xs_cfg_subauto_min_only_toggled((GtkToggleButton *) LUW("cfg_subauto_min_only"), NULL);
+	xs_cfg_ftitle_override_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_ftitle_override")), NULL);
+	xs_cfg_emu_filters_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_emu_filters")), NULL);
+	xs_cfg_emu_sidplay1_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_emu_sidplay1")), NULL);
+	xs_cfg_emu_sidplay2_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_emu_sidplay2")), NULL);
+	xs_cfg_oversample_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_oversample")), NULL);
+	xs_cfg_mintime_enable_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_mintime_enable")), NULL);
+	xs_cfg_maxtime_enable_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_maxtime_enable")), NULL);
+	xs_cfg_sldb_enable_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_sld_enable")), NULL);
+	xs_cfg_stil_enable_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_stil_enable")), NULL);
+	xs_cfg_subauto_enable_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_subauto_enable")), NULL);
+	xs_cfg_subauto_min_only_toggled(GTK_TOGGLE_BUTTON(LUW("cfg_subauto_min_only")), NULL);
 
 
 	/* Set current data to widgets */
--- a/src/sid/xs_curve.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_curve.c	Thu Sep 13 12:10:39 2007 -0500
@@ -145,18 +145,16 @@
 {
 	gint old_mask;
 
-	curve->cursor_type = GDK_TOP_LEFT_ARROW;
 	curve->pixmap = NULL;
-	curve->height = 0;
 	curve->grab_point = -1;
 
 	curve->nctlpoints = 0;
 	curve->ctlpoints = NULL;
 
 	curve->min_x = 0.0;
-	curve->max_x = 1.0;
+	curve->max_x = 2047.0;
 	curve->min_y = 0.0;
-	curve->max_y = 1.0;
+	curve->max_y = 24000.0;
 
 	old_mask = gtk_widget_get_events(GTK_WIDGET(curve));
 	gtk_widget_set_events(GTK_WIDGET(curve), old_mask | GRAPH_MASK);
@@ -250,10 +248,10 @@
 
 static void xs_curve_draw(XSCurve *curve, gint width, gint height)
 {
-	gfloat res = 10.0f;
+	gfloat res = 5.0f;
 	GtkStateType state;
 	GtkStyle *style;
-	gint i;
+	gint i, ox = -1, oy = -1;
 	t_xs_point *p0, *p1, *p2, *p3;
 
 	if (!curve->pixmap)
@@ -285,8 +283,6 @@
 			i * (width / 4.0) + RADIUS, height + RADIUS);
 	}
 
-#define Qprintf(x,y,...)
-
 #if 1
 	/* Draw the spline/curve itself */
 	p0 = curve->ctlpoints;
@@ -295,65 +291,49 @@
 	p3 = p2; p3++;
 
 	/* Draw each curve segment */
-	Qprintf(stderr, "-- npoints = %d\n", curve->nctlpoints);
 	if (curve->nctlpoints > 5)
 	for (i = 0; i < curve->nctlpoints; i++, ++p0, ++p1, ++p2, ++p3) {
+		gint n;
 		gfloat k1, k2, a, b, c, d, x;
 		
-		Qprintf(stderr, "#%d: ", i);
 		if (p1->x == p2->x)
 			continue;
-#define PPASK(q, p) Qprintf(stderr, q "=[%1.3f, %1.3f]  ", p->x, p->y)
 
-		PPASK("p0", p1);
-		PPASK("p1", p1);
-		PPASK("p2", p2);
-		PPASK("p3", p3);
-		
-		Qprintf(stderr, "\ncase #");
 		if (p0->x == p1->x && p2->x == p3->x) {
-			Qprintf(stderr, "1");
 			k1 = k2 = (p2->y - p1->y) / (p2->x - p1->x);
 		} else if (p0->x == p1->x) {
-			Qprintf(stderr, "2");
 			k2 = (p3->y - p1->y) / (p3->x - p1->x);
 			k1 = (3 * (p2->y - p1->y) / (p2->x - p1->x) - k2) / 2;
 		} else if (p2->x == p3->x) {
-			Qprintf(stderr, "3");
 			k1 = (p2->y - p0->y) / (p2->x - p0->x);
 			k2 = (3 * (p2->y - p1->y) / (p2->x - p1->x) - k1) / 2;
 		} else {
-			Qprintf(stderr, "4");
 			k1 = (p2->y - p0->y) / (p2->x - p0->x);
 			k2 = (p3->y - p1->y) / (p3->x - p1->x);
 		}
 
 		xs_cubic_coeff(p1->x, p1->y, p2->x, p2->y, k1, k2, &a, &b, &c, &d);
 
-		Qprintf(stderr, " seg[%1.3f, %1.3f] => [%1.3f, %1.3f] k1=%1.3f, k2=%1.3f\n\n",
-			p1->x, p1->y,
-			p2->x, p2->y,
-			k1, k2);
-
-		for (x = p1->x; x <= p2->x; x += res) {
+		for (x = p1->x; x <= p2->x; x += res, n++) {
 			gfloat y = ((a * x + b) * x + c) * x + d;
 			gint qx, qy;
 			qx = RADIUS + xs_project(x, curve->min_x, curve->max_x, width);
 			qy = RADIUS + xs_project(y, curve->min_y, curve->max_y, height);
-
-			gdk_draw_point(curve->pixmap, style->fg_gc[state],
-				RADIUS + xs_project(x, curve->min_x, curve->max_x, width),
-				RADIUS + xs_project(y, curve->min_y, curve->max_y, height));
-
+			
+			if (ox != -1) {
+				gdk_draw_line(curve->pixmap, style->fg_gc[state],
+					ox, oy, qx, qy);
+			}
+			ox = qx; oy = qy;
 		}
 	}
 
-	Qprintf(stderr, "-------\n");
 #endif
 
 	/* Draw control points */
 	for (i = 0; i < curve->nctlpoints; ++i) {
 		gint x, y;
+		GtkStateType cstate;
 
 		if (GET_X(i) < curve->min_x || GET_Y(i) < curve->min_y ||
 			GET_X(i) >= curve->max_x || GET_Y(i) >= curve->max_y)
@@ -361,8 +341,17 @@
 
 		x = xs_project(GET_X(i), curve->min_x, curve->max_x, width);
 		y = xs_project(GET_Y(i), curve->min_y, curve->max_y, height);
-
-		gdk_draw_arc(curve->pixmap, style->fg_gc[state], TRUE,
+		
+		if (i == curve->grab_point) {
+			cstate = GTK_STATE_SELECTED;
+			gdk_draw_line(curve->pixmap, style->fg_gc[cstate],
+				x + RADIUS, RADIUS, x + RADIUS, height + RADIUS);
+			gdk_draw_line(curve->pixmap, style->fg_gc[cstate],
+				RADIUS, y + RADIUS, width + RADIUS, y + RADIUS);
+		} else
+			cstate = state;
+		
+		gdk_draw_arc(curve->pixmap, style->fg_gc[cstate], TRUE,
 			x, y, RADIUS2, RADIUS2, 0, 360 * 64);
 	}
 	
@@ -485,6 +474,7 @@
 		new_type = GDK_FLEUR;
 		curve->grab_point = -1;
 		}
+		xs_curve_draw(curve, width, height);
 		break;
 
 	case GDK_MOTION_NOTIFY:
@@ -709,6 +699,7 @@
 {
 	XSCurve *curve;
 
+	g_return_if_fail(object != NULL);
 	g_return_if_fail(XS_IS_CURVE(object));
 
 	curve = XS_CURVE(object);
--- a/src/sid/xs_curve.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_curve.h	Thu Sep 13 12:10:39 2007 -0500
@@ -38,9 +38,7 @@
 	gfloat min_y;
 	gfloat max_y;
 	GdkPixmap *pixmap;
-	gint height;		/* (cached) graph height in pixels */
 	gint grab_point;	/* point currently grabbed */
-	gint last;
 
 	/* control points */
 	gint nctlpoints;	/* number of control points */
--- a/src/sid/xs_fileinfo.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_fileinfo.c	Thu Sep 13 12:10:39 2007 -0500
@@ -26,14 +26,11 @@
 #include "xs_fileinfo.h"
 #include "xs_player.h"
 #include "xs_support.h"
-#include "xs_stil.h"
 #include "xs_config.h"
 #include "xs_interface.h"
 #include "xs_glade.h"
-
+#include "xs_slsup.h"
 
-static t_xs_stildb *xs_stildb_db = NULL;
-XS_MUTEX(xs_stildb_db);
 
 static GtkWidget *xs_fileinfowin = NULL;
 static t_xs_stil_node *xs_fileinfostil = NULL;
@@ -42,101 +39,7 @@
 #define LUW(x)	lookup_widget(xs_fileinfowin, x)
 
 
-/* STIL-database handling
- */
-gint xs_stil_init(void)
-{
-	XS_MUTEX_LOCK(xs_cfg);
-
-	if (!xs_cfg.stilDBPath) {
-		XS_MUTEX_UNLOCK(xs_cfg);
-		return -1;
-	}
-
-	XS_MUTEX_LOCK(xs_stildb_db);
-
-	/* Check if already initialized */
-	if (xs_stildb_db)
-		xs_stildb_free(xs_stildb_db);
-
-	/* Allocate database */
-	xs_stildb_db = (t_xs_stildb *) g_malloc0(sizeof(t_xs_stildb));
-	if (!xs_stildb_db) {
-		XS_MUTEX_UNLOCK(xs_cfg);
-		XS_MUTEX_UNLOCK(xs_stildb_db);
-		return -2;
-	}
-
-	/* Read the database */
-	if (xs_stildb_read(xs_stildb_db, xs_cfg.stilDBPath) != 0) {
-		xs_stildb_free(xs_stildb_db);
-		xs_stildb_db = NULL;
-		XS_MUTEX_UNLOCK(xs_cfg);
-		XS_MUTEX_UNLOCK(xs_stildb_db);
-		return -3;
-	}
-
-	/* Create index */
-	if (xs_stildb_index(xs_stildb_db) != 0) {
-		xs_stildb_free(xs_stildb_db);
-		xs_stildb_db = NULL;
-		XS_MUTEX_UNLOCK(xs_cfg);
-		XS_MUTEX_UNLOCK(xs_stildb_db);
-		return -4;
-	}
-
-	XS_MUTEX_UNLOCK(xs_cfg);
-	XS_MUTEX_UNLOCK(xs_stildb_db);
-	return 0;
-}
-
-
-void xs_stil_close(void)
-{
-	XS_MUTEX_LOCK(xs_stildb_db);
-	xs_stildb_free(xs_stildb_db);
-	xs_stildb_db = NULL;
-	XS_MUTEX_UNLOCK(xs_stildb_db);
-}
-
-
-t_xs_stil_node *xs_stil_get(gchar *pcFilename)
-{
-	t_xs_stil_node *pResult;
-	gchar *tmpFilename;
-
-	XS_MUTEX_LOCK(xs_stildb_db);
-	XS_MUTEX_LOCK(xs_cfg);
-
-	if (xs_cfg.stilDBEnable && xs_stildb_db) {
-		if (xs_cfg.hvscPath) {
-			/* Remove postfixed directory separator from HVSC-path */
-			tmpFilename = xs_strrchr(xs_cfg.hvscPath, '/');
-			if (tmpFilename && (tmpFilename[1] == 0))
-				tmpFilename[0] = 0;
-
-			/* Remove HVSC location-prefix from filename */
-			tmpFilename = strstr(pcFilename, xs_cfg.hvscPath);
-			if (tmpFilename)
-				tmpFilename += strlen(xs_cfg.hvscPath);
-			else
-				tmpFilename = pcFilename;
-		} else
-			tmpFilename = pcFilename;
-
-XSDEBUG("xs_stil_get('%s') = '%s'\n", pcFilename, tmpFilename);
-		
-		pResult = xs_stildb_get_node(xs_stildb_db, tmpFilename);
-	} else
-		pResult = NULL;
-
-	XS_MUTEX_UNLOCK(xs_stildb_db);
-	XS_MUTEX_UNLOCK(xs_cfg);
-
-	return pResult;
-}
-
-
+#ifndef AUDACIOUS_PLUGIN
 void xs_fileinfo_update(void)
 {
 	XS_MUTEX_LOCK(xs_status);
@@ -189,6 +92,7 @@
 	XS_MUTEX_UNLOCK(xs_fileinfowin);
 	XS_MUTEX_UNLOCK(xs_status);
 }
+#endif /* AUDACIOUS_PLUGIN */
 
 
 void xs_fileinfo_ok(void)
@@ -218,7 +122,6 @@
 {
 	t_xs_stil_subnode *tmpNode;
 	GtkWidget *tmpText;
-	gint tmpIndex;
 	gchar *subName, *subAuthor, *subInfo;
 
 	(void) widget;
@@ -226,17 +129,22 @@
 
 	/* Freeze text-widget and delete the old text */
 	tmpText = LUW("fileinfo_sub_info");
+#ifndef AUDACIOUS_PLUGIN
+	gtk_text_freeze(GTK_TEXT(tmpText));
+	gtk_text_set_point(GTK_TEXT(tmpText), 0);
+	gtk_text_forward_delete(GTK_TEXT(tmpText), gtk_text_get_length(GTK_TEXT(tmpText)));
+#endif
 
 	/* Get subtune information */
-	tmpIndex = g_list_index(GTK_MENU_SHELL(data)->children, gtk_menu_get_active(GTK_MENU(data)));
-	
-	if (xs_fileinfostil && tmpIndex <= xs_fileinfostil->nsubTunes)
-		tmpNode = xs_fileinfostil->subTunes[tmpIndex];
-	else
-		tmpNode = NULL;
+	tmpNode = (t_xs_stil_subnode *) data;
+	if (!tmpNode && xs_fileinfostil)
+		tmpNode = xs_fileinfostil->subTunes[0];
 	
 	if (tmpNode) {
-		subName = tmpNode->pName;
+		if (tmpNode->pName)
+			subName = tmpNode->pName;
+		else
+			subName = tmpNode->pTitle;
 		subAuthor = tmpNode->pAuthor;
 		subInfo = tmpNode->pInfo;
 	} else {
@@ -248,8 +156,17 @@
 	/* Get and set subtune information */
 	gtk_entry_set_text(GTK_ENTRY(LUW("fileinfo_sub_name")), subName ? subName : "");
 	gtk_entry_set_text(GTK_ENTRY(LUW("fileinfo_sub_author")), subAuthor ? subAuthor : "");
+
+#ifdef AUDACIOUS_PLUGIN
 	gtk_text_buffer_set_text(GTK_TEXT_BUFFER(gtk_text_view_get_buffer(GTK_TEXT_VIEW(tmpText))),
 		subInfo ? subInfo : "", -1);
+#else
+	gtk_text_insert(GTK_TEXT(tmpText), NULL, NULL, NULL,
+		subInfo ? subInfo : "", -1);
+
+	/* Un-freeze the widget */
+	gtk_text_thaw(GTK_TEXT(tmpText));
+#endif
 }
 
 
@@ -257,33 +174,44 @@
 {
 	GtkWidget *tmpMenuItem, *tmpMenu, *tmpOptionMenu;
 	t_xs_tuneinfo *tmpInfo;
-	gchar tmpStr[256], *tmpStr2;
+	t_xs_stil_subnode *tmpNode;
+	gchar tmpStr[256], *tmpFilename;
 	gint n;
 
 	/* Current implementation leaves old fileinfo window untouched if
 	 * no information can be found for the new file. Hmm...
 	 */
+#ifdef AUDACIOUS_PLUGIN
+	xs_get_trackinfo(pcFilename, &tmpFilename, &n);
+#else
+	tmpFilename = pcFilename;
+#endif	
 
 	/* Get new tune information */
 	XS_MUTEX_LOCK(xs_fileinfowin);
 	XS_MUTEX_LOCK(xs_status);
-	if ((tmpInfo = xs_status.sidPlayer->plrGetSIDInfo(pcFilename)) == NULL) {
+	if ((tmpInfo = xs_status.sidPlayer->plrGetSIDInfo(tmpFilename)) == NULL) {
 		XS_MUTEX_UNLOCK(xs_fileinfowin);
 		XS_MUTEX_UNLOCK(xs_status);
 		return;
 	}
 	XS_MUTEX_UNLOCK(xs_status);
 
-	xs_fileinfostil = xs_stil_get(pcFilename);
+	xs_fileinfostil = xs_stil_get(tmpFilename);
+
+#ifdef AUDACIOUS_PLUGIN
+	g_free(tmpFilename);
+#endif
 
 	/* Check if there already is an open fileinfo window */
 	if (xs_fileinfowin)
 		gdk_window_raise(xs_fileinfowin->window);
 	else {
 		xs_fileinfowin = create_xs_fileinfowin();
-		g_signal_connect(G_OBJECT(
-			gtk_range_get_adjustment(GTK_RANGE(LUW("fileinfo_subctrl_adj")))), "value_changed",
-			G_CALLBACK(xs_fileinfo_setsong), NULL);
+#ifndef AUDACIOUS_PLUGIN
+		XS_SIGNAL_CONNECT(gtk_range_get_adjustment(GTK_RANGE(LUW("fileinfo_subctrl_adj"))),
+			"value_changed", xs_fileinfo_setsong, NULL);
+#endif
 	}
 
 	/* Delete current items */
@@ -295,10 +223,9 @@
 
 
 	/* Set the generic song information */
-	tmpStr2 = g_filename_to_utf8(pcFilename, -1, NULL, NULL, NULL);
-	gtk_entry_set_text(GTK_ENTRY(LUW("fileinfo_filename")), tmpStr2);
-	g_free(tmpStr2);
-	
+	tmpFilename = XS_CS_FILENAME(pcFilename);
+	gtk_entry_set_text(GTK_ENTRY(LUW("fileinfo_filename")), tmpFilename);
+	g_free(tmpFilename);
 	gtk_entry_set_text(GTK_ENTRY(LUW("fileinfo_songname")), tmpInfo->sidName);
 	gtk_entry_set_text(GTK_ENTRY(LUW("fileinfo_composer")), tmpInfo->sidComposer);
 	gtk_entry_set_text(GTK_ENTRY(LUW("fileinfo_copyright")), tmpInfo->sidCopyright);
@@ -308,40 +235,52 @@
 	tmpMenuItem = gtk_menu_item_new_with_label(_("General info"));
 	gtk_widget_show(tmpMenuItem);
 	gtk_menu_append(GTK_MENU(tmpMenu), tmpMenuItem);
-	g_signal_connect(G_OBJECT(tmpMenuItem), "activate",
-		G_CALLBACK(xs_fileinfo_subtune), tmpMenu);
+	if (xs_fileinfostil)
+		tmpNode = xs_fileinfostil->subTunes[0];
+	else
+		tmpNode = NULL;
+	XS_SIGNAL_CONNECT(tmpMenuItem, "activate", xs_fileinfo_subtune, tmpNode);
 
 	/* Other menu items */
 	for (n = 1; n <= tmpInfo->nsubTunes; n++) {
 		if (xs_fileinfostil && n <= xs_fileinfostil->nsubTunes && xs_fileinfostil->subTunes[n]) {
-			t_xs_stil_subnode *tmpNode = xs_fileinfostil->subTunes[n];
+			gboolean isSet = FALSE;
+			tmpNode = xs_fileinfostil->subTunes[n];
 			
 			g_snprintf(tmpStr, sizeof(tmpStr), _("Tune #%i: "), n);
 
-			if (tmpNode->pName)
+			if (tmpNode->pName) {
 				xs_pnstrcat(tmpStr, sizeof(tmpStr), tmpNode->pName);
-			else if (tmpNode->pTitle)
-				xs_pnstrcat(tmpStr, sizeof(tmpStr), tmpNode->pTitle);
-			else if (tmpNode->pInfo)
-				xs_pnstrcat(tmpStr, sizeof(tmpStr), tmpNode->pInfo);
-			else
+				isSet = TRUE;
+			}
+
+			if (tmpNode->pTitle) {
+				xs_pnstrcat(tmpStr, sizeof(tmpStr),
+					isSet ? " [*]" : tmpNode->pTitle);
+				isSet = TRUE;
+			}
+
+			if (tmpNode->pInfo) {
+				xs_pnstrcat(tmpStr, sizeof(tmpStr), " [!]");
+				isSet = TRUE;
+			}
+
+			if (!isSet)
 				xs_pnstrcat(tmpStr, sizeof(tmpStr), "---");
-		} else {
-			g_snprintf(tmpStr, sizeof(tmpStr), _("Tune #%i"), n);
+
+			tmpMenuItem = gtk_menu_item_new_with_label(tmpStr);
+			gtk_widget_show(tmpMenuItem);
+			gtk_menu_append(GTK_MENU(tmpMenu), tmpMenuItem);
+			XS_SIGNAL_CONNECT(tmpMenuItem, "activate", xs_fileinfo_subtune, tmpNode);
 		}
 
-		tmpMenuItem = gtk_menu_item_new_with_label(tmpStr);
-		gtk_widget_show(tmpMenuItem);
-		gtk_menu_append(GTK_MENU(tmpMenu), tmpMenuItem);
-		g_signal_connect(G_OBJECT(tmpMenuItem), "activate",
-			G_CALLBACK(xs_fileinfo_subtune), tmpMenu);
 	}
 
 	gtk_option_menu_set_menu(GTK_OPTION_MENU(tmpOptionMenu), tmpMenu);
 	gtk_widget_show(tmpOptionMenu);
 
 	/* Set the subtune information */
-	xs_fileinfo_subtune(NULL, tmpMenu);
+	xs_fileinfo_subtune(tmpOptionMenu, NULL);
 
 	/* Free temporary tuneinfo */
 	xs_tuneinfo_free(tmpInfo);
@@ -351,5 +290,7 @@
 
 	XS_MUTEX_UNLOCK(xs_fileinfowin);
 
+#ifndef AUDACIOUS_PLUGIN
 	xs_fileinfo_update();
+#endif
 }
--- a/src/sid/xs_fileinfo.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_fileinfo.h	Thu Sep 13 12:10:39 2007 -0500
@@ -7,9 +7,9 @@
 extern "C" {
 #endif
 
-gint	xs_stil_init(void);
-void	xs_stil_close(void);
+#ifndef AUDACIOUS_PLUGIN
 void	xs_fileinfo_update(void);
+#endif
 void	xs_fileinfo(gchar *);
 
 #ifdef __cplusplus
--- a/src/sid/xs_genui.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_genui.c	Thu Sep 13 12:10:39 2007 -0500
@@ -9,33 +9,13 @@
 #include "xs_glade.h"
 
 
-void
-xs_cfg_sp2_filter_load                 (GtkButton       *button,
-                                        gpointer         user_data)
-{
 
-}
-
-
-void
-xs_cfg_sp2_filter_save                 (GtkButton       *button,
+gboolean
+xs_confirmwin_delete                   (GtkWidget       *widget,
+                                        GdkEvent        *event,
                                         gpointer         user_data)
 {
 
+  return FALSE;
 }
 
-
-void
-xs_cfg_sp2_filter_import               (GtkButton       *button,
-                                        gpointer         user_data)
-{
-
-}
-
-
-void
-xs_cfg_sp2_filter_export               (GtkButton       *button,
-                                        gpointer         user_data)
-{
-
-}
--- a/src/sid/xs_genui.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_genui.h	Thu Sep 13 12:10:39 2007 -0500
@@ -1,6 +1,11 @@
 #include <gtk/gtk.h>
 
 
+gboolean
+xs_configwin_delete                    (GtkWidget       *widget,
+                                        GdkEvent        *event,
+                                        gpointer         user_data);
+
 void
 xs_cfg_oversample_toggled              (GtkToggleButton *togglebutton,
                                         gpointer         user_data);
@@ -22,6 +27,10 @@
                                         gpointer         user_data);
 
 void
+xs_cfg_sp2_filter_export               (GtkButton       *button,
+                                        gpointer         user_data);
+
+void
 xs_cfg_sp2_filter_load                 (GtkButton       *button,
                                         gpointer         user_data);
 
@@ -34,7 +43,7 @@
                                         gpointer         user_data);
 
 void
-xs_cfg_sp2_filter_export               (GtkButton       *button,
+xs_cfg_sp2_filter_delete               (GtkButton       *button,
                                         gpointer         user_data);
 
 void
@@ -54,11 +63,11 @@
                                         gpointer         user_data);
 
 void
-xs_cfg_sld_enable_toggled              (GtkToggleButton *togglebutton,
+xs_cfg_sldb_enable_toggled             (GtkToggleButton *togglebutton,
                                         gpointer         user_data);
 
 void
-xs_cfg_sld_dbbrowse                    (GtkButton       *button,
+xs_cfg_sldb_browse                     (GtkButton       *button,
                                         gpointer         user_data);
 
 void
@@ -110,26 +119,76 @@
 xs_fileinfo_ok                         (GtkButton       *button,
                                         gpointer         user_data);
 
+gboolean
+xs_sldb_fs_delete                      (GtkWidget       *widget,
+                                        GdkEvent        *event,
+                                        gpointer         user_data);
+
 void
-xs_cfg_sldb_fs_ok                      (GtkButton       *button,
+xs_sldb_fs_ok                          (GtkButton       *button,
                                         gpointer         user_data);
 
 void
-xs_cfg_sldb_fs_cancel                  (GtkButton       *button,
+xs_sldb_fs_cancel                      (GtkButton       *button,
+                                        gpointer         user_data);
+
+gboolean
+xs_stil_fs_delete                      (GtkWidget       *widget,
+                                        GdkEvent        *event,
+                                        gpointer         user_data);
+
+void
+xs_stil_fs_ok                          (GtkButton       *button,
+                                        gpointer         user_data);
+
+void
+xs_stil_fs_cancel                      (GtkButton       *button,
+                                        gpointer         user_data);
+
+gboolean
+xs_hvsc_fs_delete                      (GtkWidget       *widget,
+                                        GdkEvent        *event,
+                                        gpointer         user_data);
+
+void
+xs_hvsc_fs_ok                          (GtkButton       *button,
                                         gpointer         user_data);
 
 void
-xs_cfg_stil_fs_ok                      (GtkButton       *button,
+xs_hvsc_fs_cancel                      (GtkButton       *button,
+                                        gpointer         user_data);
+
+gboolean
+xs_filter_import_fs_delete             (GtkWidget       *widget,
+                                        GdkEvent        *event,
+                                        gpointer         user_data);
+
+void
+xs_filter_import_fs_ok                 (GtkButton       *button,
                                         gpointer         user_data);
 
 void
-xs_cfg_stil_fs_cancel                  (GtkButton       *button,
+xs_filter_import_fs_cancel             (GtkButton       *button,
+                                        gpointer         user_data);
+
+gboolean
+xs_filter_export_fs_delete             (GtkWidget       *widget,
+                                        GdkEvent        *event,
                                         gpointer         user_data);
 
 void
-xs_cfg_hvsc_fs_ok                      (GtkButton       *button,
+xs_filter_export_fs_ok                 (GtkButton       *button,
                                         gpointer         user_data);
 
 void
-xs_cfg_hvsc_fs_cancel                  (GtkButton       *button,
+xs_filter_export_fs_cancel             (GtkButton       *button,
                                         gpointer         user_data);
+
+gboolean
+xs_confirmwin_delete                   (GtkWidget       *widget,
+                                        GdkEvent        *event,
+                                        gpointer         user_data);
+
+void
+xs_cfg_ftitle_override_toggled         (GtkToggleButton *togglebutton,
+                                        gpointer         user_data);
--- a/src/sid/xs_init.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_init.c	Thu Sep 13 12:10:39 2007 -0500
@@ -28,38 +28,26 @@
 
 
 InputPlugin xs_plugin_ip = {
-	NULL,			/* FILLED BY XMMS */
-	NULL,			/* FILLED BY XMMS */
-	XS_PACKAGE_STRING,	/* Plugin description */
-	xs_init,		/* Initialization */
-	xs_about,		/* Show aboutbox */
-	xs_configure,		/* Show/edit configuration */
-	xs_is_our_file,		/* Check file */
-	NULL,			/* Scan directory */
-	xs_play_file,		/* Play given file */
-	xs_stop,		/* Stop playing */
-	xs_pause,		/* Pause playing */
-	xs_seek,		/* Seek time */
-	NULL,			/* Set equalizer */
-	xs_get_time,		/* Get playing time */
-	NULL,			/* Get volume */
-	NULL,			/* Set volume */
-	xs_close,		/* Cleanup */
-	NULL,			/* OBSOLETE! */
-	NULL,			/* Send data to Visualization plugin */
-	NULL, NULL,		/* FILLED BY XMMS */
-	NULL,			/* Get song title and length */
-	xs_fileinfo,		/* Show file-information dialog */
-	NULL,			/* FILLED BY XMMS */
-	xs_get_song_tuple,	/* Get Tuple */
-	NULL,			/* Set Tuple */
-	NULL,			/* Buffering status */
-	xs_is_our_file_vfs,	/* VFS */
-	xs_sid_fmts,		/* File ext assist */
-	NULL,			/* ms accurate seek, mseek() */
-	NULL			/* Probe for tuple */
+	.description = XS_PACKAGE_STRING,	/* Plugin description */
+	.init = xs_init,			/* Initialization */
+	.cleanup = xs_close,			/* Cleanup */
+	.about = xs_about,			/* Show aboutbox */
+	.configure = xs_configure,		/* Show/edit configuration */
+
+	.play_file = xs_play_file,		/* Play given file */
+	.stop = xs_stop,			/* Stop playing */
+	.pause = xs_pause,			/* Pause playing */
+	.seek = xs_seek,			/* Seek time */
+	.get_time = xs_get_time,		/* Get playing time */
+
+	.file_info_box = xs_fileinfo,		/* Show file-information dialog */
+
+	.get_song_tuple = xs_get_song_tuple,		/* Get Tuple */
+	.is_our_file = xs_is_our_file,			/* Check file */
+	.is_our_file_from_vfs = xs_is_our_file_vfs,	/* VFS */
+	.vfs_extensions = xs_sid_fmts,			/* File ext assist */
 };
 
-InputPlugin *sid_iplist[] = { &xs_plugin_ip, NULL };
+static InputPlugin *sid_iplist[] = { &xs_plugin_ip, NULL };
 
 DECLARE_PLUGIN(sid, NULL, NULL, sid_iplist, NULL, NULL, NULL, NULL, NULL);
--- a/src/sid/xs_interface.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_interface.c	Thu Sep 13 12:10:39 2007 -0500
@@ -135,10 +135,11 @@
   GList *cfg_sp2_filter_combo_items = NULL;
   GtkWidget *cfg_sp2_filter_combo_entry;
   GtkWidget *table3;
+  GtkWidget *cfg_sp2_filter_export;
   GtkWidget *cfg_sp2_filter_load;
   GtkWidget *cfg_sp2_filter_save;
   GtkWidget *cfg_sp2_filter_import;
-  GtkWidget *cfg_sp2_filter_export;
+  GtkWidget *cfg_sp2_filter_delete;
   GtkWidget *cfg_sp2_filter_frame;
   GtkWidget *label14;
   GtkWidget *w_label56;
@@ -172,7 +173,25 @@
   GtkWidget *cfg_sld_dbbrowse;
   GtkWidget *label17;
   GtkWidget *w_label26;
-  GtkWidget *w_vbox33;
+  GtkWidget *frame1;
+  GtkWidget *vbox1;
+  GtkWidget *cfg_ftitle_override;
+  GtkWidget *cfg_ftitle_box;
+  GtkWidget *cfg_ftitle_format;
+  GtkWidget *cfg_ftitle_descs;
+  GtkWidget *label29;
+  GtkWidget *w_label27;
+  GtkWidget *w_vbox19;
+  GtkWidget *w_frame31;
+  GtkWidget *w_vbox35;
+  GtkWidget *cfg_subauto_enable;
+  GtkWidget *cfg_subauto_min_only;
+  GtkWidget *cfg_subauto_box;
+  GtkWidget *w_label52;
+  GtkObject *cfg_subauto_mintime_adj;
+  GtkWidget *cfg_subauto_mintime;
+  GtkWidget *w_label53;
+  GtkWidget *label21;
   GtkWidget *w_frame7;
   GtkWidget *w_vbox8;
   GtkWidget *cfg_stil_enable;
@@ -189,39 +208,6 @@
   GtkWidget *w_alignment7;
   GtkWidget *cfg_hvsc_browse;
   GtkWidget *label18;
-  GtkWidget *w_frame16;
-  GtkWidget *vbox1;
-  GtkWidget *cfg_ftitle_override;
-  GtkWidget *cfg_ftitle_box;
-  GtkWidget *cfg_ftitle_format;
-  GtkWidget *w_hbox9;
-  GtkWidget *cfg_ftitle_desc1;
-  GtkWidget *cfg_ftitle_desc2;
-  GtkWidget *label19;
-  GtkWidget *w_label23;
-  GtkWidget *w_vbox19;
-  GtkWidget *w_frame28;
-  GtkWidget *w_vbox31;
-  GtkWidget *cfg_subctrl_none;
-  GSList *cfg_subctrl_none_group = NULL;
-  GtkWidget *cfg_subctrl_seek;
-  GtkWidget *cfg_subctrl_popup;
-  GtkWidget *cfg_subctrl_patch;
-  GtkWidget *label20;
-  GtkWidget *w_frame31;
-  GtkWidget *w_vbox35;
-  GtkWidget *cfg_subauto_enable;
-  GtkWidget *cfg_subauto_min_only;
-  GtkWidget *cfg_subauto_box;
-  GtkWidget *w_label52;
-  GtkObject *cfg_subauto_mintime_adj;
-  GtkWidget *cfg_subauto_mintime;
-  GtkWidget *w_label53;
-  GtkWidget *label21;
-  GtkWidget *w_frame22;
-  GtkWidget *w_vbox22;
-  GtkWidget *cfg_detectmagic;
-  GtkWidget *label22;
   GtkWidget *w_label3;
   GtkWidget *hbuttonbox1;
   GtkWidget *cfg_ok;
@@ -232,7 +218,7 @@
 
   xs_configwin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_widget_set_name (xs_configwin, "xs_configwin");
-  gtk_window_set_title (GTK_WINDOW (xs_configwin), _("Audacious-SID Configuration"));
+  gtk_window_set_title (GTK_WINDOW (xs_configwin), _("Audacious-SID configuration"));
 
   w_vbox1 = gtk_vbox_new (FALSE, 0);
   gtk_widget_set_name (w_vbox1, "w_vbox1");
@@ -343,13 +329,6 @@
   gtk_widget_set_name (cfg_samplerate_combo, "cfg_samplerate_combo");
   gtk_widget_show (cfg_samplerate_combo);
   gtk_box_pack_start (GTK_BOX (w_hbox4), cfg_samplerate_combo, FALSE, FALSE, 0);
-  cfg_samplerate_combo_items = g_list_append (cfg_samplerate_combo_items, (gpointer) "8000");
-  cfg_samplerate_combo_items = g_list_append (cfg_samplerate_combo_items, (gpointer) "11025");
-  cfg_samplerate_combo_items = g_list_append (cfg_samplerate_combo_items, (gpointer) "22050");
-  cfg_samplerate_combo_items = g_list_append (cfg_samplerate_combo_items, (gpointer) "44100");
-  cfg_samplerate_combo_items = g_list_append (cfg_samplerate_combo_items, (gpointer) "48000");
-  cfg_samplerate_combo_items = g_list_append (cfg_samplerate_combo_items, (gpointer) "64000");
-  cfg_samplerate_combo_items = g_list_append (cfg_samplerate_combo_items, (gpointer) "96000");
   cfg_samplerate_combo_items = g_list_append (cfg_samplerate_combo_items, (gpointer) "");
   gtk_combo_set_popdown_strings (GTK_COMBO (cfg_samplerate_combo), cfg_samplerate_combo_items);
   g_list_free (cfg_samplerate_combo_items);
@@ -357,6 +336,7 @@
   cfg_samplerate = GTK_COMBO (cfg_samplerate_combo)->entry;
   gtk_widget_set_name (cfg_samplerate, "cfg_samplerate");
   gtk_widget_show (cfg_samplerate);
+  gtk_entry_set_invisible_char (GTK_ENTRY (cfg_samplerate), 9679);
 
   w_label8 = gtk_label_new (_("Hz"));
   gtk_widget_set_name (w_label8, "w_label8");
@@ -435,7 +415,7 @@
   w_hbox1 = gtk_hbox_new (FALSE, 0);
   gtk_widget_set_name (w_hbox1, "w_hbox1");
   gtk_widget_show (w_hbox1);
-  gtk_box_pack_start (GTK_BOX (w_vbox2), w_hbox1, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (w_vbox2), w_hbox1, FALSE, TRUE, 0);
 
   cfg_clock_frame = gtk_frame_new (NULL);
   gtk_widget_set_name (cfg_clock_frame, "cfg_clock_frame");
@@ -804,10 +784,6 @@
   gtk_widget_show (cfg_sp2_filter_combo);
   gtk_box_pack_start (GTK_BOX (cfg_sp_filter_controlbox), cfg_sp2_filter_combo, TRUE, TRUE, 0);
   gtk_container_set_border_width (GTK_CONTAINER (cfg_sp2_filter_combo), 2);
-  cfg_sp2_filter_combo_items = g_list_append (cfg_sp2_filter_combo_items, (gpointer) _("6581 (reSID)"));
-  cfg_sp2_filter_combo_items = g_list_append (cfg_sp2_filter_combo_items, (gpointer) _("8580 (reSID)"));
-  cfg_sp2_filter_combo_items = g_list_append (cfg_sp2_filter_combo_items, (gpointer) _("6581R1 (alankila)"));
-  cfg_sp2_filter_combo_items = g_list_append (cfg_sp2_filter_combo_items, (gpointer) _("6581R4 (alankila)"));
   cfg_sp2_filter_combo_items = g_list_append (cfg_sp2_filter_combo_items, (gpointer) "");
   gtk_combo_set_popdown_strings (GTK_COMBO (cfg_sp2_filter_combo), cfg_sp2_filter_combo_items);
   g_list_free (cfg_sp2_filter_combo_items);
@@ -815,8 +791,9 @@
   cfg_sp2_filter_combo_entry = GTK_COMBO (cfg_sp2_filter_combo)->entry;
   gtk_widget_set_name (cfg_sp2_filter_combo_entry, "cfg_sp2_filter_combo_entry");
   gtk_widget_show (cfg_sp2_filter_combo_entry);
+  gtk_entry_set_invisible_char (GTK_ENTRY (cfg_sp2_filter_combo_entry), 9679);
 
-  table3 = gtk_table_new (2, 2, TRUE);
+  table3 = gtk_table_new (2, 3, TRUE);
   gtk_widget_set_name (table3, "table3");
   gtk_widget_show (table3);
   gtk_box_pack_start (GTK_BOX (cfg_sp_filter_controlbox), table3, FALSE, TRUE, 0);
@@ -824,7 +801,15 @@
   gtk_table_set_row_spacings (GTK_TABLE (table3), 4);
   gtk_table_set_col_spacings (GTK_TABLE (table3), 4);
 
-  cfg_sp2_filter_load = gtk_button_new_with_mnemonic (_("Load"));
+  cfg_sp2_filter_export = gtk_button_new_with_mnemonic (_("Export"));
+  gtk_widget_set_name (cfg_sp2_filter_export, "cfg_sp2_filter_export");
+  gtk_widget_show (cfg_sp2_filter_export);
+  gtk_table_attach (GTK_TABLE (table3), cfg_sp2_filter_export, 2, 3, 1, 2,
+                    (GtkAttachOptions) (GTK_FILL),
+                    (GtkAttachOptions) (0), 0, 0);
+  GTK_WIDGET_SET_FLAGS (cfg_sp2_filter_export, GTK_CAN_DEFAULT);
+
+  cfg_sp2_filter_load = gtk_button_new_with_mnemonic (_("Use"));
   gtk_widget_set_name (cfg_sp2_filter_load, "cfg_sp2_filter_load");
   gtk_widget_show (cfg_sp2_filter_load);
   gtk_table_attach (GTK_TABLE (table3), cfg_sp2_filter_load, 0, 1, 0, 1,
@@ -843,18 +828,18 @@
   cfg_sp2_filter_import = gtk_button_new_with_mnemonic (_("Import"));
   gtk_widget_set_name (cfg_sp2_filter_import, "cfg_sp2_filter_import");
   gtk_widget_show (cfg_sp2_filter_import);
-  gtk_table_attach (GTK_TABLE (table3), cfg_sp2_filter_import, 0, 1, 1, 2,
+  gtk_table_attach (GTK_TABLE (table3), cfg_sp2_filter_import, 1, 2, 1, 2,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
   GTK_WIDGET_SET_FLAGS (cfg_sp2_filter_import, GTK_CAN_DEFAULT);
 
-  cfg_sp2_filter_export = gtk_button_new_with_mnemonic (_("Export"));
-  gtk_widget_set_name (cfg_sp2_filter_export, "cfg_sp2_filter_export");
-  gtk_widget_show (cfg_sp2_filter_export);
-  gtk_table_attach (GTK_TABLE (table3), cfg_sp2_filter_export, 1, 2, 1, 2,
+  cfg_sp2_filter_delete = gtk_button_new_with_mnemonic (_("Delete"));
+  gtk_widget_set_name (cfg_sp2_filter_delete, "cfg_sp2_filter_delete");
+  gtk_widget_show (cfg_sp2_filter_delete);
+  gtk_table_attach (GTK_TABLE (table3), cfg_sp2_filter_delete, 2, 3, 0, 1,
                     (GtkAttachOptions) (GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
-  GTK_WIDGET_SET_FLAGS (cfg_sp2_filter_export, GTK_CAN_DEFAULT);
+  GTK_WIDGET_SET_FLAGS (cfg_sp2_filter_delete, GTK_CAN_DEFAULT);
 
   cfg_sp2_filter_frame = gtk_frame_new (NULL);
   gtk_widget_set_name (cfg_sp2_filter_frame, "cfg_sp2_filter_frame");
@@ -1020,6 +1005,7 @@
   gtk_widget_show (cfg_sld_dbpath);
   gtk_box_pack_start (GTK_BOX (cfg_sld_box), cfg_sld_dbpath, TRUE, TRUE, 0);
   gtk_tooltips_set_tip (tooltips, cfg_sld_dbpath, _("Database path and filename"), NULL);
+  gtk_entry_set_invisible_char (GTK_ENTRY (cfg_sld_dbpath), 9679);
 
   cfg_sld_dbbrowse = gtk_button_new_with_mnemonic (_("Browse"));
   gtk_widget_set_name (cfg_sld_dbbrowse, "cfg_sld_dbbrowse");
@@ -1038,15 +1024,117 @@
   gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 4), w_label26);
   gtk_label_set_justify (GTK_LABEL (w_label26), GTK_JUSTIFY_CENTER);
 
-  w_vbox33 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_set_name (w_vbox33, "w_vbox33");
-  gtk_widget_show (w_vbox33);
-  gtk_container_add (GTK_CONTAINER (cfg_notebook), w_vbox33);
+  frame1 = gtk_frame_new (NULL);
+  gtk_widget_set_name (frame1, "frame1");
+  gtk_widget_show (frame1);
+  gtk_container_add (GTK_CONTAINER (cfg_notebook), frame1);
+  gtk_container_set_border_width (GTK_CONTAINER (frame1), 4);
+
+  vbox1 = gtk_vbox_new (FALSE, 2);
+  gtk_widget_set_name (vbox1, "vbox1");
+  gtk_widget_show (vbox1);
+  gtk_container_add (GTK_CONTAINER (frame1), vbox1);
+  gtk_container_set_border_width (GTK_CONTAINER (vbox1), 2);
+
+  cfg_ftitle_override = gtk_check_button_new_with_mnemonic (_("Override generic Tuplez format string"));
+  gtk_widget_set_name (cfg_ftitle_override, "cfg_ftitle_override");
+  gtk_widget_show (cfg_ftitle_override);
+  gtk_box_pack_start (GTK_BOX (vbox1), cfg_ftitle_override, FALSE, FALSE, 0);
+  gtk_tooltips_set_tip (tooltips, cfg_ftitle_override, _("By enabling this option you can specify a custom Tuplez formatting string for SID-files. The SID-plugin specific Tuplez tags are described shortly below."), NULL);
+
+  cfg_ftitle_box = gtk_vbox_new (FALSE, 0);
+  gtk_widget_set_name (cfg_ftitle_box, "cfg_ftitle_box");
+  gtk_widget_show (cfg_ftitle_box);
+  gtk_box_pack_start (GTK_BOX (vbox1), cfg_ftitle_box, TRUE, TRUE, 0);
+
+  cfg_ftitle_format = gtk_entry_new ();
+  gtk_widget_set_name (cfg_ftitle_format, "cfg_ftitle_format");
+  gtk_widget_show (cfg_ftitle_format);
+  gtk_box_pack_start (GTK_BOX (cfg_ftitle_box), cfg_ftitle_format, FALSE, FALSE, 0);
+  gtk_tooltips_set_tip (tooltips, cfg_ftitle_format, _("Tuplez format string for SID-files"), NULL);
+  gtk_entry_set_invisible_char (GTK_ENTRY (cfg_ftitle_format), 9679);
+
+  cfg_ftitle_descs = gtk_label_new (_("Descriptions of <i>SID-specific</i> Tuplez fields go here. <b>:D</b>"));
+  gtk_widget_set_name (cfg_ftitle_descs, "cfg_ftitle_descs");
+  gtk_widget_show (cfg_ftitle_descs);
+  gtk_box_pack_start (GTK_BOX (cfg_ftitle_box), cfg_ftitle_descs, TRUE, TRUE, 0);
+  gtk_label_set_use_markup (GTK_LABEL (cfg_ftitle_descs), TRUE);
+  gtk_label_set_line_wrap (GTK_LABEL (cfg_ftitle_descs), TRUE);
+  gtk_misc_set_padding (GTK_MISC (cfg_ftitle_descs), 8, 8);
+
+  label29 = gtk_label_new (_("Song title format:"));
+  gtk_widget_set_name (label29, "label29");
+  gtk_widget_show (label29);
+  gtk_frame_set_label_widget (GTK_FRAME (frame1), label29);
+
+  w_label27 = gtk_label_new (_("Title"));
+  gtk_widget_set_name (w_label27, "w_label27");
+  gtk_widget_show (w_label27);
+  gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 5), w_label27);
+
+  w_vbox19 = gtk_vbox_new (FALSE, 0);
+  gtk_widget_set_name (w_vbox19, "w_vbox19");
+  gtk_widget_show (w_vbox19);
+  gtk_container_add (GTK_CONTAINER (cfg_notebook), w_vbox19);
+
+  w_frame31 = gtk_frame_new (NULL);
+  gtk_widget_set_name (w_frame31, "w_frame31");
+  gtk_widget_show (w_frame31);
+  gtk_box_pack_start (GTK_BOX (w_vbox19), w_frame31, FALSE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (w_frame31), 4);
+
+  w_vbox35 = gtk_vbox_new (FALSE, 2);
+  gtk_widget_set_name (w_vbox35, "w_vbox35");
+  gtk_widget_show (w_vbox35);
+  gtk_container_add (GTK_CONTAINER (w_frame31), w_vbox35);
+  gtk_container_set_border_width (GTK_CONTAINER (w_vbox35), 2);
+
+  cfg_subauto_enable = gtk_check_button_new_with_mnemonic (_("Add sub-tunes to playlist"));
+  gtk_widget_set_name (cfg_subauto_enable, "cfg_subauto_enable");
+  gtk_widget_show (cfg_subauto_enable);
+  gtk_box_pack_start (GTK_BOX (w_vbox35), cfg_subauto_enable, FALSE, FALSE, 0);
+  gtk_tooltips_set_tip (tooltips, cfg_subauto_enable, _("If enabled, sub-tunes of each file will be added to playlist. If disabled, only the default sub-tune will be added."), NULL);
+
+  cfg_subauto_min_only = gtk_check_button_new_with_mnemonic (_("Only tunes with specified minimum duration"));
+  gtk_widget_set_name (cfg_subauto_min_only, "cfg_subauto_min_only");
+  gtk_widget_show (cfg_subauto_min_only);
+  gtk_box_pack_start (GTK_BOX (w_vbox35), cfg_subauto_min_only, FALSE, FALSE, 0);
+  gtk_tooltips_set_tip (tooltips, cfg_subauto_min_only, _("Only add sub-tunes that have a duration of at least specified time."), NULL);
+
+  cfg_subauto_box = gtk_hbox_new (FALSE, 2);
+  gtk_widget_set_name (cfg_subauto_box, "cfg_subauto_box");
+  gtk_widget_show (cfg_subauto_box);
+  gtk_box_pack_start (GTK_BOX (w_vbox35), cfg_subauto_box, TRUE, TRUE, 0);
+
+  w_label52 = gtk_label_new (_("Playtime:"));
+  gtk_widget_set_name (w_label52, "w_label52");
+  gtk_widget_show (w_label52);
+  gtk_box_pack_start (GTK_BOX (cfg_subauto_box), w_label52, FALSE, FALSE, 0);
+  gtk_label_set_justify (GTK_LABEL (w_label52), GTK_JUSTIFY_CENTER);
+  gtk_misc_set_alignment (GTK_MISC (w_label52), 0, 0.5);
+
+  cfg_subauto_mintime_adj = gtk_adjustment_new (15, 1, 32767, 1, 60, 60);
+  cfg_subauto_mintime = gtk_spin_button_new (GTK_ADJUSTMENT (cfg_subauto_mintime_adj), 1, 0);
+  gtk_widget_set_name (cfg_subauto_mintime, "cfg_subauto_mintime");
+  gtk_widget_show (cfg_subauto_mintime);
+  gtk_box_pack_start (GTK_BOX (cfg_subauto_box), cfg_subauto_mintime, FALSE, TRUE, 0);
+
+  w_label53 = gtk_label_new (_("seconds"));
+  gtk_widget_set_name (w_label53, "w_label53");
+  gtk_widget_show (w_label53);
+  gtk_box_pack_start (GTK_BOX (cfg_subauto_box), w_label53, FALSE, FALSE, 0);
+  gtk_label_set_justify (GTK_LABEL (w_label53), GTK_JUSTIFY_CENTER);
+  gtk_misc_set_alignment (GTK_MISC (w_label53), 0, 0.5);
+
+  label21 = gtk_label_new (_("Sub-tune handling:"));
+  gtk_widget_set_name (label21, "label21");
+  gtk_widget_show (label21);
+  gtk_frame_set_label_widget (GTK_FRAME (w_frame31), label21);
 
   w_frame7 = gtk_frame_new (NULL);
   gtk_widget_set_name (w_frame7, "w_frame7");
   gtk_widget_show (w_frame7);
-  gtk_box_pack_start (GTK_BOX (w_vbox33), w_frame7, FALSE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (w_vbox19), w_frame7, FALSE, FALSE, 0);
   gtk_container_set_border_width (GTK_CONTAINER (w_frame7), 4);
 
   w_vbox8 = gtk_vbox_new (FALSE, 2);
@@ -1083,6 +1171,7 @@
   gtk_widget_show (cfg_stil_dbpath);
   gtk_container_add (GTK_CONTAINER (w_alignment2), cfg_stil_dbpath);
   gtk_tooltips_set_tip (tooltips, cfg_stil_dbpath, _("Path and filename of STIL database file (STIL.txt), usually found from HVSC's DOCUMENTS-subdirectory."), NULL);
+  gtk_entry_set_invisible_char (GTK_ENTRY (cfg_stil_dbpath), 9679);
 
   w_alignment1 = gtk_alignment_new (0.5, 0.5, 1, 0.300001);
   gtk_widget_set_name (w_alignment1, "w_alignment1");
@@ -1118,6 +1207,7 @@
   gtk_widget_show (cfg_hvsc_path);
   gtk_container_add (GTK_CONTAINER (w_alignment6), cfg_hvsc_path);
   gtk_tooltips_set_tip (tooltips, cfg_hvsc_path, _("Path to base-directory of your High Voltage SID Collection (HVSC), for example /media/C64Music/"), NULL);
+  gtk_entry_set_invisible_char (GTK_ENTRY (cfg_hvsc_path), 9679);
 
   w_alignment7 = gtk_alignment_new (0.5, 0.5, 1, 0.300001);
   gtk_widget_set_name (w_alignment7, "w_alignment7");
@@ -1136,191 +1226,6 @@
   gtk_widget_show (label18);
   gtk_frame_set_label_widget (GTK_FRAME (w_frame7), label18);
 
-  w_frame16 = gtk_frame_new (NULL);
-  gtk_widget_set_name (w_frame16, "w_frame16");
-  gtk_widget_show (w_frame16);
-  gtk_box_pack_start (GTK_BOX (w_vbox33), w_frame16, FALSE, TRUE, 0);
-  gtk_container_set_border_width (GTK_CONTAINER (w_frame16), 4);
-
-  vbox1 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_set_name (vbox1, "vbox1");
-  gtk_widget_show (vbox1);
-  gtk_container_add (GTK_CONTAINER (w_frame16), vbox1);
-  gtk_container_set_border_width (GTK_CONTAINER (vbox1), 2);
-
-  cfg_ftitle_override = gtk_check_button_new_with_mnemonic (_("Override generic XMMS titles"));
-  gtk_widget_set_name (cfg_ftitle_override, "cfg_ftitle_override");
-  gtk_widget_show (cfg_ftitle_override);
-  gtk_box_pack_start (GTK_BOX (vbox1), cfg_ftitle_override, FALSE, FALSE, 0);
-  gtk_tooltips_set_tip (tooltips, cfg_ftitle_override, _("XMMS v1.2.5 and later support generic titlestring formatting (see XMMS preferences). This option can be enabled to override those generic titles with Audacious-SID specific ones. Formatting mnemonics are explained briefly below."), NULL);
-
-  cfg_ftitle_box = gtk_vbox_new (FALSE, 2);
-  gtk_widget_set_name (cfg_ftitle_box, "cfg_ftitle_box");
-  gtk_widget_show (cfg_ftitle_box);
-  gtk_box_pack_start (GTK_BOX (vbox1), cfg_ftitle_box, TRUE, TRUE, 0);
-
-  cfg_ftitle_format = gtk_entry_new ();
-  gtk_widget_set_name (cfg_ftitle_format, "cfg_ftitle_format");
-  gtk_widget_show (cfg_ftitle_format);
-  gtk_box_pack_start (GTK_BOX (cfg_ftitle_box), cfg_ftitle_format, FALSE, FALSE, 2);
-
-  w_hbox9 = gtk_hbox_new (TRUE, 0);
-  gtk_widget_set_name (w_hbox9, "w_hbox9");
-  gtk_widget_show (w_hbox9);
-  gtk_box_pack_start (GTK_BOX (cfg_ftitle_box), w_hbox9, FALSE, FALSE, 2);
-
-  cfg_ftitle_desc1 = gtk_label_new (_("%% - '%' character\n%p - Performer/composer\n%t - Song name (title)\n%c - Copyright\n%s - File type\n%m - SID model"));
-  gtk_widget_set_name (cfg_ftitle_desc1, "cfg_ftitle_desc1");
-  gtk_widget_show (cfg_ftitle_desc1);
-  gtk_box_pack_start (GTK_BOX (w_hbox9), cfg_ftitle_desc1, FALSE, FALSE, 0);
-  gtk_misc_set_alignment (GTK_MISC (cfg_ftitle_desc1), 0.04, 0.5);
-
-  cfg_ftitle_desc2 = gtk_label_new (_("%C - Speed/clock (PAL/NTSC)\n%n - Subtune\n%N - Number of subtunes\n%f - Filename\n%F - File path\n%e - File extension"));
-  gtk_widget_set_name (cfg_ftitle_desc2, "cfg_ftitle_desc2");
-  gtk_widget_show (cfg_ftitle_desc2);
-  gtk_box_pack_start (GTK_BOX (w_hbox9), cfg_ftitle_desc2, FALSE, FALSE, 0);
-  gtk_misc_set_alignment (GTK_MISC (cfg_ftitle_desc2), 0.04, 0.5);
-
-  label19 = gtk_label_new (_("Song name/title format:"));
-  gtk_widget_set_name (label19, "label19");
-  gtk_widget_show (label19);
-  gtk_frame_set_label_widget (GTK_FRAME (w_frame16), label19);
-
-  w_label23 = gtk_label_new (_("Title"));
-  gtk_widget_set_name (w_label23, "w_label23");
-  gtk_widget_show (w_label23);
-  gtk_notebook_set_tab_label (GTK_NOTEBOOK (cfg_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (cfg_notebook), 5), w_label23);
-  gtk_label_set_justify (GTK_LABEL (w_label23), GTK_JUSTIFY_CENTER);
-
-  w_vbox19 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_set_name (w_vbox19, "w_vbox19");
-  gtk_widget_show (w_vbox19);
-  gtk_container_add (GTK_CONTAINER (cfg_notebook), w_vbox19);
-
-  w_frame28 = gtk_frame_new (NULL);
-  gtk_widget_set_name (w_frame28, "w_frame28");
-  gtk_widget_show (w_frame28);
-  gtk_box_pack_start (GTK_BOX (w_vbox19), w_frame28, FALSE, TRUE, 0);
-  gtk_container_set_border_width (GTK_CONTAINER (w_frame28), 4);
-
-  w_vbox31 = gtk_vbox_new (FALSE, 2);
-  gtk_widget_set_name (w_vbox31, "w_vbox31");
-  gtk_widget_show (w_vbox31);
-  gtk_container_add (GTK_CONTAINER (w_frame28), w_vbox31);
-  gtk_container_set_border_width (GTK_CONTAINER (w_vbox31), 2);
-
-  cfg_subctrl_none = gtk_radio_button_new_with_mnemonic (NULL, _("Disabled"));
-  gtk_widget_set_name (cfg_subctrl_none, "cfg_subctrl_none");
-  gtk_widget_show (cfg_subctrl_none);
-  gtk_box_pack_start (GTK_BOX (w_vbox31), cfg_subctrl_none, FALSE, FALSE, 0);
-  gtk_tooltips_set_tip (tooltips, cfg_subctrl_none, _("No sub-tune control."), NULL);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (cfg_subctrl_none), cfg_subctrl_none_group);
-  cfg_subctrl_none_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (cfg_subctrl_none));
-
-  cfg_subctrl_seek = gtk_radio_button_new_with_mnemonic (NULL, _("Seek back/forward changes sub-tune"));
-  gtk_widget_set_name (cfg_subctrl_seek, "cfg_subctrl_seek");
-  gtk_widget_show (cfg_subctrl_seek);
-  gtk_box_pack_start (GTK_BOX (w_vbox31), cfg_subctrl_seek, FALSE, FALSE, 0);
-  gtk_tooltips_set_tip (tooltips, cfg_subctrl_seek, _("Seeking backwards/forwards selects previous/next sub-tune, similar to selector used in XMMS-SidPlay."), NULL);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (cfg_subctrl_seek), cfg_subctrl_none_group);
-  cfg_subctrl_none_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (cfg_subctrl_seek));
-
-  cfg_subctrl_popup = gtk_radio_button_new_with_mnemonic (NULL, _("Pop-up via seekbar (UADE-style)"));
-  gtk_widget_set_name (cfg_subctrl_popup, "cfg_subctrl_popup");
-  gtk_widget_show (cfg_subctrl_popup);
-  gtk_box_pack_start (GTK_BOX (w_vbox31), cfg_subctrl_popup, FALSE, FALSE, 0);
-  gtk_tooltips_set_tip (tooltips, cfg_subctrl_popup, _("By pressing the seekbar a sub-tune control window pops up, in style of UADE (Unix Amiga Delitracker Emulator)"), NULL);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (cfg_subctrl_popup), cfg_subctrl_none_group);
-  cfg_subctrl_none_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (cfg_subctrl_popup));
-
-  cfg_subctrl_patch = gtk_radio_button_new_with_mnemonic (NULL, _("Song-position patch"));
-  gtk_widget_set_name (cfg_subctrl_patch, "cfg_subctrl_patch");
-  gtk_widget_show (cfg_subctrl_patch);
-  gtk_box_pack_start (GTK_BOX (w_vbox31), cfg_subctrl_patch, FALSE, FALSE, 0);
-  gtk_tooltips_set_tip (tooltips, cfg_subctrl_patch, _("Seekbar works as a sub-tune selector (Best option if you have patched your XMMS with the song-position patch.)"), NULL);
-  gtk_radio_button_set_group (GTK_RADIO_BUTTON (cfg_subctrl_patch), cfg_subctrl_none_group);
-  cfg_subctrl_none_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (cfg_subctrl_patch));
-
-  label20 = gtk_label_new (_("Sub-tune control:"));
-  gtk_widget_set_name (label20, "label20");
-  gtk_widget_show (label20);
-  gtk_frame_set_label_widget (GTK_FRAME (w_frame28), label20);
-
-  w_frame31 = gtk_frame_new (NULL);
-  gtk_widget_set_name (w_frame31, "w_frame31");
-  gtk_widget_show (w_frame31);
-  gtk_box_pack_start (GTK_BOX (w_vbox19), w_frame31, FALSE, TRUE, 0);
-  gtk_container_set_border_width (GTK_CONTAINER (w_frame31), 4);
-
-  w_vbox35 = gtk_vbox_new (FALSE, 2);
-  gtk_widget_set_name (w_vbox35, "w_vbox35");
-  gtk_widget_show (w_vbox35);
-  gtk_container_add (GTK_CONTAINER (w_frame31), w_vbox35);
-  gtk_container_set_border_width (GTK_CONTAINER (w_vbox35), 2);
-
-  cfg_subauto_enable = gtk_check_button_new_with_mnemonic (_("Go through all sub-tunes in file"));
-  gtk_widget_set_name (cfg_subauto_enable, "cfg_subauto_enable");
-  gtk_widget_show (cfg_subauto_enable);
-  gtk_box_pack_start (GTK_BOX (w_vbox35), cfg_subauto_enable, FALSE, FALSE, 0);
-
-  cfg_subauto_min_only = gtk_check_button_new_with_mnemonic (_("Only tunes with specified minimum length "));
-  gtk_widget_set_name (cfg_subauto_min_only, "cfg_subauto_min_only");
-  gtk_widget_show (cfg_subauto_min_only);
-  gtk_box_pack_start (GTK_BOX (w_vbox35), cfg_subauto_min_only, FALSE, FALSE, 0);
-
-  cfg_subauto_box = gtk_hbox_new (FALSE, 2);
-  gtk_widget_set_name (cfg_subauto_box, "cfg_subauto_box");
-  gtk_widget_show (cfg_subauto_box);
-  gtk_box_pack_start (GTK_BOX (w_vbox35), cfg_subauto_box, TRUE, TRUE, 0);
-
-  w_label52 = gtk_label_new (_("Playtime:"));
-  gtk_widget_set_name (w_label52, "w_label52");
-  gtk_widget_show (w_label52);
-  gtk_box_pack_start (GTK_BOX (cfg_subauto_box), w_label52, FALSE, FALSE, 0);
-  gtk_label_set_justify (GTK_LABEL (w_label52), GTK_JUSTIFY_CENTER);
-  gtk_misc_set_alignment (GTK_MISC (w_label52), 0, 0.5);
-
-  cfg_subauto_mintime_adj = gtk_adjustment_new (15, 1, 32767, 1, 60, 60);
-  cfg_subauto_mintime = gtk_spin_button_new (GTK_ADJUSTMENT (cfg_subauto_mintime_adj), 1, 0);
-  gtk_widget_set_name (cfg_subauto_mintime, "cfg_subauto_mintime");
-  gtk_widget_show (cfg_subauto_mintime);
-  gtk_box_pack_start (GTK_BOX (cfg_subauto_box), cfg_subauto_mintime, FALSE, TRUE, 0);
-
-  w_label53 = gtk_label_new (_("seconds"));
-  gtk_widget_set_name (w_label53, "w_label53");
-  gtk_widget_show (w_label53);
-  gtk_box_pack_start (GTK_BOX (cfg_subauto_box), w_label53, FALSE, FALSE, 0);
-  gtk_label_set_justify (GTK_LABEL (w_label53), GTK_JUSTIFY_CENTER);
-  gtk_misc_set_alignment (GTK_MISC (w_label53), 0, 0.5);
-
-  label21 = gtk_label_new (_("Automatic sub-tune changes:"));
-  gtk_widget_set_name (label21, "label21");
-  gtk_widget_show (label21);
-  gtk_frame_set_label_widget (GTK_FRAME (w_frame31), label21);
-
-  w_frame22 = gtk_frame_new (NULL);
-  gtk_widget_set_name (w_frame22, "w_frame22");
-  gtk_widget_show (w_frame22);
-  gtk_box_pack_start (GTK_BOX (w_vbox19), w_frame22, FALSE, TRUE, 0);
-  gtk_container_set_border_width (GTK_CONTAINER (w_frame22), 4);
-
-  w_vbox22 = gtk_vbox_new (FALSE, 0);
-  gtk_widget_set_name (w_vbox22, "w_vbox22");
-  gtk_widget_show (w_vbox22);
-  gtk_container_add (GTK_CONTAINER (w_frame22), w_vbox22);
-  gtk_container_set_border_width (GTK_CONTAINER (w_vbox22), 2);
-
-  cfg_detectmagic = gtk_check_button_new_with_mnemonic (_("Detect file by contents (slower)"));
-  gtk_widget_set_name (cfg_detectmagic, "cfg_detectmagic");
-  gtk_widget_show (cfg_detectmagic);
-  gtk_box_pack_start (GTK_BOX (w_vbox22), cfg_detectmagic, FALSE, FALSE, 0);
-  gtk_tooltips_set_tip (tooltips, cfg_detectmagic, _("Determine if file is a SID-tune by checking the file contents. If NOT selected, filetype is determined by checking filename extension (.sid, .dat, ...)"), NULL);
-
-  label22 = gtk_label_new (_("Miscellaneous options:"));
-  gtk_widget_set_name (label22, "label22");
-  gtk_widget_show (label22);
-  gtk_frame_set_label_widget (GTK_FRAME (w_frame22), label22);
-
   w_label3 = gtk_label_new (_("Misc"));
   gtk_widget_set_name (w_label3, "w_label3");
   gtk_widget_show (w_label3);
@@ -1333,7 +1238,7 @@
   gtk_box_pack_end (GTK_BOX (w_vbox1), hbuttonbox1, FALSE, FALSE, 0);
   gtk_container_set_border_width (GTK_CONTAINER (hbuttonbox1), 4);
   gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox1), GTK_BUTTONBOX_END);
-  gtk_box_set_spacing (GTK_BOX (hbuttonbox1), 15);
+  gtk_box_set_spacing (GTK_BOX (hbuttonbox1), 8);
 
   cfg_ok = gtk_button_new_with_mnemonic (_("OK"));
   gtk_widget_set_name (cfg_ok, "cfg_ok");
@@ -1349,6 +1254,9 @@
   GTK_WIDGET_SET_FLAGS (cfg_cancel, GTK_CAN_DEFAULT);
   gtk_tooltips_set_tip (tooltips, cfg_cancel, _("Cancel any changes"), NULL);
 
+  g_signal_connect ((gpointer) xs_configwin, "delete_event",
+                    G_CALLBACK (xs_configwin_delete),
+                    NULL);
   g_signal_connect ((gpointer) cfg_oversample, "toggled",
                     G_CALLBACK (xs_cfg_oversample_toggled),
                     NULL);
@@ -1364,6 +1272,9 @@
   g_signal_connect ((gpointer) cfg_sp1_filter_reset, "clicked",
                     G_CALLBACK (xs_cfg_sp1_filter_reset),
                     NULL);
+  g_signal_connect ((gpointer) cfg_sp2_filter_export, "clicked",
+                    G_CALLBACK (xs_cfg_sp2_filter_export),
+                    NULL);
   g_signal_connect ((gpointer) cfg_sp2_filter_load, "clicked",
                     G_CALLBACK (xs_cfg_sp2_filter_load),
                     NULL);
@@ -1373,8 +1284,8 @@
   g_signal_connect ((gpointer) cfg_sp2_filter_import, "clicked",
                     G_CALLBACK (xs_cfg_sp2_filter_import),
                     NULL);
-  g_signal_connect ((gpointer) cfg_sp2_filter_export, "clicked",
-                    G_CALLBACK (xs_cfg_sp2_filter_export),
+  g_signal_connect ((gpointer) cfg_sp2_filter_delete, "clicked",
+                    G_CALLBACK (xs_cfg_sp2_filter_delete),
                     NULL);
   g_signal_connect ((gpointer) cfg_mintime_enable, "toggled",
                     G_CALLBACK (xs_cfg_mintime_enable_toggled),
@@ -1389,10 +1300,19 @@
                     G_CALLBACK (xs_cfg_maxtime_changed),
                     NULL);
   g_signal_connect ((gpointer) cfg_sld_enable, "toggled",
-                    G_CALLBACK (xs_cfg_sld_enable_toggled),
+                    G_CALLBACK (xs_cfg_sldb_enable_toggled),
                     NULL);
   g_signal_connect ((gpointer) cfg_sld_dbbrowse, "clicked",
-                    G_CALLBACK (xs_cfg_sld_dbbrowse),
+                    G_CALLBACK (xs_cfg_sldb_browse),
+                    NULL);
+  g_signal_connect ((gpointer) cfg_ftitle_override, "toggled",
+                    G_CALLBACK (xs_cfg_ftitle_override_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) cfg_subauto_enable, "toggled",
+                    G_CALLBACK (xs_cfg_subauto_enable_toggled),
+                    NULL);
+  g_signal_connect ((gpointer) cfg_subauto_min_only, "toggled",
+                    G_CALLBACK (xs_cfg_subauto_min_only_toggled),
                     NULL);
   g_signal_connect ((gpointer) cfg_stil_enable, "toggled",
                     G_CALLBACK (xs_cfg_stil_enable_toggled),
@@ -1403,15 +1323,6 @@
   g_signal_connect ((gpointer) cfg_hvsc_browse, "clicked",
                     G_CALLBACK (xs_cfg_hvsc_browse),
                     NULL);
-  g_signal_connect ((gpointer) cfg_ftitle_override, "toggled",
-                    G_CALLBACK (xs_cfg_ftitle_override_toggled),
-                    NULL);
-  g_signal_connect ((gpointer) cfg_subauto_enable, "toggled",
-                    G_CALLBACK (xs_cfg_subauto_enable_toggled),
-                    NULL);
-  g_signal_connect ((gpointer) cfg_subauto_min_only, "toggled",
-                    G_CALLBACK (xs_cfg_subauto_min_only_toggled),
-                    NULL);
   g_signal_connect ((gpointer) cfg_ok, "clicked",
                     G_CALLBACK (xs_cfg_ok),
                     NULL);
@@ -1515,10 +1426,11 @@
   GLADE_HOOKUP_OBJECT (xs_configwin, cfg_sp2_filter_combo, "cfg_sp2_filter_combo");
   GLADE_HOOKUP_OBJECT (xs_configwin, cfg_sp2_filter_combo_entry, "cfg_sp2_filter_combo_entry");
   GLADE_HOOKUP_OBJECT (xs_configwin, table3, "table3");
+  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_sp2_filter_export, "cfg_sp2_filter_export");
   GLADE_HOOKUP_OBJECT (xs_configwin, cfg_sp2_filter_load, "cfg_sp2_filter_load");
   GLADE_HOOKUP_OBJECT (xs_configwin, cfg_sp2_filter_save, "cfg_sp2_filter_save");
   GLADE_HOOKUP_OBJECT (xs_configwin, cfg_sp2_filter_import, "cfg_sp2_filter_import");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_sp2_filter_export, "cfg_sp2_filter_export");
+  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_sp2_filter_delete, "cfg_sp2_filter_delete");
   GLADE_HOOKUP_OBJECT (xs_configwin, cfg_sp2_filter_frame, "cfg_sp2_filter_frame");
   GLADE_HOOKUP_OBJECT (xs_configwin, label14, "label14");
   GLADE_HOOKUP_OBJECT (xs_configwin, w_label56, "w_label56");
@@ -1550,7 +1462,24 @@
   GLADE_HOOKUP_OBJECT (xs_configwin, cfg_sld_dbbrowse, "cfg_sld_dbbrowse");
   GLADE_HOOKUP_OBJECT (xs_configwin, label17, "label17");
   GLADE_HOOKUP_OBJECT (xs_configwin, w_label26, "w_label26");
-  GLADE_HOOKUP_OBJECT (xs_configwin, w_vbox33, "w_vbox33");
+  GLADE_HOOKUP_OBJECT (xs_configwin, frame1, "frame1");
+  GLADE_HOOKUP_OBJECT (xs_configwin, vbox1, "vbox1");
+  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ftitle_override, "cfg_ftitle_override");
+  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ftitle_box, "cfg_ftitle_box");
+  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ftitle_format, "cfg_ftitle_format");
+  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ftitle_descs, "cfg_ftitle_descs");
+  GLADE_HOOKUP_OBJECT (xs_configwin, label29, "label29");
+  GLADE_HOOKUP_OBJECT (xs_configwin, w_label27, "w_label27");
+  GLADE_HOOKUP_OBJECT (xs_configwin, w_vbox19, "w_vbox19");
+  GLADE_HOOKUP_OBJECT (xs_configwin, w_frame31, "w_frame31");
+  GLADE_HOOKUP_OBJECT (xs_configwin, w_vbox35, "w_vbox35");
+  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_subauto_enable, "cfg_subauto_enable");
+  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_subauto_min_only, "cfg_subauto_min_only");
+  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_subauto_box, "cfg_subauto_box");
+  GLADE_HOOKUP_OBJECT (xs_configwin, w_label52, "w_label52");
+  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_subauto_mintime, "cfg_subauto_mintime");
+  GLADE_HOOKUP_OBJECT (xs_configwin, w_label53, "w_label53");
+  GLADE_HOOKUP_OBJECT (xs_configwin, label21, "label21");
   GLADE_HOOKUP_OBJECT (xs_configwin, w_frame7, "w_frame7");
   GLADE_HOOKUP_OBJECT (xs_configwin, w_vbox8, "w_vbox8");
   GLADE_HOOKUP_OBJECT (xs_configwin, cfg_stil_enable, "cfg_stil_enable");
@@ -1567,37 +1496,6 @@
   GLADE_HOOKUP_OBJECT (xs_configwin, w_alignment7, "w_alignment7");
   GLADE_HOOKUP_OBJECT (xs_configwin, cfg_hvsc_browse, "cfg_hvsc_browse");
   GLADE_HOOKUP_OBJECT (xs_configwin, label18, "label18");
-  GLADE_HOOKUP_OBJECT (xs_configwin, w_frame16, "w_frame16");
-  GLADE_HOOKUP_OBJECT (xs_configwin, vbox1, "vbox1");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ftitle_override, "cfg_ftitle_override");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ftitle_box, "cfg_ftitle_box");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ftitle_format, "cfg_ftitle_format");
-  GLADE_HOOKUP_OBJECT (xs_configwin, w_hbox9, "w_hbox9");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ftitle_desc1, "cfg_ftitle_desc1");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ftitle_desc2, "cfg_ftitle_desc2");
-  GLADE_HOOKUP_OBJECT (xs_configwin, label19, "label19");
-  GLADE_HOOKUP_OBJECT (xs_configwin, w_label23, "w_label23");
-  GLADE_HOOKUP_OBJECT (xs_configwin, w_vbox19, "w_vbox19");
-  GLADE_HOOKUP_OBJECT (xs_configwin, w_frame28, "w_frame28");
-  GLADE_HOOKUP_OBJECT (xs_configwin, w_vbox31, "w_vbox31");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_subctrl_none, "cfg_subctrl_none");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_subctrl_seek, "cfg_subctrl_seek");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_subctrl_popup, "cfg_subctrl_popup");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_subctrl_patch, "cfg_subctrl_patch");
-  GLADE_HOOKUP_OBJECT (xs_configwin, label20, "label20");
-  GLADE_HOOKUP_OBJECT (xs_configwin, w_frame31, "w_frame31");
-  GLADE_HOOKUP_OBJECT (xs_configwin, w_vbox35, "w_vbox35");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_subauto_enable, "cfg_subauto_enable");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_subauto_min_only, "cfg_subauto_min_only");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_subauto_box, "cfg_subauto_box");
-  GLADE_HOOKUP_OBJECT (xs_configwin, w_label52, "w_label52");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_subauto_mintime, "cfg_subauto_mintime");
-  GLADE_HOOKUP_OBJECT (xs_configwin, w_label53, "w_label53");
-  GLADE_HOOKUP_OBJECT (xs_configwin, label21, "label21");
-  GLADE_HOOKUP_OBJECT (xs_configwin, w_frame22, "w_frame22");
-  GLADE_HOOKUP_OBJECT (xs_configwin, w_vbox22, "w_vbox22");
-  GLADE_HOOKUP_OBJECT (xs_configwin, cfg_detectmagic, "cfg_detectmagic");
-  GLADE_HOOKUP_OBJECT (xs_configwin, label22, "label22");
   GLADE_HOOKUP_OBJECT (xs_configwin, w_label3, "w_label3");
   GLADE_HOOKUP_OBJECT (xs_configwin, hbuttonbox1, "hbuttonbox1");
   GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ok, "cfg_ok");
@@ -1612,12 +1510,6 @@
 {
   GtkWidget *xs_fileinfowin;
   GtkWidget *w_vbox14;
-  GtkWidget *w_alignment8;
-  GtkWidget *w_frame30;
-  GtkWidget *w_hbox19;
-  GtkWidget *fileinfo_subctrl_prev;
-  GtkWidget *fileinfo_subctrl_adj;
-  GtkWidget *fileinfo_subctrl_next;
   GtkWidget *w_frame14;
   GtkWidget *table1;
   GtkWidget *w_label16;
@@ -1632,8 +1524,7 @@
   GtkWidget *w_frame15;
   GtkWidget *w_vbox15;
   GtkWidget *fileinfo_sub_tune;
-  GtkWidget *convertwidget29;
-  GtkWidget *convertwidget30;
+  GtkWidget *convertwidget7;
   GtkWidget *table2;
   GtkWidget *w_label41;
   GtkWidget *fileinfo_sub_author;
@@ -1648,49 +1539,14 @@
 
   xs_fileinfowin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
   gtk_widget_set_name (xs_fileinfowin, "xs_fileinfowin");
+  gtk_widget_set_size_request (xs_fileinfowin, 400, -1);
   gtk_window_set_title (GTK_WINDOW (xs_fileinfowin), _("Audacious-SID Fileinfo"));
-  gtk_window_set_default_size (GTK_WINDOW (xs_fileinfowin), 400, -1);
 
   w_vbox14 = gtk_vbox_new (FALSE, 0);
   gtk_widget_set_name (w_vbox14, "w_vbox14");
   gtk_widget_show (w_vbox14);
   gtk_container_add (GTK_CONTAINER (xs_fileinfowin), w_vbox14);
 
-  w_alignment8 = gtk_alignment_new (0.5, 0.5, 0.1, 1);
-  gtk_widget_set_name (w_alignment8, "w_alignment8");
-  gtk_widget_show (w_alignment8);
-  gtk_box_pack_start (GTK_BOX (w_vbox14), w_alignment8, FALSE, FALSE, 0);
-  gtk_container_set_border_width (GTK_CONTAINER (w_alignment8), 2);
-
-  w_frame30 = gtk_frame_new (NULL);
-  gtk_widget_set_name (w_frame30, "w_frame30");
-  gtk_widget_show (w_frame30);
-  gtk_container_add (GTK_CONTAINER (w_alignment8), w_frame30);
-  gtk_container_set_border_width (GTK_CONTAINER (w_frame30), 2);
-
-  w_hbox19 = gtk_hbox_new (FALSE, 0);
-  gtk_widget_set_name (w_hbox19, "w_hbox19");
-  gtk_widget_show (w_hbox19);
-  gtk_container_add (GTK_CONTAINER (w_frame30), w_hbox19);
-  gtk_container_set_border_width (GTK_CONTAINER (w_hbox19), 4);
-
-  fileinfo_subctrl_prev = gtk_button_new_with_mnemonic (_(" < "));
-  gtk_widget_set_name (fileinfo_subctrl_prev, "fileinfo_subctrl_prev");
-  gtk_widget_show (fileinfo_subctrl_prev);
-  gtk_box_pack_start (GTK_BOX (w_hbox19), fileinfo_subctrl_prev, FALSE, FALSE, 0);
-
-  fileinfo_subctrl_adj = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 0, 0, 0, 0)));
-  gtk_widget_set_name (fileinfo_subctrl_adj, "fileinfo_subctrl_adj");
-  gtk_widget_show (fileinfo_subctrl_adj);
-  gtk_box_pack_start (GTK_BOX (w_hbox19), fileinfo_subctrl_adj, TRUE, TRUE, 0);
-  gtk_widget_set_size_request (fileinfo_subctrl_adj, 80, -1);
-  gtk_scale_set_digits (GTK_SCALE (fileinfo_subctrl_adj), 0);
-
-  fileinfo_subctrl_next = gtk_button_new_with_mnemonic (_(" > "));
-  gtk_widget_set_name (fileinfo_subctrl_next, "fileinfo_subctrl_next");
-  gtk_widget_show (fileinfo_subctrl_next);
-  gtk_box_pack_start (GTK_BOX (w_hbox19), fileinfo_subctrl_next, FALSE, FALSE, 0);
-
   w_frame14 = gtk_frame_new (NULL);
   gtk_widget_set_name (w_frame14, "w_frame14");
   gtk_widget_show (w_frame14);
@@ -1744,6 +1600,7 @@
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
   gtk_editable_set_editable (GTK_EDITABLE (fileinfo_filename), FALSE);
+  gtk_entry_set_invisible_char (GTK_ENTRY (fileinfo_filename), 9679);
 
   fileinfo_songname = gtk_entry_new ();
   gtk_widget_set_name (fileinfo_songname, "fileinfo_songname");
@@ -1752,6 +1609,7 @@
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
   gtk_editable_set_editable (GTK_EDITABLE (fileinfo_songname), FALSE);
+  gtk_entry_set_invisible_char (GTK_ENTRY (fileinfo_songname), 9679);
 
   fileinfo_composer = gtk_entry_new ();
   gtk_widget_set_name (fileinfo_composer, "fileinfo_composer");
@@ -1760,6 +1618,7 @@
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
   gtk_editable_set_editable (GTK_EDITABLE (fileinfo_composer), FALSE);
+  gtk_entry_set_invisible_char (GTK_ENTRY (fileinfo_composer), 9679);
 
   fileinfo_copyright = gtk_entry_new ();
   gtk_widget_set_name (fileinfo_copyright, "fileinfo_copyright");
@@ -1768,6 +1627,7 @@
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
   gtk_editable_set_editable (GTK_EDITABLE (fileinfo_copyright), FALSE);
+  gtk_entry_set_invisible_char (GTK_ENTRY (fileinfo_copyright), 9679);
 
   label23 = gtk_label_new (_("Song Information:"));
   gtk_widget_set_name (label23, "label23");
@@ -1788,18 +1648,13 @@
   fileinfo_sub_tune = gtk_option_menu_new ();
   gtk_widget_set_name (fileinfo_sub_tune, "fileinfo_sub_tune");
   gtk_widget_show (fileinfo_sub_tune);
-  gtk_box_pack_start (GTK_BOX (w_vbox15), fileinfo_sub_tune, TRUE, TRUE, 0);
+  gtk_box_pack_start (GTK_BOX (w_vbox15), fileinfo_sub_tune, FALSE, FALSE, 0);
   gtk_container_set_border_width (GTK_CONTAINER (fileinfo_sub_tune), 2);
 
-  convertwidget29 = gtk_menu_new ();
-  gtk_widget_set_name (convertwidget29, "convertwidget29");
+  convertwidget7 = gtk_menu_new ();
+  gtk_widget_set_name (convertwidget7, "convertwidget7");
 
-  convertwidget30 = gtk_menu_item_new_with_mnemonic (_(" "));
-  gtk_widget_set_name (convertwidget30, "convertwidget30");
-  gtk_widget_show (convertwidget30);
-  gtk_container_add (GTK_CONTAINER (convertwidget29), convertwidget30);
-
-  gtk_option_menu_set_menu (GTK_OPTION_MENU (fileinfo_sub_tune), convertwidget29);
+  gtk_option_menu_set_menu (GTK_OPTION_MENU (fileinfo_sub_tune), convertwidget7);
 
   table2 = gtk_table_new (3, 2, FALSE);
   gtk_widget_set_name (table2, "table2");
@@ -1824,6 +1679,7 @@
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
   gtk_editable_set_editable (GTK_EDITABLE (fileinfo_sub_author), FALSE);
+  gtk_entry_set_invisible_char (GTK_ENTRY (fileinfo_sub_author), 9679);
 
   w_label50 = gtk_label_new (_("Name:"));
   gtk_widget_set_name (w_label50, "w_label50");
@@ -1840,6 +1696,7 @@
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
   gtk_editable_set_editable (GTK_EDITABLE (fileinfo_sub_name), FALSE);
+  gtk_entry_set_invisible_char (GTK_ENTRY (fileinfo_sub_name), 9679);
 
   w_label51 = gtk_label_new (_("Duration:"));
   gtk_widget_set_name (w_label51, "w_label51");
@@ -1857,6 +1714,7 @@
                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                     (GtkAttachOptions) (0), 0, 0);
   gtk_editable_set_editable (GTK_EDITABLE (entry1), FALSE);
+  gtk_entry_set_invisible_char (GTK_ENTRY (entry1), 9679);
 
   scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
   gtk_widget_set_name (scrolledwindow2, "scrolledwindow2");
@@ -1883,18 +1741,12 @@
   gtk_widget_set_name (button2, "button2");
   gtk_widget_show (button2);
   gtk_box_pack_start (GTK_BOX (w_vbox14), button2, FALSE, FALSE, 0);
-  gtk_container_set_border_width (GTK_CONTAINER (button2), 6);
+  gtk_container_set_border_width (GTK_CONTAINER (button2), 4);
   GTK_WIDGET_SET_FLAGS (button2, GTK_CAN_DEFAULT);
 
   g_signal_connect ((gpointer) xs_fileinfowin, "delete_event",
                     G_CALLBACK (xs_fileinfo_delete),
                     NULL);
-  g_signal_connect ((gpointer) fileinfo_subctrl_prev, "clicked",
-                    G_CALLBACK (xs_subctrl_prevsong),
-                    NULL);
-  g_signal_connect ((gpointer) fileinfo_subctrl_next, "clicked",
-                    G_CALLBACK (xs_subctrl_nextsong),
-                    NULL);
   g_signal_connect ((gpointer) button2, "clicked",
                     G_CALLBACK (xs_fileinfo_ok),
                     NULL);
@@ -1902,12 +1754,6 @@
   /* Store pointers to all widgets, for use by lookup_widget(). */
   GLADE_HOOKUP_OBJECT_NO_REF (xs_fileinfowin, xs_fileinfowin, "xs_fileinfowin");
   GLADE_HOOKUP_OBJECT (xs_fileinfowin, w_vbox14, "w_vbox14");
-  GLADE_HOOKUP_OBJECT (xs_fileinfowin, w_alignment8, "w_alignment8");
-  GLADE_HOOKUP_OBJECT (xs_fileinfowin, w_frame30, "w_frame30");
-  GLADE_HOOKUP_OBJECT (xs_fileinfowin, w_hbox19, "w_hbox19");
-  GLADE_HOOKUP_OBJECT (xs_fileinfowin, fileinfo_subctrl_prev, "fileinfo_subctrl_prev");
-  GLADE_HOOKUP_OBJECT (xs_fileinfowin, fileinfo_subctrl_adj, "fileinfo_subctrl_adj");
-  GLADE_HOOKUP_OBJECT (xs_fileinfowin, fileinfo_subctrl_next, "fileinfo_subctrl_next");
   GLADE_HOOKUP_OBJECT (xs_fileinfowin, w_frame14, "w_frame14");
   GLADE_HOOKUP_OBJECT (xs_fileinfowin, table1, "table1");
   GLADE_HOOKUP_OBJECT (xs_fileinfowin, w_label16, "w_label16");
@@ -1922,8 +1768,7 @@
   GLADE_HOOKUP_OBJECT (xs_fileinfowin, w_frame15, "w_frame15");
   GLADE_HOOKUP_OBJECT (xs_fileinfowin, w_vbox15, "w_vbox15");
   GLADE_HOOKUP_OBJECT (xs_fileinfowin, fileinfo_sub_tune, "fileinfo_sub_tune");
-  GLADE_HOOKUP_OBJECT (xs_fileinfowin, convertwidget29, "convertwidget29");
-  GLADE_HOOKUP_OBJECT (xs_fileinfowin, convertwidget30, "convertwidget30");
+  GLADE_HOOKUP_OBJECT (xs_fileinfowin, convertwidget7, "convertwidget7");
   GLADE_HOOKUP_OBJECT (xs_fileinfowin, table2, "table2");
   GLADE_HOOKUP_OBJECT (xs_fileinfowin, w_label41, "w_label41");
   GLADE_HOOKUP_OBJECT (xs_fileinfowin, fileinfo_sub_author, "fileinfo_sub_author");
@@ -1942,116 +1787,280 @@
 }
 
 GtkWidget*
-create_xs_sldbfileselector (void)
+create_xs_sldb_fs (void)
 {
-  GtkWidget *xs_sldbfileselector;
+  GtkWidget *xs_sldb_fs;
   GtkWidget *ok_button2;
   GtkWidget *cancel_button2;
 
-  xs_sldbfileselector = gtk_file_selection_new (_("Select HVSC song length database"));
-  gtk_widget_set_name (xs_sldbfileselector, "xs_sldbfileselector");
-  gtk_container_set_border_width (GTK_CONTAINER (xs_sldbfileselector), 10);
-  gtk_window_set_modal (GTK_WINDOW (xs_sldbfileselector), TRUE);
-  gtk_window_set_type_hint (GTK_WINDOW (xs_sldbfileselector), GDK_WINDOW_TYPE_HINT_DIALOG);
+  xs_sldb_fs = gtk_file_selection_new (_("Select HVSC song length database"));
+  gtk_widget_set_name (xs_sldb_fs, "xs_sldb_fs");
+  gtk_container_set_border_width (GTK_CONTAINER (xs_sldb_fs), 10);
+  gtk_window_set_modal (GTK_WINDOW (xs_sldb_fs), TRUE);
+  gtk_window_set_type_hint (GTK_WINDOW (xs_sldb_fs), GDK_WINDOW_TYPE_HINT_DIALOG);
 
-  ok_button2 = GTK_FILE_SELECTION (xs_sldbfileselector)->ok_button;
+  ok_button2 = GTK_FILE_SELECTION (xs_sldb_fs)->ok_button;
   gtk_widget_set_name (ok_button2, "ok_button2");
   gtk_widget_show (ok_button2);
   GTK_WIDGET_SET_FLAGS (ok_button2, GTK_CAN_DEFAULT);
 
-  cancel_button2 = GTK_FILE_SELECTION (xs_sldbfileselector)->cancel_button;
+  cancel_button2 = GTK_FILE_SELECTION (xs_sldb_fs)->cancel_button;
   gtk_widget_set_name (cancel_button2, "cancel_button2");
   gtk_widget_show (cancel_button2);
   GTK_WIDGET_SET_FLAGS (cancel_button2, GTK_CAN_DEFAULT);
 
+  g_signal_connect ((gpointer) xs_sldb_fs, "delete_event",
+                    G_CALLBACK (xs_sldb_fs_delete),
+                    NULL);
   g_signal_connect ((gpointer) ok_button2, "clicked",
-                    G_CALLBACK (xs_cfg_sldb_fs_ok),
+                    G_CALLBACK (xs_sldb_fs_ok),
                     NULL);
   g_signal_connect ((gpointer) cancel_button2, "clicked",
-                    G_CALLBACK (xs_cfg_sldb_fs_cancel),
+                    G_CALLBACK (xs_sldb_fs_cancel),
                     NULL);
 
   /* Store pointers to all widgets, for use by lookup_widget(). */
-  GLADE_HOOKUP_OBJECT_NO_REF (xs_sldbfileselector, xs_sldbfileselector, "xs_sldbfileselector");
-  GLADE_HOOKUP_OBJECT_NO_REF (xs_sldbfileselector, ok_button2, "ok_button2");
-  GLADE_HOOKUP_OBJECT_NO_REF (xs_sldbfileselector, cancel_button2, "cancel_button2");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_sldb_fs, xs_sldb_fs, "xs_sldb_fs");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_sldb_fs, ok_button2, "ok_button2");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_sldb_fs, cancel_button2, "cancel_button2");
 
-  return xs_sldbfileselector;
+  return xs_sldb_fs;
 }
 
 GtkWidget*
-create_xs_stilfileselector (void)
+create_xs_stil_fs (void)
 {
-  GtkWidget *xs_stilfileselector;
+  GtkWidget *xs_stil_fs;
   GtkWidget *ok_button3;
   GtkWidget *cancel_button3;
 
-  xs_stilfileselector = gtk_file_selection_new (_("Select STIL-database "));
-  gtk_widget_set_name (xs_stilfileselector, "xs_stilfileselector");
-  gtk_container_set_border_width (GTK_CONTAINER (xs_stilfileselector), 10);
-  gtk_window_set_modal (GTK_WINDOW (xs_stilfileselector), TRUE);
-  gtk_window_set_type_hint (GTK_WINDOW (xs_stilfileselector), GDK_WINDOW_TYPE_HINT_DIALOG);
+  xs_stil_fs = gtk_file_selection_new (_("Select STIL-database"));
+  gtk_widget_set_name (xs_stil_fs, "xs_stil_fs");
+  gtk_container_set_border_width (GTK_CONTAINER (xs_stil_fs), 10);
+  gtk_window_set_modal (GTK_WINDOW (xs_stil_fs), TRUE);
+  gtk_window_set_type_hint (GTK_WINDOW (xs_stil_fs), GDK_WINDOW_TYPE_HINT_DIALOG);
 
-  ok_button3 = GTK_FILE_SELECTION (xs_stilfileselector)->ok_button;
+  ok_button3 = GTK_FILE_SELECTION (xs_stil_fs)->ok_button;
   gtk_widget_set_name (ok_button3, "ok_button3");
   gtk_widget_show (ok_button3);
   GTK_WIDGET_SET_FLAGS (ok_button3, GTK_CAN_DEFAULT);
 
-  cancel_button3 = GTK_FILE_SELECTION (xs_stilfileselector)->cancel_button;
+  cancel_button3 = GTK_FILE_SELECTION (xs_stil_fs)->cancel_button;
   gtk_widget_set_name (cancel_button3, "cancel_button3");
   gtk_widget_show (cancel_button3);
   GTK_WIDGET_SET_FLAGS (cancel_button3, GTK_CAN_DEFAULT);
 
+  g_signal_connect ((gpointer) xs_stil_fs, "delete_event",
+                    G_CALLBACK (xs_stil_fs_delete),
+                    NULL);
   g_signal_connect ((gpointer) ok_button3, "clicked",
-                    G_CALLBACK (xs_cfg_stil_fs_ok),
+                    G_CALLBACK (xs_stil_fs_ok),
                     NULL);
   g_signal_connect ((gpointer) cancel_button3, "clicked",
-                    G_CALLBACK (xs_cfg_stil_fs_cancel),
+                    G_CALLBACK (xs_stil_fs_cancel),
                     NULL);
 
   /* Store pointers to all widgets, for use by lookup_widget(). */
-  GLADE_HOOKUP_OBJECT_NO_REF (xs_stilfileselector, xs_stilfileselector, "xs_stilfileselector");
-  GLADE_HOOKUP_OBJECT_NO_REF (xs_stilfileselector, ok_button3, "ok_button3");
-  GLADE_HOOKUP_OBJECT_NO_REF (xs_stilfileselector, cancel_button3, "cancel_button3");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_stil_fs, xs_stil_fs, "xs_stil_fs");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_stil_fs, ok_button3, "ok_button3");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_stil_fs, cancel_button3, "cancel_button3");
 
-  return xs_stilfileselector;
+  return xs_stil_fs;
 }
 
 GtkWidget*
-create_xs_hvscpathselector (void)
+create_xs_hvsc_fs (void)
 {
-  GtkWidget *xs_hvscpathselector;
+  GtkWidget *xs_hvsc_fs;
   GtkWidget *ok_button4;
   GtkWidget *cancel_button4;
 
-  xs_hvscpathselector = gtk_file_selection_new (_("Select HVSC location prefix"));
-  gtk_widget_set_name (xs_hvscpathselector, "xs_hvscpathselector");
-  gtk_container_set_border_width (GTK_CONTAINER (xs_hvscpathselector), 10);
-  gtk_window_set_modal (GTK_WINDOW (xs_hvscpathselector), TRUE);
-  gtk_window_set_type_hint (GTK_WINDOW (xs_hvscpathselector), GDK_WINDOW_TYPE_HINT_DIALOG);
+  xs_hvsc_fs = gtk_file_selection_new (_("Select HVSC location prefix"));
+  gtk_widget_set_name (xs_hvsc_fs, "xs_hvsc_fs");
+  gtk_container_set_border_width (GTK_CONTAINER (xs_hvsc_fs), 10);
+  gtk_window_set_modal (GTK_WINDOW (xs_hvsc_fs), TRUE);
+  gtk_window_set_type_hint (GTK_WINDOW (xs_hvsc_fs), GDK_WINDOW_TYPE_HINT_DIALOG);
 
-  ok_button4 = GTK_FILE_SELECTION (xs_hvscpathselector)->ok_button;
+  ok_button4 = GTK_FILE_SELECTION (xs_hvsc_fs)->ok_button;
   gtk_widget_set_name (ok_button4, "ok_button4");
   gtk_widget_show (ok_button4);
   GTK_WIDGET_SET_FLAGS (ok_button4, GTK_CAN_DEFAULT);
 
-  cancel_button4 = GTK_FILE_SELECTION (xs_hvscpathselector)->cancel_button;
+  cancel_button4 = GTK_FILE_SELECTION (xs_hvsc_fs)->cancel_button;
   gtk_widget_set_name (cancel_button4, "cancel_button4");
   gtk_widget_show (cancel_button4);
   GTK_WIDGET_SET_FLAGS (cancel_button4, GTK_CAN_DEFAULT);
 
+  g_signal_connect ((gpointer) xs_hvsc_fs, "delete_event",
+                    G_CALLBACK (xs_hvsc_fs_delete),
+                    NULL);
   g_signal_connect ((gpointer) ok_button4, "clicked",
-                    G_CALLBACK (xs_cfg_hvsc_fs_ok),
+                    G_CALLBACK (xs_hvsc_fs_ok),
                     NULL);
   g_signal_connect ((gpointer) cancel_button4, "clicked",
-                    G_CALLBACK (xs_cfg_hvsc_fs_cancel),
+                    G_CALLBACK (xs_hvsc_fs_cancel),
+                    NULL);
+
+  /* Store pointers to all widgets, for use by lookup_widget(). */
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_hvsc_fs, xs_hvsc_fs, "xs_hvsc_fs");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_hvsc_fs, ok_button4, "ok_button4");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_hvsc_fs, cancel_button4, "cancel_button4");
+
+  return xs_hvsc_fs;
+}
+
+GtkWidget*
+create_xs_filter_import_fs (void)
+{
+  GtkWidget *xs_filter_import_fs;
+  GtkWidget *ok_button64;
+  GtkWidget *cancel_button64;
+
+  xs_filter_import_fs = gtk_file_selection_new (_("Select SIDPlay2 filters file for importing"));
+  gtk_widget_set_name (xs_filter_import_fs, "xs_filter_import_fs");
+  gtk_container_set_border_width (GTK_CONTAINER (xs_filter_import_fs), 10);
+  gtk_window_set_modal (GTK_WINDOW (xs_filter_import_fs), TRUE);
+  gtk_window_set_type_hint (GTK_WINDOW (xs_filter_import_fs), GDK_WINDOW_TYPE_HINT_DIALOG);
+
+  ok_button64 = GTK_FILE_SELECTION (xs_filter_import_fs)->ok_button;
+  gtk_widget_set_name (ok_button64, "ok_button64");
+  gtk_widget_show (ok_button64);
+  GTK_WIDGET_SET_FLAGS (ok_button64, GTK_CAN_DEFAULT);
+
+  cancel_button64 = GTK_FILE_SELECTION (xs_filter_import_fs)->cancel_button;
+  gtk_widget_set_name (cancel_button64, "cancel_button64");
+  gtk_widget_show (cancel_button64);
+  GTK_WIDGET_SET_FLAGS (cancel_button64, GTK_CAN_DEFAULT);
+
+  g_signal_connect ((gpointer) xs_filter_import_fs, "delete_event",
+                    G_CALLBACK (xs_filter_import_fs_delete),
+                    NULL);
+  g_signal_connect ((gpointer) ok_button64, "clicked",
+                    G_CALLBACK (xs_filter_import_fs_ok),
+                    NULL);
+  g_signal_connect ((gpointer) cancel_button64, "clicked",
+                    G_CALLBACK (xs_filter_import_fs_cancel),
                     NULL);
 
   /* Store pointers to all widgets, for use by lookup_widget(). */
-  GLADE_HOOKUP_OBJECT_NO_REF (xs_hvscpathselector, xs_hvscpathselector, "xs_hvscpathselector");
-  GLADE_HOOKUP_OBJECT_NO_REF (xs_hvscpathselector, ok_button4, "ok_button4");
-  GLADE_HOOKUP_OBJECT_NO_REF (xs_hvscpathselector, cancel_button4, "cancel_button4");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_filter_import_fs, xs_filter_import_fs, "xs_filter_import_fs");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_filter_import_fs, ok_button64, "ok_button64");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_filter_import_fs, cancel_button64, "cancel_button64");
+
+  return xs_filter_import_fs;
+}
+
+GtkWidget*
+create_xs_filter_export_fs (void)
+{
+  GtkWidget *xs_filter_export_fs;
+  GtkWidget *ok_button64;
+  GtkWidget *cancel_button64;
+
+  xs_filter_export_fs = gtk_file_selection_new (_("Select SIDPlay2 filters file for exporting"));
+  gtk_widget_set_name (xs_filter_export_fs, "xs_filter_export_fs");
+  gtk_container_set_border_width (GTK_CONTAINER (xs_filter_export_fs), 10);
+  gtk_window_set_modal (GTK_WINDOW (xs_filter_export_fs), TRUE);
+  gtk_window_set_type_hint (GTK_WINDOW (xs_filter_export_fs), GDK_WINDOW_TYPE_HINT_DIALOG);
 
-  return xs_hvscpathselector;
+  ok_button64 = GTK_FILE_SELECTION (xs_filter_export_fs)->ok_button;
+  gtk_widget_set_name (ok_button64, "ok_button64");
+  gtk_widget_show (ok_button64);
+  GTK_WIDGET_SET_FLAGS (ok_button64, GTK_CAN_DEFAULT);
+
+  cancel_button64 = GTK_FILE_SELECTION (xs_filter_export_fs)->cancel_button;
+  gtk_widget_set_name (cancel_button64, "cancel_button64");
+  gtk_widget_show (cancel_button64);
+  GTK_WIDGET_SET_FLAGS (cancel_button64, GTK_CAN_DEFAULT);
+
+  g_signal_connect ((gpointer) xs_filter_export_fs, "delete_event",
+                    G_CALLBACK (xs_filter_export_fs_delete),
+                    NULL);
+  g_signal_connect ((gpointer) ok_button64, "clicked",
+                    G_CALLBACK (xs_filter_export_fs_ok),
+                    NULL);
+  g_signal_connect ((gpointer) cancel_button64, "clicked",
+                    G_CALLBACK (xs_filter_export_fs_cancel),
+                    NULL);
+
+  /* Store pointers to all widgets, for use by lookup_widget(). */
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_filter_export_fs, xs_filter_export_fs, "xs_filter_export_fs");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_filter_export_fs, ok_button64, "ok_button64");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_filter_export_fs, cancel_button64, "cancel_button64");
+
+  return xs_filter_export_fs;
 }
 
+GtkWidget*
+create_xs_confirmwin (void)
+{
+  GtkWidget *xs_confirmwin;
+  GtkWidget *dialog_vbox1;
+  GtkWidget *xs_confirm_frame;
+  GtkWidget *label25;
+  GtkWidget *dialog_action_area1;
+  GtkWidget *hbuttonbox2;
+  GtkWidget *xs_confirm_yes;
+  GtkWidget *xs_confirm_no;
+
+  xs_confirmwin = gtk_dialog_new ();
+  gtk_widget_set_name (xs_confirmwin, "xs_confirmwin");
+  gtk_window_set_title (GTK_WINDOW (xs_confirmwin), _("Confirm selected action"));
+  gtk_window_set_type_hint (GTK_WINDOW (xs_confirmwin), GDK_WINDOW_TYPE_HINT_DIALOG);
+
+  dialog_vbox1 = GTK_DIALOG (xs_confirmwin)->vbox;
+  gtk_widget_set_name (dialog_vbox1, "dialog_vbox1");
+  gtk_widget_show (dialog_vbox1);
+
+  xs_confirm_frame = gtk_frame_new (NULL);
+  gtk_widget_set_name (xs_confirm_frame, "xs_confirm_frame");
+  gtk_widget_show (xs_confirm_frame);
+  gtk_box_pack_start (GTK_BOX (dialog_vbox1), xs_confirm_frame, TRUE, TRUE, 0);
+  gtk_container_set_border_width (GTK_CONTAINER (xs_confirm_frame), 6);
+
+  label25 = gtk_label_new (_("Confirm selected action"));
+  gtk_widget_set_name (label25, "label25");
+  gtk_widget_show (label25);
+  gtk_frame_set_label_widget (GTK_FRAME (xs_confirm_frame), label25);
+
+  dialog_action_area1 = GTK_DIALOG (xs_confirmwin)->action_area;
+  gtk_widget_set_name (dialog_action_area1, "dialog_action_area1");
+  gtk_widget_show (dialog_action_area1);
+  gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
+
+  hbuttonbox2 = gtk_hbutton_box_new ();
+  gtk_widget_set_name (hbuttonbox2, "hbuttonbox2");
+  gtk_widget_show (hbuttonbox2);
+  gtk_container_add (GTK_CONTAINER (dialog_action_area1), hbuttonbox2);
+  gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox2), GTK_BUTTONBOX_END);
+  gtk_box_set_spacing (GTK_BOX (hbuttonbox2), 8);
+
+  xs_confirm_yes = gtk_button_new_with_mnemonic (_("Yes"));
+  gtk_widget_set_name (xs_confirm_yes, "xs_confirm_yes");
+  gtk_widget_show (xs_confirm_yes);
+  gtk_container_add (GTK_CONTAINER (hbuttonbox2), xs_confirm_yes);
+  GTK_WIDGET_SET_FLAGS (xs_confirm_yes, GTK_CAN_DEFAULT);
+
+  xs_confirm_no = gtk_button_new_with_mnemonic (_("No"));
+  gtk_widget_set_name (xs_confirm_no, "xs_confirm_no");
+  gtk_widget_show (xs_confirm_no);
+  gtk_container_add (GTK_CONTAINER (hbuttonbox2), xs_confirm_no);
+  GTK_WIDGET_SET_FLAGS (xs_confirm_no, GTK_CAN_DEFAULT);
+
+  g_signal_connect ((gpointer) xs_confirmwin, "delete_event",
+                    G_CALLBACK (xs_confirmwin_delete),
+                    NULL);
+
+  /* Store pointers to all widgets, for use by lookup_widget(). */
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_confirmwin, xs_confirmwin, "xs_confirmwin");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_confirmwin, dialog_vbox1, "dialog_vbox1");
+  GLADE_HOOKUP_OBJECT (xs_confirmwin, xs_confirm_frame, "xs_confirm_frame");
+  GLADE_HOOKUP_OBJECT (xs_confirmwin, label25, "label25");
+  GLADE_HOOKUP_OBJECT_NO_REF (xs_confirmwin, dialog_action_area1, "dialog_action_area1");
+  GLADE_HOOKUP_OBJECT (xs_confirmwin, hbuttonbox2, "hbuttonbox2");
+  GLADE_HOOKUP_OBJECT (xs_confirmwin, xs_confirm_yes, "xs_confirm_yes");
+  GLADE_HOOKUP_OBJECT (xs_confirmwin, xs_confirm_no, "xs_confirm_no");
+
+  return xs_confirmwin;
+}
+
--- a/src/sid/xs_interface.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_interface.h	Thu Sep 13 12:10:39 2007 -0500
@@ -4,6 +4,9 @@
 
 GtkWidget* create_xs_configwin (void);
 GtkWidget* create_xs_fileinfowin (void);
-GtkWidget* create_xs_sldbfileselector (void);
-GtkWidget* create_xs_stilfileselector (void);
-GtkWidget* create_xs_hvscpathselector (void);
+GtkWidget* create_xs_sldb_fs (void);
+GtkWidget* create_xs_stil_fs (void);
+GtkWidget* create_xs_hvsc_fs (void);
+GtkWidget* create_xs_filter_import_fs (void);
+GtkWidget* create_xs_filter_export_fs (void);
+GtkWidget* create_xs_confirmwin (void);
--- a/src/sid/xs_player.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_player.h	Thu Sep 13 12:10:39 2007 -0500
@@ -19,7 +19,7 @@
 	guint		(*plrFillBuffer)(struct t_xs_status *, gchar *, guint);
 	gboolean	(*plrLoadSID)(struct t_xs_status *, gchar *);
 	void		(*plrDeleteSID)(struct t_xs_status *);
-	t_xs_tuneinfo*	(*plrGetSIDInfo)(gchar *);
+	t_xs_tuneinfo*	(*plrGetSIDInfo)(const gchar *);
 	gboolean	(*plrUpdateSIDInfo)(struct t_xs_status *);
 	void		(*plrFlush)(struct t_xs_status *);
 } t_xs_player;
--- a/src/sid/xs_sidplay.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_sidplay.h	Thu Sep 13 12:10:39 2007 -0500
@@ -26,7 +26,7 @@
  * (those variables that are only set by libSIDPlay when tune is initialized).
  * Rest of the information is acquired in TFUNCTION2()
  */
-t_xs_tuneinfo *TFUNCTION(gchar *sidFilename)
+t_xs_tuneinfo *TFUNCTION(const gchar *sidFilename)
 {
 	t_xs_tuneinfo *pResult;
 	TTUNEINFO myInfo;
--- a/src/sid/xs_sidplay1.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_sidplay1.h	Thu Sep 13 12:10:39 2007 -0500
@@ -3,6 +3,7 @@
 
 #include "xs_player.h"
 #include "xs_support.h"
+#include "xs_slsup.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -15,7 +16,7 @@
 guint		xs_sidplay1_fillbuffer(t_xs_status *, gchar *, guint);
 gboolean	xs_sidplay1_load(t_xs_status *, gchar *);
 void		xs_sidplay1_delete(t_xs_status *);
-t_xs_tuneinfo*	xs_sidplay1_getinfo(gchar *);
+t_xs_tuneinfo*	xs_sidplay1_getinfo(const gchar *);
 gboolean	xs_sidplay1_updateinfo(t_xs_status *);
 
 #ifdef __cplusplus
--- a/src/sid/xs_sidplay2.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_sidplay2.h	Thu Sep 13 12:10:39 2007 -0500
@@ -3,6 +3,7 @@
 
 #include "xs_player.h"
 #include "xs_support.h"
+#include "xs_slsup.h"
 
 #ifdef __cplusplus
 extern "C" {
@@ -15,7 +16,7 @@
 guint		xs_sidplay2_fillbuffer(t_xs_status *, gchar *, guint);
 gboolean	xs_sidplay2_load(t_xs_status *, gchar *);
 void		xs_sidplay2_delete(t_xs_status *);
-t_xs_tuneinfo*	xs_sidplay2_getinfo(gchar *);
+t_xs_tuneinfo*	xs_sidplay2_getinfo(const gchar *);
 gboolean	xs_sidplay2_updateinfo(t_xs_status *);
 void		xs_sidplay2_flush(t_xs_status *);
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/sid/xs_slsup.c	Thu Sep 13 12:10:39 2007 -0500
@@ -0,0 +1,287 @@
+/*
+   XMMS-SID - SIDPlay input plugin for X MultiMedia System (XMMS)
+
+   File information window
+
+   Programmed and designed by Matti 'ccr' Hamalainen <ccr@tnsp.org>
+   (C) Copyright 1999-2007 Tecnic Software productions (TNSP)
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License along
+   with this program; if not, write to the Free Software Foundation, Inc.,
+   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+#include "xs_slsup.h"
+#include "xs_config.h"
+
+
+static t_xs_sldb *xs_sldb_db = NULL;
+XS_MUTEX(xs_sldb_db);
+
+static t_xs_stildb *xs_stildb_db = NULL;
+XS_MUTEX(xs_stildb_db);
+
+
+/* STIL-database handling
+ */
+gint xs_stil_init(void)
+{
+	XS_MUTEX_LOCK(xs_cfg);
+
+	if (!xs_cfg.stilDBPath) {
+		XS_MUTEX_UNLOCK(xs_cfg);
+		return -1;
+	}
+
+	XS_MUTEX_LOCK(xs_stildb_db);
+
+	/* Check if already initialized */
+	if (xs_stildb_db)
+		xs_stildb_free(xs_stildb_db);
+
+	/* Allocate database */
+	xs_stildb_db = (t_xs_stildb *) g_malloc0(sizeof(t_xs_stildb));
+	if (!xs_stildb_db) {
+		XS_MUTEX_UNLOCK(xs_cfg);
+		XS_MUTEX_UNLOCK(xs_stildb_db);
+		return -2;
+	}
+
+	/* Read the database */
+	if (xs_stildb_read(xs_stildb_db, xs_cfg.stilDBPath) != 0) {
+		xs_stildb_free(xs_stildb_db);
+		xs_stildb_db = NULL;
+		XS_MUTEX_UNLOCK(xs_cfg);
+		XS_MUTEX_UNLOCK(xs_stildb_db);
+		return -3;
+	}
+
+	/* Create index */
+	if (xs_stildb_index(xs_stildb_db) != 0) {
+		xs_stildb_free(xs_stildb_db);
+		xs_stildb_db = NULL;
+		XS_MUTEX_UNLOCK(xs_cfg);
+		XS_MUTEX_UNLOCK(xs_stildb_db);
+		return -4;
+	}
+
+	XS_MUTEX_UNLOCK(xs_cfg);
+	XS_MUTEX_UNLOCK(xs_stildb_db);
+	return 0;
+}
+
+
+void xs_stil_close(void)
+{
+	XS_MUTEX_LOCK(xs_stildb_db);
+	xs_stildb_free(xs_stildb_db);
+	xs_stildb_db = NULL;
+	XS_MUTEX_UNLOCK(xs_stildb_db);
+}
+
+
+t_xs_stil_node *xs_stil_get(gchar *pcFilename)
+{
+	t_xs_stil_node *pResult;
+	gchar *tmpFilename;
+
+	XS_MUTEX_LOCK(xs_stildb_db);
+	XS_MUTEX_LOCK(xs_cfg);
+
+	if (xs_cfg.stilDBEnable && xs_stildb_db) {
+		if (xs_cfg.hvscPath) {
+			/* Remove postfixed directory separator from HVSC-path */
+			tmpFilename = xs_strrchr(xs_cfg.hvscPath, '/');
+			if (tmpFilename && (tmpFilename[1] == 0))
+				tmpFilename[0] = 0;
+
+			/* Remove HVSC location-prefix from filename */
+			tmpFilename = strstr(pcFilename, xs_cfg.hvscPath);
+			if (tmpFilename)
+				tmpFilename += strlen(xs_cfg.hvscPath);
+			else
+				tmpFilename = pcFilename;
+		} else
+			tmpFilename = pcFilename;
+
+		pResult = xs_stildb_get_node(xs_stildb_db, tmpFilename);
+	} else
+		pResult = NULL;
+
+	XS_MUTEX_UNLOCK(xs_stildb_db);
+	XS_MUTEX_UNLOCK(xs_cfg);
+
+	return pResult;
+}
+
+
+/* Song length database handling glue
+ */
+gint xs_songlen_init(void)
+{
+	XS_MUTEX_LOCK(xs_cfg);
+
+	if (!xs_cfg.songlenDBPath) {
+		XS_MUTEX_UNLOCK(xs_cfg);
+		return -1;
+	}
+
+	XS_MUTEX_LOCK(xs_sldb_db);
+
+	/* Check if already initialized */
+	if (xs_sldb_db)
+		xs_sldb_free(xs_sldb_db);
+
+	/* Allocate database */
+	xs_sldb_db = (t_xs_sldb *) g_malloc0(sizeof(t_xs_sldb));
+	if (!xs_sldb_db) {
+		XS_MUTEX_UNLOCK(xs_cfg);
+		XS_MUTEX_UNLOCK(xs_sldb_db);
+		return -2;
+	}
+
+	/* Read the database */
+	if (xs_sldb_read(xs_sldb_db, xs_cfg.songlenDBPath) != 0) {
+		xs_sldb_free(xs_sldb_db);
+		xs_sldb_db = NULL;
+		XS_MUTEX_UNLOCK(xs_cfg);
+		XS_MUTEX_UNLOCK(xs_sldb_db);
+		return -3;
+	}
+
+	/* Create index */
+	if (xs_sldb_index(xs_sldb_db) != 0) {
+		xs_sldb_free(xs_sldb_db);
+		xs_sldb_db = NULL;
+		XS_MUTEX_UNLOCK(xs_cfg);
+		XS_MUTEX_UNLOCK(xs_sldb_db);
+		return -4;
+	}
+
+	XS_MUTEX_UNLOCK(xs_cfg);
+	XS_MUTEX_UNLOCK(xs_sldb_db);
+	return 0;
+}
+
+
+void xs_songlen_close(void)
+{
+	XS_MUTEX_LOCK(xs_sldb_db);
+	xs_sldb_free(xs_sldb_db);
+	xs_sldb_db = NULL;
+	XS_MUTEX_UNLOCK(xs_sldb_db);
+}
+
+
+t_xs_sldb_node *xs_songlen_get(const gchar * pcFilename)
+{
+	t_xs_sldb_node *pResult;
+
+	XS_MUTEX_LOCK(xs_sldb_db);
+
+	if (xs_cfg.songlenDBEnable && xs_sldb_db)
+		pResult = xs_sldb_get(xs_sldb_db, pcFilename);
+	else
+		pResult = NULL;
+
+	XS_MUTEX_UNLOCK(xs_sldb_db);
+
+	return pResult;
+}
+
+
+/* Allocate a new tune information structure
+ */
+t_xs_tuneinfo *xs_tuneinfo_new(const gchar * pcFilename,
+		gint nsubTunes, gint startTune, const gchar * sidName,
+		const gchar * sidComposer, const gchar * sidCopyright,
+		gint loadAddr, gint initAddr, gint playAddr,
+		gint dataFileLen, const gchar *sidFormat, gint sidModel)
+{
+	t_xs_tuneinfo *pResult;
+	t_xs_sldb_node *tmpLength;
+	gint i;
+
+	/* Allocate structure */
+	pResult = (t_xs_tuneinfo *) g_malloc0(sizeof(t_xs_tuneinfo));
+	if (!pResult) {
+		xs_error(_("Could not allocate memory for t_xs_tuneinfo ('%s')\n"),
+			pcFilename);
+		return NULL;
+	}
+
+	pResult->sidFilename = XS_CS_FILENAME(pcFilename);
+	if (!pResult->sidFilename) {
+		xs_error(_("Could not allocate sidFilename ('%s')\n"),
+			pcFilename);
+		g_free(pResult);
+		return NULL;
+	}
+
+	/* Allocate space for subtune information */
+	pResult->subTunes = g_malloc0(sizeof(t_xs_subtuneinfo) * (nsubTunes + 1));
+	if (!pResult->subTunes) {
+		xs_error(_("Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n"),
+			pcFilename, nsubTunes);
+
+		g_free(pResult->sidFilename);
+		g_free(pResult);
+		return NULL;
+	}
+
+	/* The following allocations don't matter if they fail */
+	pResult->sidName = XS_CS_SID(sidName);
+	pResult->sidComposer = XS_CS_SID(sidComposer);
+	pResult->sidCopyright = XS_CS_SID(sidCopyright);
+
+	pResult->nsubTunes = nsubTunes;
+	pResult->startTune = startTune;
+
+	pResult->loadAddr = loadAddr;
+	pResult->initAddr = initAddr;
+	pResult->playAddr = playAddr;
+	pResult->dataFileLen = dataFileLen;
+	pResult->sidFormat = XS_CS_SID(sidFormat);
+	
+	pResult->sidModel = sidModel;
+
+	/* Get length information (NOTE: Do not free this!) */
+	tmpLength = xs_songlen_get(pcFilename);
+	
+	/* Fill in sub-tune information */
+	for (i = 0; i < pResult->nsubTunes; i++) {
+		if (tmpLength && (i < tmpLength->nLengths))
+			pResult->subTunes[i].tuneLength = tmpLength->sLengths[i];
+		else
+			pResult->subTunes[i].tuneLength = -1;
+		
+		pResult->subTunes[i].tuneSpeed = -1;
+	}
+	
+	return pResult;
+}
+
+
+/* Free given tune information structure
+ */
+void xs_tuneinfo_free(t_xs_tuneinfo * pTune)
+{
+	if (!pTune) return;
+
+	g_free(pTune->subTunes);
+	g_free(pTune->sidFilename);
+	g_free(pTune->sidName);
+	g_free(pTune->sidComposer);
+	g_free(pTune->sidCopyright);
+	g_free(pTune->sidFormat);
+	g_free(pTune);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/sid/xs_slsup.h	Thu Sep 13 12:10:39 2007 -0500
@@ -0,0 +1,31 @@
+#ifndef XS_SLSUP_H
+#define XS_SLSUP_H
+
+#include "xmms-sid.h"
+#include "xs_stil.h"
+#include "xs_length.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+gint		xs_stil_init(void);
+void		xs_stil_close(void);
+t_xs_stil_node *xs_stil_get(gchar *pcFilename);
+
+gint		xs_songlen_init(void);
+void		xs_songlen_close(void);
+t_xs_sldb_node *xs_songlen_get(const gchar *);
+
+t_xs_tuneinfo *xs_tuneinfo_new(const gchar * pcFilename,
+		gint nsubTunes, gint startTune, const gchar * sidName,
+		const gchar * sidComposer, const gchar * sidCopyright,
+		gint loadAddr, gint initAddr, gint playAddr,
+		gint dataFileLen, const gchar *sidFormat, gint sidModel);
+void	xs_tuneinfo_free(t_xs_tuneinfo *);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* XS_SLSUP_H */
--- a/src/sid/xs_stil.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_stil.c	Thu Sep 13 12:10:39 2007 -0500
@@ -36,6 +36,8 @@
 
 	/* Re-allocate subTune structure if needed */
 	if (nsubTunes > pNode->nsubTunes) {
+		gint clearIndex, clearLength;
+		
 		pNode->subTunes =
 			(t_xs_stil_subnode **) g_realloc(pNode->subTunes,
 			(nsubTunes + 1) * sizeof(t_xs_stil_subnode **));
@@ -46,8 +48,14 @@
 		}
 		
 		/* Clear the newly allocated memory */
-		xs_memset(&(pNode->subTunes[pNode->nsubTunes]), 0,
-		(nsubTunes - pNode->nsubTunes + 1) * sizeof(t_xs_stil_subnode **));
+		if (pNode->nsubTunes == 0) {
+			clearIndex = 0;
+			clearLength = nsubTunes + 1;
+		} else {
+			clearIndex = pNode->nsubTunes + 1;
+			clearLength = (nsubTunes - clearIndex + 1);
+		}
+		xs_memset(&(pNode->subTunes[clearIndex]), 0, clearLength * sizeof(t_xs_stil_subnode **));
 		
 		pNode->nsubTunes = nsubTunes;
 	}
@@ -268,7 +276,7 @@
 			}
 			
 			/* Some other type */
-			if (strncmp(tmpLine, " NAME:", 8) == 0) {
+			if (strncmp(tmpLine, "   NAME:", 8) == 0) {
 				XS_STILDB_MULTI;
 				g_free(tmpNode->subTunes[subEntry]->pName);
 				tmpNode->subTunes[subEntry]->pName = g_strdup(&tmpLine[9]);
@@ -299,7 +307,7 @@
 			break;
 		}
 		
-		g_free(tmpLine);
+		XS_CS_FREE(tmpLine);
 
 	} /* while */
 
--- a/src/sid/xs_support.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_support.c	Thu Sep 13 12:10:39 2007 -0500
@@ -93,7 +93,7 @@
 
 /* Load a file to a buffer, return 0 on success, negative value on error
  */
-gint xs_fload_buffer(gchar *pcFilename, guint8 **buf, size_t *bufSize)
+gint xs_fload_buffer(const gchar *pcFilename, guint8 **buf, size_t *bufSize)
 {
 	t_xs_file *f;
 	glong seekPos;
@@ -144,9 +144,10 @@
 
 /* Copy a string
  */
-gchar *xs_strncpy(gchar *pDest, gchar *pSource, size_t n)
+gchar *xs_strncpy(gchar *pDest, const gchar *pSource, size_t n)
 {
-	gchar *s, *d;
+	const gchar *s;
+	gchar *d;
 	size_t i;
 
 	/* Check the string pointers */
@@ -224,10 +225,11 @@
 /* Concatenate a given string up to given dest size or \n.
  * If size max is reached, change the end to "..."
  */
-void xs_pnstrcat(gchar *pDest, size_t iSize, gchar *pStr)
+void xs_pnstrcat(gchar *pDest, size_t iSize, const gchar *pStr)
 {
 	size_t i, n;
-	gchar *s, *d;
+	const gchar *s;
+	gchar *d;
 
 	d = pDest;
 	i = 0;
@@ -262,7 +264,7 @@
 
 /* Locate character in string
  */
-gchar *xs_strrchr(gchar *pcStr, gchar ch)
+gchar *xs_strrchr(gchar *pcStr, const gchar ch)
 {
 	gchar *lastPos = NULL;
 
@@ -276,21 +278,21 @@
 }
 
 
-void xs_findnext(gchar *pcStr, size_t *piPos)
+void xs_findnext(const gchar *pcStr, size_t *piPos)
 {
 	while (pcStr[*piPos] && isspace(pcStr[*piPos]))
 		(*piPos)++;
 }
 
 
-void xs_findeol(gchar *pcStr, size_t *piPos)
+void xs_findeol(const gchar *pcStr, size_t *piPos)
 {
 	while (pcStr[*piPos] && (pcStr[*piPos] != '\n') && (pcStr[*piPos] != '\r'))
 		(*piPos)++;
 }
 
 
-void xs_findnum(gchar *pcStr, size_t *piPos)
+void xs_findnum(const gchar *pcStr, size_t *piPos)
 {
 	while (pcStr[*piPos] && isdigit(pcStr[*piPos]))
 		(*piPos)++;
--- a/src/sid/xs_support.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sid/xs_support.h	Thu Sep 13 12:10:39 2007 -0500
@@ -92,19 +92,19 @@
 #endif
 guint16 xs_fread_be16(t_xs_file *);
 guint32 xs_fread_be32(t_xs_file *);
-gint	xs_fload_buffer(gchar *, guint8 **, size_t *);
+gint	xs_fload_buffer(const gchar *, guint8 **, size_t *);
 
 
 /* Misc functions
  */
-gchar	*xs_strncpy(gchar *, gchar *, size_t);
+gchar	*xs_strncpy(gchar *, const gchar *, size_t);
 gint	xs_pstrcpy(gchar **, const gchar *);
 gint	xs_pstrcat(gchar **, const gchar *);
-void	xs_pnstrcat(gchar *, size_t, gchar *);
-gchar	*xs_strrchr(gchar *, gchar);
-void	xs_findnext(gchar *, size_t *);
-void	xs_findeol(gchar *, size_t *);
-void	xs_findnum(gchar *, size_t *);
+void	xs_pnstrcat(gchar *, size_t, const gchar *);
+gchar	*xs_strrchr(gchar *, const gchar);
+void	xs_findnext(const gchar *, size_t *);
+void	xs_findeol(const gchar *, size_t *);
+void	xs_findnum(const gchar *, size_t *);
 
 #ifdef HAVE_MEMSET
 #define	xs_memset memset
--- a/src/sndstretch/sndstretch_xmms.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sndstretch/sndstretch_xmms.c	Thu Sep 13 12:10:39 2007 -0500
@@ -44,15 +44,11 @@
 int sndstretch_mod_samples (gpointer *ptr, gint length, AFormat fmt, gint srate, gint nch);
 
 EffectPlugin sndstretch_ep = {
-	NULL,
-	NULL,
-	"SndStretch",
-	sndstretch_init,
-	NULL,
-	sndstretch_about,
-	sndstretch_config,
-	sndstretch_mod_samples,
-	NULL
+	.description = "SndStretch",
+	.init = sndstretch_init,
+	.about = sndstretch_about,
+	.configure = sndstretch_config,
+	.mod_samples = sndstretch_mod_samples,
 };
 
 EffectPlugin *sndstretch_eplist[] = { &sndstretch_ep, NULL };
--- a/src/spectrum/spectrum.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/spectrum/spectrum.c	Thu Sep 13 12:10:39 2007 -0500
@@ -61,20 +61,14 @@
 static void fsanalyzer_render_freq(gint16 data[2][256]);
 
 VisPlugin fsanalyzer_vp = {
-	NULL,
-	NULL,
-	"Spectrum Analyzer",
-	0,
-	1,
-	fsanalyzer_init, /* init */
-	fsanalyzer_cleanup, /* cleanup */
-	NULL, /* about */
-	NULL, /* configure */
-	NULL, /* disable_plugin */
-	fsanalyzer_playback_start, /* playback_start */
-	fsanalyzer_playback_stop, /* playback_stop */
-	NULL, /* render_pcm */
-	fsanalyzer_render_freq  /* render_freq */
+	.description = "Spectrum Analyzer",
+	.num_pcm_chs_wanted = 0,
+	.num_freq_chs_wanted = 1,
+	.init = fsanalyzer_init, /* init */
+	.cleanup = fsanalyzer_cleanup, /* cleanup */
+	.playback_start = fsanalyzer_playback_start, /* playback_start */
+	.playback_stop = fsanalyzer_playback_stop, /* playback_stop */
+	.render_freq = fsanalyzer_render_freq  /* render_freq */
 };
 
 VisPlugin *spectrum_vplist[] = { &fsanalyzer_vp, NULL };
--- a/src/statusicon/si.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/statusicon/si.c	Thu Sep 13 12:10:39 2007 -0500
@@ -28,7 +28,7 @@
 
 
 GeneralPlugin *statusicon_gplist[] = { &si_gp, NULL };
-DECLARE_PLUGIN(statusicon, NULL, NULL, NULL, NULL, NULL, statusicon_gplist, NULL, NULL);
+SIMPLE_GENERAL_PLUGIN(statusicon, statusicon_gplist);
 
 static gboolean plugin_active = FALSE;
 
--- a/src/statusicon/si.h	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/statusicon/si.h	Thu Sep 13 12:10:39 2007 -0500
@@ -32,13 +32,11 @@
 
 GeneralPlugin si_gp =
 {
-    NULL,					/* handle */
-    NULL,					/* filename */
-    "Status Icon " SI_VERSION_PLUGIN,		/* description */
-    si_init,					/* init */
-    si_about,					/* about */
-    si_prefs,					/* configure */
-    si_cleanup					/* cleanup */
+    .description = "Status Icon " SI_VERSION_PLUGIN,
+    .init = si_init,
+    .about = si_about,
+    .configure = si_prefs,
+    .cleanup = si_cleanup
 };
 
 #endif /* !_I_SI_H */
--- a/src/statusicon/si_ui.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/statusicon/si_ui.c	Thu Sep 13 12:10:39 2007 -0500
@@ -150,7 +150,7 @@
     GtkWidget *popup = g_object_get_data( G_OBJECT(evbox) , "popup" );
 
     tuple = playlist_get_tuple( pl_active , pos );
-    if ( ( tuple == NULL ) || ( tuple_get_int(tuple, "length") < 1 ) )
+    if ( ( tuple == NULL ) || ( tuple_get_int(tuple, FIELD_LENGTH, NULL) < 1 ) )
     {
       gchar *title = playlist_get_songtitle( pl_active , pos );
       audacious_fileinfopopup_show_from_title( popup , title );
@@ -574,7 +574,7 @@
                    "This plugin provides a status icon, placed in\n"
                    "the system tray area of the window manager.\n") , NULL );
 
-  about_dlg = xmms_show_message( about_title , about_text , _("Ok") , FALSE , NULL , NULL );
+  about_dlg = audacious_info_dialog( about_title , about_text , _("Ok") , FALSE , NULL , NULL );
   g_signal_connect( G_OBJECT(about_dlg) , "destroy" ,
                     G_CALLBACK(gtk_widget_destroyed), &about_dlg );
   g_free( about_text );
--- a/src/stereo_plugin/stereo.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/stereo_plugin/stereo.c	Thu Sep 13 12:10:39 2007 -0500
@@ -16,14 +16,11 @@
 
 EffectPlugin stereo_ep =
 {
-	NULL,
-	NULL,
-	"Extra Stereo Plugin", /* Description */
-	init,
-	NULL,
-	about,
-	configure,
-	mod_samples
+	.description = "Extra Stereo Plugin", /* Description */
+	.init = init,
+	.about = about,
+	.configure = configure,
+	.mod_samples = mod_samples
 };
 
 static const char *about_text = N_("Extra Stereo Plugin\n\n"
@@ -52,7 +49,7 @@
 	if (about_dialog != NULL)
 		return;
 
-	about_dialog = xmms_show_message(_("About Extra Stereo Plugin"),
+	about_dialog = audacious_info_dialog(_("About Extra Stereo Plugin"),
 					 _(about_text), _("Ok"), FALSE,
 					 NULL, NULL);
 	gtk_signal_connect(GTK_OBJECT(about_dialog), "destroy",
--- a/src/sun/about.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sun/about.c	Thu Sep 13 12:10:39 2007 -0500
@@ -30,7 +30,7 @@
 	if (dialog != NULL)
 		return;
 
-	dialog = xmms_show_message(
+	dialog = audacious_info_dialog(
 		_("About the Sun Driver"),
 		_("XMMS BSD Sun Driver\n\n"
 		  "Copyright (c) 2001 CubeSoft Communications, Inc.\n"
--- a/src/sun/audio.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sun/audio.c	Thu Sep 13 12:10:39 2007 -0500
@@ -35,7 +35,6 @@
 static gboolean	prebuffer, remove_prebuffer;
 static pthread_t buffer_thread;
 static int (*sun_convert)(void **, int);
-static int realtime;
 static int rd_index, wr_index;
 static int buffer_size;
 static int prebuffer_size;
@@ -233,9 +232,6 @@
 	if (!audio.fd || !audio.going)
 		return 0;
 
-	if (realtime)
-		sun_bufused();
-
 	bytes = output_bytes < device_buffer_used ?
 		0 : output_bytes - device_buffer_used;
 	return (output_time_offset + ((bytes * 1000) / output.bps));
@@ -243,9 +239,6 @@
 
 static inline int sun_used(void)
 {
-	if (realtime)
-		return 0;
-	
 	if (wr_index >= rd_index)
 		return (wr_index - rd_index);
 
@@ -257,9 +250,6 @@
 	if (!audio.going)
 		return 0;
 
-	if (realtime)
-		sun_bufused();
-
 	if (!sun_used() && (device_buffer_used - (3 * blocksize)) <= 0)
 		return (FALSE);
 
@@ -268,9 +258,6 @@
 
 int sun_free(void)
 {
-	if (realtime)
-		return (audio.paused ? 0 : 1000000);
-	
 	if (remove_prebuffer && prebuffer)
 	{
 		prebuffer = FALSE;
@@ -309,36 +296,6 @@
 
 static inline void sun_write_audio(gpointer data, int length)
 {
-#if 0
-	AFormat new_format;
-	EffectPlugin *ep;
-	int new_frequency, new_channels;
-
-	new_format = input.format.xmms;
-	new_frequency = input.frequency;
-	new_channels = input.channels;
-
-	ep = get_current_effect_plugin();
-	if (effects_enabled() && ep && ep->query_format)
-		ep->query_format(&new_format, &new_frequency, &new_channels);
-
-	if (new_format != effect.format.xmms || 
-	    new_frequency != effect.frequency ||
-	    new_channels != effect.channels)
-	{
-		output_time_offset += (output_bytes * 1000) / output.bps;
-		output_bytes = 0;
-		close(audio.fd);
-		audio.fd = open(audio.devaudio, O_RDWR);
-		sun_setformat(new_format, new_frequency, new_channels);
-	}
-	if (effects_enabled() && ep && ep->mod_samples)
-	{
-		length = ep->mod_samples(&data, length, input.format.xmms,
-					 input.frequency, input.channels);
-	}
-#endif
-
 	if (sun_convert != NULL)
 		length = sun_convert(&data, length);
 
@@ -402,15 +359,6 @@
 {
 	int cnt, off = 0;
 
-	if (realtime)
-	{
-		if (audio.paused)
-			return;
-		sun_write_audio(ptr, length);
-		written += length;
-		return;
-	}
-
 	remove_prebuffer = FALSE;
 	written += length;
 	while (length > 0)
@@ -430,15 +378,7 @@
 
 	audio.going = 0;
 
-	if (realtime)
-	{
-		ioctl(audio.fd, AUDIO_FLUSH, NULL);
-		close(audio.fd);
-	}
-	else
-	{
-		pthread_join(buffer_thread, NULL);
-	}
+	pthread_join(buffer_thread, NULL);
 
 	sun_get_convert_buffer(0);
 	wr_index = 0;
@@ -456,15 +396,10 @@
 
 void sun_pause(short p)
 {
-	if (!realtime)
-	{
-		if (p == TRUE)
-			audio.do_pause = TRUE;
-		else
-			audio.unpause = TRUE;
-	}
+	if (p == TRUE)
+		audio.do_pause = TRUE;
 	else
-		audio.paused = p;
+		audio.unpause = TRUE;
 }
 
 static void* sun_loop(void *arg)
@@ -501,7 +436,7 @@
 			}
 		}
 		else
-			xmms_usleep(10000);
+			g_usleep(10000);
 
 		sun_bufused();
 
@@ -549,25 +484,21 @@
 	input.bps = sun_bps(sun_format(fmt), rate, nch);
 	sun_setformat(fmt, rate, nch);
 
-	realtime = xmms_check_realtime_priority();
-
 	if (ioctl(audio.fd, AUDIO_GETINFO, &info) != 0)
 		blocksize = SUN_DEFAULT_BLOCKSIZE;
 	else
 		blocksize = info.blocksize;
 
-	if (!realtime)
-	{
-		buffer_size = audio.req_buffer_size;
+	buffer_size = audio.req_buffer_size;
+
+	if (buffer_size < SUN_MIN_BUFFER_SIZE)
+		buffer_size = SUN_MIN_BUFFER_SIZE;
 
-		if (buffer_size < SUN_MIN_BUFFER_SIZE)
-			buffer_size = SUN_MIN_BUFFER_SIZE;
+	prebuffer_size = (buffer_size * audio.req_prebuffer_size) / 100;
 
-		prebuffer_size = (buffer_size * audio.req_prebuffer_size) / 100;
+	buffer_size += blocksize;
+	buffer = g_malloc0(buffer_size);
 
-		buffer_size += blocksize;
-		buffer = g_malloc0(buffer_size);
-	}
 	prebuffer = TRUE;
 	wr_index = 0;
 	rd_index = 0;
@@ -581,8 +512,8 @@
 	remove_prebuffer = FALSE;
 
 	audio.going++;
-	if (!realtime)
-		pthread_create(&buffer_thread, NULL, sun_loop, NULL);
+
+	pthread_create(&buffer_thread, NULL, sun_loop, NULL);
 
 	return 1;
 }
--- a/src/sun/configure.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/sun/configure.c	Thu Sep 13 12:10:39 2007 -0500
@@ -443,7 +443,7 @@
 		gtk_label_set_text(GTK_LABEL(stats_frame.ooffs_label), sl);
 
 		pthread_mutex_unlock(&stats_frame.audioctl_mutex);
-		xmms_usleep(400000);
+		g_usleep(400000);
 	}
 	pthread_mutex_unlock(&stats_frame.active_mutex);
 
--- a/src/timidity/src/xmms-timidity.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/timidity/src/xmms-timidity.c	Thu Sep 13 12:10:39 2007 -0500
@@ -37,34 +37,18 @@
 #include "interface.h"
 
 InputPlugin xmmstimid_ip = {
-	NULL,
-	NULL,
-	"TiMidity Audio Plugin",
-	xmmstimid_init,
-	xmmstimid_about,
-	xmmstimid_configure,
-	NULL,
-	NULL,
-	xmmstimid_play_file,
-	xmmstimid_stop,
-	xmmstimid_pause,
-	xmmstimid_seek,
-	NULL,
-	xmmstimid_get_time,
-	NULL,
-	NULL,
-	xmmstimid_cleanup,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	xmmstimid_get_song_info,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	xmmstimid_is_our_fd,
+	.description = "TiMidity Audio Plugin",
+	.init = xmmstimid_init,
+	.about = xmmstimid_about,
+	.configure = xmmstimid_configure,
+	.play_file = xmmstimid_play_file,
+	.stop = xmmstimid_stop,
+	.pause = xmmstimid_pause,
+	.seek = xmmstimid_seek,
+	.get_time = xmmstimid_get_time,
+	.cleanup = xmmstimid_cleanup,
+	.get_song_info = xmmstimid_get_song_info,
+	.is_our_file_from_vfs = xmmstimid_is_our_fd,
 };
 
 InputPlugin *timidity_iplist[] = { &xmmstimid_ip, NULL };
@@ -133,7 +117,7 @@
 		about_text = g_strjoin( "" ,
 			_("TiMidity Plugin\nhttp://libtimidity.sourceforge.net\nby Konstantin Korikov") , NULL );
 		about_title = g_strdup_printf( _("TiMidity Plugin %s") , PACKAGE_VERSION );
-		xmmstimid_about_wnd = xmms_show_message( about_title , about_text , _("Ok") , FALSE , NULL , NULL );
+		xmmstimid_about_wnd = audacious_info_dialog( about_title , about_text , _("Ok") , FALSE , NULL , NULL );
 		g_signal_connect(G_OBJECT(xmmstimid_about_wnd), "destroy",
 					(GCallback)gtk_widget_destroyed, &xmmstimid_about_wnd);
 		g_free(about_title);
@@ -312,7 +296,7 @@
 
 	title = tuple_formatter_make_title_string(input, get_gentitle_format());
 	if (title == NULL || *title == '\0')
-		title = g_strdup(tuple_get_string(input, "file-name"));
+		title = g_strdup(tuple_get_string(input, FIELD_FILE_NAME, NULL));
 
 	tuple_free(input);
 
@@ -398,7 +382,7 @@
 	playback->eof = FALSE;
 
 	while (xmmstimid_seek_to != -1)
-		xmms_usleep(10000);
+		g_usleep(10000);
 }
 
 int xmmstimid_get_time(InputPlayback * playback) {
--- a/src/tonegen/tonegen.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/tonegen/tonegen.c	Thu Sep 13 12:10:39 2007 -0500
@@ -52,7 +52,7 @@
 	static GtkWidget *box;
 	if (!box)
 	{
-		box = xmms_show_message(
+		box = audacious_info_dialog(
 			_("About Tone Generator"),
 	/* I18N: UTF-8 Translation: "Haavard Kvaalen" -> "H\303\245vard Kv\303\245len" */
 			_("Sinus tone generator by Haavard Kvaalen <havardk@xmms.org>\n"
@@ -115,7 +115,7 @@
 				       (sum_sines / frequencies->len));
 		}
 		while (playback->output->buffer_free() < BUF_BYTES && going)
-		        xmms_usleep(30000);
+		        g_usleep(30000);
 		produce_audio(playback->output->written_time(), FMT_S16_NE, 1, BUF_BYTES, data, &going);
 	}
 
@@ -243,30 +243,15 @@
 
 static InputPlugin tone_ip =
 {
-	NULL,
-	NULL,
-	"Tone Generator", /* Description */
-	tone_init,
-	tone_about,
-	NULL,
-	tone_is_our_file,
-	NULL,
-	tone_play,
-	tone_stop,
-	tone_pause,
-	NULL,
-	NULL,
-	tone_get_time,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	tone_song_info,
-	NULL,
-	NULL
+	.description = "Tone Generator",
+	.init = tone_init,
+	.about = tone_about,
+	.is_our_file = tone_is_our_file,
+	.play_file = tone_play,
+	.stop = tone_stop,
+	.pause = tone_pause,
+	.get_time = tone_get_time,
+	.get_song_info = tone_song_info,
 };
 
 InputPlugin *tonegen_iplist[] = { &tone_ip, NULL };
--- a/src/tta/libtta.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/tta/libtta.c	Thu Sep 13 12:10:39 2007 -0500
@@ -84,36 +84,20 @@
 
 InputPlugin tta_ip =
 {
-	NULL,
-	NULL,
-	"True Audio Plugin",
-	init,
-	about,
-	NULL,
-	is_our_file,
-	NULL,
-	play_file,
-	stop,
-	tta_pause,
-	seek,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	cleanup,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	get_song_info,
-	file_info,
-	NULL,
-	get_song_tuple, // get_song_tuple
-	NULL, // set_song_tuple
-	NULL, // buffer
-	NULL, // vfs
-	tta_fmts,
-	mseek,
+	.description = "True Audio Plugin",
+	.init = init,
+	.about = about,
+	.is_our_file = is_our_file,
+	.play_file = play_file,
+	.stop = stop,
+	.pause = tta_pause,
+	.seek = seek,
+	.cleanup = cleanup,
+	.get_song_info = get_song_info,
+	.file_info_box = file_info,
+	.get_song_tuple = get_song_tuple,
+	.vfs_extensions = tta_fmts,
+	.mseek = mseek,
 };
 
 InputPlugin *tta_iplist[] = { &tta_ip, NULL };
@@ -167,7 +151,7 @@
 	    break;
 	}
 
-	xmms_show_message (_("TTA Decoder Error"), message,
+	audacious_info_dialog (_("TTA Decoder Error"), message,
 	    _("Ok"), FALSE, NULL, NULL);
 
 	gtk_signal_connect(GTK_OBJECT(errorbox), "destroy",
@@ -189,7 +173,7 @@
 	*title = NULL;
 
 	if ((tuple = get_song_tuple(filename)) != NULL) {
-    	    *length = tuple_get_int(tuple, "length");
+    	    *length = tuple_get_int(tuple, FIELD_LENGTH, NULL);
     	    *title = get_song_title(tuple);
 	}
 
@@ -215,7 +199,7 @@
             {
                 if (!playback->playing)
                     goto DONE;
-                xmms_usleep (10000);
+                g_usleep (10000);
             }
             if (seek_position == -1)
             {
@@ -239,7 +223,7 @@
 	    playback->output->buffer_free ();
 	    playback->output->buffer_free ();
 	    while (playback->output->buffer_playing()) {
-		    xmms_usleep(10000);
+		    g_usleep(10000);
 		    if(!playback->playing)
 			    goto DONE;
 	    }
@@ -280,7 +264,7 @@
 				   _(" for BMP\n"
 		        	   "Copyright (c) 2004 True Audio Software\n"), PROJECT_URL, NULL);
 
-	aboutbox = xmms_show_message(_("About True Audio Plugin"),
+	aboutbox = audacious_info_dialog(_("About True Audio Plugin"),
 				     about_text,
 				     _("Ok"), FALSE, NULL, NULL);
 
@@ -553,7 +537,7 @@
 	    seek_position = (int)(millisec / SEEK_STEP);
 
 	    while (seek_position != -1)
-		xmms_usleep (10000);
+		g_usleep (10000);
 	}
 }
 
@@ -577,30 +561,30 @@
 		if(open_tta_file(filename, ttainfo, 0) >= 0) {
 			tuple = tuple_new_from_filename(filename);
 
-			tuple_associate_string(tuple, "codec", "True Audio (TTA)");
-			tuple_associate_string(tuple, "quality", "lossless");
+			tuple_associate_string(tuple, FIELD_CODEC, NULL, "True Audio (TTA)");
+			tuple_associate_string(tuple, FIELD_QUALITY, NULL, "lossless");
 
 			if (ttainfo->ID3.id3has) {
 				if (ttainfo->ID3.artist)
-					tuple_associate_string(tuple, "artist", (gchar *) ttainfo->ID3.artist);
+					tuple_associate_string(tuple, FIELD_ARTIST, NULL, (gchar *) ttainfo->ID3.artist);
 
 				if (ttainfo->ID3.album)
-					tuple_associate_string(tuple, "album", (gchar *) ttainfo->ID3.album);
+					tuple_associate_string(tuple, FIELD_ALBUM, NULL, (gchar *) ttainfo->ID3.album);
 
 				if (ttainfo->ID3.title)
-					tuple_associate_string(tuple, "title", (gchar *) ttainfo->ID3.title);
+					tuple_associate_string(tuple, FIELD_TITLE, NULL, (gchar *) ttainfo->ID3.title);
 
 				if (ttainfo->ID3.year)
-					tuple_associate_int(tuple, "year", atoi((char *)ttainfo->ID3.year));
+					tuple_associate_int(tuple, FIELD_YEAR, NULL, atoi((char *)ttainfo->ID3.year));
 
 				if(ttainfo->ID3.track)
-					tuple_associate_int(tuple, "track-number", atoi((char *)ttainfo->ID3.track));
+					tuple_associate_int(tuple, FIELD_TRACK_NUMBER, NULL, atoi((char *)ttainfo->ID3.track));
 
 				if(ttainfo->ID3.genre)
-					tuple_associate_string(tuple, "genre", (gchar *) ttainfo->ID3.genre);
+					tuple_associate_string(tuple, FIELD_GENRE, NULL, (gchar *) ttainfo->ID3.genre);
 
 				if(ttainfo->ID3.comment)
-					tuple_associate_string(tuple, "comment", (gchar *) ttainfo->ID3.comment);
+					tuple_associate_string(tuple, FIELD_COMMENT, NULL, (gchar *) ttainfo->ID3.comment);
 			}
 			close_tta_file (ttainfo);
 		}
--- a/src/voice_removal/voice_removal.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/voice_removal/voice_removal.c	Thu Sep 13 12:10:39 2007 -0500
@@ -32,15 +32,8 @@
 			gint srate, gint nch);
 
 static EffectPlugin xmms_plugin = {
-	NULL,
-	NULL,
-	PLUGIN_NAME,
-	NULL,
-	NULL,
-	NULL,
-	NULL,
-	apply_effect,
-	NULL
+	.description = PLUGIN_NAME,
+	.mod_samples = apply_effect,
 };
 
 EffectPlugin *voice_eplist[] = { &xmms_plugin, NULL };
--- a/src/vorbis/fileinfo.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/vorbis/fileinfo.c	Thu Sep 13 12:10:39 2007 -0500
@@ -209,7 +209,7 @@
     gchar *errorstring;
     errorstring = g_strdup_printf(_("An error occured:\n%s"), error);
 
-    xmms_show_message(_("Error!"), errorstring, _("Ok"), FALSE, NULL, NULL);
+    audacious_info_dialog(_("Error!"), errorstring, _("Ok"), FALSE, NULL, NULL);
 
     g_free(errorstring);
     return;
--- a/src/vorbis/vorbis.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/vorbis/vorbis.c	Thu Sep 13 12:10:39 2007 -0500
@@ -96,35 +96,21 @@
 gchar *vorbis_fmts[] = { "ogg", "ogm", NULL };
 
 InputPlugin vorbis_ip = {
-    NULL,
-    NULL,
-    "Ogg Vorbis Audio Plugin",  /* description */
-    vorbis_init,                /* init */
-    vorbis_aboutbox,            /* aboutbox */
-    vorbis_configure,           /* configure */
-    vorbis_check_file,          /* is_our_file */
-    NULL,
-    vorbis_play,
-    vorbis_stop,
-    vorbis_pause,
-    vorbis_seek,
-    NULL,                       /* set eq */
-    NULL,
-    NULL,
-    NULL,
-    vorbis_cleanup,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    vorbis_get_song_info,
-    vorbis_file_info_box,       /* file info box, tag editing */
-    NULL,
-    get_song_tuple,
-    NULL,
-    NULL,
-    vorbis_check_fd,
-    vorbis_fmts,
+    .description = "Ogg Vorbis Audio Plugin",  /* description */
+    .init = vorbis_init,                /* init */
+    .about = vorbis_aboutbox,            /* aboutbox */
+    .configure = vorbis_configure,           /* configure */
+    .is_our_file = vorbis_check_file,          /* is_our_file */
+    .play_file = vorbis_play,
+    .stop = vorbis_stop,
+    .pause = vorbis_pause,
+    .seek = vorbis_seek,
+    .cleanup = vorbis_cleanup,
+    .get_song_info = vorbis_get_song_info,
+    .file_info_box = vorbis_file_info_box,       /* file info box, tag editing */
+    .get_song_tuple = get_song_tuple,
+    .is_our_file_from_vfs = vorbis_check_fd,
+    .vfs_extensions = vorbis_fmts,
 };
 
 InputPlugin *vorbis_iplist[] = { &vorbis_ip, NULL };
@@ -511,7 +497,7 @@
             do_seek(playback);
 
         if (playback->eof) {
-            xmms_usleep(20000);
+            g_usleep(20000);
             continue;
         }
 
@@ -599,7 +585,7 @@
     seekneeded = time;
 
     while (seekneeded != -1)
-        xmms_usleep(20000);
+        g_usleep(20000);
 }
 
 static void
@@ -607,7 +593,7 @@
 {
     Tuple *tuple = get_song_tuple(filename);
 
-    *length = tuple_get_int(tuple, "length");
+    *length = tuple_get_int(tuple, FIELD_LENGTH, NULL);
     *title = tuple_formatter_make_title_string(tuple, vorbis_cfg.tag_override ?
                                             vorbis_cfg.tag_format : get_gentitle_format());
 
@@ -730,13 +716,13 @@
     return 2 * ch * samples;
 }
 
-static void _tuple_associate_string(Tuple *tuple, const gchar *field, const gchar *string)
+static void _tuple_associate_string(Tuple *tuple, const gint nfield, const gchar *field, const gchar *string)
 {
-    gchar *str = str_to_utf8(string);
-
-    tuple_associate_string(tuple, field, str);
-
-    g_free(str);
+    if (string) {
+        gchar *str = str_to_utf8(string);
+        tuple_associate_string(tuple, nfield, field, str);
+        g_free(str);
+    }
 }
 
 /*
@@ -747,36 +733,34 @@
 {
     Tuple *tuple = NULL;
     vorbis_comment *comment;
-    gchar *realfn = NULL;
     tuple = tuple_new_from_filename(filename);
 
     /* Retrieve the length */
-    if (is_stream == FALSE)
-        tuple_associate_int(tuple, "length", ov_time_total(vorbisfile, -1) * 1000);
-    else
-        tuple_associate_int(tuple, "length", -1);
+    tuple_associate_int(tuple, FIELD_LENGTH, NULL,
+        is_stream ? -1 : (ov_time_total(vorbisfile, -1) * 1000));
 
     if ((comment = ov_comment(vorbisfile, -1))) {
-        _tuple_associate_string(tuple, "title", vorbis_comment_query(comment, "title", 0));
-        _tuple_associate_string(tuple, "artist", vorbis_comment_query(comment, "artist", 0));
-        _tuple_associate_string(tuple, "album", vorbis_comment_query(comment, "album", 0));
-        _tuple_associate_string(tuple, "date", vorbis_comment_query(comment, "date", 0));
-        _tuple_associate_string(tuple, "genre", vorbis_comment_query(comment, "genre", 0));
-        _tuple_associate_string(tuple, "comment", vorbis_comment_query(comment, "comment", 0));
+        gchar *tmps;
+        _tuple_associate_string(tuple, FIELD_TITLE, NULL, vorbis_comment_query(comment, "title", 0));
+        _tuple_associate_string(tuple, FIELD_ARTIST, NULL, vorbis_comment_query(comment, "artist", 0));
+        _tuple_associate_string(tuple, FIELD_ALBUM, NULL, vorbis_comment_query(comment, "album", 0));
+        _tuple_associate_string(tuple, -1, "date", vorbis_comment_query(comment, "date", 0));
+        _tuple_associate_string(tuple, FIELD_GENRE, NULL, vorbis_comment_query(comment, "genre", 0));
+        _tuple_associate_string(tuple, FIELD_COMMENT, NULL, vorbis_comment_query(comment, "comment", 0));
 
-        if (vorbis_comment_query(comment, "tracknumber", 0) != NULL)
-            tuple_associate_int(tuple, "track-number", 
-                atoi(vorbis_comment_query(comment, "tracknumber", 0)));
+        if ((tmps = vorbis_comment_query(comment, "tracknumber", 0)) != NULL)
+            tuple_associate_int(tuple, FIELD_TRACK_NUMBER, NULL, atoi(tmps));
 
-        tuple_associate_string(tuple, "quality", "lossy");
+        tuple_associate_string(tuple, FIELD_QUALITY, NULL, "lossy");
+
         if (comment && comment->vendor)
         {
             gchar *codec = g_strdup_printf("Ogg Vorbis [%s]", comment->vendor);
-            tuple_associate_string(tuple, "codec", codec);
+            tuple_associate_string(tuple, FIELD_CODEC, NULL, codec);
             g_free(codec);
         }
         else
-            tuple_associate_string(tuple, "codec", "Ogg Vorbis");
+            tuple_associate_string(tuple, FIELD_CODEC, NULL, "Ogg Vorbis");
     }
 
     return tuple;
@@ -836,8 +820,8 @@
     {
         gchar *old = displaytitle;
 
-        tuple_associate_string(input, "stream", tmp);
-        tuple_associate_string(input, "title", old);
+        tuple_associate_string(input, -1, "stream", tmp);
+        tuple_associate_string(input, FIELD_TITLE, NULL, old);
 
         displaytitle = tuple_formatter_process_string(input, "${?title:${title}}${?stream: (${stream})}");
 
@@ -859,7 +843,7 @@
         gdk_window_raise(about_window->window);
     else
     {
-      about_window = xmms_show_message(_("About Ogg Vorbis Audio Plugin"),
+      about_window = audacious_info_dialog(_("About Ogg Vorbis Audio Plugin"),
                                        /*
                                         * I18N: UTF-8 Translation: "Haavard Kvaalen" ->
                                         * "H\303\245vard Kv\303\245len"
--- a/src/vtx/about.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/vtx/about.c	Thu Sep 13 12:10:39 2007 -0500
@@ -19,7 +19,7 @@
   static GtkWidget *box;
   if (box) gdk_window_raise(box->window);
   else {
-	box = xmms_show_message (_("About Vortex Player"),
+	box = audacious_info_dialog (_("About Vortex Player"),
 				_
 				("Vortex file format player by Sashnov Alexander <sashnov@ngs.ru>\n"
 				"Founded on original source in_vtx.dll by Roman Sherbakov <v_soft@microfor.ru>\n"
--- a/src/vtx/info.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/vtx/info.c	Thu Sep 13 12:10:39 2007 -0500
@@ -38,7 +38,7 @@
 	      "Player Freq:%P\n"
 	      "Year: %y");
       
-      box = xmms_show_message (head,
+      box = audacious_info_dialog (head,
 			       body,
 			       _("Ok"), FALSE, NULL, NULL);
       
--- a/src/vtx/vtx.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/vtx/vtx.c	Thu Sep 13 12:10:39 2007 -0500
@@ -98,20 +98,20 @@
   Tuple *out = tuple_new_from_filename(filename);
   gchar *string;
 
-  tuple_associate_string(out, "artist", in->hdr.author);
-  tuple_associate_string(out, "title", in->hdr.title);
+  tuple_associate_string(out, FIELD_ARTIST, NULL, in->hdr.author);
+  tuple_associate_string(out, FIELD_TITLE, NULL, in->hdr.title);
 
-  tuple_associate_int(out, "length", in->hdr.regdata_size / 14 * 1000 / 50);
+  tuple_associate_int(out, FIELD_LENGTH, NULL, in->hdr.regdata_size / 14 * 1000 / 50);
 
-  tuple_associate_string(out, "genre", (in->hdr.chiptype == AYEMU_AY)? "AY chiptunes" : "YM chiptunes");
-  tuple_associate_string(out, "album", in->hdr.from);
-  tuple_associate_string(out, "game", in->hdr.from);
+  tuple_associate_string(out, FIELD_GENRE, NULL, (in->hdr.chiptype == AYEMU_AY)? "AY chiptunes" : "YM chiptunes");
+  tuple_associate_string(out, FIELD_ALBUM, NULL, in->hdr.from);
+  tuple_associate_string(out, -1, "game", in->hdr.from);
 
-  tuple_associate_string(out, "quality", "sequenced");
-  tuple_associate_string(out, "codec", in->hdr.tracker);
-  tuple_associate_string(out, "tracker", in->hdr.tracker);
+  tuple_associate_string(out, FIELD_QUALITY, NULL, "sequenced");
+  tuple_associate_string(out, FIELD_CODEC, NULL, in->hdr.tracker);
+  tuple_associate_string(out, -1, "tracker", in->hdr.tracker);
 
-  tuple_associate_int(out, "year", in->hdr.year);
+  tuple_associate_int(out, FIELD_YEAR, NULL, in->hdr.year);
 
   return out;
 }
@@ -299,7 +299,7 @@
     Tuple *ti = vtx_get_song_tuple_from_vtx(filename, &tmp);
 
     *title = tuple_formatter_process_string(ti, get_gentitle_format());
-    *length = tuple_get_int(ti, "length");
+    *length = tuple_get_int(ti, FIELD_LENGTH, NULL);
 
     ayemu_vtx_free (&tmp);
     tuple_free(ti);
@@ -307,36 +307,22 @@
 }
 
 InputPlugin vtx_ip = {
-	NULL,			/* FILLED BY XMMS */
-	NULL,			/* FILLED BY XMMS */
-	"VTX Audio Plugin",	/* Plugin description */
-	vtx_init,		/* Initialization */
-	vtx_about,		/* Show aboutbox */
-	vtx_config,		/* Show/edit configuration */
-	vtx_is_our_file,	/* Check file, return 1 if the plugin can handle this file */
-	NULL,			/* Scan directory */
-	vtx_play_file,		/* Play given file */
-	vtx_stop,		/* Stop playing */
-	vtx_pause,		/* Pause playing */
-	vtx_seek,		/* Seek time */
-	NULL,			/* Set equalizer */
-	NULL,			/* Get playing time (obsoleted by InputPlayback API) */
-	NULL,			/* Get volume */
-	NULL,			/* Set volume */
-	NULL,			/* Cleanup */
-	NULL,			/* OBSOLETE! */
-	NULL,			/* Send data to Visualization plugin */
-	NULL, NULL,		/* FILLED BY XMMS */
-	vtx_get_song_info,	/* Get song title and length */
-	vtx_file_info,		/* Show file-information dialog */
-	NULL,			/* FILLED BY XMMS */
-	vtx_get_song_tuple,	/* Tuple */
-	NULL,			/* Tuple */
-	NULL,			/* Buffer */
-	vtx_is_our_fd,		/* VFS */
-	vtx_fmts		/* ext assist */
+	.description = "VTX Audio Plugin",	/* Plugin description */
+	.init = vtx_init,		/* Initialization */
+	.about = vtx_about,		/* Show aboutbox */
+	.configure = vtx_config,		/* Show/edit configuration */
+	.is_our_file = vtx_is_our_file,	/* Check file, return 1 if the plugin can handle this file */
+	.play_file = vtx_play_file,		/* Play given file */
+	.stop = vtx_stop,		/* Stop playing */
+	.pause = vtx_pause,		/* Pause playing */
+	.seek = vtx_seek,		/* Seek time */
+	.get_song_info = vtx_get_song_info,	/* Get song title and length */
+	.file_info_box = vtx_file_info,		/* Show file-information dialog */
+	.get_song_tuple = vtx_get_song_tuple,	/* Tuple */
+	.is_our_file_from_vfs = vtx_is_our_fd,		/* VFS */
+	.vfs_extensions = vtx_fmts		/* ext assist */
 };
 
 InputPlugin *vtx_iplist[] = { &vtx_ip, NULL };
 
-DECLARE_PLUGIN(vtx, NULL, NULL, vtx_iplist, NULL, NULL, NULL, NULL, NULL);
+SIMPLE_INPUT_PLUGIN(vtx, vtx_iplist);
--- a/src/wav/wav-sndfile.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/wav/wav-sndfile.c	Thu Sep 13 12:10:39 2007 -0500
@@ -59,36 +59,17 @@
 static GCond *decode_cond;
 
 InputPlugin wav_ip = {
-    NULL,
-    NULL,
-    NULL,
-    plugin_init,
-    wav_about,
-    NULL,
-    is_our_file,
-    NULL,
-    play_start,
-    play_stop,
-    play_pause,
-    file_seek,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    plugin_cleanup,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    get_song_info,
-    NULL,
-    NULL,
-    get_song_tuple,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    file_mseek,
+    .init = plugin_init,
+    .about = wav_about,
+    .is_our_file = is_our_file,
+    .play_file = play_start,
+    .stop = play_stop,
+    .pause = play_pause,
+    .seek = file_seek,
+    .cleanup = plugin_cleanup,
+    .get_song_info = get_song_info,
+    .get_song_tuple = get_song_tuple,
+    .mseek = file_mseek,
 };
 
 static int
@@ -127,14 +108,14 @@
 	realfn = g_filename_from_uri(filename, NULL, NULL);
 	tmp_sndfile = sf_open (realfn ? realfn : filename, SFM_READ, &tmp_sfinfo);
 	if ( sf_get_string(tmp_sndfile, SF_STR_TITLE) == NULL)
-		tuple_associate_string(ti, "title", g_path_get_basename(realfn ? realfn : filename));
+		tuple_associate_string(ti, FIELD_TITLE, NULL, g_path_get_basename(realfn ? realfn : filename));
 	else
-		tuple_associate_string(ti, "title", sf_get_string(tmp_sndfile, SF_STR_TITLE));
+		tuple_associate_string(ti, FIELD_TITLE, NULL, sf_get_string(tmp_sndfile, SF_STR_TITLE));
 
-	tuple_associate_string(ti, "artist", sf_get_string(tmp_sndfile, SF_STR_ARTIST));
-	tuple_associate_string(ti, "comment", sf_get_string(tmp_sndfile, SF_STR_COMMENT));
-	tuple_associate_string(ti, "date", sf_get_string(tmp_sndfile, SF_STR_DATE));
-	tuple_associate_string(ti, "software", sf_get_string(tmp_sndfile, SF_STR_SOFTWARE));
+	tuple_associate_string(ti, FIELD_ARTIST, NULL, sf_get_string(tmp_sndfile, SF_STR_ARTIST));
+	tuple_associate_string(ti, FIELD_COMMENT, NULL, sf_get_string(tmp_sndfile, SF_STR_COMMENT));
+	tuple_associate_string(ti, -1, "date", sf_get_string(tmp_sndfile, SF_STR_DATE));
+	tuple_associate_string(ti, -1, "software", sf_get_string(tmp_sndfile, SF_STR_SOFTWARE));
 
 	g_free(realfn); realfn = NULL;
 
@@ -145,7 +126,7 @@
 	tmp_sndfile = NULL;
 
 	if (tmp_sfinfo.samplerate > 0)
-		tuple_associate_int(ti, "length", (int) ceil (1000.0 * tmp_sfinfo.frames / tmp_sfinfo.samplerate));
+		tuple_associate_int(ti, FIELD_LENGTH, NULL, (int) ceil (1000.0 * tmp_sfinfo.frames / tmp_sfinfo.samplerate));
 
 	switch (tmp_sfinfo.format & SF_FORMAT_TYPEMASK)
 	{
@@ -302,12 +283,12 @@
 		g_string_append_printf(codec_gs, "%s", format);
 	codec = g_strdup(codec_gs->str);
 	g_string_free(codec_gs, TRUE);
-	tuple_associate_string(ti, "codec", codec);
+	tuple_associate_string(ti, FIELD_CODEC, NULL, codec);
 
 	if (lossy != 0)
-		tuple_associate_string(ti, "quality", "lossy");
+		tuple_associate_string(ti, FIELD_QUALITY, NULL, "lossy");
 	else
-		tuple_associate_string(ti, "quality", "lossless");
+		tuple_associate_string(ti, FIELD_QUALITY, NULL, "lossless");
 }
 
 static gchar *get_title(char *filename)
@@ -321,7 +302,7 @@
 	if (*title == '\0')
 	{
 		g_free(title);
-		title = g_strdup(tuple_get_string(tuple, "file-name"));
+		title = g_strdup(tuple_get_string(tuple, FIELD_FILE_NAME, NULL));
 	}
 
 	tuple_free(tuple);
@@ -515,7 +496,7 @@
 	seek_time = (glong)millisecond;
 
 	while (seek_time != -1)
-		xmms_usleep (80000);
+		g_usleep (80000);
 }
 
 static void
@@ -545,7 +526,7 @@
 	static GtkWidget *box;
 	if (!box)
 	{
-        	box = xmms_show_message(
+        	box = audacious_info_dialog(
 			_("About sndfile WAV support"),
 			_("Adapted for Audacious usage by Tony Vroon <chainsaw@gentoo.org>\n"
 			  "from the xmms_sndfile plugin which is:\n"
--- a/src/wav/wav.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/wav/wav.c	Thu Sep 13 12:10:39 2007 -0500
@@ -38,36 +38,17 @@
 gchar *wav_fmts[] = { "wav", "raw", "pcm", NULL };
 
 InputPlugin wav_ip = {
-    NULL,
-    NULL,
-    "WAV Audio Plugin",                       /* Description */
-    wav_init,
-    NULL,
-    NULL,
-    is_our_file,
-    NULL,
-    play_file,
-    stop,
-    wav_pause,
-    seek,
-    NULL,
-    get_time,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    get_song_info,
-    NULL,                       /* file_info_box */
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    wav_fmts,
-    mseek,
+    .description = "WAV Audio Plugin",                       /* Description */
+    .init = wav_init,
+    .is_our_file = is_our_file,
+    .play_file = play_file,
+    .stop = stop,
+    .pause = wav_pause,
+    .seek = seek,
+    .get_time = get_time,
+    .get_song_info = get_song_info,
+    .vfs_extensions = wav_fmts,
+    .mseek = mseek,
 };
 
 WaveFile *wav_file = NULL;
@@ -212,14 +193,14 @@
 
     tuple = tuple_new_from_filename(filename);
 
-    tuple_associate_string(tuple, "codec", "RIFF/WAV Audio (ADPCM)");
-    tuple_associate_string(tuple, "quality", "lossless");
+    tuple_associate_string(tuple, FIELD_CODEC, NULL, "RIFF/WAV Audio (ADPCM)");
+    tuple_associate_string(tuple, FIELD_QUALITY, NULL, "lossless");
 
     title = tuple_formatter_make_title_string(tuple, get_gentitle_format());
     if (*title == '\0')
     {
         g_free(title);
-        title = g_strdup(tuple_get_string(tuple, "file-name"));
+        title = g_strdup(tuple_get_string(tuple, FIELD_FILE_NAME, NULL));
     }
 
     tuple_free(tuple);
@@ -455,7 +436,7 @@
     playback->eof = FALSE;
 
     while (wav_file->seek_to != -1)
-        xmms_usleep(10000);
+        g_usleep(10000);
 }
 
 static void
--- a/src/wavpack/libwavpack.cxx	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/wavpack/libwavpack.cxx	Thu Sep 13 12:10:39 2007 -0500
@@ -66,8 +66,10 @@
     NULL,                       //filename
     (gchar *)"WavPack Audio Plugin",
     wv_load_config,
+    NULL,
     wv_about_box,
     wv_configure,
+    FALSE,
     NULL,
     NULL,                       //no use
     wv_play,
@@ -82,7 +84,6 @@
     NULL,                       //obsolete
     NULL,                       //add_vis
     NULL,
-    NULL,
     wv_get_song_info,
     wv_file_info_box,           //info box
     NULL,                       //output
@@ -357,7 +358,7 @@
             }
         }
         else {
-            xmms_usleep(10000);
+            g_usleep(10000);
         }
     }
     return end_thread();
@@ -401,18 +402,18 @@
 
     load_tag(&tag, ctx);
 
-    tuple_associate_string(ti, "title", tag.title);
-    tuple_associate_string(ti, "artist", tag.artist);
-    tuple_associate_string(ti, "album", tag.album);
-    tuple_associate_string(ti, "genre", tag.genre);
-    tuple_associate_string(ti, "comment", tag.comment);
-    tuple_associate_string(ti, "date", tag.year);
-    tuple_associate_string(ti, "quality", WavpackPluginGetQualityString(ctx).c_str());
-    tuple_associate_string(ti, "codec", "WavPack");
+    tuple_associate_string(ti, FIELD_TITLE, NULL, tag.title);
+    tuple_associate_string(ti, FIELD_ARTIST, NULL, tag.artist);
+    tuple_associate_string(ti, FIELD_ALBUM, NULL, tag.album);
+    tuple_associate_string(ti, FIELD_GENRE, NULL, tag.genre);
+    tuple_associate_string(ti, FIELD_COMMENT, NULL, tag.comment);
+    tuple_associate_string(ti, FIELD_DATE, NULL, tag.year);
+    tuple_associate_string(ti, FIELD_QUALITY, NULL, WavpackPluginGetQualityString(ctx).c_str());
+    tuple_associate_string(ti, FIELD_CODEC, NULL, "WavPack");
 
-    tuple_associate_int(ti, "track-number", atoi(tag.track));
-    tuple_associate_int(ti, "year", atoi(tag.year));
-    tuple_associate_int(ti, "length", (int)(WavpackGetNumSamples(ctx) / sample_rate) * 1000);
+    tuple_associate_int(ti, FIELD_TRACK_NUMBER, NULL, atoi(tag.track));
+    tuple_associate_int(ti, FIELD_YEAR, NULL, atoi(tag.year));
+    tuple_associate_int(ti, FIELD_LENGTH, NULL, (int)(WavpackGetNumSamples(ctx) / sample_rate) * 1000);
 
     return ti;
 }
--- a/src/wavpack/tags.cxx	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/wavpack/tags.cxx	Thu Sep 13 12:10:39 2007 -0500
@@ -310,7 +310,7 @@
 
         sprintf(text, "File \"%s\" not found or is read protected!\n",
                 filename);
-        xmms_show_message("File-Error", (gchar *) text, "Ok", FALSE, NULL,
+        audacious_info_dialog("File-Error", (gchar *) text, "Ok", FALSE, NULL,
                           NULL);
         return -1;
     }
@@ -385,7 +385,7 @@
 
         snprintf(text, 256, "File \"%s\" not found or is read protected!\n",
                 filename);
-        xmms_show_message("File-Error", (gchar *) text, "Ok", FALSE, NULL,
+        audacious_info_dialog("File-Error", (gchar *) text, "Ok", FALSE, NULL,
                           NULL);
         return -1;
     }
--- a/src/wavpack/ui.cxx	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/wavpack/ui.cxx	Thu Sep 13 12:10:39 2007 -0500
@@ -48,7 +48,7 @@
         gdk_window_raise(about_window->window);
 
     about_window =
-        xmms_show_message(g_strdup_printf
+        audacious_info_dialog(g_strdup_printf
                           (_("Wavpack Decoder Plugin %s"), VERSION),
                           (_("Copyright (c) 2006 William Pitcock <nenolod -at- nenolod.net>\n\n"
                            "Some of the plugin code was by Miles Egan\n"
--- a/src/wma/wma.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/wma/wma.c	Thu Sep 13 12:10:39 2007 -0500
@@ -232,7 +232,7 @@
 {
     wma_seekpos = time;
     if(wma_pause) playback->output->pause(0);
-    while(wma_decode && wma_seekpos!=-1) xmms_usleep(10000);
+    while(wma_decode && wma_seekpos!=-1) g_usleep(10000);
     if(wma_pause) playback->output->pause(1);
 }
 
@@ -243,6 +243,18 @@
     return ext;
 }
 
+static void _assoc_string(Tuple *tuple, const gint nfield, const gchar *str)
+{
+    if (strlen(str) > 0)
+        tuple_associate_string(tuple, nfield, NULL, str);
+}
+
+static void _assoc_int(Tuple *tuple, const gint nfield, const gint val)
+{
+    if (val > 0)
+        tuple_associate_int(tuple, nfield, NULL, val);
+}
+
 static Tuple *wma_get_song_tuple(gchar * filename)
 {
     Tuple *ti = tuple_new_from_filename(filename);
@@ -251,27 +263,19 @@
     if (av_open_input_file(&in, str_twenty_to_space(filename), NULL, 0, NULL) < 0)
 	return NULL;
 
-    tuple_associate_string(ti, "codec", "Windows Media Audio (WMA)");
-    tuple_associate_string(ti, "quality", "lossy");
+    tuple_associate_string(ti, FIELD_CODEC, NULL, "Windows Media Audio (WMA)");
+    tuple_associate_string(ti, FIELD_QUALITY, NULL, "lossy");
 
     av_find_stream_info(in);
 
-    if(strlen(in->title))
-        tuple_associate_string(ti, "title", in->title);
-    if(strlen(in->author))
-        tuple_associate_string(ti, "artist", in->author);
-    if(strlen(in->album))
-        tuple_associate_string(ti, "album", in->album);
-    if(strlen(in->comment))
-        tuple_associate_string(ti, "comment", in->comment);
-    if(strlen(in->genre))
-        tuple_associate_string(ti, "genre", in->genre);
-    if(in->year > 0)
-        tuple_associate_int(ti, "year", in->year);
-    if(in->track > 0)
-        tuple_associate_int(ti, "track", in->track);
-    if (in->duration)
-        tuple_associate_int(ti, "length", in->duration / 1000);
+    _assoc_string(ti, FIELD_TITLE, in->title);
+    _assoc_string(ti, FIELD_ARTIST, in->author);
+    _assoc_string(ti, FIELD_ALBUM, in->album);
+    _assoc_string(ti, FIELD_COMMENT, in->comment);
+    _assoc_string(ti, FIELD_GENRE, in->genre);
+    _assoc_int(ti, FIELD_YEAR, in->year);
+    _assoc_int(ti, FIELD_TRACK_NUMBER, in->track);
+    _assoc_int(ti, FIELD_LENGTH, in->duration / 1000);
 
     av_close_input_file(in);
 
@@ -283,25 +287,17 @@
     gchar *ret = NULL;
     Tuple *ti = tuple_new_from_filename(filename);
 
-    tuple_associate_string(ti, "codec", "Windows Media Audio (WMA)");
-    tuple_associate_string(ti, "quality", "lossy");
+    tuple_associate_string(ti, FIELD_CODEC, NULL, "Windows Media Audio (WMA)");
+    tuple_associate_string(ti, FIELD_QUALITY, NULL, "lossy");
 
-    if(strlen(in->title))
-        tuple_associate_string(ti, "title", in->title);
-    if(strlen(in->author))
-        tuple_associate_string(ti, "artist", in->author);
-    if(strlen(in->album))
-        tuple_associate_string(ti, "album", in->album);
-    if(strlen(in->comment))
-        tuple_associate_string(ti, "comment", in->comment);
-    if(strlen(in->genre))
-        tuple_associate_string(ti, "genre", in->genre);
-    if(in->year > 0)
-        tuple_associate_int(ti, "year", in->year);
-    if(in->track > 0)
-        tuple_associate_int(ti, "track", in->track);
-    if (in->duration)
-        tuple_associate_int(ti, "length", in->duration / 1000);
+    _assoc_string(ti, FIELD_TITLE, in->title);
+    _assoc_string(ti, FIELD_ARTIST, in->author);
+    _assoc_string(ti, FIELD_ALBUM, in->album);
+    _assoc_string(ti, FIELD_COMMENT, in->comment);
+    _assoc_string(ti, FIELD_GENRE, in->genre);
+    _assoc_int(ti, FIELD_YEAR, in->year);
+    _assoc_int(ti, FIELD_TRACK_NUMBER, in->track);
+    _assoc_int(ti, FIELD_LENGTH, in->duration / 1000);
     
     ret = tuple_formatter_make_title_string(ti, get_gentitle_format());
 
@@ -323,7 +319,7 @@
     if (tuple == NULL)
         return;
 
-    (*len_real) = tuple_get_int(tuple, "length");
+    (*len_real) = tuple_get_int(tuple, FIELD_LENGTH, NULL);
     (*title_real) = tuple_formatter_make_title_string(tuple, get_gentitle_format());
 }
 
@@ -338,7 +334,7 @@
     {
         sst_buff = wma_st_buff;
 	if(wma_pause) memset(wma_s_outbuf, 0, sst_buff);	
-    	while(playback->output->buffer_free() < wma_st_buff) xmms_usleep(20000);
+    	while(playback->output->buffer_free() < wma_st_buff) g_usleep(20000);
 	produce_audio(playback->output->written_time(), FMT_S16_NE,
     			    c->channels, sst_buff, (short *)wma_s_outbuf, NULL);
 	memset(wma_s_outbuf, 0, sst_buff);
@@ -385,7 +381,7 @@
             if(pkt.data) av_free_packet(&pkt);
         }
     }
-    while(playback->playing && playback->output->buffer_playing()) xmms_usleep(30000);
+    while(playback->playing && playback->output->buffer_playing()) g_usleep(30000);
     playback->playing = 0;
     if(wma_s_outbuf) g_free(wma_s_outbuf);
     if(wma_outbuf) g_free(wma_outbuf);
--- a/src/xspf/xspf.c	Thu Sep 13 12:09:38 2007 -0500
+++ b/src/xspf/xspf.c	Thu Sep 13 12:10:39 2007 -0500
@@ -1,7 +1,8 @@
 /*
  * Audacious: A cross-platform multimedia player
  * Copyright (c) 2006 William Pitcock, Tony Vroon, George Averill,
- *                    Giacomo Lozito, Derek Pomery and Yoshiki Yazawa.
+ *                    Giacomo Lozito, Derek Pomery, Yoshiki Yazawa
+ *                    and Matti Hämäläinen.
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,7 +18,6 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
-
 #include <config.h>
 
 #include <glib.h>
@@ -46,9 +46,37 @@
 #define XSPF_ROOT_NODE_NAME "playlist"
 #define XSPF_XMLNS "http://xspf.org/ns/0/"
 
-#define TMP_BUF_LEN 128
+enum {
+    CMP_DEF = 0,
+    CMP_GT,
+    CMP_NULL
+} xspf_compare;
+
+typedef struct {
+    gint tupleField;
+    gchar *xspfName;
+    TupleValueType type;
+    gboolean isMeta;
+    gint compare;
+} xspf_entry_t;
+
 
-gchar *base = NULL;
+static const xspf_entry_t xspf_entries[] = {
+    { FIELD_TITLE,        "title",        TUPLE_STRING,   FALSE,  CMP_DEF },
+    { FIELD_ARTIST,       "creator",      TUPLE_STRING,   FALSE,  CMP_DEF },
+    { FIELD_COMMENT,      "annotation",   TUPLE_STRING,   FALSE,  CMP_DEF },
+    { FIELD_ALBUM,        "album",        TUPLE_STRING,   FALSE,  CMP_DEF },
+    { FIELD_TRACK_NUMBER, "trackNum",     TUPLE_INT,      FALSE,  CMP_DEF },
+    { FIELD_LENGTH,       "duration",     TUPLE_INT,      FALSE,  CMP_GT },
+
+    { FIELD_YEAR,         "year",         TUPLE_INT,      TRUE,   CMP_DEF },
+    { FIELD_DATE,         "date",         TUPLE_STRING,   TRUE,   CMP_DEF },
+    { FIELD_GENRE,        "genre",        TUPLE_STRING,   TRUE,   CMP_DEF },
+    { FIELD_FORMATTER,    "formatter",    TUPLE_STRING,   TRUE,   CMP_DEF },
+};
+
+static const gint xspf_nentries = (sizeof(xspf_entries) / sizeof(xspf_entry_t));
+
 
 static gboolean is_uri(gchar *uri)
 {
@@ -58,239 +86,188 @@
         return FALSE;
 }
 
-#if 0
-static gboolean is_remote(gchar *uri)
-{
-    if(strstr(uri, "file://"))
-        return FALSE;
-
-    if(strstr(uri, "://"))
-        return TRUE;
-    else
-        return FALSE;
-}
-#endif
-
-// this function is taken from libxml2-2.6.27.
-static xmlChar *audPathToURI(const xmlChar *path)
+/* This function is taken from libxml2-2.6.27.
+ */
+static xmlChar *xspf_path_to_uri(const xmlChar *path)
 {
     xmlURIPtr uri;
     xmlURI temp;
     xmlChar *ret, *cal;
 
-    if(path == NULL)
+    if (path == NULL)
         return NULL;
 
-    if((uri = xmlParseURI((const char *)path)) != NULL) {
+    if ((uri = xmlParseURI((const char *)path)) != NULL) {
         xmlFreeURI(uri);
         return xmlStrdup(path);
     }
+
     cal = xmlCanonicPath(path);
-    if(cal == NULL)
+    if (cal == NULL)
         return NULL;
+    
     memset(&temp, 0, sizeof(temp));
     temp.path = (char *)cal;
     ret = xmlSaveUri(&temp);
     xmlFree(cal);
+    
     return ret;
 }
 
-static void add_file(xmlNode *track, const gchar *filename, gint pos)
+
+static void xspf_add_file(xmlNode *track, const gchar *filename, gint pos, const gchar *base)
 {
     xmlNode *nptr;
     Tuple *tuple;
     gchar *location = NULL;
     Playlist *playlist = playlist_get_active();
 
+
     tuple = tuple_new();
+    tuple_associate_int(tuple, FIELD_LENGTH, NULL, -1);
+    tuple_associate_int(tuple, FIELD_MTIME, NULL, -1);
+
 
-    tuple_associate_int(tuple, "length", -1);
-    tuple_associate_int(tuple, "mtime", -1);          // mark as uninitialized.
+    for (nptr = track->children; nptr != NULL; nptr = nptr->next) {
+        if (nptr->type == XML_ELEMENT_NODE) {
+            if (!xmlStrcmp(nptr->name, (xmlChar *)"location")) {
+                /* Location is a special case */
+                gchar *str = (gchar *)xmlNodeGetContent(nptr);
 
-    // creator, album, title, duration, trackNum, annotation, image, 
-    for(nptr = track->children; nptr != NULL; nptr = nptr->next) {
-        if(nptr->type == XML_ELEMENT_NODE
-           && !xmlStrcmp(nptr->name, (xmlChar *)"location")) {
-            gchar *str = (gchar *)xmlNodeGetContent(nptr);
-            gchar *tmp = NULL;
-
-            // tmp is escaped uri or a part of escaped uri.
-            tmp = g_strdup_printf("%s%s", base ? base : "", str);
-            location = g_filename_from_uri(tmp, NULL, NULL);
-            if(!location) // http:// or something.
-                location = g_strdup(tmp);
+                location = g_strdup_printf("%s%s", base ? base : "", str);
+                xmlFree(str);
+                str = g_filename_from_uri(location, NULL, NULL);
+                if (str) {
+                    g_free(location);
+                    location = g_strdup_printf("file://%s", str);
+                }
+            
+                g_free(str);
+            } else {
+                /* Rest of the nodes are handled here */
+                gint i;
+                gboolean isMeta;
+                xmlChar *findName;
 
-            xmlFree(str); str = NULL;
-            g_free(tmp); tmp = NULL;
-        }
-        else if(nptr->type == XML_ELEMENT_NODE
-                && !xmlStrcmp(nptr->name, (xmlChar *)"title")) {
-            xmlChar *str = xmlNodeGetContent(nptr);
-	    tuple_associate_string(tuple, "title", (gchar *) str);
-            xmlFree(str);
-        }
-        else if(nptr->type == XML_ELEMENT_NODE
-                && !xmlStrcmp(nptr->name, (xmlChar *)"creator")) {
-            xmlChar *str = xmlNodeGetContent(nptr);
-	    tuple_associate_string(tuple, "artist", (gchar *) str);
-            xmlFree(str);
-        }
-        else if(nptr->type == XML_ELEMENT_NODE
-                && !xmlStrcmp(nptr->name, (xmlChar *)"annotation")) {
-            xmlChar *str = xmlNodeGetContent(nptr);
-            tuple_associate_string(tuple, "comment", (gchar *) str);
-            xmlFree(str);
-        }
-        else if(nptr->type == XML_ELEMENT_NODE
-                && !xmlStrcmp(nptr->name, (xmlChar *)"album")) {
-            xmlChar *str = xmlNodeGetContent(nptr);
-	    tuple_associate_string(tuple, "album", (gchar *) str);
-            xmlFree(str);
-        }
-        else if(nptr->type == XML_ELEMENT_NODE
-                && !xmlStrcmp(nptr->name, (xmlChar *)"trackNum")) {
-            xmlChar *str = xmlNodeGetContent(nptr);
-            tuple_associate_int(tuple, "track-number", atol((char *)str));
-            xmlFree(str);
+                if (!xmlStrcmp(nptr->name, (xmlChar *)"meta")) {
+                    isMeta = TRUE;
+                    findName = xmlGetProp(nptr, (xmlChar *)"rel");
+                } else {
+                    isMeta = FALSE;
+                    findName = xmlStrdup(nptr->name);
+                }
+                
+                for (i = 0; i < xspf_nentries; i++)
+                if ((xspf_entries[i].isMeta == isMeta) &&
+                    !xmlStrcmp(findName, (xmlChar *)xspf_entries[i].xspfName)) {
+                    xmlChar *str = xmlNodeGetContent(nptr);
+                    switch (xspf_entries[i].type) {
+                        case TUPLE_STRING:
+                            tuple_associate_string(tuple, xspf_entries[i].tupleField, NULL, (gchar *)str);
+                            break;
+                        
+                        case TUPLE_INT:
+                            tuple_associate_int(tuple, xspf_entries[i].tupleField, NULL, atol((char *)str));
+                            break;
+                        
+                        default:
+                            break;
+                    }
+                    xmlFree(str);
+                    break;
+                }
+
+                xmlFree(findName);
+            }
         }
-        else if(nptr->type == XML_ELEMENT_NODE
-                && !xmlStrcmp(nptr->name, (xmlChar *)"duration")) {
-            xmlChar *str = xmlNodeGetContent(nptr);
-            tuple_associate_int(tuple, "length", atol((char *)str));
-            xmlFree(str);
-        }
-
-        //
-        // additional metadata
-        //
-        // year, date, genre, formatter, mtime
-        //
-        else if(nptr->type == XML_ELEMENT_NODE
-                && !xmlStrcmp(nptr->name, (xmlChar *)"meta")) {
-            xmlChar *rel = NULL;
-
-            rel = xmlGetProp(nptr, (xmlChar *)"rel");
-
-            if(!xmlStrcmp(rel, (xmlChar *)"year")) {
-                xmlChar *cont = xmlNodeGetContent(nptr);
-                tuple_associate_int(tuple, "year", atol((char *)cont));
-                xmlFree(cont);
-                continue;
-            }
-            else if(!xmlStrcmp(rel, (xmlChar *)"date")) {
-                xmlChar *cont = xmlNodeGetContent(nptr);
-                tuple_associate_string(tuple, "date", (gchar *) cont);
-                xmlFree(cont);
-                continue;
-            }
-            else if(!xmlStrcmp(rel, (xmlChar *)"genre")) {
-                xmlChar *cont = xmlNodeGetContent(nptr);
-                tuple_associate_string(tuple, "genre", (gchar *) cont);
-                xmlFree(cont);
-                continue;
-            }
-            else if(!xmlStrcmp(rel, (xmlChar *)"formatter")) {
-                xmlChar *cont = xmlNodeGetContent(nptr);
-                tuple_associate_string(tuple, "formatter", (gchar *) cont);
-                xmlFree(cont);
-                continue;
-            }
-            else if(!xmlStrcmp(rel, (xmlChar *)"mtime")) {
-                xmlChar *str = NULL;
-                str = xmlNodeGetContent(nptr);
-                tuple_associate_int(tuple, "mtime", atoll((char *)str));
-                xmlFree(str);
-                continue;
-            }
-            xmlFree(rel);
-            rel = NULL;
-        }
-
     }
 
-    if(location) {
+    if (location) {
         gchar *uri = NULL;
         gchar *scratch;
 
         scratch = g_path_get_basename(location);
-        tuple_associate_string(tuple, "file-name", scratch);
+        tuple_associate_string(tuple, FIELD_FILE_NAME, NULL, scratch);
         g_free(scratch);
 
         scratch = g_path_get_dirname(location);
-        tuple_associate_string(tuple, "file-path", scratch);
+        tuple_associate_string(tuple, FIELD_FILE_PATH, NULL, scratch);
         g_free(scratch);
 
+        tuple_associate_string(tuple, FIELD_FILE_EXT, NULL, strrchr(location, '.'));
+
 #ifdef DEBUG
-        printf("xspf: tuple->file_name = %s\n", tuple_get_string(tuple, "file-name"));
-        printf("xspf: tuple->file_path = %s\n", tuple_get_string(tuple, "file-path"));
+        printf("xspf: tuple->file_name = %s\n", tuple_get_string(tuple, FIELD_FILE_NAME, NULL));
+        printf("xspf: tuple->file_path = %s\n", tuple_get_string(tuple, FIELD_FILE_PATH, NULL));
 #endif
-        tuple_associate_string(tuple, "file-ext", strrchr(location, '.'));
         // add file to playlist
         uri = g_filename_to_uri(location, NULL, NULL);
         // uri would be NULL if location is already uri. --yaz
         playlist_load_ins_file_tuple(playlist, uri ? uri: location, filename, pos, tuple);
-        g_free(uri); uri = NULL;
+        g_free(uri);
         pos++;
     }
 
     g_free(location);
-    location = NULL;
 }
 
-static void find_track(xmlNode *tracklist, const gchar *filename, gint pos)
+
+static void xspf_find_track(xmlNode *tracklist, const gchar *filename, gint pos, const gchar *base)
 {
     xmlNode *nptr;
-    for(nptr = tracklist->children; nptr != NULL; nptr = nptr->next) {
-        if(nptr->type == XML_ELEMENT_NODE
-           && !xmlStrcmp(nptr->name, (xmlChar *)"track")) {
-            add_file(nptr, filename, pos);
+
+    for (nptr = tracklist->children; nptr != NULL; nptr = nptr->next) {
+        if (nptr->type == XML_ELEMENT_NODE &&
+            !xmlStrcmp(nptr->name, (xmlChar *)"track")) {
+            xspf_add_file(nptr, filename, pos, base);
         }
     }
 }
 
-static void find_audoptions(xmlNode *tracklist, const gchar *filename, gint pos)
+
+static void xspf_find_audoptions(xmlNode *tracklist, const gchar *filename, gint pos)
 {
     xmlNode *nptr;
     Playlist *playlist = playlist_get_active();
 
-    for(nptr = tracklist->children; nptr != NULL; nptr = nptr->next) {
-        if(nptr->type == XML_ELEMENT_NODE
-           && !xmlStrcmp(nptr->name, (xmlChar *)"options")) {
+    for (nptr = tracklist->children; nptr != NULL; nptr = nptr->next) {
+        if (nptr->type == XML_ELEMENT_NODE &&
+            !xmlStrcmp(nptr->name, (xmlChar *)"options")) {
             xmlChar *opt = NULL;
 
             opt = xmlGetProp(nptr, (xmlChar *)"staticlist");
-            if(!strcasecmp((char *)opt, "true")) {
+            if (!g_strcasecmp((char *)opt, "true"))
                 playlist->attribute |= PLAYLIST_STATIC;
-            }
             else
                 playlist->attribute ^= PLAYLIST_STATIC;
+
             xmlFree(opt);
             opt = NULL;
         }
     }
 }
 
-static void playlist_load_xspf(const gchar *filename, gint pos)
+
+static void xspf_playlist_load(const gchar *filename, gint pos)
 {
     xmlDocPtr doc;
     xmlNode *nptr, *nptr2;
-    gchar *tmp = NULL;
+    gchar *tmp = NULL, *base = NULL;
 
     g_return_if_fail(filename != NULL);
+
 #ifdef DEBUG
     printf("playlist_load_xspf: filename = %s\n", filename);
 #endif
+
     doc = xmlRecoverFile(filename);
     if(doc == NULL)
         return;
 
-    xmlFree(base);
-    base = NULL;
-
     // find trackList
-    for(nptr = doc->children; nptr != NULL; nptr = nptr->next) {
-        if(nptr->type == XML_ELEMENT_NODE
-           && !xmlStrcmp(nptr->name, (xmlChar *)"playlist")) {
+    for (nptr = doc->children; nptr != NULL; nptr = nptr->next) {
+        if (nptr->type == XML_ELEMENT_NODE &&
+            !xmlStrcmp(nptr->name, (xmlChar *)"playlist")) {
             base = (gchar *)xmlNodeGetBase(doc, nptr);
 #ifdef DEBUG
             printf("playlist_load_xspf: base @1 = %s\n", base);
@@ -308,34 +285,30 @@
 #ifdef DEBUG
             printf("playlist_load_xspf: base @2 = %s\n", base);
 #endif
-            for(nptr2 = nptr->children; nptr2 != NULL; nptr2 = nptr2->next) {
+            for (nptr2 = nptr->children; nptr2 != NULL; nptr2 = nptr2->next) {
 
-                if(nptr2->type == XML_ELEMENT_NODE
-                   && !xmlStrcmp(nptr2->name, (xmlChar *)"extension")) {
+                if (nptr2->type == XML_ELEMENT_NODE &&
+                    !xmlStrcmp(nptr2->name, (xmlChar *)"extension")) {
                     //check if application is audacious
                     xmlChar *app = NULL;
                     app = xmlGetProp(nptr2, (xmlChar *)"application");
-                    if(!xmlStrcmp(app, (xmlChar *)"audacious")) {
-                        find_audoptions(nptr2, filename, pos);
-                    }
+                    if (!xmlStrcmp(app, (xmlChar *)"audacious"))
+                        xspf_find_audoptions(nptr2, filename, pos);
                     xmlFree(app);
-                }
-
-                if(nptr2->type == XML_ELEMENT_NODE
-                   && !xmlStrcmp(nptr2->name, (xmlChar *)"title")) {
+                } else
+                if (nptr2->type == XML_ELEMENT_NODE &&
+                    !xmlStrcmp(nptr2->name, (xmlChar *)"title")) {
                     Playlist *plist = playlist_get_active();
                     xmlChar *title = xmlNodeGetContent(nptr2);
+                    
                     if (title && *title) {
-                        gchar *old = plist->title;
-                        plist->title = g_strdup((gchar*)title);
-                        g_free(old);
+                        playlist_set_current_name(plist, (gchar*)title);
                     }
                     xmlFree(title);
-                }
-
-                if(nptr2->type == XML_ELEMENT_NODE
-                   && !xmlStrcmp(nptr2->name, (xmlChar *)"trackList")) {
-                    find_track(nptr2, filename, pos);
+                } else
+                if(nptr2->type == XML_ELEMENT_NODE &&
+                    !xmlStrcmp(nptr2->name, (xmlChar *)"trackList")) {
+                    xspf_find_track(nptr2, filename, pos, base);
                 }
             }
         }
@@ -343,22 +316,52 @@
     xmlFreeDoc(doc);
 }
 
-static void playlist_save_xspf(const gchar *filename, gint pos)
+
+static void xspf_add_node(
+        xmlNodePtr node, TupleValueType type, gboolean isMeta,
+        const gchar *xspfName, const gchar *strVal, const gint intVal)
+{
+    gchar tmps[64];
+    xmlNodePtr tmp;
+    
+    if (isMeta) {
+        tmp = xmlNewNode(NULL, (xmlChar *) "meta");
+        xmlSetProp(tmp, (xmlChar *) "rel", (xmlChar *) xspfName);
+    } else
+        tmp = xmlNewNode(NULL, (xmlChar *) xspfName);
+    
+    switch (type) {
+        case TUPLE_STRING:
+            xmlAddChild(tmp, xmlNewText((xmlChar *) strVal));
+            break;
+            
+        case TUPLE_INT:
+            g_snprintf(tmps, sizeof(tmps), "%d", intVal);
+            xmlAddChild(tmp, xmlNewText((xmlChar *) tmps));
+            break;
+
+        default:
+            break;
+    }
+
+    xmlAddChild(node, tmp);
+}
+
+
+static void xspf_playlist_save(const gchar *filename, gint pos)
 {
     xmlDocPtr doc;
-    xmlNodePtr rootnode, tmp, tracklist;
+    xmlNodePtr rootnode, tracklist;
     GList *node;
     gint baselen = 0;
+    gchar *base = NULL;
     Playlist *playlist = playlist_get_active();
 
 #ifdef DEBUG
     printf("playlist_save_xspf: filename = %s\n", filename);
 #endif
-    xmlFree(base);
-    base = NULL;
 
     doc = xmlNewDoc((xmlChar *)"1.0");
-
     doc->charset = XML_CHAR_ENCODING_UTF8;
     doc->encoding = xmlStrdup((xmlChar *)"UTF-8");
 
@@ -366,24 +369,23 @@
     xmlSetProp(rootnode, (xmlChar *)"version", (xmlChar *)"1");
     xmlSetProp(rootnode, (xmlChar *)"xmlns", (xmlChar *)XSPF_XMLNS);
 
-    PLAYLIST_LOCK(playlist->mutex);
+    PLAYLIST_LOCK(playlist);
 
     /* relative */
-    if(playlist->attribute & PLAYLIST_USE_RELATIVE) {
+    if (playlist->attribute & PLAYLIST_USE_RELATIVE) {
         /* prescan to determine base uri */
-        for(node = playlist->entries; node != NULL; node = g_list_next(node)) {
+        for (node = playlist->entries; node != NULL; node = g_list_next(node)) {
             gchar *ptr1, *ptr2;
             PlaylistEntry *entry = PLAYLIST_ENTRY(node->data);
             gchar *tmp;
             gint tmplen = 0;
 
-            if(!is_uri(entry->filename)) { //obsolete
+            if (!is_uri(entry->filename)) { //obsolete
                 gchar *tmp2;
                 tmp2 = g_path_get_dirname(entry->filename);
                 tmp = g_strdup_printf("%s/", tmp2);
-                g_free(tmp2); tmp2 = NULL;
-            }
-            else { //uri
+                g_free(tmp2);
+            } else {
                 tmp = g_strdup(entry->filename);
             }
 
@@ -391,6 +393,7 @@
                 base = strdup(tmp);
                 baselen = strlen(base);
             }
+            
             ptr1 = base;
             ptr2 = tmp;
 
@@ -398,10 +401,11 @@
                 ptr1++;
                 ptr2++;
             }
+            
             *ptr2 = '\0';       //terminate
             tmplen = ptr2 - tmp;
 
-            if(tmplen <= baselen) {
+            if (tmplen <= baselen) {
                 g_free(base);
                 base = tmp;
                 baselen = tmplen;
@@ -414,11 +418,12 @@
                 tmp = NULL;
             }
         }
+        
         /* set base URI */
-        if(base) {
+        if (base) {
             gchar *tmp;
             if(!is_uri(base)) {
-                tmp = (gchar *)audPathToURI((xmlChar *)base);
+                tmp = (gchar *) xspf_path_to_uri((xmlChar *)base);
                 if(tmp) {
                     g_free(base);
                     base = tmp;
@@ -432,7 +437,6 @@
                 tmp = g_strdup_printf("file://%s", base);
                 xmlSetProp(rootnode, (xmlChar *)"xml:base", (xmlChar *)tmp);
                 g_free(tmp);
-                tmp = NULL;
             }
             else
                 xmlSetProp(rootnode, (xmlChar *)"xml:base", (xmlChar *)base);
@@ -442,12 +446,10 @@
     /* common */
     xmlDocSetRootElement(doc, rootnode);
 
-    tmp = xmlNewNode(NULL, (xmlChar *)"creator");
-    xmlAddChild(tmp, xmlNewText((xmlChar *)PACKAGE "-" VERSION));
-    xmlAddChild(rootnode, tmp);
+    xspf_add_node(rootnode, TUPLE_STRING, FALSE, "creator", PACKAGE "-" VERSION, 0);
 
-    // add staticlist marker
-    if(playlist->attribute & PLAYLIST_STATIC) {
+    /* add staticlist marker */
+    if (playlist->attribute & PLAYLIST_STATIC) {
         xmlNodePtr extension, options;
 
         extension = xmlNewNode(NULL, (xmlChar *)"extension");
@@ -461,13 +463,10 @@
     }
 
     /* save playlist title */
-    if(playlist->title && playlist->title[0]
-            && g_utf8_validate(playlist->title, -1, NULL)) {
-        xmlNodePtr title;
-        title = xmlNewNode(NULL, (xmlChar *)"title");
-        xmlAddChild(title, xmlNewText((xmlChar *)playlist->title));
-        xmlAddChild(rootnode, title);
-    }
+    if (playlist->title && playlist->title[0] &&
+        g_utf8_validate(playlist->title, -1, NULL))
+        xspf_add_node(rootnode, TUPLE_STRING, FALSE, "title", playlist->title, 0);
+
 
     tracklist = xmlNewNode(NULL, (xmlChar *)"trackList");
     xmlAddChild(rootnode, tracklist);
@@ -476,9 +475,8 @@
         PlaylistEntry *entry = PLAYLIST_ENTRY(node->data);
         xmlNodePtr track, location;
         gchar *filename = NULL;
-        const gchar *scratch;
-        gchar tmps[64];
-        gint tmpi;
+        const gchar *scratch = NULL;
+        gint scratchi = 0;
 
         track = xmlNewNode(NULL, (xmlChar *)"track");
         location = xmlNewNode(NULL, (xmlChar *)"location");
@@ -490,7 +488,7 @@
             filename = g_strdup(entry->filename + baselen); // entry->filename is always uri now.
         }
         else {                  /* local file (obsolete) */
-            gchar *tmp = (gchar *)audPathToURI((const xmlChar *)entry->filename + baselen);
+            gchar *tmp = (gchar *) xspf_path_to_uri((const xmlChar *)entry->filename + baselen);
             if(base) { /* relative */
                 filename = g_strdup_printf("%s", tmp);
             } else {
@@ -509,124 +507,60 @@
         xmlAddChild(track, location);
         xmlAddChild(tracklist, track);
 
-        /* do we have a tuple? */
-        if(entry->tuple != NULL) {
-
-            if((scratch = tuple_get_string(entry->tuple, "title")) != NULL &&
-                g_utf8_validate(scratch, -1, NULL)) {
-                tmp = xmlNewNode(NULL, (xmlChar *)"title");
-                xmlAddChild(tmp, xmlNewText((xmlChar *) scratch));
-                xmlAddChild(track, tmp);
-            }
-
-            if((scratch = tuple_get_string(entry->tuple, "artist")) != NULL &&
-                g_utf8_validate(scratch, -1, NULL)) {
-                tmp = xmlNewNode(NULL, (xmlChar *)"creator");
-                xmlAddChild(tmp, xmlNewText((xmlChar *) scratch));
-                xmlAddChild(track, tmp);
-            }
-
-            if((scratch = tuple_get_string(entry->tuple, "comment")) != NULL &&
-                g_utf8_validate(scratch, -1, NULL)) {
-                tmp = xmlNewNode(NULL, (xmlChar *)"annotation");
-                xmlAddChild(tmp, xmlNewText((xmlChar *) scratch));
-                xmlAddChild(track, tmp);
-            }
-
-            if((scratch = tuple_get_string(entry->tuple, "album")) != NULL &&
-                g_utf8_validate(scratch, -1, NULL)) {
-                tmp = xmlNewNode(NULL, (xmlChar *)"album");
-                xmlAddChild(tmp, xmlNewText((xmlChar *) scratch));
-                xmlAddChild(track, tmp);
-            }
-
-            if((tmpi = tuple_get_int(entry->tuple, "track-number")) != 0) {
-                tmp = xmlNewNode(NULL, (xmlChar *)"trackNum");
-                g_snprintf(tmps, sizeof(tmps), "%d", tmpi);
-                xmlAddChild(tmp, xmlNewText((xmlChar *) tmps));
-                xmlAddChild(track, tmp);
-            }
-
-            if((tmpi = tuple_get_int(entry->tuple, "length")) > 0) {
-                tmp = xmlNewNode(NULL, (xmlChar *)"duration");
-                g_snprintf(tmps, sizeof(tmps), "%d", tmpi);
-                xmlAddChild(tmp, xmlNewText((xmlChar *) tmps));
-                xmlAddChild(track, tmp);
+        /* Do we have a tuple? */
+        if (entry->tuple != NULL) {
+            gint i;
+            for (i = 0; i < xspf_nentries; i++) {
+                const xspf_entry_t *xs = &xspf_entries[i];
+                gboolean isOK = FALSE;
+                
+                switch (xs->type) {
+                    case TUPLE_STRING:
+                        scratch = tuple_get_string(entry->tuple, xs->tupleField, NULL);
+                        switch (xs->compare) {
+                            case CMP_DEF: isOK = (scratch != NULL); break;
+                            case CMP_NULL: isOK = (scratch == NULL); break;
+                        }
+                        if (scratch != NULL && !g_utf8_validate(scratch, -1, NULL))
+                            isOK = FALSE;
+                        break;
+                    
+                    case TUPLE_INT:
+                        scratchi = tuple_get_int(entry->tuple, xs->tupleField, NULL);
+                        switch (xs->compare) {
+                            case CMP_DEF: isOK = (scratchi != 0); break;
+                            case CMP_GT:  isOK = (scratchi > 0); break;
+                        }
+                        break;
+                        
+                    default:
+                        break;
+                }
+                
+                if (isOK)
+                    xspf_add_node(track, xs->type, xs->isMeta, xs->xspfName, scratch, scratchi);
             }
 
-            //
-            // additional metadata
-            //
-            // year, date, genre, formatter, mtime
-            //
-
-            if((tmpi = tuple_get_int(entry->tuple, "year")) != 0) {
-                tmp = xmlNewNode(NULL, (xmlChar *)"meta");
-                xmlSetProp(tmp, (xmlChar *)"rel", (xmlChar *)"year");
-                g_snprintf(tmps, sizeof(tmps), "%d", tmpi);
-                xmlAddChild(tmp, xmlNewText((xmlChar *) tmps));
-                xmlAddChild(track, tmp);
-            }
-
-            if((scratch = tuple_get_string(entry->tuple, "date")) != NULL &&
-                g_utf8_validate(scratch, -1, NULL)) {
-                tmp = xmlNewNode(NULL, (xmlChar *)"meta");
-                xmlSetProp(tmp, (xmlChar *)"rel", (xmlChar *)"date");
-                xmlAddChild(tmp, xmlNewText((xmlChar *) scratch));
-                xmlAddChild(track, tmp);
-            }
-
-            if((scratch = tuple_get_string(entry->tuple, "genre")) != NULL &&
-                g_utf8_validate(scratch, -1, NULL)) {
-                tmp = xmlNewNode(NULL, (xmlChar *)"meta");
-                xmlSetProp(tmp, (xmlChar *)"rel", (xmlChar *)"genre");
-                xmlAddChild(tmp, xmlNewText((xmlChar *) scratch));
-                xmlAddChild(track, tmp);
-            }
+            /* Write mtime unconditionally to support staticlist */
+            xspf_add_node(track, TUPLE_INT, TRUE, "mtime", NULL,
+                tuple_get_int(entry->tuple, FIELD_MTIME, NULL));
+        } else {
 
-            if((scratch = tuple_get_string(entry->tuple, "formatter")) != NULL &&
-                g_utf8_validate(scratch, -1, NULL)) {
-                tmp = xmlNewNode(NULL, (xmlChar *)"meta");
-                xmlSetProp(tmp, (xmlChar *)"rel", (xmlChar *)"formatter");
-                xmlAddChild(tmp, xmlNewText((xmlChar *) scratch));
-                xmlAddChild(track, tmp);
-            }
-
-            // mtime: write mtime unconditionally to support staticlist.
-            tmp = xmlNewNode(NULL, (xmlChar *)"meta");
-            xmlSetProp(tmp, (xmlChar *)"rel", (xmlChar *)"mtime");
-            g_snprintf(tmps, sizeof(tmps), "%ld", (long) tuple_get_int(entry->tuple, "mtime"));
-            xmlAddChild(tmp, xmlNewText((xmlChar *) tmps));
-            xmlAddChild(track, tmp);
-        }                       /* tuple */
-        else {
+            if (entry->title != NULL && g_utf8_validate(entry->title, -1, NULL))
+                xspf_add_node(track, TUPLE_STRING, FALSE, "title", entry->title, 0);
 
-            if(entry->title != NULL && g_utf8_validate(entry->title, -1, NULL)) {
-                tmp = xmlNewNode(NULL, (xmlChar *)"title");
-                xmlAddChild(tmp, xmlNewText((xmlChar *)entry->title));
-                xmlAddChild(track, tmp);
-            }
+            if (entry->length > 0)
+                xspf_add_node(track, TUPLE_INT, FALSE, "duration", NULL, entry->length);
 
-            if(entry->length > 0) {
-                tmp = xmlNewNode(NULL, (xmlChar *)"duration");
-                g_snprintf(tmps, sizeof(tmps), "%d", entry->length);
-                xmlAddChild(tmp, xmlNewText((xmlChar *) tmps));
-                xmlAddChild(track, tmp);
-            }
-
-            /* add mtime of -1 */
-            tmp = xmlNewNode(NULL, (xmlChar *)"meta");
-            xmlSetProp(tmp, (xmlChar *)"rel", (xmlChar *)"mtime");
-            g_snprintf(tmps, sizeof(tmps), "%ld", -1L);
-            xmlAddChild(tmp, xmlNewText((xmlChar *) tmps));
-            xmlAddChild(track, tmp);
-        }                       /* no tuple */
+            /* Add mtime of -1 */
+            xspf_add_node(track, TUPLE_INT, TRUE, "mtime", NULL, -1);
+        }
 
         g_free(filename);
         filename = NULL;
     }
 
-    PLAYLIST_UNLOCK(playlist->mutex);
+    PLAYLIST_UNLOCK(playlist);
 
     xmlSaveFormatFile(filename, doc, 1);
     xmlFreeDoc(doc);
@@ -636,21 +570,22 @@
     base = NULL;
 }
 
+
 PlaylistContainer plc_xspf = {
     .name = "XSPF Playlist Format",
     .ext = "xspf",
-    .plc_read = playlist_load_xspf,
-    .plc_write = playlist_save_xspf,
+    .plc_read = xspf_playlist_load,
+    .plc_write = xspf_playlist_save,
 };
 
-static void init(void)
+static void xspf_init(void)
 {
     playlist_container_register(&plc_xspf);
 }
 
-static void cleanup(void)
+static void xspf_cleanup(void)
 {
     playlist_container_unregister(&plc_xspf);
 }
 
-DECLARE_PLUGIN(xspf, init, cleanup, NULL, NULL, NULL, NULL, NULL, NULL);
+DECLARE_PLUGIN(xspf, xspf_init, xspf_cleanup, NULL, NULL, NULL, NULL, NULL, NULL);