Mercurial > audlegacy-plugins
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 <i>SID-specific</i> Tuplez fields go here. <b>:D</b></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"> < </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"> > </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);