# HG changeset patch # User Matti Hamalainen # Date 1189223888 -10800 # Node ID 62e89e392227d3c2c432625c7f4fcc70a3d51d85 # Parent 81ae3fcc9673250d5d767fdc53a8757a13a81fdd# Parent e1985da23d28cadb4f5a325a40d6e67bb909c247 Branch merge. diff -r 81ae3fcc9673 -r 62e89e392227 po/de.po --- a/po/de.po Fri Sep 07 12:48:27 2007 +0300 +++ b/po/de.po Sat Sep 08 06:58:08 2007 +0300 @@ -3,7 +3,7 @@ "Project-Id-Version: de\n" "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" "POT-Creation-Date: 2007-09-05 00:28+0200\n" -"PO-Revision-Date: 2007-09-05 00:24+0100\n" +"PO-Revision-Date: 2007-09-08 00:43+0100\n" "Last-Translator: Michael Färber <0102@gmx.at>\n" "Language-Team: german <0102@gmx.at>\n" "MIME-Version: 1.0\n" @@ -29,27 +29,55 @@ msgid "About MP4 AAC player plugin" msgstr "Ãœber MP4-AAC-Player-Plugin" -#: src/aac/src/libmp4.c:298 src/adplug/adplug-xmms.cc:185 -#: src/adplug/adplug-xmms.cc:268 src/adplug/adplug-xmms.cc:529 -#: src/alac/plugin.c:88 src/arts/arts.c:26 src/arts/configure.c:90 +#: src/aac/src/libmp4.c:298 +#: src/adplug/adplug-xmms.cc:185 +#: src/adplug/adplug-xmms.cc:268 +#: src/adplug/adplug-xmms.cc:529 +#: src/alac/plugin.c:88 +#: src/arts/arts.c:26 +#: src/arts/configure.c:90 #: src/audiocompress/audacious-glue.c:106 -#: 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: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 -#: src/musepack/libmpc.cxx:231 src/null/null.c:67 src/null/null.c:110 -#: src/OSS4/about.c:59 src/OSS/about.c:54 src/paranormal/plugin.c:288 -#: src/rovascope/plugin.c:294 src/scrobbler/gtkstuff.c:24 -#: src/statusicon/si_ui.c:577 src/stereo_plugin/stereo.c:56 -#: src/stereo_plugin/stereo.c:119 src/sun/about.c:38 src/sun/configure.c:559 -#: src/timidity/src/interface.c:224 src/timidity/src/xmms-timidity.c:136 -#: src/tonegen/tonegen.c:62 src/tta/libtta.c:171 src/tta/libtta.c:285 -#: src/tta/libtta.c:420 src/vorbis/fileinfo.c:212 src/vorbis/vorbis.c:880 -#: src/vtx/about.c:31 src/vtx/info.c:43 src/wavpack/ui.cxx:56 -#: src/wavpack/ui.cxx:554 src/wav/wav-sndfile.c:566 +#: 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: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 +#: src/musepack/libmpc.cxx:231 +#: src/null/null.c:67 +#: src/null/null.c:110 +#: src/OSS4/about.c:59 +#: src/OSS/about.c:54 +#: src/paranormal/plugin.c:288 +#: src/rovascope/plugin.c:294 +#: src/scrobbler/gtkstuff.c:24 +#: src/statusicon/si_ui.c:577 +#: src/stereo_plugin/stereo.c:56 +#: src/stereo_plugin/stereo.c:119 +#: src/sun/about.c:38 +#: src/sun/configure.c:559 +#: src/timidity/src/interface.c:224 +#: src/timidity/src/xmms-timidity.c:136 +#: src/tonegen/tonegen.c:62 +#: src/tta/libtta.c:171 +#: src/tta/libtta.c:285 +#: src/tta/libtta.c:420 +#: src/vorbis/fileinfo.c:212 +#: src/vorbis/vorbis.c:880 +#: src/vtx/about.c:31 +#: src/vtx/info.c:43 +#: src/wavpack/ui.cxx:56 +#: src/wavpack/ui.cxx:554 +#: src/wav/wav-sndfile.c:566 msgid "Ok" msgstr "OK" @@ -65,29 +93,48 @@ "This plugin is released under the terms and conditions of the GNU LGPL.\n" "See http://www.gnu.org/licenses/lgpl.html for details.\n" "\n" -"This plugin uses the AdPlug library, which is copyright (C) Simon Peter, et " -"al.\n" +"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 \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" msgstr "AdPlug :: Konfiguration" -#: src/adplug/adplug-xmms.cc:278 src/alarm/interface.c:1400 -#: src/alsa/configure.c:411 src/arts/configure.c:91 -#: 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: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 +#: src/adplug/adplug-xmms.cc:278 +#: src/alarm/interface.c:1400 +#: src/alsa/configure.c:411 +#: src/arts/configure.c:91 +#: 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: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" msgstr "Abbrechen" -#: src/adplug/adplug-xmms.cc:294 src/console/Audacious_Config.cxx:146 -#: src/madplug/configure.c:191 src/modplug/gui/interface.cxx:325 +#: src/adplug/adplug-xmms.cc:294 +#: src/console/Audacious_Config.cxx:146 +#: src/madplug/configure.c:191 +#: src/modplug/gui/interface.cxx:325 #: src/modplug/gui/interface.cxx:833 msgid "General" msgstr "Allgemein" @@ -96,7 +143,8 @@ msgid "Sound quality" msgstr "Sound-Qualität" -#: src/adplug/adplug-xmms.cc:311 src/modplug/gui/interface.cxx:151 +#: src/adplug/adplug-xmms.cc:311 +#: src/modplug/gui/interface.cxx:151 msgid "Resolution" msgstr "Auflösung" @@ -108,36 +156,39 @@ msgid "16bit" msgstr "16 Bit" -#: src/adplug/adplug-xmms.cc:326 src/modplug/gui/interface.cxx:181 +#: src/adplug/adplug-xmms.cc:326 +#: src/modplug/gui/interface.cxx:181 #: src/timidity/src/interface.c:150 msgid "Channels" msgstr "Kanäle" -#: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:899 -#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:280 +#: src/adplug/adplug-xmms.cc:328 +#: src/filewriter/mp3.c:899 +#: 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:176 -#: src/sid/xs_interface.c:287 src/timidity/src/interface.c:175 +#: src/adplug/adplug-xmms.cc:333 +#: src/filewriter/mp3.c:894 +#: 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" #: src/adplug/adplug-xmms.cc:337 -msgid "" -"Setting stereo is not recommended, unless you need to. This won't add any " -"stereo effects to the sound - OPL2 is just mono - but eats up more CPU power!" -msgstr "" -"Vom Gebrauch von Stereo wird abgeraten, da es dem Klang keine Stereo-Effekte " -"hinzufügt - OPL2 ist nur Mono - aber mehr Rechenleistung benötigt!" +msgid "Setting stereo is not recommended, unless you need to. This won't add any stereo effects to the sound - OPL2 is just mono - but eats up more CPU power!" +msgstr "Vom Gebrauch von Stereo wird abgeraten, da es dem Klang keine Stereo-Effekte hinzufügt - OPL2 ist nur Mono - aber mehr Rechenleistung benötigt!" #: src/adplug/adplug-xmms.cc:345 msgid "Frequency" msgstr "Frequenz" -#: src/adplug/adplug-xmms.cc:381 src/adplug/adplug-xmms.cc:585 +#: src/adplug/adplug-xmms.cc:381 +#: src/adplug/adplug-xmms.cc:585 #: src/console/Audacious_Config.cxx:148 msgid "Playback" msgstr "Wiedergabe" @@ -147,10 +198,7 @@ msgstr "Liedende ermitteln" #: src/adplug/adplug-xmms.cc:389 -msgid "" -"If enabled, XMMS will detect a song's ending, stop it and advance in the " -"playlist. If disabled, XMMS won't take notice of a song's ending and loop it " -"all over again and again." +msgid "If enabled, XMMS will detect a song's ending, stop it and advance in the playlist. If disabled, XMMS won't take notice of a song's ending and loop it all over again and again." msgstr "" #: src/adplug/adplug-xmms.cc:400 @@ -170,20 +218,15 @@ msgstr "Erweiterung" #: src/adplug/adplug-xmms.cc:450 -msgid "" -"Selected file types will be recognized and played back by this plugin. " -"Deselected types will be ignored to make room for other plugins to play " -"these files." -msgstr "" -"Ausgewählte Dateitypen werden von diesem Plugin erkannt und abgespielt. " -"Deaktivierte Typen werden ignoriert, dass andere Plugins diese Dateien " -"abspielen können." +msgid "Selected file types will be recognized and played back by this plugin. Deselected types will be ignored to make room for other plugins to play these files." +msgstr "Ausgewählte Dateitypen werden von diesem Plugin erkannt und abgespielt. Deaktivierte Typen werden ignoriert, dass andere Plugins diese Dateien abspielen können." #: src/adplug/adplug-xmms.cc:536 msgid "AdPlug :: File Info" msgstr "AdPlug :: Dateiinformation" -#: src/adplug/adplug-xmms.cc:558 src/amidi-plug/i_configure-fluidsynth.c:448 +#: src/adplug/adplug-xmms.cc:558 +#: src/amidi-plug/i_configure-fluidsynth.c:448 msgid "Filename" msgstr "Dateiname" @@ -251,8 +294,10 @@ msgid "Timer: " msgstr "Timer: " -#: src/adplug/adplug-xmms.cc:736 src/console/Audacious_Config.cxx:226 -#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:333 +#: 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" @@ -288,8 +333,10 @@ "http://www.snika.uklinux.net/xmms-alarm/" msgstr "" -#: src/alarm/interface.c:73 src/lirc/about.c:116 -#: src/modplug/gui/interface.cxx:946 src/sid/xmms-sid.glade:3493 +#: src/alarm/interface.c:73 +#: src/lirc/about.c:116 +#: src/modplug/gui/interface.cxx:946 +#: src/sid/xmms-sid.glade:3493 #: src/sid/xs_interface.c:1671 msgid "Close" msgstr "Schließen" @@ -302,11 +349,17 @@ msgid "This is your wakeup call." msgstr "" -#: 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: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:2916 +#: 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: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:2916 #: src/sid/xs_interface.c:1185 msgid "OK" msgstr "OK" @@ -325,10 +378,7 @@ #: src/alarm/interface.c:215 msgid "" -"For safety reasons the \"quiet\" time must be at least 65 seconds longer " -"than the fading time, it must also be more than 10 seconds. This basically " -"means that there is a bug in the code and until I find a way of really " -"fixing it this message will appear :)\n" +"For safety reasons the \"quiet\" time must be at least 65 seconds longer than the fading time, it must also be more than 10 seconds. This basically means that there is a bug in the code and until I find a way of really fixing it this message will appear :)\n" "\n" "Your fading settings have NOT been saved\n" "\n" @@ -344,7 +394,8 @@ msgid "Alarm Settings" msgstr "Alarm-Einstellungen" -#: src/alarm/interface.c:406 src/alarm/interface.c:578 +#: src/alarm/interface.c:406 +#: src/alarm/interface.c:578 #: src/alarm/interface.c:950 msgid "Time" msgstr "Zeit" @@ -373,10 +424,15 @@ msgid "Choose the days for the alarm to come on" msgstr "Tage wählen, an denen der Alarm ausgelöst werden soll" -#: src/alarm/interface.c:614 src/alarm/interface.c:662 -#: src/alarm/interface.c:710 src/alarm/interface.c:758 -#: src/alarm/interface.c:806 src/alarm/interface.c:854 -#: src/alarm/interface.c:902 src/OSS4/configure.c:138 src/OSS/configure.c:170 +#: src/alarm/interface.c:614 +#: src/alarm/interface.c:662 +#: src/alarm/interface.c:710 +#: src/alarm/interface.c:758 +#: src/alarm/interface.c:806 +#: src/alarm/interface.c:854 +#: src/alarm/interface.c:902 +#: src/OSS4/configure.c:138 +#: src/OSS/configure.c:170 msgid "Default" msgstr "Standard" @@ -420,14 +476,18 @@ msgid "Fading" msgstr "Ãœbergang" -#: 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/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 "Sekunden" -#: src/alarm/interface.c:1097 src/alarm/interface.c:1213 +#: src/alarm/interface.c:1097 +#: src/alarm/interface.c:1213 #: src/modplug/gui/interface.cxx:635 msgid "Volume" msgstr "Lautstärke" @@ -444,7 +504,8 @@ msgid "Start at" msgstr "Beginnen bei" -#: src/alarm/interface.c:1160 src/alarm/interface.c:1204 +#: src/alarm/interface.c:1160 +#: src/alarm/interface.c:1204 msgid "%" msgstr "%" @@ -468,7 +529,8 @@ msgid "Browse..." msgstr "Suchen..." -#: src/alarm/interface.c:1297 src/alarm/interface.c:1462 +#: src/alarm/interface.c:1297 +#: src/alarm/interface.c:1462 msgid "Reminder" msgstr "Erinnerung" @@ -476,7 +538,8 @@ msgid "Use reminder" msgstr "Erinnerung benützen" -#: src/alarm/interface.c:1330 src/sndstretch/sndstretch_xmms.c:381 +#: src/alarm/interface.c:1330 +#: src/sndstretch/sndstretch_xmms.c:381 msgid "Options" msgstr "Optionen" @@ -589,14 +652,16 @@ msgid "ALSA Driver configuration" msgstr "ALSA-Treiber-Konfiguration" -#: src/alsa/configure.c:285 src/OSS4/configure.c:186 src/OSS/configure.c:218 +#: src/alsa/configure.c:285 +#: src/OSS4/configure.c:186 +#: src/OSS/configure.c:218 #: src/sun/configure.c:183 msgid "Audio device:" msgstr "Audiogerät:" #: src/alsa/configure.c:299 msgid "Mixer:" -msgstr "" +msgstr "Mixer:" #: src/alsa/configure.c:307 msgid "Use software volume control" @@ -604,11 +669,13 @@ #: src/alsa/configure.c:317 msgid "Mixer card:" -msgstr "" - -#: src/alsa/configure.c:330 src/OSS/configure.c:261 src/sun/configure.c:220 +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" @@ -627,71 +694,62 @@ msgid "Period time (ms):" msgstr "Puffergrösse (ms):" -#: src/alsa/configure.c:398 src/amidi-plug/i_configure-ap.c:287 +#: src/alsa/configure.c:398 +#: src/amidi-plug/i_configure-ap.c:287 msgid "Advanced settings" msgstr "Erweiterte Einstellungen" #: 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 "" -"This backend sends MIDI events to a group of user-chosen ALSA sequencer " -"ports. The ALSA sequencer interface is very versatile, it can provide ports " -"for audio cards hardware synthesizers (i.e. emu10k1) but also for software " -"synths, external devices, etc.\n" -"This backend does not produce audio, MIDI events are handled directly from " -"devices/programs behind the ALSA ports; in example, MIDI events sent to the " -"hardware synth will be directly played.\n" +"This backend sends MIDI events to a group of user-chosen ALSA sequencer ports. The ALSA sequencer interface is very versatile, it can provide ports for audio cards hardware synthesizers (i.e. emu10k1) but also for software synths, external devices, etc.\n" +"This backend does not produce audio, MIDI events are handled directly from devices/programs behind the ALSA ports; in example, MIDI events sent to the hardware synth will be directly played.\n" "Backend written by Giacomo Lozito." msgstr "" #: 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 "" -"This backend does not produce audio at all. It is mostly useful for analysis " -"and testing purposes, as it can log all MIDI events to standard output, " -"standard error or file.\n" +"This backend does not produce audio at all. It is mostly useful for analysis and testing purposes, as it can log all MIDI events to standard output, standard error or file.\n" "Backend written by Giacomo Lozito." msgstr "" #: 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 "" -"This backend produces audio by sending MIDI events to FluidSynth, a real-" -"time software synthesizer based on the SoundFont2 specification (www." -"fluidsynth.org).\n" -"Produced audio can be manipulated via player effect plugins and is processed " -"by chosen ouput plugin.\n" +"This backend produces audio by sending MIDI events to FluidSynth, a real-time software synthesizer based on the SoundFont2 specification (www.fluidsynth.org).\n" +"Produced audio can be manipulated via player effect plugins and is processed by chosen ouput plugin.\n" "Backend written by Giacomo Lozito." msgstr "" #: 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: " @@ -703,37 +761,29 @@ #: src/amidi-plug/i_configure-alsa.c:408 msgid "Mixer settings" -msgstr "" +msgstr "Mixer-Einstellungen" #: src/amidi-plug/i_configure-alsa.c:421 msgid "" "* Select ALSA output ports *\n" -"MIDI events will be sent to the ports selected here. In example, if your " -"audio card provides a hardware synth and you want to play MIDI with it, " -"you'll probably want to select the wavetable synthesizer ports." +"MIDI events will be sent to the ports selected here. In example, if your audio card provides a hardware synth and you want to play MIDI with it, you'll probably want to select the wavetable synthesizer ports." msgstr "" #: src/amidi-plug/i_configure-alsa.c:426 msgid "" "* Select ALSA mixer card *\n" -"The ALSA backend outputs directly through ALSA, it doesn't use effect and " -"ouput plugins from the player. During playback, the player volumeslider will " -"manipulate the mixer control you select here. If you're using wavetable " -"synthesizer ports, you'll probably want to select the Synth control here." +"The ALSA backend outputs directly through ALSA, it doesn't use effect and ouput plugins from the player. During playback, the player volumeslider will manipulate the mixer control you select here. If you're using wavetable synthesizer ports, you'll probably want to select the Synth control here." msgstr "" #: src/amidi-plug/i_configure-alsa.c:433 msgid "" "* Select ALSA mixer control *\n" -"The ALSA backend outputs directly through ALSA, it doesn't use effect and " -"ouput plugins from the player. During playback, the player volume slider " -"will manipulate the mixer control you select here. If you're using wavetable " -"synthesizer ports, you'll probably want to select the Synth control here." +"The ALSA backend outputs directly through ALSA, it doesn't use effect and ouput plugins from the player. During playback, the player volume slider will manipulate the mixer control you select here. If you're using wavetable synthesizer ports, you'll probably want to select the Synth control here." msgstr "" #: 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 "" @@ -743,27 +793,27 @@ #: 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: " @@ -784,63 +834,40 @@ #: src/amidi-plug/i_configure-ap.c:320 msgid "" "* Backend selection *\n" -"AMIDI-Plug works with backends, in a modular fashion; here you should select " -"your backend; that is, the way MIDI events are going to be handled and " -"played.\n" -"If you have a hardware synthesizer on your audio card, and ALSA supports it, " -"you'll want to use the ALSA backend. It can also be used with anything that " -"provides an interface to the ALSA sequencer, including software synths or " -"external devices.\n" -"If you want to rely on a software synthesizer and/or want to pipe audio into " -"effect and output plugins of the player you'll want to use the good " -"FluidSynth backend.\n" +"AMIDI-Plug works with backends, in a modular fashion; here you should select your backend; that is, the way MIDI events are going to be handled and played.\n" +"If you have a hardware synthesizer on your audio card, and ALSA supports it, you'll want to use the ALSA backend. It can also be used with anything that provides an interface to the ALSA sequencer, including software synths or external devices.\n" +"If you want to rely on a software synthesizer and/or want to pipe audio into effect and output plugins of the player you'll want to use the good FluidSynth backend.\n" "Press the info button to read specific information about each backend." msgstr "" #: src/amidi-plug/i_configure-ap.c:331 msgid "" "* Transpose function *\n" -"This option allows you to play the midi file transposed in a different key, " -"by shifting of the desired number of semitones all its notes (excepting " -"those on midi channel 10, reserved for percussions). Expecially useful if " -"you wish to sing or play along with another instrument." +"This option allows you to play the midi file transposed in a different key, by shifting of the desired number of semitones all its notes (excepting those on midi channel 10, reserved for percussions). Expecially useful if you wish to sing or play along with another instrument." msgstr "" #: src/amidi-plug/i_configure-ap.c:337 msgid "" "* Drumshift function *\n" -"This option allows you to shift notes on midi channel 10 (the standard " -"percussions channel) of the desired number of semitones. This results in " -"different drumset and percussions being used during midi playback, so if you " -"wish to enhance (or reduce, or alter) percussion sounds, try to play with " -"this value." +"This option allows you to shift notes on midi channel 10 (the standard percussions channel) of the desired number of semitones. This results in different drumset and percussions being used during midi playback, so if you wish to enhance (or reduce, or alter) percussion sounds, try to play with this value." msgstr "" #: src/amidi-plug/i_configure-ap.c:344 msgid "" "* Pre-calculate MIDI length *\n" -"If this option is enabled, AMIDI-Plug will calculate the MIDI file length as " -"soon as the player requests it, instead of doing that only when the MIDI " -"file is being played. In example, MIDI length will be calculated straight " -"after adding MIDI files in a playlist. Disable this option if you want " -"faster playlist loading (when a lot of MIDI files are added), enable it to " -"display more information in the playlist straight after loading." +"If this option is enabled, AMIDI-Plug will calculate the MIDI file length as soon as the player requests it, instead of doing that only when the MIDI file is being played. In example, MIDI length will be calculated straight after adding MIDI files in a playlist. Disable this option if you want faster playlist loading (when a lot of MIDI files are added), enable it to display more information in the playlist straight after loading." msgstr "" #: src/amidi-plug/i_configure-ap.c:353 msgid "" "* Extract comments from MIDI files *\n" -"Some MIDI files contain text comments (author, copyright, instrument notes, " -"etc.). If this option is enabled, AMIDI-Plug will extract and display " -"comments (if available) in the file information dialog." +"Some MIDI files contain text comments (author, copyright, instrument notes, etc.). If this option is enabled, AMIDI-Plug will extract and display comments (if available) in the file information dialog." msgstr "" #: src/amidi-plug/i_configure-ap.c:358 msgid "" "* Extract lyrics from MIDI files *\n" -"Some MIDI files contain song lyrics. If this option is enabled, AMIDI-Plug " -"will extract and display song lyrics (if available) in the file information " -"dialog." +"Some MIDI files contain song lyrics. If this option is enabled, AMIDI-Plug will extract and display song lyrics (if available) in the file information dialog." msgstr "" #: src/amidi-plug/i_configure-ap.c:375 @@ -863,11 +890,11 @@ #: 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" @@ -942,7 +969,7 @@ #: 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" @@ -950,7 +977,7 @@ #: 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)" @@ -958,15 +985,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" @@ -1057,69 +1084,45 @@ #: src/amidi-plug/i_configure-fluidsynth.c:807 msgid "" "* 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)." +"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 "" #: src/amidi-plug/i_configure-fluidsynth.c:812 msgid "" "* Load SoundFont on player start *\n" -"Depending on your system speed, SoundFont loading in FluidSynth will require " -"up to a few seconds. This is a one-time task (the soundfont will stay loaded " -"until it is changed or the backend is unloaded) that can be done at player " -"start, or before the first MIDI file is played (the latter is a better " -"choice if you don't use your player to listen MIDI files only)." +"Depending on your system speed, SoundFont loading in FluidSynth will require up to a few seconds. This is a one-time task (the soundfont will stay loaded until it is changed or the backend is unloaded) that can be done at player start, or before the first MIDI file is played (the latter is a better choice if you don't use your player to listen MIDI files only)." msgstr "" #: src/amidi-plug/i_configure-fluidsynth.c:820 msgid "" "* Load SoundFont on first midifile play *\n" -"Depending on your system speed, SoundFont loading in FluidSynth will require " -"up to a few seconds. This is a one-time task (the soundfont will stay loaded " -"until it is changed or the backend is unloaded) that can be done at player " -"start, or before the first MIDI file is played (the latter is a better " -"choice if you don't use your player to listen MIDI files only)." +"Depending on your system speed, SoundFont loading in FluidSynth will require up to a few seconds. This is a one-time task (the soundfont will stay loaded until it is changed or the backend is unloaded) that can be done at player start, or before the first MIDI file is played (the latter is a better choice if you don't use your player to listen MIDI files only)." msgstr "" #: src/amidi-plug/i_configure-fluidsynth.c:828 msgid "" "* Synthesizer gain *\n" -"From FluidSynth docs: the gain is applied to the final or master output of " -"the synthesizer; it is set to a low value by default to avoid the saturation " -"of the output when random MIDI files are played." +"From FluidSynth docs: the gain is applied to the final or master output of the synthesizer; it is set to a low value by default to avoid the saturation of the output when random MIDI files are played." msgstr "" #: src/amidi-plug/i_configure-fluidsynth.c:833 msgid "" "* Synthesizer polyphony *\n" -"From FluidSynth docs: the polyphony defines how many voices can be played in " -"parallel; the number of voices is not necessarily equivalent to the number " -"of notes played simultaneously; indeed, when a note is struck on a specific " -"MIDI channel, the preset on that channel may create several voices, for " -"example, one for the left audio channel and one for the right audio " -"channels; the number of voices activated depends on the number of instrument " -"zones that fall in the correspond to the velocity and key of the played note." +"From FluidSynth docs: the polyphony defines how many voices can be played in parallel; the number of voices is not necessarily equivalent to the number of notes played simultaneously; indeed, when a note is struck on a specific MIDI channel, the preset on that channel may create several voices, for example, one for the left audio channel and one for the right audio channels; the number of voices activated depends on the number of instrument zones that fall in the correspond to the velocity and key of the played note." msgstr "" #: src/amidi-plug/i_configure-fluidsynth.c:843 #: src/amidi-plug/i_configure-fluidsynth.c:849 msgid "" "* Synthesizer reverb *\n" -"From FluidSynth docs: when set to \"yes\" the reverb effects module is " -"activated; note that when the reverb module is active, the amount of signal " -"sent to the reverb module depends on the \"reverb send\" generator defined " -"in the SoundFont." +"From FluidSynth docs: when set to \"yes\" the reverb effects module is activated; note that when the reverb module is active, the amount of signal sent to the reverb module depends on the \"reverb send\" generator defined in the SoundFont." msgstr "" #: src/amidi-plug/i_configure-fluidsynth.c:855 #: src/amidi-plug/i_configure-fluidsynth.c:861 msgid "" "* Synthesizer chorus *\n" -"From FluidSynth docs: when set to \"yes\" the chorus effects module is " -"activated; note that when the chorus module is active, the amount of signal " -"sent to the chorus module depends on the \"chorus send\" generator defined " -"in the SoundFont." +"From FluidSynth docs: when set to \"yes\" the chorus effects module is activated; note that when the chorus module is active, the amount of signal sent to the chorus module depends on the \"chorus send\" generator defined in the SoundFont." msgstr "" #: src/amidi-plug/i_configure-fluidsynth.c:867 @@ -1128,10 +1131,8 @@ #: src/amidi-plug/i_configure-fluidsynth.c:885 msgid "" "* Synthesizer samplerate *\n" -"The sample rate of the audio generated by the synthesizer. You can also " -"specify a custom value in the interval 22050Hz-96000Hz.\n" -"NOTE: the default buffer parameters are tuned for 44100Hz; changing the " -"sample rate may require buffer params tuning to obtain good sound quality." +"The sample rate of the audio generated by the synthesizer. You can also specify a custom value in the interval 22050Hz-96000Hz.\n" +"NOTE: the default buffer parameters are tuned for 44100Hz; changing the sample rate may require buffer params tuning to obtain good sound quality." msgstr "" #: src/amidi-plug/i_configure-fluidsynth.c:891 @@ -1143,10 +1144,7 @@ #: src/amidi-plug/i_configure-fluidsynth.c:894 msgid "" "* FluidSynth backend buffer *\n" -"If you notice skips or slowness during song playback and your system is not " -"performing any cpu-intensive task (except FluidSynth itself), you may want " -"to adjust the buffer parameters. Try to move the \"handy buffer tuner\" some " -"steps to the right until playback is fluid again." +"If you notice skips or slowness during song playback and your system is not performing any cpu-intensive task (except FluidSynth itself), you may want to adjust the buffer parameters. Try to move the \"handy buffer tuner\" some steps to the right until playback is fluid again." msgstr "" #: src/amidi-plug/i_configure-fluidsynth.c:900 @@ -1154,16 +1152,10 @@ #: src/amidi-plug/i_configure-fluidsynth.c:922 msgid "" "* FluidSynth backend buffer *\n" -"It is a good idea to make buffer adjustments with the \"handy buffer tuner\" " -"before resorting to manual editing of buffer parameters.\n" -"However, if you want to fine-tune something and want to know what you're " -"doing, you can understand how these parameters work by reading the backend " -"code (b-fluidsynth.c). In short words, every amount of time (proportional to " -"buffer_SIZE and sample rate), right before gathering samples, the buffer is " -"resized as follows:\n" +"It is a good idea to make buffer adjustments with the \"handy buffer tuner\" before resorting to manual editing of buffer parameters.\n" +"However, if you want to fine-tune something and want to know what you're doing, you can understand how these parameters work by reading the backend code (b-fluidsynth.c). In short words, every amount of time (proportional to buffer_SIZE and sample rate), right before gathering samples, the buffer is resized as follows:\n" "buffer_SIZE + buffer_MARGIN + extramargin\n" -"where extramargin is a value computed as number_of_seconds_of_playback / " -"margin_INCREMENT ." +"where extramargin is a value computed as number_of_seconds_of_playback / margin_INCREMENT ." msgstr "" #: src/amidi-plug/i_configure-fluidsynth.c:937 @@ -1178,11 +1170,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 "" @@ -1190,8 +1182,10 @@ "backend" msgstr "" -#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3315 -#: src/sid/xs_interface.c:1615 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 "Name:" @@ -1201,7 +1195,7 @@ #: src/amidi-plug/i_fileinfo.c:205 msgid "Format:" -msgstr "" +msgstr "Format:" #: src/amidi-plug/i_fileinfo.c:208 msgid "Length (msec):" @@ -1209,7 +1203,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" @@ -1252,6 +1246,8 @@ "\n" "AMIDI-Plug " msgstr "" +"\n" +"AMIDI-Plug " #: src/amidi-plug/i_utils.c:69 msgid "" @@ -1307,10 +1303,7 @@ msgstr "Titeländerung" #: src/aosd/aosd_trigger.c:79 -msgid "" -"Triggers OSD when, during playback, the song title changes but the filename " -"is the same. This is mostly useful to display title changes in internet " -"streams." +msgid "Triggers OSD when, during playback, the song title changes but the filename is the same. This is mostly useful to display title changes in internet streams." msgstr "" #: src/aosd/aosd_trigger.c:85 @@ -1432,9 +1425,12 @@ msgid "Skin file:" msgstr "Skin-Datei:" -#: 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/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 "Suchen" @@ -1454,8 +1450,7 @@ #: src/aosd/aosd_ui.c:805 msgid "" "Composite manager not detected;\n" -"unless you know that you have one running, please activate a composite " -"manager otherwise the OSD won't work properly" +"unless you know that you have one running, please activate a composite manager otherwise the OSD won't work properly" msgstr "" #: src/aosd/aosd_ui.c:813 @@ -1515,8 +1510,10 @@ msgid "Trigger" msgstr "Auslöser" -#: src/aosd/aosd_ui.c:1073 src/cdaudio-ng/configure.c:87 -#: src/sid/xmms-sid.glade:2876 src/sid/xs_interface.c:1171 +#: src/aosd/aosd_ui.c:1073 +#: src/cdaudio-ng/configure.c:87 +#: src/sid/xmms-sid.glade:2876 +#: src/sid/xs_interface.c:1171 msgid "Misc" msgstr "Verschiedenes" @@ -1559,18 +1556,27 @@ msgid "aRts Driver configuration" msgstr "aRts-Treiber-Konfiguration" -#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:232 -#: src/OSS/configure.c:305 src/sun/configure.c:259 +#: src/arts/configure.c:61 +#: src/esd/configure.c:171 +#: src/OSS4/configure.c:232 +#: src/OSS/configure.c:305 +#: src/sun/configure.c:259 msgid "Buffering:" msgstr "Zwischenspeichern:" -#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:245 -#: src/OSS/configure.c:318 src/sun/configure.c:272 +#: src/arts/configure.c:73 +#: src/esd/configure.c:184 +#: src/OSS4/configure.c:245 +#: src/OSS/configure.c:318 +#: src/sun/configure.c:272 msgid "Buffer size (ms):" msgstr "Puffergrösse (ms):" -#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:270 -#: src/OSS/configure.c:343 src/sun/configure.c:304 +#: src/arts/configure.c:83 +#: src/esd/configure.c:209 +#: src/OSS4/configure.c:270 +#: src/OSS/configure.c:343 +#: src/sun/configure.c:304 msgid "Buffering" msgstr "Zwischenspeichern" @@ -1593,10 +1599,7 @@ msgstr "Ãœber AudioCompress" #: src/audiocompress/audacious-glue.c:324 -msgid "" -"If checked, when the sound peaks the volume will be cut instantly; " -"otherwise, it will ramp down just in time for the peak (but some minor " -"clipping may still occur)." +msgid "If checked, when the sound peaks the volume will be cut instantly; otherwise, it will ramp down just in time for the peak (but some minor clipping may still occur)." msgstr "" #: src/audiocompress/audacious-glue.c:328 @@ -1608,9 +1611,7 @@ msgstr "" #: src/audiocompress/audacious-glue.c:332 -msgid "" -"The target audio level for ramping up. Lowering the value gives a bit more " -"dynamic range for peaks, but will make the overall sound quieter." +msgid "The target audio level for ramping up. Lowering the value gives a bit more dynamic range for peaks, but will make the overall sound quieter." msgstr "" #: src/audiocompress/audacious-glue.c:335 @@ -1650,21 +1651,21 @@ msgstr " Chronik " #: src/audiocompress/audacious-glue.c:521 -msgid "" -"How long of a history to maintain. A higher number will make the volume " -"changes less responsive." +msgid "How long of a history to maintain. A higher number will make the volume changes less responsive." msgstr "" #: src/audiocompress/audacious-glue.c:532 msgid "Load default values" -msgstr "" +msgstr "Standard-Werte laden" #: src/audiocompress/audacious-glue.c:537 msgid "Audio values" msgstr "Audiowerte" -#: src/audiocompress/audacious-glue.c:566 src/echo_plugin/gui.c:153 -#: src/modplug/gui/interface.cxx:733 src/stereo_plugin/stereo.c:135 +#: src/audiocompress/audacious-glue.c:566 +#: src/echo_plugin/gui.c:153 +#: src/modplug/gui/interface.cxx:733 +#: src/stereo_plugin/stereo.c:135 msgid "Apply" msgstr "Ãœbernehmen" @@ -1686,9 +1687,10 @@ #: src/blur_scope/config.c:73 msgid "Blur Scope: Color selection" -msgstr "" - -#: src/blur_scope/config.c:83 src/jack/configure.c:107 +msgstr "Blur Scope: Farbauswahl" + +#: src/blur_scope/config.c:83 +#: src/jack/configure.c:107 msgid "Options:" msgstr "Optionen:" @@ -1699,8 +1701,7 @@ #: src/cdaudio-ng/cdaudio-ng.c:201 #, c-format msgid "" -"Copyright (c) 2007, by Calin Crisan and The Audacious " -"Team.\n" +"Copyright (c) 2007, by Calin Crisan and The Audacious Team.\n" "\n" "Many thanks to libcdio developers \n" "\tand to libcddb developers .\n" @@ -1772,7 +1773,8 @@ msgid "Bass:" msgstr "Bass:" -#: src/console/Audacious_Config.cxx:167 src/console/Audacious_Config.cxx:178 +#: src/console/Audacious_Config.cxx:167 +#: src/console/Audacious_Config.cxx:178 #: src/console/Audacious_Config.cxx:199 msgid "secs" msgstr "sek" @@ -1785,8 +1787,10 @@ msgid "Default song length:" msgstr "Standard-Liedlänge:" -#: src/console/Audacious_Config.cxx:201 src/modplug/gui/interface.cxx:264 -#: src/sid/xmms-sid.glade:1243 src/sid/xs_interface.c:645 +#: src/console/Audacious_Config.cxx:201 +#: src/modplug/gui/interface.cxx:264 +#: src/sid/xmms-sid.glade:1243 +#: src/sid/xs_interface.c:645 msgid "Resampling" msgstr "Resampling" @@ -1811,12 +1815,8 @@ msgstr "Hall verstärken" #: src/console/Audacious_Config.cxx:264 -msgid "" -"The default song length, expressed in seconds, is used for songs that do not " -"provide length information (i.e. looping tracks)." -msgstr "" -"Die standardmäßige Liedlänge (in Sekunden) wird für Lieder benutzt, die " -"keine Längeninformation beinhalten (z.B. Lieder in der Endlosschleife)." +msgid "The default song length, expressed in seconds, is used for songs that do not provide length information (i.e. looping tracks)." +msgstr "Die standardmäßige Liedlänge (in Sekunden) wird für Lieder benutzt, die keine Längeninformation beinhalten (z.B. Lieder in der Endlosschleife)." #: src/console/Audacious_Driver.cxx:495 msgid "About the Console Music Decoder" @@ -1890,9 +1890,10 @@ msgid "ESD Output Plugin configuration" msgstr "ESD-Ausgabe-Plugin-Konfiguration" -#: src/esd/configure.c:114 src/esd/configure.c:144 +#: src/esd/configure.c:114 +#: src/esd/configure.c:144 msgid "Host:" -msgstr "" +msgstr "Host:" #: src/esd/configure.c:125 msgid "Use remote host" @@ -1910,7 +1911,9 @@ msgid "Server" msgstr "Server" -#: src/esd/configure.c:198 src/OSS4/configure.c:259 src/OSS/configure.c:332 +#: src/esd/configure.c:198 +#: src/OSS4/configure.c:259 +#: src/OSS/configure.c:332 #: src/sun/configure.c:290 msgid "Pre-buffer (percent):" msgstr "" @@ -1985,34 +1988,24 @@ #: src/evdev-plug/ed_internals.c:93 #, c-format -msgid "" -"event-device-plugin: unable to open device file %s , skipping this device; " -"check that the file exists and that you have read permission for it\n" +msgid "event-device-plugin: unable to open device file %s , skipping this device; check that the file exists and that you have read permission for it\n" msgstr "" #: src/evdev-plug/ed_internals.c:102 #, c-format -msgid "" -"event-device-plugin: unable to create a io_channel for device file %s ," -"skipping this device\n" +msgid "event-device-plugin: unable to create a io_channel for device file %s ,skipping this device\n" msgstr "" #: src/evdev-plug/ed_internals.c:339 -msgid "" -"event-device-plugin: unable to open /proc/bus/input/devices , automatic " -"detection of event devices won't work.\n" +msgid "event-device-plugin: unable to open /proc/bus/input/devices , automatic detection of event devices won't work.\n" msgstr "" #: src/evdev-plug/ed_internals.c:348 -msgid "" -"event-device-plugin: unable to open a io_channel for /proc/bus/input/" -"devices , automatic detection of event devices won't work.\n" +msgid "event-device-plugin: unable to open a io_channel for /proc/bus/input/devices , automatic detection of event devices won't work.\n" msgstr "" #: src/evdev-plug/ed_internals.c:358 -msgid "" -"event-device-plugin: an error occurred while reading /proc/bus/input/" -"devices , automatic detection of event devices won't work.\n" +msgid "event-device-plugin: an error occurred while reading /proc/bus/input/devices , automatic detection of event devices won't work.\n" msgstr "" #: src/evdev-plug/ed_internals.c:421 @@ -2020,63 +2013,50 @@ msgid "event-device-plugin: device %s not found in /dev/input , skipping.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:486 src/evdev-plug/ed_internals.c:580 +#: src/evdev-plug/ed_internals.c:486 +#: src/evdev-plug/ed_internals.c:580 #, c-format -msgid "" -"event-device-plugin: unable to load config file %s , default settings will " -"be used.\n" +msgid "event-device-plugin: unable to load config file %s , default settings will be used.\n" msgstr "" #: src/evdev-plug/ed_internals.c:532 #, c-format -msgid "" -"event-device-plugin: incomplete information in config file for device \"%s" -"\" , skipping.\n" -msgstr "" - -#: src/evdev-plug/ed_internals.c:601 src/evdev-plug/ed_internals.c:933 +msgid "event-device-plugin: incomplete information in config file for device \"%s\" , skipping.\n" +msgstr "" + +#: src/evdev-plug/ed_internals.c:601 +#: src/evdev-plug/ed_internals.c:933 #, c-format -msgid "" -"event-device-plugin: configuration, unable to get is_active value for device " -"\"%s\", skipping it.\n" +msgid "event-device-plugin: configuration, unable to get is_active value for device \"%s\", skipping it.\n" msgstr "" #: src/evdev-plug/ed_internals.c:837 #, c-format -msgid "" -"event-device-plugin: unable to access local directory %s , settings will not " -"be saved.\n" +msgid "event-device-plugin: unable to access local directory %s , settings will not be saved.\n" msgstr "" #: src/evdev-plug/ed_internals.c:887 #, c-format -msgid "" -"event-device-plugin: configuration, unable to get filename value for device " -"\"%s\", skipping it.\n" +msgid "event-device-plugin: configuration, unable to get filename value for device \"%s\", skipping it.\n" msgstr "" #: src/evdev-plug/ed_internals.c:903 #, c-format -msgid "" -"event-device-plugin: configuration, unable to get phys value for device \"%s" -"\", skipping it.\n" +msgid "event-device-plugin: configuration, unable to get phys value for device \"%s\", skipping it.\n" msgstr "" #: src/evdev-plug/ed_internals.c:919 #, c-format -msgid "" -"event-device-plugin: configuration, unable to get is_custom value for device " -"\"%s\", skipping it.\n" +msgid "event-device-plugin: configuration, unable to get is_custom value for device \"%s\", skipping it.\n" msgstr "" #: src/evdev-plug/ed_internals.c:943 #, c-format -msgid "" -"event-device-plugin: configuration, unexpected value for device \"%s\", " -"skipping it.\n" -msgstr "" - -#: src/evdev-plug/ed_ui.c:274 src/evdev-plug/ed_ui.c:410 +msgid "event-device-plugin: configuration, unexpected value for device \"%s\", skipping it.\n" +msgstr "" + +#: src/evdev-plug/ed_ui.c:274 +#: src/evdev-plug/ed_ui.c:410 #: src/evdev-plug/ed_ui.c:872 msgid "Information" msgstr "Information" @@ -2087,7 +2067,8 @@ "Ensure that the device has been correctly plugged in." msgstr "" -#: src/evdev-plug/ed_ui.c:318 src/filewriter/filewriter.c:198 +#: src/evdev-plug/ed_ui.c:318 +#: src/filewriter/filewriter.c:198 #: src/madplug/plugin.c:620 msgid "Error" msgstr "Fehler" @@ -2142,7 +2123,8 @@ msgid "Active" msgstr "" -#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:488 +#: src/evdev-plug/ed_ui.c:655 +#: src/sun/configure.c:488 msgid "Status" msgstr "Status" @@ -2173,8 +2155,7 @@ msgid "" "This input event has been already assigned.\n" "\n" -"It's not possible to assign multiple actions to the same input event " -"(although it's possible to assign the same action to multiple events)." +"It's not possible to assign multiple actions to the same input event (although it's possible to assign the same action to multiple events)." msgstr "" #: src/evdev-plug/ed_ui.c:1322 @@ -2244,7 +2225,8 @@ msgid "Output file format:" msgstr "Ausgabedatei-Format:" -#: src/filewriter/filewriter.c:544 src/ladspa/ladspa.c:962 +#: src/filewriter/filewriter.c:544 +#: src/ladspa/ladspa.c:962 msgid "Configure" msgstr "Konfigurieren" @@ -2281,12 +2263,8 @@ msgstr "Dateiendung nicht entfernen" #: 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." +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:637 msgid "Prepend track number to filename" @@ -2316,7 +2294,8 @@ msgid "Output Samplerate:" msgstr "Ausgabe-Abtastfrequenz:" -#: src/filewriter/mp3.c:743 src/filewriter/mp3.c:884 +#: src/filewriter/mp3.c:743 +#: src/filewriter/mp3.c:884 msgid "Auto" msgstr "Automatisch" @@ -2364,7 +2343,8 @@ msgid "Adds 16 bit checksum to every frame" msgstr "16-Bit-Prüfsumme zu jedem Frame hinzufügen" -#: src/filewriter/mp3.c:981 src/filewriter/vorbis.c:271 +#: src/filewriter/mp3.c:981 +#: src/filewriter/vorbis.c:271 #: src/modplug/gui/interface.cxx:310 msgid "Quality" msgstr "Qualität" @@ -2402,12 +2382,8 @@ msgstr "Minimale Bitrate erzwingen" #: src/filewriter/mp3.c:1128 -msgid "" -"For use with players that do not support low bitrate mp3 (Apex AD600-A DVD/" -"mp3 player)" -msgstr "" -"Zur Benutzung mit Playern, die kein MP3 mit niedriger Bitrate unterstützen " -"(Apex AD600-A DVD/MP3 player)" +msgid "For use with players that do not support low bitrate mp3 (Apex AD600-A DVD/mp3 player)" +msgstr "Zur Benutzung mit Playern, die kein MP3 mit niedriger Bitrate unterstützen (Apex AD600-A DVD/MP3 player)" #: src/filewriter/mp3.c:1141 msgid "ABR Options:" @@ -2545,7 +2521,8 @@ "Chris Morgan \n" msgstr "" -#: src/jack/jack.c:118 src/wma/wma.c:156 +#: src/jack/jack.c:118 +#: src/wma/wma.c:156 msgid " Close " msgstr " Schliessen" @@ -2568,7 +2545,8 @@ msgid "This LADSPA plugin has no user controls" msgstr "" -#: src/ladspa/ladspa.c:769 src/ladspa/ladspa.c:855 +#: src/ladspa/ladspa.c:769 +#: src/ladspa/ladspa.c:855 msgid "Name" msgstr "Name" @@ -2697,12 +2675,15 @@ msgid "Preamp (dB):" msgstr "" -#: src/madplug/configure.c:233 src/musepack/libmpc.cxx:223 -#: src/vorbis/configure.c:221 src/wavpack/ui.cxx:545 +#: src/madplug/configure.c:233 +#: src/musepack/libmpc.cxx:223 +#: src/vorbis/configure.c:221 +#: src/wavpack/ui.cxx:545 msgid "ReplayGain" msgstr "ReplayGain" -#: src/madplug/configure.c:238 src/vorbis/configure.c:137 +#: src/madplug/configure.c:238 +#: src/vorbis/configure.c:137 msgid "Override generic titles" msgstr "" @@ -2710,21 +2691,23 @@ msgid "ID3 format:" msgstr "ID3-Format:" -#: src/madplug/configure.c:261 src/vorbis/configure.c:160 +#: src/madplug/configure.c:261 +#: src/vorbis/configure.c:160 msgid "Title" msgstr "Titel" -#: src/madplug/fileinfo.c:158 src/madplug/fileinfo.c:236 +#: src/madplug/fileinfo.c:158 +#: src/madplug/fileinfo.c:236 msgid "File Info" msgstr "Dateiinformationen" #: 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 "Name:" @@ -2738,38 +2721,57 @@ msgid " ID3 Tag " msgstr "ID3-Tag" -#: src/madplug/fileinfo.c:425 src/musepack/libmpc.cxx:513 src/tta/libtta.c:341 -#: src/vorbis/fileinfo.c:585 src/wavpack/ui.cxx:170 +#: src/madplug/fileinfo.c:425 +#: src/musepack/libmpc.cxx:513 +#: src/tta/libtta.c:341 +#: src/vorbis/fileinfo.c:585 +#: src/wavpack/ui.cxx:170 msgid "Title:" msgstr "Titel:" -#: src/madplug/fileinfo.c:435 src/musepack/libmpc.cxx:517 src/tta/libtta.c:351 -#: src/vorbis/fileinfo.c:596 src/wavpack/ui.cxx:182 +#: src/madplug/fileinfo.c:435 +#: src/musepack/libmpc.cxx:517 +#: src/tta/libtta.c:351 +#: src/vorbis/fileinfo.c:596 +#: src/wavpack/ui.cxx:182 msgid "Artist:" msgstr "Künstler:" -#: src/madplug/fileinfo.c:445 src/musepack/libmpc.cxx:521 src/tta/libtta.c:362 -#: src/vorbis/fileinfo.c:607 src/wavpack/ui.cxx:194 +#: src/madplug/fileinfo.c:445 +#: src/musepack/libmpc.cxx:521 +#: src/tta/libtta.c:362 +#: src/vorbis/fileinfo.c:607 +#: src/wavpack/ui.cxx:194 msgid "Album:" msgstr "Album:" -#: src/madplug/fileinfo.c:455 src/musepack/libmpc.cxx:525 src/tta/libtta.c:373 -#: src/vorbis/fileinfo.c:618 src/wavpack/ui.cxx:206 +#: src/madplug/fileinfo.c:455 +#: src/musepack/libmpc.cxx:525 +#: src/tta/libtta.c:373 +#: src/vorbis/fileinfo.c:618 +#: src/wavpack/ui.cxx:206 msgid "Comment:" msgstr "Kommentar:" -#: src/madplug/fileinfo.c:465 src/musepack/libmpc.cxx:529 src/tta/libtta.c:384 +#: src/madplug/fileinfo.c:465 +#: src/musepack/libmpc.cxx:529 +#: src/tta/libtta.c:384 #: src/wavpack/ui.cxx:219 msgid "Year:" msgstr "Jahr:" -#: src/madplug/fileinfo.c:476 src/tta/libtta.c:396 src/vorbis/fileinfo.c:641 +#: src/madplug/fileinfo.c:476 +#: src/tta/libtta.c:396 +#: src/vorbis/fileinfo.c:641 #: src/wavpack/ui.cxx:232 msgid "Track number:" msgstr "Titelnummer:" -#: src/madplug/fileinfo.c:487 src/musepack/libmpc.cxx:539 src/tta/libtta.c:408 -#: src/vorbis/fileinfo.c:653 src/wavpack/ui.cxx:246 +#: src/madplug/fileinfo.c:487 +#: src/musepack/libmpc.cxx:539 +#: src/tta/libtta.c:408 +#: src/vorbis/fileinfo.c:653 +#: src/wavpack/ui.cxx:246 msgid "Genre:" msgstr "Genre:" @@ -2777,7 +2779,9 @@ msgid "Unknown" msgstr "Unbekannt" -#: src/madplug/fileinfo.c:620 src/musepack/libmpc.cxx:633 src/tta/libtta.c:431 +#: src/madplug/fileinfo.c:620 +#: src/musepack/libmpc.cxx:633 +#: src/tta/libtta.c:431 #: src/wavpack/ui.cxx:407 #, c-format msgid "File Info - %s" @@ -2793,7 +2797,8 @@ msgid "VBR (avg. %d kbps)" msgstr "" -#: src/madplug/fileinfo.c:660 src/vorbis/fileinfo.c:962 +#: src/madplug/fileinfo.c:660 +#: src/vorbis/fileinfo.c:962 #, c-format msgid "%d Hz" msgstr "%d Hz" @@ -2801,12 +2806,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 @@ -2873,25 +2878,29 @@ "or tact://60*3/4 to play 60 bpm in 3/4 tacts" msgstr "" -#: src/metronom/metronom.c:199 src/metronom/metronom.c:263 +#: src/metronom/metronom.c:199 +#: src/metronom/metronom.c:263 #, c-format msgid "Tact generator: %d bpm" msgstr "Takt-Generator: %d bpm" -#: src/metronom/metronom.c:201 src/metronom/metronom.c:265 +#: src/metronom/metronom.c:201 +#: 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" msgstr "ModPlug-Konfiguration" -#: src/modplug/gui/interface.cxx:165 src/timidity/src/interface.c:142 +#: src/modplug/gui/interface.cxx:165 +#: src/timidity/src/interface.c:142 msgid "16 bit" msgstr "16 bit" -#: src/modplug/gui/interface.cxx:173 src/timidity/src/interface.c:134 +#: src/modplug/gui/interface.cxx:173 +#: src/timidity/src/interface.c:134 msgid "8 bit" msgstr "8 bit" @@ -2899,9 +2908,10 @@ msgid "Mono (downmix)" msgstr "" -#: src/modplug/gui/interface.cxx:218 src/timidity/src/interface.c:76 +#: 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" @@ -2937,7 +2947,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" @@ -2955,16 +2965,20 @@ msgid "Reverb" msgstr "" -#: src/modplug/gui/interface.cxx:398 src/modplug/gui/interface.cxx:470 -#: src/modplug/gui/interface.cxx:542 src/modplug/gui/interface.cxx:628 +#: src/modplug/gui/interface.cxx:398 +#: src/modplug/gui/interface.cxx:470 +#: src/modplug/gui/interface.cxx:542 +#: src/modplug/gui/interface.cxx:628 msgid "Enable" msgstr "" -#: src/modplug/gui/interface.cxx:438 src/modplug/gui/interface.cxx:582 +#: src/modplug/gui/interface.cxx:438 +#: src/modplug/gui/interface.cxx:582 msgid "Depth" msgstr "" -#: src/modplug/gui/interface.cxx:447 src/modplug/gui/interface.cxx:591 +#: src/modplug/gui/interface.cxx:447 +#: src/modplug/gui/interface.cxx:591 msgid "Delay" msgstr "Verzögerung" @@ -3066,7 +3080,8 @@ msgid "About Modplug" msgstr "Ãœber Modplug" -#: src/modplug/gui/support.cxx:118 src/sid/xs_glade.c:90 +#: src/modplug/gui/support.cxx:118 +#: src/sid/xs_glade.c:90 #: src/sid/xs_glade.c:114 #, c-format msgid "Couldn't find pixmap file: %s" @@ -3103,11 +3118,13 @@ msgid "General Settings" msgstr "Allgemeine Einstellungen" -#: src/musepack/libmpc.cxx:182 src/wavpack/ui.cxx:490 +#: src/musepack/libmpc.cxx:182 +#: src/wavpack/ui.cxx:490 msgid "Enable Dynamic Bitrate Display" msgstr "" -#: src/musepack/libmpc.cxx:186 src/wavpack/ui.cxx:496 +#: src/musepack/libmpc.cxx:186 +#: src/wavpack/ui.cxx:496 msgid "Plugin" msgstr "Plugin" @@ -3115,12 +3132,14 @@ msgid "ReplayGain Settings" msgstr "ReplayGain-Einstellungen" -#: src/musepack/libmpc.cxx:196 src/vorbis/configure.c:172 +#: src/musepack/libmpc.cxx:196 +#: src/vorbis/configure.c:172 #: src/wavpack/ui.cxx:508 msgid "Enable Clipping Prevention" msgstr "" -#: src/musepack/libmpc.cxx:201 src/vorbis/configure.c:177 +#: src/musepack/libmpc.cxx:201 +#: src/vorbis/configure.c:177 #: src/wavpack/ui.cxx:513 msgid "Enable ReplayGain" msgstr "" @@ -3137,8 +3156,11 @@ msgid "Use Album Gain" msgstr "" -#: 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 +#: 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 "Dateiname:" @@ -3150,12 +3172,15 @@ msgid "Track:" msgstr "Titel:" -#: src/musepack/libmpc.cxx:550 src/sid/xmms-sid.glade:1732 -#: src/sid/xs_interface.c:812 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 "" - -#: src/musepack/libmpc.cxx:553 src/wavpack/ui.cxx:271 +msgstr "Speichern" + +#: src/musepack/libmpc.cxx:553 +#: src/wavpack/ui.cxx:271 msgid "Remove Tag" msgstr "Tag entfernen" @@ -3274,34 +3299,43 @@ "USA." msgstr "" -#: src/OSS4/configure.c:120 src/OSS/configure.c:152 +#: src/OSS4/configure.c:120 +#: src/OSS/configure.c:152 #, c-format msgid "Default (%s)" msgstr "Standard (%s)" -#: src/OSS4/configure.c:170 src/OSS/configure.c:202 +#: src/OSS4/configure.c:170 +#: src/OSS/configure.c:202 msgid "OSS Driver configuration" msgstr "OSS-Treiber-Konfiguration" -#: src/OSS4/configure.c:208 src/OSS/configure.c:240 src/OSS/configure.c:281 +#: src/OSS4/configure.c:208 +#: src/OSS/configure.c:240 +#: src/OSS/configure.c:281 msgid "Use alternate device:" msgstr "Alternatives Gerät benutzen:" -#: src/OSS4/configure.c:230 src/OSS/configure.c:303 src/sun/configure.c:248 +#: src/OSS4/configure.c:230 +#: src/OSS/configure.c:303 +#: src/sun/configure.c:248 msgid "Devices" msgstr "Geräte" -#: src/OSS4/configure.c:272 src/OSS/configure.c:344 +#: 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" msgstr "" -#: src/OSS4/configure.c:284 src/OSS/configure.c:356 src/sun/configure.c:394 +#: src/OSS4/configure.c:284 +#: src/OSS/configure.c:356 +#: src/sun/configure.c:394 msgid "Mixer" -msgstr "" +msgstr "Mixer" #: src/OSS/about.c:39 msgid "About OSS Driver" @@ -3359,11 +3393,13 @@ msgid "Services" msgstr "Dienste" -#: src/scrobbler/configure.c:122 src/scrobbler/configure.c:162 +#: src/scrobbler/configure.c:122 +#: src/scrobbler/configure.c:162 msgid "Username:" msgstr "Benutzername:" -#: src/scrobbler/configure.c:128 src/scrobbler/configure.c:168 +#: src/scrobbler/configure.c:128 +#: src/scrobbler/configure.c:168 msgid "Password:" msgstr "Passwort:" @@ -3379,8 +3415,7 @@ msgid "" "Audacious AudioScrobbler Plugin\n" "\n" -"Originally created by Audun Hove and Pipian \n" +"Originally created by Audun Hove and Pipian \n" msgstr "" #: src/scrobbler/gtkstuff.c:22 @@ -3431,511 +3466,566 @@ msgid "Oversampling rate-conversion pass failed.\n" msgstr "" -#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:213 -#, fuzzy +#: src/sid/xmms-sid.glade:8 +#: src/sid/xs_interface.c:213 msgid "Audacious-SID configuration" msgstr "Audacious-SID-Konfiguration" -#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:249 +#: src/sid/xmms-sid.glade:71 +#: src/sid/xs_interface.c:249 msgid "8-bit" msgstr "8 Bit" -#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:256 +#: src/sid/xmms-sid.glade:90 +#: src/sid/xs_interface.c:256 msgid "16-bit" msgstr "16 Bit" -#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:263 +#: src/sid/xmms-sid.glade:111 +#: src/sid/xs_interface.c:263 msgid "Resolution:" msgstr "Auflösung:" -#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:294 +#: src/sid/xmms-sid.glade:196 +#: src/sid/xs_interface.c:294 msgid "Autopanning" msgstr "" -#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:301 -#: src/vorbis/fileinfo.c:867 src/vorbis/fileinfo.c:924 +#: 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:384 src/sid/xs_interface.c:345 +#: src/sid/xmms-sid.glade:384 +#: src/sid/xs_interface.c:345 msgid "Samplerate:" msgstr "" -#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:362 +#: src/sid/xmms-sid.glade:430 +#: src/sid/xs_interface.c:362 msgid "Use oversampling" msgstr "" -#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:373 +#: src/sid/xmms-sid.glade:456 +#: src/sid/xs_interface.c:373 msgid "Factor:" msgstr "" -#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:385 +#: 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:534 src/sid/xs_interface.c:391 +#: src/sid/xmms-sid.glade:534 +#: src/sid/xs_interface.c:391 msgid "Oversampling:" msgstr "" -#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:396 +#: src/sid/xmms-sid.glade:570 +#: src/sid/xs_interface.c:396 msgid "Audio" msgstr "" -#: 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:622 src/sid/xs_interface.c:424 +#: 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:622 +#: src/sid/xs_interface.c:424 msgid "Force speed" msgstr "Geschwindigkeit erzwingen" -#: 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:642 src/sid/xs_interface.c:430 +#: 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:642 +#: src/sid/xs_interface.c:430 msgid "PAL (50 Hz)" msgstr "PAL (50 Hz)" -#: 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:662 src/sid/xs_interface.c:438 +#: 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:662 +#: src/sid/xs_interface.c:438 msgid "NTSC (60 Hz)" msgstr "NTSC (60 Hz)" -#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:446 +#: src/sid/xmms-sid.glade:683 +#: src/sid/xs_interface.c:446 msgid "Clock speed:" msgstr "" -#: 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:730 src/sid/xs_interface.c:463 +#: 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:730 +#: src/sid/xs_interface.c:463 msgid "Force model" 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:750 src/sid/xs_interface.c:469 +#: 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:750 +#: src/sid/xs_interface.c:469 msgid "MOS 6581" msgstr "" -#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:477 +#: src/sid/xmms-sid.glade:769 +#: src/sid/xs_interface.c:477 msgid "MOS 8580" msgstr "" -#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:484 +#: src/sid/xmms-sid.glade:790 +#: src/sid/xs_interface.c:484 msgid "SID model:" 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:844 src/sid/xs_interface.c:501 +#: 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:844 +#: src/sid/xs_interface.c:501 msgid "SIDPlay 1 (frame-based)" msgstr "" -#: 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 +#: 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 "" -#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:517 +#: 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 +#: 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 +#: src/sid/xmms-sid.glade:952 +#: src/sid/xs_interface.c:541 msgid "Bank switching" msgstr "" -#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:548 +#: 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 +#: 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 +#: src/sid/xmms-sid.glade:1013 +#: src/sid/xs_interface.c:562 msgid "Memory mode:" msgstr "Speichermodus:" -#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:567 +#: 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 +#: 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 +#: 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: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:1135 src/sid/xs_interface.c:604 +#: 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 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:1135 +#: src/sid/xs_interface.c:604 msgid "HardSID" msgstr "HardSID" -#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:612 +#: src/sid/xmms-sid.glade:1156 +#: src/sid/xs_interface.c:612 msgid "SIDPlay 2 options:" 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:1203 src/sid/xs_interface.c:629 +#: 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:1203 +#: src/sid/xs_interface.c:629 msgid "Fast (nearest neighbour)" msgstr "" -#: 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:1223 src/sid/xs_interface.c:637 +#: 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:1223 +#: src/sid/xs_interface.c:637 msgid "Linear interpolation" msgstr "" -#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:652 +#: src/sid/xmms-sid.glade:1263 +#: src/sid/xs_interface.c:652 msgid "Resampling (FIR)" msgstr "" -#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:659 +#: src/sid/xmms-sid.glade:1284 +#: src/sid/xs_interface.c:659 msgid "reSID sampling options:" msgstr "" -#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:664 +#: src/sid/xmms-sid.glade:1320 +#: src/sid/xs_interface.c:664 msgid "Emu#2" msgstr "" -#: 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:1352 src/sid/xs_interface.c:676 +#: 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:1352 +#: src/sid/xs_interface.c:676 msgid "Emulate filters" msgstr "" -#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:705 +#: src/sid/xmms-sid.glade:1409 +#: src/sid/xs_interface.c:705 msgid "FS" msgstr "" -#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:722 +#: src/sid/xmms-sid.glade:1460 +#: src/sid/xs_interface.c:722 msgid "FM" msgstr "" -#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:739 +#: src/sid/xmms-sid.glade:1511 +#: src/sid/xs_interface.c:739 msgid "FT" msgstr "" -#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:750 +#: src/sid/xmms-sid.glade:1549 +#: src/sid/xs_interface.c:750 msgid "Reset values" msgstr "" -#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:755 +#: src/sid/xmms-sid.glade:1578 +#: src/sid/xs_interface.c:755 msgid "SIDPlay1" msgstr "" -#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:796 +#: 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 +#: 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 +#: src/sid/xmms-sid.glade:1753 +#: src/sid/xs_interface.c:820 msgid "Import" msgstr "Importieren" -#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:828 -#, fuzzy +#: src/sid/xmms-sid.glade:1774 +#: src/sid/xs_interface.c:828 msgid "Delete" -msgstr "Standard" - -#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:842 +msgstr "Löschen" + +#: src/sid/xmms-sid.glade:1819 +#: src/sid/xs_interface.c:842 msgid "Filter curve:" msgstr "Filterkurve:" -#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:847 +#: src/sid/xmms-sid.glade:1855 +#: src/sid/xs_interface.c:847 msgid "SIDPlay2" msgstr "SIDPlay2" -#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:853 +#: src/sid/xmms-sid.glade:1891 +#: src/sid/xs_interface.c:853 msgid "Filters" 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:1937 src/sid/xs_interface.c:876 +#: 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:1937 +#: src/sid/xs_interface.c:876 msgid "Play at least for specified time" msgstr "" -#: 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 +#: 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 "Spielzeit:" -#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:907 +#: src/sid/xmms-sid.glade:2041 +#: src/sid/xs_interface.c:907 msgid "Minimum playtime:" 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:2088 src/sid/xs_interface.c:924 +#: 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:2088 +#: src/sid/xs_interface.c:924 msgid "Play for specified time maximum" msgstr "" -#: 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:2109 src/sid/xs_interface.c:930 +#: 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:2109 +#: src/sid/xs_interface.c:930 msgid "Only when song length is unknown" msgstr "" -#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:961 +#: src/sid/xmms-sid.glade:2212 +#: src/sid/xs_interface.c:961 msgid "Maximum playtime:" 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:2259 src/sid/xs_interface.c:978 +#: 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:2259 +#: src/sid/xs_interface.c:978 msgid "Use XSIDPLAY-compatible database" msgstr "XSIDPLAY-kompatible Datenbank benützen" -#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:989 +#: src/sid/xmms-sid.glade:2284 +#: src/sid/xs_interface.c:989 msgid "DB-file:" msgstr "DB-Datei:" -#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:999 +#: src/sid/xmms-sid.glade:2309 +#: src/sid/xs_interface.c:999 msgid "Database path and filename" msgstr "Datenbankpfad und -dateiname" -#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1006 +#: 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:2356 src/sid/xs_interface.c:1008 +#: src/sid/xmms-sid.glade:2356 +#: src/sid/xs_interface.c:1008 msgid "Song length database:" msgstr "" -#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1013 +#: src/sid/xmms-sid.glade:2392 +#: src/sid/xs_interface.c:1013 msgid "Songlength" msgstr "" -#: src/sid/xmms-sid.glade:2437 src/sid/xs_interface.c:1036 +#: 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 +#: 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 +#: 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:2607 src/sid/xs_interface.c:1088 +#: 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:2607 +#: src/sid/xs_interface.c:1088 msgid "Use STIL database" msgstr "STIL-Datenbank verwenden" -#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:1099 +#: src/sid/xmms-sid.glade:2632 +#: src/sid/xs_interface.c:1099 msgid "STIL file:" 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:2704 src/sid/xs_interface.c:1128 +#: 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:2704 +#: src/sid/xs_interface.c:1128 msgid "Browse for STIL-database file" msgstr "" -#: src/sid/xmms-sid.glade:2738 src/sid/xs_interface.c:1135 +#: src/sid/xmms-sid.glade:2738 +#: src/sid/xs_interface.c:1135 msgid "HVSC path:" msgstr "" -#: 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:2810 src/sid/xs_interface.c:1164 +#: 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:2810 +#: src/sid/xs_interface.c:1164 msgid "Browse for HVSC path" msgstr "" -#: src/sid/xmms-sid.glade:2840 src/sid/xs_interface.c:1166 +#: 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:2913 src/sid/xs_interface.c:1190 +#: src/sid/xmms-sid.glade:2913 +#: src/sid/xs_interface.c:1190 msgid "Accept and update changes" msgstr "" -#: src/sid/xmms-sid.glade:2927 src/sid/xs_interface.c:1197 +#: src/sid/xmms-sid.glade:2927 +#: src/sid/xs_interface.c:1197 msgid "Cancel any changes" msgstr "" -#: src/sid/xmms-sid.glade:2952 src/sid/xs_interface.c:1474 +#: src/sid/xmms-sid.glade:2952 +#: src/sid/xs_interface.c:1474 msgid "Audacious-SID Fileinfo" msgstr "Audacious-SID-Dateiinformation" -#: src/sid/xmms-sid.glade:3022 src/sid/xs_interface.c:1503 +#: src/sid/xmms-sid.glade:3022 +#: src/sid/xs_interface.c:1503 msgid "Songname:" msgstr "Titel:" -#: src/sid/xmms-sid.glade:3050 src/sid/xs_interface.c:1511 +#: src/sid/xmms-sid.glade:3050 +#: src/sid/xs_interface.c:1511 msgid "Composer:" msgstr "Komponist:" -#: src/sid/xmms-sid.glade:3078 src/sid/xs_interface.c:1519 +#: 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:3192 src/sid/xs_interface.c:1563 +#: src/sid/xmms-sid.glade:3192 +#: src/sid/xs_interface.c:1563 msgid "Song Information:" msgstr "Titel-Information:" -#: src/sid/xmms-sid.glade:3266 src/sid/xs_interface.c:1598 +#: src/sid/xmms-sid.glade:3266 +#: src/sid/xs_interface.c:1598 msgid "Author:" msgstr "Autor:" -#: src/sid/xmms-sid.glade:3364 src/sid/xs_interface.c:1632 +#: src/sid/xmms-sid.glade:3364 +#: src/sid/xs_interface.c:1632 msgid "Duration:" msgstr "Länge:" -#: src/sid/xmms-sid.glade:3458 src/sid/xs_interface.c:1666 +#: src/sid/xmms-sid.glade:3458 +#: src/sid/xs_interface.c:1666 #, fuzzy msgid "Sub-tune Information:" msgstr "Ort:" -#: src/sid/xmms-sid.glade:3512 src/sid/xs_interface.c:1727 +#: src/sid/xmms-sid.glade:3512 +#: src/sid/xs_interface.c:1727 msgid "Select HVSC song length database" msgstr "HVSC-Titellängendatenbank auswählen" -#: src/sid/xmms-sid.glade:3554 src/sid/xs_interface.c:1768 -#, fuzzy +#: 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 +#: src/sid/xmms-sid.glade:3596 +#: src/sid/xs_interface.c:1809 msgid "Select HVSC location prefix" msgstr "" -#: src/sid/xmms-sid.glade:3638 src/sid/xs_interface.c:1850 +#: 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 +#: 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 +#: 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 "Format-Auswahl" - -#: src/sid/xmms-sid.glade:3759 src/sid/xs_interface.c:1969 -#, fuzzy +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 -#, fuzzy +#: src/sid/xmms-sid.glade:3771 +#: src/sid/xs_interface.c:1975 msgid "No" -msgstr "Kein" +msgstr "Nein" #: src/sid/xs_fileinfo.c:238 msgid "General info" @@ -4016,15 +4106,11 @@ msgstr "" #: src/sid/xs_sidplay1.cc:291 -msgid "" -"[SIDPlay1] SID-tune struct pointer was NULL. This should not happen, report " -"to XMMS-SID author.\n" +msgid "[SIDPlay1] SID-tune struct pointer was NULL. This should not happen, report to XMMS-SID author.\n" msgstr "" #: src/sid/xs_sidplay1.cc:296 -msgid "" -"[SIDPlay1] SID-tune status check failed. This should not happen, report to " -"XMMS-SID author.\n" +msgid "[SIDPlay1] SID-tune status check failed. This should not happen, report to XMMS-SID author.\n" msgstr "" #: src/sid/xs_sidplay2.cc:101 @@ -4140,24 +4226,25 @@ #: src/song_change/song_change.c:356 msgid "Command to run when Audacious starts a new song." -msgstr "" - -#: src/song_change/song_change.c:365 src/song_change/song_change.c:387 -#: src/song_change/song_change.c:408 src/song_change/song_change.c:429 +msgstr "Auszuführender Befehl, wenn Audacious ein neues Lied startet." + +#: src/song_change/song_change.c:365 +#: src/song_change/song_change.c:387 +#: src/song_change/song_change.c:408 +#: src/song_change/song_change.c:429 msgid "Command:" msgstr "Befehl:" #: 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." msgstr "" #: src/song_change/song_change.c:420 -msgid "" -"Command to run when title changes for a song (i.e. network streams titles)." +msgid "Command to run when title changes for a song (i.e. network streams titles)." msgstr "" #: src/song_change/song_change.c:441 @@ -4178,9 +4265,7 @@ msgstr "" #: src/song_change/song_change.c:466 -msgid "" -"Parameters passed to the shell should be encapsulated in " -"quotes. Doing otherwise is a security risk." +msgid "Parameters passed to the shell should be encapsulated in quotes. Doing otherwise is a security risk." msgstr "" #: src/spectrum/spectrum.c:96 @@ -4354,8 +4439,7 @@ "Sinuston-Generator von Haavard Kvaalen \n" "Verändert von Daniel J. Peng \n" "\n" -"Um ihn zu benützen, eine URL hinzufügen: tone://frequency1;frequency2;" -"frequency3;...\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 @@ -4431,19 +4515,23 @@ msgid "Title format:" msgstr "Titelformat:" -#: src/vorbis/configure.c:164 src/wavpack/ui.cxx:500 +#: src/vorbis/configure.c:164 +#: src/wavpack/ui.cxx:500 msgid "ReplayGain Settings:" msgstr "ReplayGain-Einstellungen:" -#: src/vorbis/configure.c:182 src/wavpack/ui.cxx:518 +#: src/vorbis/configure.c:182 +#: src/wavpack/ui.cxx:518 msgid "ReplayGain Type:" msgstr "ReplayGain-Typ:" -#: src/vorbis/configure.c:193 src/wavpack/ui.cxx:529 +#: src/vorbis/configure.c:193 +#: src/wavpack/ui.cxx:529 msgid "use Track Gain/Peak" msgstr "" -#: src/vorbis/configure.c:203 src/wavpack/ui.cxx:537 +#: src/vorbis/configure.c:203 +#: src/wavpack/ui.cxx:537 msgid "use Album Gain/Peak" msgstr "" @@ -5064,7 +5152,8 @@ msgid "Failed to modify tag (close)" msgstr "Verändern des Tags fehlgeschlagen (Schließen)" -#: src/vorbis/fileinfo.c:324 src/vorbis/fileinfo.c:333 +#: src/vorbis/fileinfo.c:324 +#: src/vorbis/fileinfo.c:333 msgid "Failed to modify tag" msgstr "Verändern des Tags fehlgeschlagen" @@ -5120,24 +5209,30 @@ msgid " Ogg Vorbis Info " msgstr " Ogg-Vorbis-Informationen " -#: src/vorbis/fileinfo.c:841 src/vorbis/fileinfo.c:918 +#: src/vorbis/fileinfo.c:841 +#: src/vorbis/fileinfo.c:918 msgid "Bit rate:" msgstr "Bitrate:" -#: src/vorbis/fileinfo.c:854 src/vorbis/fileinfo.c:921 +#: src/vorbis/fileinfo.c:854 +#: src/vorbis/fileinfo.c:921 msgid "Sample rate:" msgstr "Abtastfrequenz:" -#: src/vorbis/fileinfo.c:880 src/vorbis/fileinfo.c:927 +#: src/vorbis/fileinfo.c:880 +#: src/vorbis/fileinfo.c:927 msgid "Length:" msgstr "Länge:" -#: src/vorbis/fileinfo.c:893 src/vorbis/fileinfo.c:930 +#: src/vorbis/fileinfo.c:893 +#: src/vorbis/fileinfo.c:930 msgid "File size:" msgstr "Dateigrösse:" -#: src/vorbis/fileinfo.c:919 src/vorbis/fileinfo.c:922 -#: src/vorbis/fileinfo.c:925 src/vorbis/fileinfo.c:928 +#: src/vorbis/fileinfo.c:919 +#: src/vorbis/fileinfo.c:922 +#: src/vorbis/fileinfo.c:925 +#: src/vorbis/fileinfo.c:928 #: src/vorbis/fileinfo.c:931 msgid "N/A" msgstr "K/A" @@ -5196,8 +5291,7 @@ #: src/vtx/about.c:24 msgid "" "Vortex file format player by Sashnov Alexander \n" -"Founded on original source in_vtx.dll by Roman Sherbakov \n" +"Founded on original source in_vtx.dll by Roman Sherbakov \n" "\n" "Music in vtx format can be found at http://vtx.microfor.ru/music.htm\n" "and other AY/YM music sites.\n" @@ -5224,7 +5318,7 @@ #: src/wavpack/ui.cxx:286 msgid "Wavpack Info:" -msgstr "" +msgstr "Wavpack-Information:" #: src/wavpack/ui.cxx:379 #, c-format @@ -5287,7 +5381,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 "" @@ -5314,7 +5408,7 @@ #: src/wav/wav-sndfile.c:574 msgid "sndfile WAV plugin" -msgstr "" +msgstr "sndfile-WAV-Plugin" #: src/wma/wma.c:143 #, c-format @@ -5324,7 +5418,6 @@ #, fuzzy #~ msgid "Subtune Control" #~ msgstr "Lautstärkesteuerung:" - #~ msgid "Load" #~ msgstr "Laden" @@ -5347,3 +5440,4 @@ #, fuzzy #~ msgid "32000" #~ msgstr "22000 Hz" + diff -r 81ae3fcc9673 -r 62e89e392227 src/OSS/OSS.c --- a/src/OSS/OSS.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/OSS/OSS.c Sat Sep 08 06:58:08 2007 +0300 @@ -26,25 +26,23 @@ #include 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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/OSS4/OSS4.c --- a/src/OSS4/OSS4.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/OSS4/OSS4.c Sat Sep 08 06:58:08 2007 +0300 @@ -27,25 +27,23 @@ #include 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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/adplug/adplug-xmms.cc --- a/src/adplug/adplug-xmms.cc Fri Sep 07 12:48:27 2007 +0300 +++ b/src/adplug/adplug-xmms.cc Sat Sep 08 06:58:08 2007 +0300 @@ -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) diff -r 81ae3fcc9673 -r 62e89e392227 src/alarm/alarm.c --- a/src/alarm/alarm.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/alarm/alarm.c Sat Sep 08 06:58:08 2007 +0300 @@ -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); diff -r 81ae3fcc9673 -r 62e89e392227 src/alsa/alsa.c --- a/src/alsa/alsa.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/alsa/alsa.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/aosd/aosd.c --- a/src/aosd/aosd.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/aosd/aosd.c Sat Sep 08 06:58:08 2007 +0300 @@ -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; diff -r 81ae3fcc9673 -r 62e89e392227 src/aosd/aosd.h --- a/src/aosd/aosd.h Fri Sep 07 12:48:27 2007 +0300 +++ b/src/aosd/aosd.h Sat Sep 08 06:58:08 2007 +0300 @@ -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 */ diff -r 81ae3fcc9673 -r 62e89e392227 src/audiocompress/audacious-glue.c --- a/src/audiocompress/audacious-glue.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/audiocompress/audacious-glue.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/blur_scope/blur_scope.c --- a/src/blur_scope/blur_scope.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/blur_scope/blur_scope.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/console/Audacious_Driver.cxx --- a/src/console/Audacious_Driver.cxx Fri Sep 07 12:48:27 2007 +0300 +++ b/src/console/Audacious_Driver.cxx Sat Sep 08 06:58:08 2007 +0300 @@ -486,7 +486,7 @@ console_cfg_load(); } -extern "C" void console_aboutbox(void) +void console_aboutbox(void) { static GtkWidget * aboutbox = NULL; @@ -513,9 +513,9 @@ NULL, (gchar *)"Game console audio module decoder", console_init, + NULL, console_aboutbox, console_cfg_ui, - NULL, FALSE, NULL, NULL, @@ -543,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); diff -r 81ae3fcc9673 -r 62e89e392227 src/echo_plugin/echo.c --- a/src/echo_plugin/echo.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/echo_plugin/echo.c Sat Sep 08 06:58:08 2007 +0300 @@ -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; diff -r 81ae3fcc9673 -r 62e89e392227 src/esd/esd.c --- a/src/esd/esd.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/esd/esd.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/evdev-plug/ed.c --- a/src/evdev-plug/ed.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/evdev-plug/ed.c Sat Sep 08 06:58:08 2007 +0300 @@ -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; diff -r 81ae3fcc9673 -r 62e89e392227 src/evdev-plug/ed.h --- a/src/evdev-plug/ed.h Fri Sep 07 12:48:27 2007 +0300 +++ b/src/evdev-plug/ed.h Sat Sep 08 06:58:08 2007 +0300 @@ -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 */ diff -r 81ae3fcc9673 -r 62e89e392227 src/filewriter/filewriter.c --- a/src/filewriter/filewriter.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/filewriter/filewriter.c Sat Sep 08 06:58:08 2007 +0300 @@ -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) { diff -r 81ae3fcc9673 -r 62e89e392227 src/flacng/seekable_stream_callbacks.c --- a/src/flacng/seekable_stream_callbacks.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/flacng/seekable_stream_callbacks.c Sat Sep 08 06:58:08 2007 +0300 @@ -20,7 +20,6 @@ #include #include #include -#include #include #include "flacng.h" #include "tools.h" diff -r 81ae3fcc9673 -r 62e89e392227 src/hotkey/plugin.c --- a/src/hotkey/plugin.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/hotkey/plugin.c Sat Sep 08 06:58:08 2007 +0300 @@ -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); diff -r 81ae3fcc9673 -r 62e89e392227 src/ladspa/ladspa.c --- a/src/ladspa/ladspa.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/ladspa/ladspa.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/m3u/m3u.c --- a/src/m3u/m3u.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/m3u/m3u.c Sat Sep 08 06:58:08 2007 +0300 @@ -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,7 +160,7 @@ 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) @@ -194,8 +191,7 @@ 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); diff -r 81ae3fcc9673 -r 62e89e392227 src/modplug/plugin.cxx --- a/src/modplug/plugin.cxx Fri Sep 07 12:48:27 2007 +0300 +++ b/src/modplug/plugin.cxx Sat Sep 08 06:58:08 2007 +0300 @@ -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); diff -r 81ae3fcc9673 -r 62e89e392227 src/null/null.c --- a/src/null/null.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/null/null.c Sat Sep 08 06:58:08 2007 +0300 @@ -240,25 +240,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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/paranormal/plugin.c --- a/src/paranormal/plugin.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/paranormal/plugin.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/projectm/main.c --- a/src/projectm/main.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/projectm/main.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/rootvis/rootvis.c --- a/src/rootvis/rootvis.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/rootvis/rootvis.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 { diff -r 81ae3fcc9673 -r 62e89e392227 src/rovascope/plugin.c --- a/src/rovascope/plugin.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/rovascope/plugin.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/scrobbler/fmt.c --- a/src/scrobbler/fmt.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/scrobbler/fmt.c Sat Sep 08 06:58:08 2007 +0300 @@ -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); } diff -r 81ae3fcc9673 -r 62e89e392227 src/scrobbler/plugin.c --- a/src/scrobbler/plugin.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/scrobbler/plugin.c Sat Sep 08 06:58:08 2007 +0300 @@ -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) diff -r 81ae3fcc9673 -r 62e89e392227 src/scrobbler/scrobbler.c --- a/src/scrobbler/scrobbler.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/scrobbler/scrobbler.c Sat Sep 08 06:58:08 2007 +0300 @@ -147,7 +147,7 @@ item->mb = fmt_escape((char*)tuple->mb); #endif - if((album = tuple_get_string(tuple, FIELD_ALBUM, NULL))) + if((album = tuple_get_string(tuple, FIELD_ALBUM, NULL)) != NULL) item->album = fmt_escape(""); else item->album = fmt_escape((char*) album); diff -r 81ae3fcc9673 -r 62e89e392227 src/sid/xmms-sid.c --- a/src/sid/xmms-sid.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/sid/xmms-sid.c Sat Sep 08 06:58:08 2007 +0300 @@ -266,14 +266,12 @@ if (pcFilename == NULL) return 0; -// XS_MUTEX_LOCK(xs_status); if ((f = xs_fopen(pcFilename, "rb")) != NULL) { if (xs_status.sidPlayer->plrProbe(f)) result = 1; xs_fclose(f); } -// XS_MUTEX_UNLOCK(xs_status); return result; } @@ -312,11 +310,19 @@ /* Check the filename */ if (pcFilename == NULL) return 0; - + +#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 if (xs_status.sidPlayer->plrProbe(f)) { +#ifdef LULZ t_xs_tuneinfo *pInfo; pInfo = xs_status.sidPlayer->plrGetSIDInfo(pcFilename); @@ -345,6 +351,9 @@ tmpResult = 1; xs_tuneinfo_free(pInfo); +#else + tmpResult = 1; +#endif } return tmpResult; diff -r 81ae3fcc9673 -r 62e89e392227 src/sndstretch/sndstretch_xmms.c --- a/src/sndstretch/sndstretch_xmms.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/sndstretch/sndstretch_xmms.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/spectrum/spectrum.c --- a/src/spectrum/spectrum.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/spectrum/spectrum.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/statusicon/si.c --- a/src/statusicon/si.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/statusicon/si.c Sat Sep 08 06:58:08 2007 +0300 @@ -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; diff -r 81ae3fcc9673 -r 62e89e392227 src/statusicon/si.h --- a/src/statusicon/si.h Fri Sep 07 12:48:27 2007 +0300 +++ b/src/statusicon/si.h Sat Sep 08 06:58:08 2007 +0300 @@ -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 */ diff -r 81ae3fcc9673 -r 62e89e392227 src/stereo_plugin/stereo.c --- a/src/stereo_plugin/stereo.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/stereo_plugin/stereo.c Sat Sep 08 06:58:08 2007 +0300 @@ -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" diff -r 81ae3fcc9673 -r 62e89e392227 src/timidity/src/xmms-timidity.c --- a/src/timidity/src/xmms-timidity.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/timidity/src/xmms-timidity.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/tta/libtta.c --- a/src/tta/libtta.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/tta/libtta.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/voice_removal/voice_removal.c --- a/src/voice_removal/voice_removal.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/voice_removal/voice_removal.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 }; diff -r 81ae3fcc9673 -r 62e89e392227 src/xspf/xspf.c --- a/src/xspf/xspf.c Fri Sep 07 12:48:27 2007 +0300 +++ b/src/xspf/xspf.c Sat Sep 08 06:58:08 2007 +0300 @@ -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 #include @@ -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,157 +86,103 @@ 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 = tuple_new(); tuple_associate_int(tuple, FIELD_LENGTH, NULL, -1); - tuple_associate_int(tuple, FIELD_MTIME, NULL, -1); // mark as uninitialized. + tuple_associate_int(tuple, FIELD_MTIME, NULL, -1); + - // 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); + 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); - 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); - } + 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 if(nptr->type == XML_ELEMENT_NODE - && !xmlStrcmp(nptr->name, (xmlChar *)"title")) { - xmlChar *str = xmlNodeGetContent(nptr); - tuple_associate_string(tuple, FIELD_TITLE, NULL, (gchar *) str); - xmlFree(str); - } - else if(nptr->type == XML_ELEMENT_NODE - && !xmlStrcmp(nptr->name, (xmlChar *)"creator")) { - xmlChar *str = xmlNodeGetContent(nptr); - tuple_associate_string(tuple, FIELD_ARTIST, NULL, (gchar *) str); - xmlFree(str); - } - else if(nptr->type == XML_ELEMENT_NODE - && !xmlStrcmp(nptr->name, (xmlChar *)"annotation")) { - xmlChar *str = xmlNodeGetContent(nptr); - tuple_associate_string(tuple, FIELD_COMMENT, NULL, (gchar *) str); - xmlFree(str); - } - else if(nptr->type == XML_ELEMENT_NODE - && !xmlStrcmp(nptr->name, (xmlChar *)"album")) { - xmlChar *str = xmlNodeGetContent(nptr); - tuple_associate_string(tuple, FIELD_ALBUM, NULL, (gchar *) str); - xmlFree(str); - } - else if(nptr->type == XML_ELEMENT_NODE - && !xmlStrcmp(nptr->name, (xmlChar *)"trackNum")) { - xmlChar *str = xmlNodeGetContent(nptr); - tuple_associate_int(tuple, FIELD_TRACK_NUMBER, NULL, atol((char *)str)); - xmlFree(str); + g_free(str); + } else { + /* Rest of the nodes are handled here */ + gint i; + gboolean isMeta; + xmlChar *findName; + + 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, FIELD_LENGTH, NULL, 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, FIELD_YEAR, NULL, atol((char *)cont)); - xmlFree(cont); - continue; - } - else if(!xmlStrcmp(rel, (xmlChar *)"date")) { - xmlChar *cont = xmlNodeGetContent(nptr); - tuple_associate_string(tuple, FIELD_DATE, NULL, (gchar *) cont); - xmlFree(cont); - continue; - } - else if(!xmlStrcmp(rel, (xmlChar *)"genre")) { - xmlChar *cont = xmlNodeGetContent(nptr); - tuple_associate_string(tuple, FIELD_GENRE, NULL, (gchar *) cont); - xmlFree(cont); - continue; - } - else if(!xmlStrcmp(rel, (xmlChar *)"formatter")) { - xmlChar *cont = xmlNodeGetContent(nptr); - tuple_associate_string(tuple, FIELD_FORMATTER, NULL, (gchar *) cont); - xmlFree(cont); - continue; - } - else if(!xmlStrcmp(rel, (xmlChar *)"mtime")) { - xmlChar *str = NULL; - str = xmlNodeGetContent(nptr); - tuple_associate_int(tuple, FIELD_MTIME, NULL, atoll((char *)str)); - xmlFree(str); - continue; - } - xmlFree(rel); - rel = NULL; - } - } - if(location) { + if (location) { gchar *uri = NULL; gchar *scratch; @@ -220,77 +194,80 @@ tuple_associate_string(tuple, FIELD_FILE_PATH, NULL, scratch); g_free(scratch); + tuple_associate_string(tuple, FIELD_FILE_EXT, strrchr(location, '.')); + #ifdef DEBUG 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, FIELD_FILE_EXT, NULL, 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,32 @@ #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); } 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 +318,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"); @@ -369,21 +374,20 @@ PLAYLIST_LOCK(playlist->mutex); /* 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 +395,7 @@ base = strdup(tmp); baselen = strlen(base); } + ptr1 = base; ptr2 = tmp; @@ -398,10 +403,11 @@ ptr1++; ptr2++; } + *ptr2 = '\0'; //terminate tmplen = ptr2 - tmp; - if(tmplen <= baselen) { + if (tmplen <= baselen) { g_free(base); base = tmp; baselen = tmplen; @@ -414,11 +420,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 +439,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 +448,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 +465,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 +477,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 +490,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,118 +509,54 @@ xmlAddChild(track, location); xmlAddChild(tracklist, track); - /* do we have a tuple? */ - if(entry->tuple != NULL) { - - if((scratch = tuple_get_string(entry->tuple, FIELD_TITLE, NULL)) != 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, FIELD_ARTIST, NULL)) != 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, FIELD_COMMENT, NULL)) != 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, FIELD_ALBUM, NULL)) != 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, FIELD_TRACK_NUMBER, NULL)) != 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, FIELD_LENGTH, NULL)) > 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, FIELD_YEAR, NULL)) != 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, FIELD_DATE, NULL)) != 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, FIELD_GENRE, NULL)) != 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, FIELD_FORMATTER, NULL)) != 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, FIELD_MTIME, NULL)); - 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; @@ -636,21 +572,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);