changeset 3809:17fb5e598cfc trunk

Branch merge.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 19 Oct 2007 12:14:04 +0300
parents b5d550755bad (current diff) db6cb4048a74 (diff)
children e307e455aca0
files src/audacious/tuple_compiler.c src/audacious/tuple_compiler.h
diffstat 35 files changed, 1909 insertions(+), 1360 deletions(-) [+]
line wrap: on
line diff
--- a/configure.ac	Sun Oct 14 05:54:54 2007 +0300
+++ b/configure.ac	Fri Oct 19 12:14:04 2007 +0300
@@ -157,11 +157,7 @@
 dnl Ok, first we find out what flags we need to use.
 BUILDSYS_PROG_IMPLIB
 BUILDSYS_SHARED_LIB
-if test x"$PROG_IMPLIB_NEEDED" = x"yes"; then
-	IMPLIB_LIBS='-L../audacious -laudacious.exe'
-else
-	IMPLIB_LIBS=''
-fi
+IMPLIB_LIBS=''
 AC_SUBST(IMPLIB_LIBS)
 
 dnl XXX
@@ -177,13 +173,10 @@
 		LDFLAGS="$LDFLAGS -framework CoreFoundation -framework CoreServices -framework Carbon"
 		;;
 	*)
-		EXPORTDYN="-Wl,-export-dynamic"
 		AC_MSG_RESULT([no])
 		;;
 esac
 
-AC_SUBST(EXPORTDYN)
-
 dnl chardet support
 dnl ========================
 AC_ARG_ENABLE(chardet,
--- a/extra.mk.in	Sun Oct 14 05:54:54 2007 +0300
+++ b/extra.mk.in	Fri Oct 19 12:14:04 2007 +0300
@@ -339,5 +339,4 @@
 TRANSPORT_PLUGIN_DIR ?= @TRANSPORT_PLUGIN_DIR@
 TRANSPORT_PLUGINS ?= @TRANSPORT_PLUGINS@
 PCH ?= @PCH@
-EXPORTDYN ?= @EXPORTDYN@
 IMPLIB_LIBS = @IMPLIB_LIBS@
--- a/m4/buildsys.m4	Sun Oct 14 05:54:54 2007 +0300
+++ b/m4/buildsys.m4	Fri Oct 19 12:14:04 2007 +0300
@@ -21,11 +21,6 @@
 AC_DEFUN([BUILDSYS_PROG_IMPLIB], [
 	AC_MSG_CHECKING(whether we need an implib)
 	case "$target" in
-		*-*-cygwin | *-*-mingw32)
-			AC_MSG_RESULT(yes)
-			PROG_IMPLIB_NEEDED='yes'
-			PROG_IMPLIB_LDFLAGS='-Wl,-export-all-symbols,--out-implib,lib${PROG}.a'
-			;;
 		*)
 			AC_MSG_RESULT(no)
 			PROG_IMPLIB_NEEDED='no'
@@ -44,7 +39,7 @@
 			AC_MSG_RESULT([Mac OS X (Intel)])
 			LIB_CPPFLAGS='-DPIC'
 			LIB_CFLAGS='-fPIC'
-			LIB_LDFLAGS='-dynamiclib -fPIC -install_name ${libdir}/${LIB}'
+			LIB_LDFLAGS='-dynamiclib -fPIC -install_name ${libdir}/${LIB} -flat_namespace -undefined suppress'
 			LIB_PREFIX='lib'
 			LIB_SUFFIX='.dylib'
 			PLUGIN_CPPFLAGS=''
@@ -59,7 +54,7 @@
 			AC_MSG_RESULT(Mac OS X)
 			LIB_CPPFLAGS='-DPIC'
 			LIB_CFLAGS=''
-			LIB_LDFLAGS='-dynamiclib -fPIC -install_name ${libdir}/${LIB}'
+			LIB_LDFLAGS='-dynamiclib -fPIC -install_name ${libdir}/${LIB} -flat_namespace -undefined suppress'
 			LIB_PREFIX='lib'
 			LIB_SUFFIX='.dylib'
 			PLUGIN_CPPFLAGS=''
--- a/po/POTFILES.in	Sun Oct 14 05:54:54 2007 +0300
+++ b/po/POTFILES.in	Fri Oct 19 12:14:04 2007 +0300
@@ -1,3 +1,4 @@
+# Please don't update this file manually - use ./update-potfiles.sh instead!
 src/audacious/glade.c
 src/audacious/glade/fileinfo.glade
 src/audacious/glade/prefswin.glade
--- a/po/de.po	Sun Oct 14 05:54:54 2007 +0300
+++ b/po/de.po	Fri Oct 19 12:14:04 2007 +0300
@@ -21,7 +21,8 @@
 msgstr ""
 "<b><big>Konnte %s nicht erstellen.</big></b>\n"
 "\n"
-"Konnte die Glade-Datei nicht öffnen (%s). Bitte die Installation überprüfen.\n"
+"Konnte die Glade-Datei nicht öffnen (%s). Bitte die Installation "
+"überprüfen.\n"
 
 #: src/audacious/glade/fileinfo.glade:8
 msgid "Track Information"
@@ -95,8 +96,7 @@
 msgid "<b>Effects</b>"
 msgstr "<b>Effekte</b>"
 
-#: src/audacious/glade/prefswin.glade:693
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/glade/prefswin.glade:693 src/audacious/ui_preferences.c:117
 msgid "Plugins"
 msgstr "Plugins"
 
@@ -129,8 +129,12 @@
 msgstr "Schriftart für Playlist wählen:"
 
 #: src/audacious/glade/prefswin.glade:1112
-msgid "Use bitmap fonts if they are available. Bitmap fonts do not support Unicode strings."
-msgstr "Bitmap-Schriftarten benutzen, sofern vorhanden. Bitmap-Schriften unterstützen kein Unicode."
+msgid ""
+"Use bitmap fonts if they are available. Bitmap fonts do not support Unicode "
+"strings."
+msgstr ""
+"Bitmap-Schriftarten benutzen, sofern vorhanden. Bitmap-Schriften "
+"unterstützen kein Unicode."
 
 #: src/audacious/glade/prefswin.glade:1114
 msgid "Use Bitmap fonts if available"
@@ -161,23 +165,33 @@
 msgstr "Window-Manager-Dekoration anzeigen"
 
 #: src/audacious/glade/prefswin.glade:1342
-msgid "This enables the XMMS/GTK1-style file selection dialogs. This selector is provided by Audacious itself and is faster than the default GTK2 selector (but sadly not as user-friendly)."
-msgstr "XMMS/GTK1-artigen Dateiauswahldialog aktivieren. Dieser wird von Audacious zur Verfügung gestellt und ist schneller als derjenige von GTK2, dafür aber nicht so benutzerfreundlich."
+msgid ""
+"This enables the XMMS/GTK1-style file selection dialogs. This selector is "
+"provided by Audacious itself and is faster than the default GTK2 selector "
+"(but sadly not as user-friendly)."
+msgstr ""
+"XMMS/GTK1-artigen Dateiauswahldialog aktivieren. Dieser wird von Audacious "
+"zur Verfügung gestellt und ist schneller als derjenige von GTK2, dafür aber "
+"nicht so benutzerfreundlich."
 
 #: src/audacious/glade/prefswin.glade:1344
 msgid "Use XMMS-style file selector instead of the default selector"
 msgstr "Benutze XMMS-mäßige Dateiauswahl statt der standardmäßigen"
 
 #: src/audacious/glade/prefswin.glade:1378
-msgid "If selected, the file information text in the main window will scroll back and forth. If not selected, the text will only scroll in one direction."
-msgstr "Wenn aktiviert, wird der Dateiinformationstext im Hauptfenster vor und zurück scrollen. Wenn deaktiviert, wird der Text nur in eine Richtung scrollen."
+msgid ""
+"If selected, the file information text in the main window will scroll back "
+"and forth. If not selected, the text will only scroll in one direction."
+msgstr ""
+"Wenn aktiviert, wird der Dateiinformationstext im Hauptfenster vor und "
+"zurück scrollen. Wenn deaktiviert, wird der Text nur in eine Richtung "
+"scrollen."
 
 #: src/audacious/glade/prefswin.glade:1380
 msgid "Use two-way text scroller"
 msgstr "Benutze Zweiweg-Textscroller"
 
-#: src/audacious/glade/prefswin.glade:1422
-#: src/audacious/ui_preferences.c:111
+#: src/audacious/glade/prefswin.glade:1422 src/audacious/ui_preferences.c:111
 msgid "Appearance"
 msgstr "Aussehen"
 
@@ -201,8 +215,7 @@
 msgid "Changes volume by"
 msgstr "Lautstärke verändern um"
 
-#: src/audacious/glade/prefswin.glade:1701
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/glade/prefswin.glade:1701 src/audacious/ui_preferences.c:115
 msgid "Mouse"
 msgstr "Maus"
 
@@ -236,7 +249,9 @@
 
 #: src/audacious/glade/prefswin.glade:1971
 msgid "Load metadata when adding the file to the playlist or opening it"
-msgstr "Metadaten laden, wenn eine Datei zur Wiedergabeliste hinzugefügt oder geöffnet wird"
+msgstr ""
+"Metadaten laden, wenn eine Datei zur Wiedergabeliste hinzugefügt oder "
+"geöffnet wird"
 
 #: src/audacious/glade/prefswin.glade:1973
 msgid "On load"
@@ -255,8 +270,16 @@
 msgstr "Automatische Zeichensatzerkennung für:"
 
 #: src/audacious/glade/prefswin.glade:2070
-msgid "List of character encodings used for fall back conversion of metadata. If automatic character encoding detector failed or has been disabled, encodings in this list would be treated as candidates of the encoding of metadata, and fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr "Alternativ für Metadaten verwendete Zeichensätze. Wenn die automatische Erkennung des Zeichensatzes fehlgeschlagen oder deaktiviert ist, werden die nachfolgend aufgelisteten Zeichensätze ausprobiert. Nach diesen wird dann noch einmal probiert, von diesen Zeichensätzen nach UTF-8 zu dekodieren."
+msgid ""
+"List of character encodings used for fall back conversion of metadata. If "
+"automatic character encoding detector failed or has been disabled, encodings "
+"in this list would be treated as candidates of the encoding of metadata, and "
+"fall back conversion from these encodings to UTF-8 would be attempted."
+msgstr ""
+"Alternativ für Metadaten verwendete Zeichensätze. Wenn die automatische "
+"Erkennung des Zeichensatzes fehlgeschlagen oder deaktiviert ist, werden die "
+"nachfolgend aufgelisteten Zeichensätze ausprobiert. Nach diesen wird dann "
+"noch einmal probiert, von diesen Zeichensätzen nach UTF-8 zu dekodieren."
 
 #: src/audacious/glade/prefswin.glade:2094
 msgid "Fallback character encodings:"
@@ -267,8 +290,12 @@
 msgstr "<b>Datei-Dialog</b>"
 
 #: src/audacious/glade/prefswin.glade:2189
-msgid "Always refresh the file dialog (this will slow opening the dialog on large directories, and Gnome VFS should handle automatically)."
-msgstr "Dateidialog immer aktualisieren (dies wird das Öffnen des Dialogs mit großen Verzeichnissen langsamer machen, und Gnome VFS sollte das automatisch machen)"
+msgid ""
+"Always refresh the file dialog (this will slow opening the dialog on large "
+"directories, and Gnome VFS should handle automatically)."
+msgstr ""
+"Dateidialog immer aktualisieren (dies wird das Öffnen des Dialogs mit großen "
+"Verzeichnissen langsamer machen, und Gnome VFS sollte das automatisch machen)"
 
 #: src/audacious/glade/prefswin.glade:2191
 msgid "Always refresh directory when opening file dialog"
@@ -313,8 +340,15 @@
 msgstr "<b>Popup-Information</b>"
 
 #: src/audacious/glade/prefswin.glade:2475
-msgid "Toggles popup information window for the pointed entry in the playlist. The window shows title of song, name of album, genre, year of publish, track number, track length, and artwork."
-msgstr "Schaltet die Popup-Informationen ein und aus. Diese werden angezeigt, wenn mit der Maus über einen Wiedergabelisteneintrag gefahren wird. Gezeigt werden Titel, Album, Genre, Publikationsjahr, Titelnummer, Titellänge und Cover-Bild."
+msgid ""
+"Toggles popup information window for the pointed entry in the playlist. The "
+"window shows title of song, name of album, genre, year of publish, track "
+"number, track length, and artwork."
+msgstr ""
+"Schaltet die Popup-Informationen ein und aus. Diese werden angezeigt, wenn "
+"mit der Maus über einen Wiedergabelisteneintrag gefahren wird. Gezeigt "
+"werden Titel, Album, Genre, Publikationsjahr, Titelnummer, Titellänge und "
+"Cover-Bild."
 
 #: src/audacious/glade/prefswin.glade:2477
 msgid "Show popup information for playlist entries"
@@ -324,10 +358,8 @@
 msgid "Edit settings for popup information"
 msgstr "Einstellungen für Popup-Informationen bearbeiten"
 
-#: src/audacious/glade/prefswin.glade:2553
-#: src/audacious/ui_manager.c:203
-#: src/audacious/ui_playlist_manager.c:402
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/glade/prefswin.glade:2553 src/audacious/ui_manager.c:203
+#: src/audacious/ui_playlist_manager.c:402 src/audacious/ui_preferences.c:116
 msgid "Playlist"
 msgstr "Wiedergabeliste"
 
@@ -347,8 +379,7 @@
 msgid "Available _Presets:"
 msgstr "Verfügbare Equalizer-_Voreinstellungen:"
 
-#: src/audacious/glade/prefswin.glade:2921
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/glade/prefswin.glade:2921 src/audacious/ui_preferences.c:114
 msgid "Equalizer"
 msgstr "Equalizer"
 
@@ -381,8 +412,12 @@
 msgstr "Benutzername für Proxy:"
 
 #: src/audacious/glade/prefswin.glade:3354
-msgid "<span size=\"small\">Changing these settings will require a restart of Audacious.</span>"
-msgstr "<span size=\"small\">Das Ändern dieser Einstellungen benötigt einen Neustart von Audacious.</span>"
+msgid ""
+"<span size=\"small\">Changing these settings will require a restart of "
+"Audacious.</span>"
+msgstr ""
+"<span size=\"small\">Das Ändern dieser Einstellungen benötigt einen Neustart "
+"von Audacious.</span>"
 
 #: src/audacious/glade/prefswin.glade:3493
 msgid "<b>Audio System</b>"
@@ -394,12 +429,16 @@
 
 #: src/audacious/glade/prefswin.glade:3593
 msgid ""
-"<span size=\"small\">This is the amount of time to prebuffer audio streams by, in milliseconds.\n"
+"<span size=\"small\">This is the amount of time to prebuffer audio streams "
+"by, in milliseconds.\n"
 "Increase this value if you are experiencing audio skipping.\n"
-"Please note however, that high values will result in Audacious performing poorly.</span>"
+"Please note however, that high values will result in Audacious performing "
+"poorly.</span>"
 msgstr ""
-"<span size=\"small\">Dies ist die Grösse des Puffers für Audio-Streams, angegeben in Millisekunden.\n"
-"Dieser Wert sollte erhöht werden, wenn Unterbrechungen im Ton festgestellt werden.\n"
+"<span size=\"small\">Dies ist die Grösse des Puffers für Audio-Streams, "
+"angegeben in Millisekunden.\n"
+"Dieser Wert sollte erhöht werden, wenn Unterbrechungen im Ton festgestellt "
+"werden.\n"
 "Hohe Werte können jedoch dazu führen, dass Audacious langsamer läuft.</span>"
 
 #: src/audacious/glade/prefswin.glade:3663
@@ -419,16 +458,27 @@
 msgstr "<b>Formaterkennung</b>"
 
 #: src/audacious/glade/prefswin.glade:3935
-msgid "When checked, Audacious will detect file formats on demand. This can result in a messier playlist, but delivers a major speed benefit."
-msgstr "Falls aktiviert, wird Audacious Dateiformate nur bei Bedarf ermitteln. Dies kann zu einer unordentlichen Wiedergabeliste führen, bringt gleichzeitig aber eine beträchtliche Geschwindigkeitserhöhung."
+msgid ""
+"When checked, Audacious will detect file formats on demand. This can result "
+"in a messier playlist, but delivers a major speed benefit."
+msgstr ""
+"Falls aktiviert, wird Audacious Dateiformate nur bei Bedarf ermitteln. Dies "
+"kann zu einer unordentlichen Wiedergabeliste führen, bringt gleichzeitig "
+"aber eine beträchtliche Geschwindigkeitserhöhung."
 
 #: src/audacious/glade/prefswin.glade:3937
 msgid "Detect file formats on demand, instead of immediately."
 msgstr "Dateiformate nicht sofort ermitteln, sondern nur bei Bedarf."
 
 #: src/audacious/glade/prefswin.glade:3971
-msgid "When checked, Audacious will detect file formats based by extension. This is slightly slower than detection on demand, but still provides a minimal level of format detection."
-msgstr "Falls aktiviert, wird Audacious das Dateiformat anhand der Dateierweiterung erkennen. Dies ist etwas langsamer als die Erkennung bei Bedarf, garantiert aber trotzdem einen minimalen Grad an Format-Erkennung."
+msgid ""
+"When checked, Audacious will detect file formats based by extension. This is "
+"slightly slower than detection on demand, but still provides a minimal level "
+"of format detection."
+msgstr ""
+"Falls aktiviert, wird Audacious das Dateiformat anhand der Dateierweiterung "
+"erkennen. Dies ist etwas langsamer als die Erkennung bei Bedarf, garantiert "
+"aber trotzdem einen minimalen Grad an Format-Erkennung."
 
 #: src/audacious/glade/prefswin.glade:3973
 msgid "Detect file formats by extension."
@@ -439,8 +489,11 @@
 msgstr "<b>Wiedergabe</b>"
 
 #: src/audacious/glade/prefswin.glade:4046
-msgid "When Audacious starts, automatically begin playing from the point where we stopped before."
-msgstr "Mit der Wiedergabe am letzten Ort starten, wenn Audacious gestartet wird."
+msgid ""
+"When Audacious starts, automatically begin playing from the point where we "
+"stopped before."
+msgstr ""
+"Mit der Wiedergabe am letzten Ort starten, wenn Audacious gestartet wird."
 
 #: src/audacious/glade/prefswin.glade:4048
 msgid "Continue playback on startup"
@@ -448,7 +501,9 @@
 
 #: src/audacious/glade/prefswin.glade:4082
 msgid "When finished playing a song, don't automatically advance to the next."
-msgstr "Nicht automatisch mit dem nächsten Titel fortfahren, wenn ein Titel zuende gespielt wurde."
+msgstr ""
+"Nicht automatisch mit dem nächsten Titel fortfahren, wenn ein Titel zuende "
+"gespielt wurde."
 
 #: src/audacious/glade/prefswin.glade:4084
 msgid "Don't advance in the playlist"
@@ -484,7 +539,8 @@
 "This should be the max supported sampling rate of\n"
 "the sound card or output plugin.</span>"
 msgstr ""
-"<span size=\"small\">Alle Streams werden in diese Abtastfrequenz umgewandelt.\n"
+"<span size=\"small\">Alle Streams werden in diese Abtastfrequenz "
+"umgewandelt.\n"
 "Sie sollte die maximal unterstützte Abtastfrequenz der\n"
 "Soundkarte oder des Ausgabe-Plugins sein.</span>"
 
@@ -497,8 +553,13 @@
 msgstr "<b>Lautstärkeregelung</b>"
 
 #: src/audacious/glade/prefswin.glade:4556
-msgid "Use software volume control. This may be useful for situations where your audio system does not support controlling the playback volume."
-msgstr "Benutze Software-Lautstärkeregelung. Das kann nützlich sein für den Fall, dass das gewählte Audio-System die Kontrolle der Wiedergabelautstärke nicht unterstützt."
+msgid ""
+"Use software volume control. This may be useful for situations where your "
+"audio system does not support controlling the playback volume."
+msgstr ""
+"Benutze Software-Lautstärkeregelung. Das kann nützlich sein für den Fall, "
+"dass das gewählte Audio-System die Kontrolle der Wiedergabelautstärke nicht "
+"unterstützt."
 
 #: src/audacious/glade/prefswin.glade:4558
 msgid "Use software volume control"
@@ -517,8 +578,14 @@
 msgstr "<b>Cover-Bild finden</b>"
 
 #: src/audacious/glade/prefswin.glade:4856
-msgid "While searching for the album's cover, Audacious looks for certain words in the filename. You can specify those words in the lists below, separated using commas."
-msgstr "Wenn Audacious das Titelbild sucht, sucht es nach bestimmten Worten im Dateinamen. Diese können nachfolgend eingegeben werden, jeweils durch Beistriche getrennt."
+msgid ""
+"While searching for the album's cover, Audacious looks for certain words in "
+"the filename. You can specify those words in the lists below, separated "
+"using commas."
+msgstr ""
+"Wenn Audacious das Titelbild sucht, sucht es nach bestimmten Worten im "
+"Dateinamen. Diese können nachfolgend eingegeben werden, jeweils durch "
+"Beistriche getrennt."
 
 #: src/audacious/glade/prefswin.glade:4911
 msgid "Exclude:"
@@ -557,8 +624,12 @@
 msgstr "Farbanpassung"
 
 #: src/audacious/glade/prefswin.glade:5325
-msgid "Audacious allows you to alter the color balance of the skinned UI. The sliders below will allow you to do this."
-msgstr "Audacious erlaubt es, die Farbe der Oberfläche mit der Schiebeleiste unten zu ändern."
+msgid ""
+"Audacious allows you to alter the color balance of the skinned UI. The "
+"sliders below will allow you to do this."
+msgstr ""
+"Audacious erlaubt es, die Farbe der Oberfläche mit der Schiebeleiste unten "
+"zu ändern."
 
 #: src/audacious/glade/prefswin.glade:5359
 msgid "Blue"
@@ -595,9 +666,7 @@
 msgid "Unable to create log file (%s)!\n"
 msgstr "Konnte Logdatei nicht erstellen (%s)!\n"
 
-#: src/audacious/main.c:90
-#: src/audacious/main.c:92
-#: src/audacious/ui_main.c:491
+#: src/audacious/main.c:90 src/audacious/main.c:92 src/audacious/ui_main.c:491
 #: src/audacious/ui_main.c:2466
 msgid "Audacious"
 msgstr "Audacious"
@@ -687,22 +756,27 @@
 msgid ""
 "<b><big>Unable to load skin.</big></b>\n"
 "\n"
-"Check that skin at '%s' is usable and default skin is properly installed at '%s'\n"
+"Check that skin at '%s' is usable and default skin is properly installed at "
+"'%s'\n"
 msgstr ""
 "<b><big>Konnte Skin nicht laden.</big></b>\n"
 "\n"
-"Bitte überprüfen, dass der Skin in '%s' benutzbar ist und der Standard-Skin ordnungsgemäß in '%s' installiert wurde.\n"
+"Bitte überprüfen, dass der Skin in '%s' benutzbar ist und der Standard-Skin "
+"ordnungsgemäß in '%s' installiert wurde.\n"
 
 #: src/audacious/main.c:1320
 msgid ""
 "Sorry, threads isn't supported on your platform.\n"
 "\n"
-"If you're on a libc5 based linux system and installed Glib & GTK+ before you\n"
+"If you're on a libc5 based linux system and installed Glib & GTK+ before "
+"you\n"
 "installed LinuxThreads you need to recompile Glib & GTK+.\n"
 msgstr ""
 "Tut uns Leid, aber Threads werden auf dieser Plattform nicht unterstützt.\n"
 "\n"
-"Wenn dies ein libc5-basiertes Linux-System ist und Glib & GTK+ vor LinuxThreads installiert wurden, müssen Glib und GTK+ erneut kompiliert werden.\n"
+"Wenn dies ein libc5-basiertes Linux-System ist und Glib & GTK+ vor "
+"LinuxThreads installiert wurden, müssen Glib und GTK+ erneut kompiliert "
+"werden.\n"
 
 #: src/audacious/main.c:1351
 msgid "- play multimedia files"
@@ -736,12 +810,16 @@
 "Audacious has caught signal 11 (SIGSEGV).\n"
 "\n"
 "We apologize for the inconvenience, but Audacious has crashed.\n"
-"This is a bug in the program, and should never happen under normal circumstances.\n"
+"This is a bug in the program, and should never happen under normal "
+"circumstances.\n"
 "Your current configuration has been saved and should not be damaged.\n"
 "\n"
-"You can help improve the quality of Audacious by filing a bug at http://bugs-meta.atheme.org\n"
-"Please include the entire text of this message and a description of what you were doing when\n"
-"this crash occured in order to quickly expedite the handling of your bug report:\n"
+"You can help improve the quality of Audacious by filing a bug at http://bugs-"
+"meta.atheme.org\n"
+"Please include the entire text of this message and a description of what you "
+"were doing when\n"
+"this crash occured in order to quickly expedite the handling of your bug "
+"report:\n"
 "\n"
 msgstr ""
 "\n"
@@ -762,7 +840,8 @@
 #: src/audacious/signals.c:80
 msgid ""
 "\n"
-"Bugs can be reported at http://bugs-meta.atheme.org against the Audacious product.\n"
+"Bugs can be reported at http://bugs-meta.atheme.org against the Audacious "
+"product.\n"
 msgstr ""
 "\n"
 "Fehler in Audacious können bei http://bugs-meta.atheme.org gemeldet werden.\n"
@@ -790,15 +869,12 @@
 "\n"
 "Copyright (C) 2005-2007 Audacious-Enwicklerteam"
 
-#: src/audacious/ui_about.c:125
-#: src/audacious/ui_credits.c:357
-#: src/audacious/ui_manager.c:391
-#: src/audacious/ui_manager.c:392
+#: src/audacious/ui_about.c:125 src/audacious/ui_credits.c:357
+#: src/audacious/ui_manager.c:391 src/audacious/ui_manager.c:392
 msgid "About Audacious"
 msgstr "Über Audacious"
 
-#: src/audacious/ui_about.c:174
-#: src/audacious/ui_credits.c:400
+#: src/audacious/ui_about.c:174 src/audacious/ui_credits.c:400
 msgid "Credits"
 msgstr "Credits"
 
@@ -987,29 +1063,24 @@
 msgid "Track Information Window"
 msgstr "Titel-Informationsfenster"
 
-#: src/audacious/ui_fileinfopopup.c:252
-#: src/audacious/ui_fileinfopopup.c:364
+#: src/audacious/ui_fileinfopopup.c:252 src/audacious/ui_fileinfopopup.c:364
 #: src/audacious/ui_preferences.c:125
 msgid "Title"
 msgstr "Titel"
 
-#: src/audacious/ui_fileinfopopup.c:255
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_fileinfopopup.c:255 src/audacious/ui_preferences.c:123
 msgid "Artist"
 msgstr "Künstler"
 
-#: src/audacious/ui_fileinfopopup.c:258
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_fileinfopopup.c:258 src/audacious/ui_preferences.c:124
 msgid "Album"
 msgstr "Album"
 
-#: src/audacious/ui_fileinfopopup.c:261
-#: src/audacious/ui_preferences.c:127
+#: src/audacious/ui_fileinfopopup.c:261 src/audacious/ui_preferences.c:127
 msgid "Genre"
 msgstr "Genre"
 
-#: src/audacious/ui_fileinfopopup.c:264
-#: src/audacious/ui_preferences.c:131
+#: src/audacious/ui_fileinfopopup.c:264 src/audacious/ui_preferences.c:131
 msgid "Year"
 msgstr "Jahr"
 
@@ -1021,8 +1092,7 @@
 msgid "Track Length"
 msgstr "Titellänge:"
 
-#: src/audacious/ui_fileinfopopup.c:373
-#: src/audacious/ui_preferences.c:128
+#: src/audacious/ui_fileinfopopup.c:373 src/audacious/ui_preferences.c:128
 #: src/audacious/ui_preferences.c:420
 msgid "Filename"
 msgstr "Dateiname"
@@ -1055,8 +1125,7 @@
 msgid "Un_queue"
 msgstr "Aus _Queue entfernen"
 
-#: src/audacious/ui_jumptotrack.c:140
-#: src/audacious/ui_jumptotrack.c:603
+#: src/audacious/ui_jumptotrack.c:140 src/audacious/ui_jumptotrack.c:603
 msgid "_Queue"
 msgstr "Zu _Queue hinzufügen"
 
@@ -1085,18 +1154,15 @@
 msgid "VBR"
 msgstr "VBR"
 
-#: src/audacious/ui_main.c:761
-#: src/audacious/ui_main.c:765
+#: src/audacious/ui_main.c:761 src/audacious/ui_main.c:765
 msgid "stereo"
 msgstr "stereo"
 
-#: src/audacious/ui_main.c:761
-#: src/audacious/ui_main.c:765
+#: src/audacious/ui_main.c:761 src/audacious/ui_main.c:765
 msgid "mono"
 msgstr "mono"
 
-#: src/audacious/ui_main.c:1060
-#: src/audacious/ui_manager.c:420
+#: src/audacious/ui_main.c:1060 src/audacious/ui_manager.c:420
 #: src/audacious/ui_manager.c:421
 msgid "Jump to Time"
 msgstr "Zu Zeitpunkt springen"
@@ -1124,10 +1190,14 @@
 #: src/audacious/ui_main.c:1235
 msgid ""
 "Audacious has been started with all of its windows hidden.\n"
-"You may want to show the player window again to control Audacious; otherwise, you'll have to control it remotely via audtool or enabled plugins (such as the statusicon plugin)."
+"You may want to show the player window again to control Audacious; "
+"otherwise, you'll have to control it remotely via audtool or enabled plugins "
+"(such as the statusicon plugin)."
 msgstr ""
 "Audacious wurde ohne sichtbare Fenster gestartet.\n"
-"Wenn das Hauptfenster nicht wieder geöffnet wird, muss Audacious via audtool oder durch aktivierte Plugins (wie das statusicon-Plugin) ferngesteuert werden."
+"Wenn das Hauptfenster nicht wieder geöffnet wird, muss Audacious via audtool "
+"oder durch aktivierte Plugins (wie das statusicon-Plugin) ferngesteuert "
+"werden."
 
 #: src/audacious/ui_main.c:1241
 msgid "Always ignore, show/hide is controlled remotely"
@@ -1209,84 +1279,68 @@
 msgid "Error in Audacious."
 msgstr "Fehler in Audacious."
 
-#: src/audacious/ui_manager.c:48
-#: src/audacious/ui_manager.c:49
+#: src/audacious/ui_manager.c:48 src/audacious/ui_manager.c:49
 msgid "Autoscroll Songname"
 msgstr "Songname automatisch scrollen"
 
 #  -s, --stop switch
-#: src/audacious/ui_manager.c:51
-#: src/audacious/ui_manager.c:52
+#: src/audacious/ui_manager.c:51 src/audacious/ui_manager.c:52
 msgid "Stop after Current Song"
 msgstr "Nach aktuellem Song stoppen"
 
-#: src/audacious/ui_manager.c:54
-#: src/audacious/ui_manager.c:55
+#: src/audacious/ui_manager.c:54 src/audacious/ui_manager.c:55
 msgid "Peaks"
 msgstr "Spitzen"
 
-#: src/audacious/ui_manager.c:57
-#: src/audacious/ui_manager.c:58
+#: src/audacious/ui_manager.c:57 src/audacious/ui_manager.c:58
 msgid "Repeat"
 msgstr "Wiederholen"
 
-#: src/audacious/ui_manager.c:60
-#: src/audacious/ui_manager.c:61
+#: src/audacious/ui_manager.c:60 src/audacious/ui_manager.c:61
 msgid "Shuffle"
 msgstr "Zufällige Wiedergabe"
 
-#: src/audacious/ui_manager.c:63
-#: src/audacious/ui_manager.c:64
+#: src/audacious/ui_manager.c:63 src/audacious/ui_manager.c:64
 msgid "No Playlist Advance"
 msgstr "In der Wiedergabeliste nicht weiterspringen"
 
-#: src/audacious/ui_manager.c:66
-#: src/audacious/ui_manager.c:67
+#: src/audacious/ui_manager.c:66 src/audacious/ui_manager.c:67
 msgid "Show Player"
 msgstr "Player zeigen"
 
-#: src/audacious/ui_manager.c:69
-#: src/audacious/ui_manager.c:70
+#: src/audacious/ui_manager.c:69 src/audacious/ui_manager.c:70
 msgid "Show Playlist Editor"
 msgstr "Wiedergabeliste zeigen"
 
-#: src/audacious/ui_manager.c:72
-#: src/audacious/ui_manager.c:73
+#: src/audacious/ui_manager.c:72 src/audacious/ui_manager.c:73
 msgid "Show Equalizer"
 msgstr "Equalizer zeigen"
 
-#: src/audacious/ui_manager.c:75
-#: src/audacious/ui_manager.c:76
+#: src/audacious/ui_manager.c:75 src/audacious/ui_manager.c:76
 msgid "Always on Top"
 msgstr "Immer im Vordergrund"
 
-#: src/audacious/ui_manager.c:78
-#: src/audacious/ui_manager.c:79
+#: src/audacious/ui_manager.c:78 src/audacious/ui_manager.c:79
 msgid "Put on All Workspaces"
 msgstr "Auf allen Arbeitsflächen anzeigen"
 
-#: src/audacious/ui_manager.c:81
-#: src/audacious/ui_manager.c:82
+#: src/audacious/ui_manager.c:81 src/audacious/ui_manager.c:82
 msgid "Roll up Player"
 msgstr "Player aufrollen"
 
-#: src/audacious/ui_manager.c:84
-#: src/audacious/ui_manager.c:85
+#: src/audacious/ui_manager.c:84 src/audacious/ui_manager.c:85
 msgid "Roll up Playlist Editor"
 msgstr "Wiedergabeliste aufrollen"
 
-#: src/audacious/ui_manager.c:87
-#: src/audacious/ui_manager.c:88
+#: src/audacious/ui_manager.c:87 src/audacious/ui_manager.c:88
 msgid "Roll up Equalizer"
 msgstr "Equalizer aufrollen"
 
-#: src/audacious/ui_manager.c:90
-#: src/audacious/ui_manager.c:91
+#: src/audacious/ui_manager.c:90 src/audacious/ui_manager.c:91
 msgid "DoubleSize"
 msgstr "Doppelte Grösse"
 
-#: src/audacious/ui_manager.c:93
-#: src/audacious/ui_manager.c:94
+#: src/audacious/ui_manager.c:93 src/audacious/ui_manager.c:94
 msgid "Easy Move"
 msgstr "Vereinfachtes Verschieben"
 
@@ -1306,14 +1360,12 @@
 msgid "Off"
 msgstr "Aus"
 
-#: src/audacious/ui_manager.c:109
-#: src/audacious/ui_manager.c:126
+#: src/audacious/ui_manager.c:109 src/audacious/ui_manager.c:126
 #: src/audacious/ui_manager.c:132
 msgid "Normal"
 msgstr "Normal"
 
-#: src/audacious/ui_manager.c:110
-#: src/audacious/ui_manager.c:127
+#: src/audacious/ui_manager.c:110 src/audacious/ui_manager.c:127
 msgid "Fire"
 msgstr "Feuer"
 
@@ -1365,28 +1417,23 @@
 msgid "Eighth (~6 fps)"
 msgstr "Achtel (~6 fps)"
 
-#: src/audacious/ui_manager.c:144
-#: src/audacious/ui_manager.c:152
+#: src/audacious/ui_manager.c:144 src/audacious/ui_manager.c:152
 msgid "Slowest"
 msgstr "Am langsamsten"
 
-#: src/audacious/ui_manager.c:145
-#: src/audacious/ui_manager.c:153
+#: src/audacious/ui_manager.c:145 src/audacious/ui_manager.c:153
 msgid "Slow"
 msgstr "Langsam"
 
-#: src/audacious/ui_manager.c:146
-#: src/audacious/ui_manager.c:154
+#: src/audacious/ui_manager.c:146 src/audacious/ui_manager.c:154
 msgid "Medium"
 msgstr "Mittel"
 
-#: src/audacious/ui_manager.c:147
-#: src/audacious/ui_manager.c:155
+#: src/audacious/ui_manager.c:147 src/audacious/ui_manager.c:155
 msgid "Fast"
 msgstr "Schnell"
 
-#: src/audacious/ui_manager.c:148
-#: src/audacious/ui_manager.c:156
+#: src/audacious/ui_manager.c:148 src/audacious/ui_manager.c:156
 msgid "Fastest"
 msgstr "Am schnellsten"
 
@@ -1402,28 +1449,23 @@
 msgid "Playback"
 msgstr "Wiedergabe"
 
-#: src/audacious/ui_manager.c:172
-#: src/audacious/ui_manager.c:173
+#: src/audacious/ui_manager.c:172 src/audacious/ui_manager.c:173
 msgid "Play"
 msgstr "Wiedergeben"
 
-#: src/audacious/ui_manager.c:175
-#: src/audacious/ui_manager.c:176
+#: src/audacious/ui_manager.c:175 src/audacious/ui_manager.c:176
 msgid "Pause"
 msgstr "Pause"
 
-#: src/audacious/ui_manager.c:178
-#: src/audacious/ui_manager.c:179
+#: src/audacious/ui_manager.c:178 src/audacious/ui_manager.c:179
 msgid "Stop"
 msgstr "Stop"
 
-#: src/audacious/ui_manager.c:181
-#: src/audacious/ui_manager.c:182
+#: src/audacious/ui_manager.c:181 src/audacious/ui_manager.c:182
 msgid "Previous"
 msgstr "Zurück"
 
-#: src/audacious/ui_manager.c:184
-#: src/audacious/ui_manager.c:185
+#: src/audacious/ui_manager.c:184 src/audacious/ui_manager.c:185
 msgid "Next"
 msgstr "Vorwärts"
 
@@ -1463,23 +1505,19 @@
 msgid "Peaks Falloff"
 msgstr "Spitzen-Falloff"
 
-#: src/audacious/ui_manager.c:205
-#: src/audacious/ui_manager.c:206
+#: src/audacious/ui_manager.c:205 src/audacious/ui_manager.c:206
 msgid "New Playlist"
 msgstr "Neue Wiedergabeliste"
 
-#: src/audacious/ui_manager.c:208
-#: src/audacious/ui_manager.c:209
+#: src/audacious/ui_manager.c:208 src/audacious/ui_manager.c:209
 msgid "Select Next Playlist"
 msgstr "Nächste Wiedergabeliste wählen"
 
-#: src/audacious/ui_manager.c:211
-#: src/audacious/ui_manager.c:212
+#: src/audacious/ui_manager.c:211 src/audacious/ui_manager.c:212
 msgid "Select Previous Playlist"
 msgstr "Vorherige Wiedergabeliste wählen"
 
-#: src/audacious/ui_manager.c:214
-#: src/audacious/ui_manager.c:215
+#: src/audacious/ui_manager.c:214 src/audacious/ui_manager.c:215
 msgid "Delete Playlist"
 msgstr "Wiedergabeliste löschen"
 
@@ -1550,8 +1588,12 @@
 msgstr "Suchen und auswählen"
 
 #: src/audacious/ui_manager.c:253
-msgid "Searches the playlist and selects playlist entries based on specific criteria."
-msgstr "Durchsucht die Wiedergabeliste und selektiert Einträge anhand verschiedener Kriterien"
+msgid ""
+"Searches the playlist and selects playlist entries based on specific "
+"criteria."
+msgstr ""
+"Durchsucht die Wiedergabeliste und selektiert Einträge anhand verschiedener "
+"Kriterien"
 
 #: src/audacious/ui_manager.c:256
 msgid "Invert Selection"
@@ -1597,8 +1639,7 @@
 msgid "Remove Duplicates"
 msgstr "Duplikate entfernen"
 
-#: src/audacious/ui_manager.c:280
-#: src/audacious/ui_manager.c:316
+#: src/audacious/ui_manager.c:280 src/audacious/ui_manager.c:316
 #: src/audacious/ui_manager.c:346
 msgid "By Title"
 msgstr "Nach Titel"
@@ -1607,25 +1648,26 @@
 msgid "Removes duplicate entries from the playlist by title."
 msgstr "Anhand des Titels doppelte Einträge aus der Wiedergabeliste löschen"
 
-#: src/audacious/ui_manager.c:284
-#: src/audacious/ui_manager.c:324
+#: src/audacious/ui_manager.c:284 src/audacious/ui_manager.c:324
 #: src/audacious/ui_manager.c:354
 msgid "By Filename"
 msgstr "Nach Dateiname"
 
 #: src/audacious/ui_manager.c:285
 msgid "Removes duplicate entries from the playlist by filename."
-msgstr "Anhand des Dateinamens doppelte Einträge aus der Wiedergabeliste entfernen"
-
-#: src/audacious/ui_manager.c:288
-#: src/audacious/ui_manager.c:328
+msgstr ""
+"Anhand des Dateinamens doppelte Einträge aus der Wiedergabeliste entfernen"
+
+#: src/audacious/ui_manager.c:288 src/audacious/ui_manager.c:328
 #: src/audacious/ui_manager.c:358
 msgid "By Path + Filename"
 msgstr "Nach Pfad & Dateinamen"
 
 #: src/audacious/ui_manager.c:289
 msgid "Removes duplicate entries from the playlist by their full path."
-msgstr "Anhand des vollen Dateipfads doppelte Einträge aus der Wiedergabeliste löschen"
+msgstr ""
+"Anhand des vollen Dateipfads doppelte Einträge aus der Wiedergabeliste "
+"löschen"
 
 #: src/audacious/ui_manager.c:292
 msgid "Remove All"
@@ -1672,58 +1714,47 @@
 msgid "Sort List"
 msgstr "Wiedergabeliste sortieren"
 
-#: src/audacious/ui_manager.c:317
-#: src/audacious/ui_manager.c:347
+#: src/audacious/ui_manager.c:317 src/audacious/ui_manager.c:347
 msgid "Sorts the list by title."
 msgstr "Wiedergabeliste nach dem Titel sortieren"
 
-#: src/audacious/ui_manager.c:320
-#: src/audacious/ui_manager.c:350
+#: src/audacious/ui_manager.c:320 src/audacious/ui_manager.c:350
 msgid "By Artist"
 msgstr "Nach Künstler"
 
-#: src/audacious/ui_manager.c:321
-#: src/audacious/ui_manager.c:351
+#: src/audacious/ui_manager.c:321 src/audacious/ui_manager.c:351
 msgid "Sorts the list by artist."
 msgstr "Wiedergabeliste nach Künstler sortieren"
 
-#: src/audacious/ui_manager.c:325
-#: src/audacious/ui_manager.c:355
+#: src/audacious/ui_manager.c:325 src/audacious/ui_manager.c:355
 msgid "Sorts the list by filename."
 msgstr "Wiedergabeliste nach Dateinamen sortieren"
 
-#: src/audacious/ui_manager.c:329
-#: src/audacious/ui_manager.c:359
+#: src/audacious/ui_manager.c:329 src/audacious/ui_manager.c:359
 msgid "Sorts the list by full pathname."
 msgstr "Wiedergabeliste nach vollem Pfadnamen sortieren"
 
-#: src/audacious/ui_manager.c:332
-#: src/audacious/ui_manager.c:362
+#: src/audacious/ui_manager.c:332 src/audacious/ui_manager.c:362
 msgid "By Date"
 msgstr "Nach Datum"
 
-#: src/audacious/ui_manager.c:333
-#: src/audacious/ui_manager.c:363
+#: src/audacious/ui_manager.c:333 src/audacious/ui_manager.c:363
 msgid "Sorts the list by modification time."
 msgstr "Wiedergabeliste nach Modifikationsdatum sortieren"
 
-#: src/audacious/ui_manager.c:336
-#: src/audacious/ui_manager.c:366
+#: src/audacious/ui_manager.c:336 src/audacious/ui_manager.c:366
 msgid "By Track Number"
 msgstr "Nach Titelnummer"
 
-#: src/audacious/ui_manager.c:337
-#: src/audacious/ui_manager.c:367
+#: src/audacious/ui_manager.c:337 src/audacious/ui_manager.c:367
 msgid "Sorts the list by track number."
 msgstr "Wiedergabeliste nach Titelnummer sortieren"
 
-#: src/audacious/ui_manager.c:340
-#: src/audacious/ui_manager.c:370
+#: src/audacious/ui_manager.c:340 src/audacious/ui_manager.c:370
 msgid "By Playlist Entry"
 msgstr "Nach Wiedergabelisteneintrag"
 
-#: src/audacious/ui_manager.c:341
-#: src/audacious/ui_manager.c:371
+#: src/audacious/ui_manager.c:341 src/audacious/ui_manager.c:371
 msgid "Sorts the list by playlist entry."
 msgstr "Wiedergabeliste nach Wiedergabelisteneintrag sortieren"
 
@@ -1743,13 +1774,11 @@
 msgid "Plugin Services"
 msgstr "Plugin-Dienste"
 
-#: src/audacious/ui_manager.c:385
-#: src/audacious/ui_manager.c:388
+#: src/audacious/ui_manager.c:385 src/audacious/ui_manager.c:388
 msgid "View Track Details"
 msgstr "Titel-Details anzeigen"
 
-#: src/audacious/ui_manager.c:386
-#: src/audacious/ui_manager.c:389
+#: src/audacious/ui_manager.c:386 src/audacious/ui_manager.c:389
 msgid "View track details"
 msgstr "Titel-Details anzeigen"
 
@@ -1790,23 +1819,19 @@
 msgid "Quit Audacious"
 msgstr "Audacious beenden"
 
-#: src/audacious/ui_manager.c:408
-#: src/audacious/ui_manager.c:409
+#: src/audacious/ui_manager.c:408 src/audacious/ui_manager.c:409
 msgid "Set A-B"
 msgstr "A-B setzen"
 
-#: src/audacious/ui_manager.c:411
-#: src/audacious/ui_manager.c:412
+#: src/audacious/ui_manager.c:411 src/audacious/ui_manager.c:412
 msgid "Clear A-B"
 msgstr "A-B löschen"
 
-#: src/audacious/ui_manager.c:414
-#: src/audacious/ui_manager.c:415
+#: src/audacious/ui_manager.c:414 src/audacious/ui_manager.c:415
 msgid "Jump to Playlist Start"
 msgstr "Zum Anfang der Wiedergabeliste springen"
 
-#: src/audacious/ui_manager.c:417
-#: src/audacious/ui_manager.c:418
+#: src/audacious/ui_manager.c:417 src/audacious/ui_manager.c:418
 msgid "Jump to File"
 msgstr "Zu Datei springen"
 
@@ -1834,8 +1859,7 @@
 msgid "Delete"
 msgstr "Löschen"
 
-#: src/audacious/ui_manager.c:436
-#: src/audacious/ui_manager.c:457
+#: src/audacious/ui_manager.c:436 src/audacious/ui_manager.c:457
 #: src/audacious/ui_manager.c:472
 msgid "Preset"
 msgstr "Equalizer-Voreinstellung"
@@ -1844,8 +1868,7 @@
 msgid "Load preset"
 msgstr "Equalizer-Voreinstellung laden"
 
-#: src/audacious/ui_manager.c:439
-#: src/audacious/ui_manager.c:460
+#: src/audacious/ui_manager.c:439 src/audacious/ui_manager.c:460
 #: src/audacious/ui_manager.c:475
 msgid "Auto-load preset"
 msgstr "Automatisch geladene Equalizer-Voreinstellung"
@@ -1854,8 +1877,7 @@
 msgid "Load auto-load preset"
 msgstr "Automatisch geladene Equalizer-Voreinstellung laden"
 
-#: src/audacious/ui_manager.c:442
-#: src/audacious/ui_manager.c:463
+#: src/audacious/ui_manager.c:442 src/audacious/ui_manager.c:463
 msgid "Default"
 msgstr "Standard"
 
@@ -1936,8 +1958,17 @@
 msgstr "Einträge in der aktiven Wiedergabeliste suchen"
 
 #: src/audacious/ui_playlist.c:485
-msgid "Select entries in playlist by filling one or more fields. Fields use regular expressions syntax, case-insensitive. If you don't know how regular expressions work, simply insert a literal portion of what you're searching for."
-msgstr "Wiedergabelisteneinträge können durch Ausfüllen von einem oder mehreren Feldern auswählt werden. Die Felder benutzen reguläre Ausdrücke ohne Beachtung der Gross- und Kleinschreibung. Falls der Umgang mit regulären Ausdrücken nicht vertraut ist, kann auch einfach ein Suchbegriff eingegeben werden."
+msgid ""
+"Select entries in playlist by filling one or more fields. Fields use regular "
+"expressions syntax, case-insensitive. If you don't know how regular "
+"expressions work, simply insert a literal portion of what you're searching "
+"for."
+msgstr ""
+"Wiedergabelisteneinträge können durch Ausfüllen von einem oder mehreren "
+"Feldern auswählt werden. Die Felder benutzen reguläre Ausdrücke ohne "
+"Beachtung der Gross- und Kleinschreibung. Falls der Umgang mit regulären "
+"Ausdrücken nicht vertraut ist, kann auch einfach ein Suchbegriff eingegeben "
+"werden."
 
 #: src/audacious/ui_playlist.c:493
 msgid "Title: "
--- a/po/fr.po	Sun Oct 14 05:54:54 2007 +0300
+++ b/po/fr.po	Fri Oct 19 12:14:04 2007 +0300
@@ -1,24 +1,21 @@
-# translation of fr.po to
 # French language translation for beep-multimedia-player
 # Copyright (C) 2003 David Le Brun <david@dyn-ns.net>
 #
-#
-# David Le Brun <david@dyn-ns.net>, 2003.
+# Adapted for Audacious by :
 # Adam Cécile (Le_Vert) <gandalf@le-vert.net>, 2006.
+# Stanislas Zeller <skogkatt@orange.fr>, 2007.
+# Stany Henry (StrassBoy) <StrassBoy@gmail.com>, 2007.
 msgid ""
 msgstr ""
-"Project-Id-Version: fr\n"
+"Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n"
 "POT-Creation-Date: 2007-10-13 14:15+0200\n"
-"PO-Revision-Date: 2007-09-30 17:44+0100\n"
-"Last-Translator: stanislas zeller <skogkatt@orange.fr>\n"
-"Language-Team:  <fr@li.org>\n"
+"PO-Revision-Date: 2007-10-17 03:45+0100\n"
+"Last-Translator: Stany Henry <StrassBoy@gmail.com>\n"
+"Language-Team: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"NPOT-Creation-Date: 2003-08-08 19:35+0200\n"
-"Plural-Forms: nplurals=2; plural=n>1;\n"
-"X-Generator: KBabel 1.11.4\n"
 
 #: src/audacious/glade.c:45
 #, c-format
@@ -29,12 +26,12 @@
 msgstr ""
 "<b><big>Impossible de créer %s.</big></b>\n"
 "\n"
-"Ne peut ouvrir le fichier glade (%s). Veuillez vérifier votre "
-"configuration.\n"
+"Impossible d'ouvrir le fichier 'glade' (%s). Veuillez vérifier "
+"l'installation.\n"
 
 #: src/audacious/glade/fileinfo.glade:8
 msgid "Track Information"
-msgstr "Information de la Piste"
+msgstr "Informations sur le morceau"
 
 #: src/audacious/glade/fileinfo.glade:81
 msgid "<span size=\"small\">Title</span>"
@@ -42,7 +39,7 @@
 
 #: src/audacious/glade/fileinfo.glade:139
 msgid "<span size=\"small\">Artist</span>"
-msgstr "<span size=\"small\">Artiste</span>"
+msgstr "<span size=\"small\">Title</span>"
 
 #: src/audacious/glade/fileinfo.glade:197
 msgid "<span size=\"small\">Album</span>"
@@ -66,15 +63,15 @@
 
 #: src/audacious/glade/fileinfo.glade:499
 msgid "<span size=\"small\">Location</span>"
-msgstr "<span size=\"small\">Location</span>"
+msgstr "<span size=\"small\">Emplacement</span>"
 
 #: src/audacious/glade/prefswin.glade:8
 msgid "Audacious Preferences"
-msgstr "Préférences"
+msgstr "Préférences d'Audacious"
 
 #: src/audacious/glade/prefswin.glade:115
 msgid "_Decoder list:"
-msgstr "_Décodeur"
+msgstr "_Liste des décodeurs :"
 
 #: src/audacious/glade/prefswin.glade:219
 msgid "<span size=\"medium\"><b>Decoders</b></span>"
@@ -82,7 +79,7 @@
 
 #: src/audacious/glade/prefswin.glade:261
 msgid "_General plugin list:"
-msgstr "Liste des greffons _généraux:"
+msgstr "_Liste des modules généraux :"
 
 #: src/audacious/glade/prefswin.glade:365
 msgid "<span size=\"medium\"><b>General</b></span>"
@@ -90,15 +87,15 @@
 
 #: src/audacious/glade/prefswin.glade:407
 msgid "_Visualization plugin list:"
-msgstr "Liste des greffons _d'effets visuels:"
+msgstr "_Liste des modules de visualisation :"
 
 #: src/audacious/glade/prefswin.glade:511
 msgid "<b>Visualization</b>"
-msgstr "<b>Visuel</b>"
+msgstr "<b>Visualisation</b>"
 
 #: src/audacious/glade/prefswin.glade:553
 msgid "_Effect plugin list:"
-msgstr "Liste des greffons d'_effets sonores:"
+msgstr "_Liste des modules d'effets :"
 
 #: src/audacious/glade/prefswin.glade:657
 msgid "<b>Effects</b>"
@@ -106,15 +103,15 @@
 
 #: src/audacious/glade/prefswin.glade:693 src/audacious/ui_preferences.c:117
 msgid "Plugins"
-msgstr "Greffons"
+msgstr "Modules"
 
 #: src/audacious/glade/prefswin.glade:758
 msgid "<b>_Skin</b>"
-msgstr "<b>_Thèmes</b>"
+msgstr "<b>_Thème</b>"
 
 #: src/audacious/glade/prefswin.glade:811
 msgid "Refresh skin list"
-msgstr "Rafraichir la liste de skins"
+msgstr "Actualiser la liste des thèmes"
 
 #: src/audacious/glade/prefswin.glade:926
 msgid "<b>_Fonts</b>"
@@ -122,31 +119,31 @@
 
 #: src/audacious/glade/prefswin.glade:975
 msgid "_Player:"
-msgstr "Lecteur:"
+msgstr "_Fenêtre principale"
 
 #: src/audacious/glade/prefswin.glade:1018
 msgid "_Playlist:"
-msgstr "Liste:"
+msgstr "_Liste de lecture"
 
 #: src/audacious/glade/prefswin.glade:1050
 msgid "Select main player window font:"
-msgstr "Choix de la police du lecteur principal"
+msgstr "Police de la fenêtre principale :"
 
 #: src/audacious/glade/prefswin.glade:1072
 msgid "Select playlist font:"
-msgstr "Choisir la police:"
+msgstr "Police de la liste de lecture :"
 
 #: src/audacious/glade/prefswin.glade:1112
 msgid ""
 "Use bitmap fonts if they are available. Bitmap fonts do not support Unicode "
 "strings."
 msgstr ""
-"Utiliser les polices Bitmap si disponibles. Les polices Bitmap ne supportent "
-"pas les caractères Unicode."
+"Cette option permet d'utiliser les polices matricielles ('bitmap'). Ces "
+"polices ne gèrent pas la norme 'Unicode' (caractères accentués)."
 
 #: src/audacious/glade/prefswin.glade:1114
 msgid "Use Bitmap fonts if available"
-msgstr "Utiliser les polices Bitmap si disponibles"
+msgstr "Utiliser les polices matricielles (si elles sont disponibles)"
 
 #: src/audacious/glade/prefswin.glade:1161
 msgid "<b>_Miscellaneous</b>"
@@ -154,25 +151,24 @@
 
 #: src/audacious/glade/prefswin.glade:1202
 msgid "Show track numbers in playlist"
-msgstr "Afficher la position des morceaux dans la liste d'écoute"
+msgstr "Afficher la position des morceaux dans la liste de lecture"
 
 #: src/audacious/glade/prefswin.glade:1237
 msgid "Show separators in playlist"
-msgstr "Montrer les séparateurs dans la liste d'écoute"
+msgstr "Afficher les barres de séparation dans la liste de lecture"
 
 #: src/audacious/glade/prefswin.glade:1272
 msgid "Use custom cursors"
-msgstr "Utiliser les curseurs du thème"
+msgstr "Utiliser des pointeurs de souris personnalisés"
 
 #: src/audacious/glade/prefswin.glade:1306
 msgid "This enables the window manager to show decorations for windows."
 msgstr ""
-"Ceci active le gestionnaire de fenêtre montrant les décorations pour les "
-"fenêtres."
+"Cette option affiche les ornements propres au gestionnaire de fenêtres."
 
 #: src/audacious/glade/prefswin.glade:1308
 msgid "Show window manager decoration"
-msgstr "Montrer la décoration du gestionnaire de fenêtre"
+msgstr "Montrer la décoration du gestionnaire de fenêtres"
 
 #: src/audacious/glade/prefswin.glade:1342
 msgid ""
@@ -180,22 +176,28 @@
 "provided by Audacious itself and is faster than the default GTK2 selector "
 "(but sadly not as user-friendly)."
 msgstr ""
-"Ceci active le dialogue de fichier de sélection XMMS/GTK1. Ce sélecteur est "
-"fourni par Audacious et est plus rapide que le sélecteur en GTK2 par défaut."
+"Cette option active les boîtes de sélection de fichiers 'XMMS/GTK1'. Comme "
+"ce système est géré par Audacious, il est plus rapide que la version 'GTK2' "
+"par défaut. Cependant, il n'est pas très esthétique."
 
 #: src/audacious/glade/prefswin.glade:1344
 msgid "Use XMMS-style file selector instead of the default selector"
-msgstr "Utiliser le sélecteur de fichier XMMS comme le sélecteur par défaut"
+msgstr ""
+"Utiliser le système de sélection de fichiers de XMMS à la place du système "
+"par défaut"
 
 #: src/audacious/glade/prefswin.glade:1378
 msgid ""
 "If selected, the file information text in the main window will scroll back "
 "and forth. If not selected, the text will only scroll in one direction."
 msgstr ""
+"Si cette option est cochée, le texte d'information relatif au morceau "
+"défilera, dans la fenêtre principale, vers la gauche et vers la droite. "
+"Sinon, le texte défilera dans une seule direction."
 
 #: src/audacious/glade/prefswin.glade:1380
 msgid "Use two-way text scroller"
-msgstr ""
+msgstr "Utiliser le défilement de texte bidirectionnel"
 
 #: src/audacious/glade/prefswin.glade:1422 src/audacious/ui_preferences.c:111
 msgid "Appearance"
@@ -211,7 +213,7 @@
 
 #: src/audacious/glade/prefswin.glade:1595
 msgid "Scrolls playlist by"
-msgstr "Défilement de la liste d'écoute de"
+msgstr "Défilement de la liste de lecture de"
 
 #: src/audacious/glade/prefswin.glade:1623
 msgid "percent"
@@ -219,7 +221,7 @@
 
 #: src/audacious/glade/prefswin.glade:1651
 msgid "Changes volume by"
-msgstr "Changement du volume de"
+msgstr "Ajustement du niveau sonore de"
 
 #: src/audacious/glade/prefswin.glade:1701 src/audacious/ui_preferences.c:115
 msgid "Mouse"
@@ -227,37 +229,35 @@
 
 #: src/audacious/glade/prefswin.glade:1748
 msgid "<b>Filename</b>"
-msgstr "<b>Nom de fichier</b>"
+msgstr "<b>Nom des fichiers</b>"
 
 #: src/audacious/glade/prefswin.glade:1788
 msgid "Convert underscores to blanks"
-msgstr "Convertir underscore en blancs"
+msgstr "Remplacer les caractères '__' par des espaces"
 
 #: src/audacious/glade/prefswin.glade:1823
 msgid "Convert %20 to blanks"
-msgstr "Convertir %20 en blancs"
+msgstr "Remplacer les chaînes '%20' par des espaces"
 
 #: src/audacious/glade/prefswin.glade:1858
 msgid "Convert backslash '\\' to forward slash '/'"
-msgstr "Convertir '\\' en '/'"
+msgstr "Remplacer les caractères '\\' par '/'"
 
 #: src/audacious/glade/prefswin.glade:1892
 msgid "<b>Metadata</b>"
-msgstr "<b>Méta-données</b>"
+msgstr "<b>Métadonnées</b>"
 
 #: src/audacious/glade/prefswin.glade:1931
 msgid "Load metadata (tag information) from music files."
-msgstr "Charger les méta-données (tags) à partir des fichiers musicaux."
+msgstr "Lit les métadonnées ('tags') des fichiers musicaux."
 
 #: src/audacious/glade/prefswin.glade:1933
 msgid "Load metadata from playlists and files"
-msgstr "Charger les méta-données des listes et fichiers"
+msgstr "Lire les métadonnées des listes de lecture et des fichiers"
 
 #: src/audacious/glade/prefswin.glade:1971
 msgid "Load metadata when adding the file to the playlist or opening it"
-msgstr ""
-"Charger les méta-données quand un fichier est ajouté à la liste d'écoute, ou "
-"ouvert."
+msgstr "Lit les métadonnées lors de l'ouverture ou de l'ajout des fichiers"
 
 #: src/audacious/glade/prefswin.glade:1973
 msgid "On load"
@@ -266,8 +266,8 @@
 #: src/audacious/glade/prefswin.glade:1993
 msgid "Load metadata on demand when displaying the file in the playlist"
 msgstr ""
-"Charger les méta-données sur demande quand le fichier s'affiche dans la "
-"liste d'écoute."
+"Charge les métadonnées à la demande, lors de l'affichage des fichiers dans "
+"la liste de lecture"
 
 #: src/audacious/glade/prefswin.glade:1995
 msgid "On display"
@@ -275,7 +275,7 @@
 
 #: src/audacious/glade/prefswin.glade:2025
 msgid "Auto character encoding detector for:"
-msgstr "Codage automatique détecté pour:"
+msgstr "Détection automatique de l'encodage pour  "
 
 #: src/audacious/glade/prefswin.glade:2070
 msgid ""
@@ -284,39 +284,41 @@
 "in this list would be treated as candidates of the encoding of metadata, and "
 "fall back conversion from these encodings to UTF-8 would be attempted."
 msgstr ""
-"Liste des caratères de codage utilisés pour la conversion des métadonnées. "
-"Si la détection des caractères de codage automatique échoue ou a été "
-"désactivée, les codages dans la liste seront éligibles comme codage des "
-"métadonnées, et le recours à la conversion de ces codages vers l'UTF-8 "
-"seront tentés."
+"Ce champ reprend les divers types d'encodages utilisés pour la conversion "
+"des métadonnées. Si la détection automatique de l'encodage échoue ou n'a pas "
+"été activée, les éléments de cette liste seront considérés comme des "
+"encodages possibles et la conversion des métadonnées en UTF-8 sera tentée à "
+"partir de ces encodages."
 
 #: src/audacious/glade/prefswin.glade:2094
 msgid "Fallback character encodings:"
-msgstr "Codage supplémentaire:"
+msgstr "Encodages supplémentaires :"
 
 #: src/audacious/glade/prefswin.glade:2150
 msgid "<b>File Dialog</b>"
-msgstr "<b>Fenêtre du Fichier</b>"
+msgstr "<b>Fenêtre de sélection des fichiers</b>"
 
 #: src/audacious/glade/prefswin.glade:2189
 msgid ""
 "Always refresh the file dialog (this will slow opening the dialog on large "
 "directories, and Gnome VFS should handle automatically)."
 msgstr ""
-"Toujours rafraichir le dialogue de fichier (l'ouverture sera lente pour des "
-"gros répertoires, et GNOME VFZ devrait le supporter automatiquement)."
+"Réactualise systématiquement l'arborescence de la boîte de sélection des "
+"fichiers (l'opération peut ralentir l'ouverture de répertoires contenant "
+"beaucoup de fichiers et le système 'VFS' de Gnome procède déjà à une "
+"réactualisation automatique)."
 
 #: src/audacious/glade/prefswin.glade:2191
 msgid "Always refresh directory when opening file dialog"
-msgstr "Toujours rafraîchir le répertoire à l'ouverture"
+msgstr "Toujours réactualiser le répertoire à l'ouverture de la fenêtre"
 
 #: src/audacious/glade/prefswin.glade:2225
 msgid "<b>Song Display</b>"
-msgstr "<b>Affichage des Morceaux</b>"
+msgstr "<b>Affichage du morceau</b>"
 
 #: src/audacious/glade/prefswin.glade:2273
 msgid "Show information about titlestring format"
-msgstr "Montrer les Informations au sujet des format de titlestring"
+msgstr "Affiche des informations sur le format du titre"
 
 #: src/audacious/glade/prefswin.glade:2302
 msgid ""
@@ -338,15 +340,15 @@
 
 #: src/audacious/glade/prefswin.glade:2347
 msgid "Custom string:"
-msgstr "Format personnalisé:"
+msgstr "Format personnalisé :"
 
 #: src/audacious/glade/prefswin.glade:2375
 msgid "Title format:"
-msgstr "Format du titre:"
+msgstr "Format du titre :"
 
 #: src/audacious/glade/prefswin.glade:2424
 msgid "<b>Popup Information</b>"
-msgstr "<b>Popup Information</b>"
+msgstr "<b>Fenêtre d'informations contextuelle</b>"
 
 #: src/audacious/glade/prefswin.glade:2475
 msgid ""
@@ -354,63 +356,64 @@
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
-"Afficher la fenêtre d'information pour les morceaux de la liste d'écoute. La "
-"fenêtre montre le titre du morceau, nom de l'album, genre, année de "
-"publication, numéro de piste, longueur de la piste et la photo de la "
-"pochette."
+"Affiche une fenêtre d'informations sur l'entrée de la liste de lecture "
+"pointée par le curseur de la souris. La fenêtre présente le titre du "
+"morceau, le nom de l'album, le genre, l'année de publication, le numéro de "
+"la piste, la durée du morceau, ainsi que la pochette de l'album."
 
 #: src/audacious/glade/prefswin.glade:2477
 msgid "Show popup information for playlist entries"
-msgstr "Montrer les informations du popup pour l'entrée de la liste d'écoute"
+msgstr ""
+"Montrer la fenêtre d'informations pour les entrées de la liste de lecture"
 
 #: src/audacious/glade/prefswin.glade:2504
 msgid "Edit settings for popup information"
-msgstr "Editer la fenêtre d'information"
+msgstr "Modifie les préférences de la fenêtre d'informations contextuelle"
 
 #: src/audacious/glade/prefswin.glade:2553 src/audacious/ui_manager.c:203
 #: src/audacious/ui_playlist_manager.c:402 src/audacious/ui_preferences.c:116
 msgid "Playlist"
-msgstr "Liste d'écoute"
+msgstr "Liste de lecture"
 
 #: src/audacious/glade/prefswin.glade:2612
 msgid "<b>Presets</b>"
-msgstr "<b>Pré-réglages</b>"
+msgstr "<b>Préréglages</b>"
 
 #: src/audacious/glade/prefswin.glade:2666
 msgid "File preset extension:"
-msgstr "Extension des fichiers :"
+msgstr "Extension des fichiers de préréglages :"
 
 #: src/audacious/glade/prefswin.glade:2694
 msgid "Directory preset file:"
-msgstr "Répertoire du fichier :"
+msgstr "Répertoire des fichiers de préréglages :"
 
 #: src/audacious/glade/prefswin.glade:2788
 msgid "Available _Presets:"
-msgstr "_Pré-réglages disponibles:"
+msgstr "_Préréglages disponibles :"
 
 #: src/audacious/glade/prefswin.glade:2921 src/audacious/ui_preferences.c:114
 msgid "Equalizer"
-msgstr "Équaliseur"
+msgstr "Égaliseur"
 
 #: src/audacious/glade/prefswin.glade:2968
 msgid "<b>Proxy Configuration</b>"
-msgstr "<b>Configuration du Proxy</b>"
+msgstr "<b>Configuration du serveur mandataire</b>"
 
 #: src/audacious/glade/prefswin.glade:3026
 msgid "Enable proxy usage"
-msgstr "Activer l'usage du proxy"
+msgstr "Activer l'utilisation du serveur mandataire"
 
 #: src/audacious/glade/prefswin.glade:3103
 msgid "Proxy port:"
-msgstr "Port :"
+msgstr "Port du serveur :"
 
 #: src/audacious/glade/prefswin.glade:3131
 msgid "Proxy hostname:"
-msgstr "Nom d'hôte :"
+msgstr "Nom du serveur :"
 
 #: src/audacious/glade/prefswin.glade:3179
 msgid "Use authentication with proxy"
-msgstr "Utiliser l'authentification avec le proxy"
+msgstr "Utiliser l'authentification avec le serveur mandataire"
 
 #: src/audacious/glade/prefswin.glade:3256
 msgid "Proxy password:"
@@ -425,8 +428,8 @@
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
 msgstr ""
-"<span size=\"small\">Modifier ces préférences requiert le redémarrage "
-"d'Audacious.</span>"
+"<span size=\"small\">La modification de ces préférences nécessite le "
+"redémarrage d'Audacious.</span>"
 
 #: src/audacious/glade/prefswin.glade:3493
 msgid "<b>Audio System</b>"
@@ -444,40 +447,42 @@
 "Please note however, that high values will result in Audacious performing "
 "poorly.</span>"
 msgstr ""
-"<span size=\"small\">Ceci est la taille de temps du tampon audio en cours, "
-"en milisecondes.\n"
-"Augmentez cette valeur si vous êtes un utilisateur averti.\n"
-"Veuillez noter cependant, que une valeur haute détériorera les performances "
+"<span size=\"small\">Ce champ détermine la durée du tampon à allouer aux "
+"flux, en millisecondes.\n"
+"Augmentez cette valeur, si la lecture du flux est saccadée.\n"
+"Sachez, toutefois, que des valeurs élevées détérioreront les performances "
 "d'Audacious.</span>"
 
 #: src/audacious/glade/prefswin.glade:3663
 msgid "Current output plugin:"
-msgstr "Greffon de sortie"
+msgstr "Module de sortie actuel :"
 
 #: src/audacious/glade/prefswin.glade:3769
 msgid "Output Plugin Preferences"
-msgstr "Préférences"
+msgstr "Préférences du module"
 
 #: src/audacious/glade/prefswin.glade:3844
 msgid "Output Plugin Information"
-msgstr "Informations"
+msgstr "Informations sur le module"
 
 #: src/audacious/glade/prefswin.glade:3896
 msgid "<b>Format Detection</b>"
-msgstr "<b>Détection du Format</b>"
+msgstr "<b>Détection du format audio</b>"
 
 #: src/audacious/glade/prefswin.glade:3935
 msgid ""
 "When checked, Audacious will detect file formats on demand. This can result "
 "in a messier playlist, but delivers a major speed benefit."
 msgstr ""
-"Si coché, Audacious détectera les formats de fichier sur demande. Ceci peut "
-"avoir pour résultat une liste d'écoute incohérente, mais avec une rapidité "
-"d'affichage accrue."
+"Si cette option est activée, Audacious détectera les formats audio à la "
+"demande. Cette méthode peut affecter l'organisation de la liste de lecture, "
+"mais elle offre une rapidité sensiblement supérieure."
 
 #: src/audacious/glade/prefswin.glade:3937
 msgid "Detect file formats on demand, instead of immediately."
-msgstr "Détecter et afficher le format de fichier (affichage rapide)."
+msgstr ""
+"Déterminer les formats audio à la demande, au lieu de les détecter "
+"immédiatement."
 
 #: src/audacious/glade/prefswin.glade:3971
 msgid ""
@@ -485,41 +490,41 @@
 "slightly slower than detection on demand, but still provides a minimal level "
 "of format detection."
 msgstr ""
-"Si coché, Audacious détectera les formats de fichier basés sur les "
-"extension. Ceci sera légèrement plus lent que la détection sur demande."
+"Si cette option est activée, Audacious détectera les formats audio d'après "
+"l'extension des fichiers. Cette méthode est un peu plus lente que la "
+"détection à la demande, mais elle offre un certain niveau de détection."
 
 #: src/audacious/glade/prefswin.glade:3973
 msgid "Detect file formats by extension."
-msgstr "Détecter les formats de fichier par extension."
+msgstr "Déterminer les formats audio en fonction de l'extension des fichiers."
 
 #: src/audacious/glade/prefswin.glade:4007
 msgid "<b>Playback</b>"
-msgstr "<b>Enchaînement</b>"
+msgstr "<b>Lecture</b>"
 
 #: src/audacious/glade/prefswin.glade:4046
 msgid ""
 "When Audacious starts, automatically begin playing from the point where we "
 "stopped before."
 msgstr ""
-"Quand Audacious démarre, commencer la lecture automatiquement au dernier "
-"endroit lu."
+"Au démarrage d'Audacious, la lecture reprendra là où elle s'était arrêtée "
+"lors de la session précédente."
 
 #: src/audacious/glade/prefswin.glade:4048
 msgid "Continue playback on startup"
-msgstr "Poursuivre la lecture au démarrage"
+msgstr "Reprendre la lecture au démarrage"
 
 #: src/audacious/glade/prefswin.glade:4082
 msgid "When finished playing a song, don't automatically advance to the next."
-msgstr ""
-"Quand un morceau est terminé, ne pas lire automatiquement le morceau suivant."
+msgstr "À la fin d'un morceau, ne pas lire automatiquement le titre suivant."
 
 #: src/audacious/glade/prefswin.glade:4084
 msgid "Don't advance in the playlist"
-msgstr "Ne pas avancer dans la liste"
+msgstr "Ne pas avancer dans la liste de lecture"
 
 #: src/audacious/glade/prefswin.glade:4119
 msgid "Pause between songs"
-msgstr "Pause entre chaque morceau"
+msgstr "Pause entre les morceaux"
 
 #: src/audacious/glade/prefswin.glade:4157
 msgid "Pause for"
@@ -531,15 +536,15 @@
 
 #: src/audacious/glade/prefswin.glade:4249
 msgid "<b>Sampling Rate Converter</b>"
-msgstr "<b>Convertion du taux d'échantillonage</b>"
+msgstr "<b>Conversion du taux d'échantillonnage</b>"
 
 #: src/audacious/glade/prefswin.glade:4289
 msgid "Enable Sampling Rate Converter"
-msgstr "Activer la convertion du taux d'échantillonage"
+msgstr "Activer la conversion du taux d'échantillonnage"
 
 #: src/audacious/glade/prefswin.glade:4361
 msgid "Interpolation Engine:"
-msgstr ""
+msgstr "Algorithme d'interpolation :"
 
 #: src/audacious/glade/prefswin.glade:4389
 msgid ""
@@ -547,41 +552,41 @@
 "This should be the max supported sampling rate of\n"
 "the sound card or output plugin.</span>"
 msgstr ""
-"<span size=\"small\">Tous les streams seront convertis avec ce taux "
-"d'échantillonage.\n"
-"Ce taux est le taux d'échantillonage maximum de\n"
-"la carte son ou du greffon audio.</span>"
+"<span size=\"small\">Tous les flux seront convertis dans le taux spécifié.\n"
+"Idéalement, ce taux devrait correspondre au taux d'échantillonnage\n"
+"maximal que supporte la carte son ou le module d'extension de sortie.</span>"
 
 #: src/audacious/glade/prefswin.glade:4461
 msgid "Sampling Rate [Hz]:"
-msgstr "Taux d'Echantillonage [Hz]:"
+msgstr "Taux d'échantillonnage [Hz] :"
 
 #: src/audacious/glade/prefswin.glade:4517
-#, fuzzy
 msgid "<b>Volume Control</b>"
-msgstr "<b>Molette de la souris</b>"
+msgstr "<b>Contrôle du volume</b>"
 
 #: src/audacious/glade/prefswin.glade:4556
 msgid ""
 "Use software volume control. This may be useful for situations where your "
 "audio system does not support controlling the playback volume."
 msgstr ""
+"Utilise le contrôle du volume logiciel. Cette option peut se révéler utile, "
+"si votre système audio ne dispose pas de support de contrôle du volume."
 
 #: src/audacious/glade/prefswin.glade:4558
 msgid "Use software volume control"
-msgstr ""
+msgstr "Utiliser le contrôle du volume logiciel"
 
 #: src/audacious/glade/prefswin.glade:4746
 msgid "Reload Plugins"
-msgstr "Recharger Greffons"
+msgstr "Recharger les modules"
 
 #: src/audacious/glade/prefswin.glade:4807
 msgid "Popup Information Settings"
-msgstr "Configuration des informations Popup"
+msgstr "Préférences de la fenêtre contextuelle"
 
 #: src/audacious/glade/prefswin.glade:4831
 msgid "<b>Cover image retrieve</b>"
-msgstr "<b>Récupération de l'Image</b>"
+msgstr "<b>Récupération des pochettes</b>"
 
 #: src/audacious/glade/prefswin.glade:4856
 msgid ""
@@ -589,9 +594,9 @@
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
-"Pendant la recherche d'une pochette d'album, Audacious recherche certains "
+"Lors de la recherche de la pochette d'un album, Audacious vérifie certains "
 "mots dans le nom du fichier. Vous pouvez spécifier ces mots dans les listes "
-"en dessous, séparés par des virgules."
+"ci-dessous, séparés par des virgules."
 
 #: src/audacious/glade/prefswin.glade:4911
 msgid "Exclude:"
@@ -603,15 +608,15 @@
 
 #: src/audacious/glade/prefswin.glade:5008
 msgid "Recursively search for cover"
-msgstr "Chercher récursivement les pochettes"
+msgstr "Chercher les pochettes de manière récursive"
 
 #: src/audacious/glade/prefswin.glade:5046
 msgid "Search depth: "
-msgstr "Chercher:"
+msgstr "Profondeur de la recherche :"
 
 #: src/audacious/glade/prefswin.glade:5112
 msgid "Use per-file cover"
-msgstr "Utiliser une pochette par fichier"
+msgstr "Chercher les pochettes d'après le nom exact des fichiers audio"
 
 #: src/audacious/glade/prefswin.glade:5132
 msgid "<b>Miscellaneous</b>"
@@ -619,23 +624,23 @@
 
 #: src/audacious/glade/prefswin.glade:5170
 msgid "Show Progress bar for the current track"
-msgstr "Voir la barre de progression de la piste courante"
+msgstr "Montrer une barre de progression pour le morceau écouté"
 
 #: src/audacious/glade/prefswin.glade:5208
 msgid "Delay until filepopup comes up: "
-msgstr "Délai avant affichage:"
+msgstr "Délai avant l'affichage de la fenêtre :"
 
 #: src/audacious/glade/prefswin.glade:5302
 msgid "Color Adjustment"
-msgstr "Ajustement de la Couleur"
+msgstr "Ajustement des couleurs"
 
 #: src/audacious/glade/prefswin.glade:5325
 msgid ""
 "Audacious allows you to alter the color balance of the skinned UI. The "
 "sliders below will allow you to do this."
 msgstr ""
-"Audacious vous permet d'altérer la balance des couleurs de l'Interface "
-"Utilisateur skinné. Le curseur ci-dessous vous permettra de le faire."
+"Audacious permet de modifier la balance des couleurs de l'interface, à "
+"l'aide des curseurs ci-dessous."
 
 #: src/audacious/glade/prefswin.glade:5359
 msgid "Blue"
@@ -652,25 +657,25 @@
 #: src/audacious/input.c:627
 #, c-format
 msgid "audacious: %s"
-msgstr "audacious: %s"
+msgstr "audacious : %s"
 
 #: src/audacious/input.c:643
 msgid "Filename:"
-msgstr "Nom du fichier:"
+msgstr "Nom du fichier :"
 
 #: src/audacious/input.c:662
 msgid "No input plugin recognized this file"
-msgstr "Aucun greffon d'entrée ne supporte ce type de fichier"
+msgstr "Aucun module d'entrée ne supporte ce type de fichier."
 
 #: src/audacious/input.c:664
 #, c-format
 msgid "Input plugin: %s"
-msgstr "Greffon d'entrée: %s"
+msgstr "Module d'entrée : %s"
 
 #: src/audacious/logger.c:125
 #, c-format
 msgid "Unable to create log file (%s)!\n"
-msgstr "Impossible d'écrire le fichier de log (%s)!\n"
+msgstr "Impossible de créer le fichier journal (%s)!\n"
 
 #: src/audacious/main.c:90 src/audacious/main.c:92 src/audacious/ui_main.c:491
 #: src/audacious/ui_main.c:2466
@@ -684,43 +689,43 @@
 
 #: src/audacious/main.c:1065
 msgid "Select which Audacious session ID to use"
-msgstr "Sélectionner la session Audacious (Par défaut: 0)"
+msgstr "Choisir l'identifiant de la session Audacious à utiliser"
 
 #: src/audacious/main.c:1066
 msgid "Skip backwards in playlist"
-msgstr "Recule dans la liste d'écoute"
+msgstr "Reculer dans la liste d'écoute"
 
 #: src/audacious/main.c:1067
 msgid "Start playing current playlist"
-msgstr "Commence à jouer la liste d'écoute courante"
+msgstr "Commencer à lire la liste de lecture active"
 
 #: src/audacious/main.c:1068
 msgid "Pause current song"
-msgstr "Met en pause la lecture du morceau"
+msgstr "Mettre en pause la chanson en cours de lecture"
 
 #: src/audacious/main.c:1069
 msgid "Stop current song"
-msgstr "Stoppe la lecture du morceau"
+msgstr "Arrêter la chanson en cours de lecture"
 
 #: src/audacious/main.c:1070
 msgid "Pause if playing, play otherwise"
-msgstr "Met en pause sinon joue le morceau"
+msgstr "Mettre en pause, sinon commencer la lecture"
 
 #: src/audacious/main.c:1071
 msgid "Skip forward in playlist"
-msgstr "Avance dans la liste d'écoute"
+msgstr "Avancer dans la liste de lecture"
 
 #: src/audacious/main.c:1072
 msgid "Display Jump to File dialog"
-msgstr "Afficher le Saut vers le Dialogue de Fichier"
+msgstr "Afficher la fenêtre 'Aller au fichier...'"
 
 #: src/audacious/main.c:1073
 msgid "Don't clear the playlist"
-msgstr "Ne vide pas la liste d'écoute"
+msgstr "Ne pas effacer la liste de lecture"
 
 #: src/audacious/main.c:1074
 msgid "Add new files to a temporary playlist"
-msgstr "Ajouter de nouveaux fichiers à la liste d'écoute"
+msgstr "Ajouter les nouveaux fichiers à une liste de lecture provisoire"
 
 #: src/audacious/main.c:1075
 msgid "Display the main window"
@@ -728,19 +733,19 @@
 
 #: src/audacious/main.c:1076
 msgid "Display all open Audacious windows"
-msgstr "Afficher toutes les fenêtres ouvertes"
+msgstr "Afficher toutes les fenêtres ouvertes d'Audacious"
 
 #: src/audacious/main.c:1077
 msgid "Enable headless operation"
-msgstr ""
+msgstr "Activer le mode 'serveur'"
 
 #: src/audacious/main.c:1078
 msgid "Print all errors and warnings to stdout"
-msgstr "Imprimer toutes les erreurs et avertissements vers stdout"
+msgstr "Afficher toutes les erreurs et tous les avertissements dans 'stdout'"
 
 #: src/audacious/main.c:1079
 msgid "Show version and builtin features"
-msgstr "Montrer les caractéristiques de version et construction"
+msgstr "Afficher le numéro de version et les notes de compilation"
 
 #: src/audacious/main.c:1080
 msgid "FILE..."
@@ -756,7 +761,7 @@
 msgstr ""
 "<b><big>Impossible de charger le thème.</big></b>\n"
 "\n"
-"Vérifier que le thème '%s' soit correct et que le thème par défaut soit bien "
+"Vérifier que le thème '%s' est valide et que le thème par défaut est bien "
 "installé dans '%s'\n"
 
 #: src/audacious/main.c:1320
@@ -767,14 +772,16 @@
 "you\n"
 "installed LinuxThreads you need to recompile Glib & GTK+.\n"
 msgstr ""
-"Désolé, les threads ne sont pas supportés par votre système d'exploitation.\n"
+"Désolé, mais votre plate-forme ne gère pas les processus multiples.\n"
 "\n"
-"Si vous êtes sur un système Linux basé sur libc5 et que vous avez installé \n"
-"GLIB et GTK+ avant les LinuxThreads, vous devez recompiler GLIB et GTK+.\n"
+"Si vous utilisez un système Linux basé sur 'libc5' et que vous avez "
+"installé\n"
+"'Glib' et 'GTK+' avant 'LinuxThreads', vous devez recompiler 'Glib' et 'GTK"
+"+'.\n"
 
 #: src/audacious/main.c:1351
 msgid "- play multimedia files"
-msgstr "- jouer les fichiers multimédia"
+msgstr "- lire les fichiers multimédia"
 
 #: src/audacious/main.c:1358
 #, c-format
@@ -783,20 +790,20 @@
 "Try `%s --help' for more information.\n"
 msgstr ""
 "%s: %s\n"
-"Essayer `%s --help' pour plus d'information.\n"
+"Essayez '%s --help' pour davantage d'informations.\n"
 
 #: src/audacious/main.c:1368
 #, c-format
 msgid "%s: Unable to open display, exiting.\n"
-msgstr "%s : Impossible d'accéder à la session d'affichage.\n"
+msgstr "%s: Impossible d'accéder à la session d'affichage.\n"
 
 #: src/audacious/playback.c:343
 msgid ""
 "<b><big>No output plugin selected.</big></b>\n"
 "You have not selected an output plugin."
 msgstr ""
-"<b><big>Pas de greffon de sortie sélectionnés</big></b>\n"
-"Vous n'avez pas sélectionné de greffon de sortie."
+"<b><big>Aucun module de sortie n'a été sélectionné.</big></b>\n"
+"Vous n'avez pas choisi de module de sortie audio."
 
 #: src/audacious/signals.c:49
 msgid ""
@@ -817,19 +824,22 @@
 "\n"
 msgstr ""
 "\n"
-"Audacious a reçu un signal 11 (SIGSEGV).\n"
-"\n"
-"Nous nous excusons pour ce désagrément, mais Audacious a planté.\n"
-"C'est un bug du programme qui ne devrait pas arriver dans des circonstances "
-"normales.\n"
-"Votre configuration courante a été sauvée et ne sera pas endommagée.\n"
+"Audacious a reçu un signal 11 ('SIGSEGV').\n"
 "\n"
-"Vous pouvez aider à améliorer la qualité d'Audacious en remontant un bug sur "
-"http://bugs-meta.atheme.org\n"
-"Veuillez joindre le texte entier du message et une description de ce que "
-"vous faisiez quand\n"
-"le plantage s'est produit pour nous occuper rapidement de votre rapport de "
-"bug.\n"
+"Nous sommes désolés pour ce désagrément, mais la session d'Audacious s'est "
+"interrompue.\n"
+"La situation résulte d'une erreur dans Audacious : elle ne devrait pas "
+"survenir dans des conditions normales.\n"
+"Votre configuration actuelle a toutefois été enregistrée : elle ne devrait "
+"pas avoir été altérée.\n"
+"\n"
+"Vous pouvez nous aider à améliorer la qualité d'Audacious en soumettant "
+"cette erreur à l'adresse suivante : http://bugs-meta.atheme.org\n"
+"Veillez à joindre le message suivant à votre rapport, ainsi qu'une "
+"description (en anglais) de ce que vous faisiez\n"
+"lorsque cette erreur s'est produite, de manière à ce que nous puissions "
+"traiter votre rapport dans les plus brefs délais :\n"
+"\n"
 
 #: src/audacious/signals.c:80
 msgid ""
@@ -838,14 +848,17 @@
 "product.\n"
 msgstr ""
 "\n"
-"Les bugs peuvent être rapportés sur http://bugs-meta.atheme.org dans la "
-"catégorie Audacious.\n"
+"Les erreurs relatives à Audacious peuvent être soumises à l'adresse "
+"suivantes : http://bugs-meta.atheme.org\n"
 
 #: src/audacious/signals.c:266
 msgid ""
 "Your signaling implementation is broken.\n"
 "Expect unusable crash reports.\n"
 msgstr ""
+"Le système de gestion des signaux d'erreur de votre système semble "
+"corrompu.\n"
+"Attendez-vous à des rapports d'erreurs inutilisables.\n"
 
 #: src/audacious/strings.c:170
 msgid "  (invalid UTF-8)"
@@ -859,21 +872,20 @@
 "Copyright (C) 2005-2007 Audacious Development Team"
 msgstr ""
 "<big><b>Audacious %s</b></big>\n"
-"Le futur du multimédia sous UNIX\n"
 "\n"
-"Copyright (C) 2005-2006 L'équipe de développement d'Audacious"
+"Droits d'utilisation (C) 2005-2007, Équipe de Développement Audacious"
 
 #: src/audacious/ui_about.c:125 src/audacious/ui_credits.c:357
 #: src/audacious/ui_manager.c:391 src/audacious/ui_manager.c:392
 msgid "About Audacious"
-msgstr "À Propos d'Audacious"
+msgstr "À propos d'Audacious"
 
 #: src/audacious/ui_about.c:174 src/audacious/ui_credits.c:400
 msgid "Credits"
 msgstr "Crédits"
 
 #: src/audacious/ui_credits.c:47
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "<big><b>Audacious %s</b></big>\n"
 "A skinned multimedia player for many platforms.\n"
@@ -881,65 +893,66 @@
 "Copyright (C) 2005-2007 Audacious Development Team\n"
 msgstr ""
 "<big><b>Audacious %s</b></big>\n"
-"Le futur du multimédia sous UNIX.\n"
+"Un lecteur multimedia personnalisable, disponible pour de nombreuses "
+"plateformes.\n"
 "\n"
-"Copyright (C) 2005-2006 L'équipe de développement d'Audacious\n"
+"Droits d'utilisation : (C) 2005-2007, Équipe de Développement Audacious\n"
 
 #: src/audacious/ui_credits.c:53
 msgid "Audacious core developers:"
-msgstr "Développeurs:"
+msgstr "Développeurs du noyau :"
 
 #: src/audacious/ui_credits.c:71
 msgid "Graphics:"
-msgstr "Graphismes:"
+msgstr "Graphismes :"
 
 #: src/audacious/ui_credits.c:76
 msgid "Default skin:"
-msgstr "Thème par défaut:"
+msgstr "Thème par défaut :"
 
 #: src/audacious/ui_credits.c:81
 msgid "Plugin development:"
-msgstr "Développement des greffons:"
+msgstr "Développeurs des modules :"
 
 #: src/audacious/ui_credits.c:97
 msgid "Patch authors:"
-msgstr "Auteurs de patchs:"
+msgstr "Modifications/correctifs :"
 
 #: src/audacious/ui_credits.c:117
 msgid "0.1.x developers:"
-msgstr "Développeurs de la version 0.1.x:"
+msgstr "Développeurs de la branche 0.1.x :"
 
 #: src/audacious/ui_credits.c:123
 msgid "BMP Developers:"
-msgstr "Développeurs de BMP:"
+msgstr "Développeurs de BMP :"
 
 #: src/audacious/ui_credits.c:155
 msgid "Brazilian Portuguese:"
-msgstr "Brésilien:"
+msgstr "Brésilien portugais :"
 
 #: src/audacious/ui_credits.c:159
 msgid "Breton:"
-msgstr "Breton:"
+msgstr "Breton :"
 
 #: src/audacious/ui_credits.c:162
 msgid "Bulgarian:"
-msgstr "Bulgare:"
+msgstr "Bulgare :"
 
 #: src/audacious/ui_credits.c:165
 msgid "Catalan:"
-msgstr "Catalan:"
+msgstr "Catalan :"
 
 #: src/audacious/ui_credits.c:168
 msgid "Croatian:"
-msgstr "Croate:"
+msgstr "Croate :"
 
 #: src/audacious/ui_credits.c:171
 msgid "Czech:"
-msgstr "Tchèque:"
+msgstr "Tchèque :"
 
 #: src/audacious/ui_credits.c:174
 msgid "Dutch:"
-msgstr "Néerlandais:"
+msgstr "Néerlandais :"
 
 #: src/audacious/ui_credits.c:178
 msgid "Finnish:"
@@ -947,91 +960,91 @@
 
 #: src/audacious/ui_credits.c:181
 msgid "French:"
-msgstr "Français:"
+msgstr "Français :"
 
 #: src/audacious/ui_credits.c:185
 msgid "German:"
-msgstr "Allemand:"
+msgstr "Allemand :"
 
 #: src/audacious/ui_credits.c:190
 msgid "Georgian:"
-msgstr "Géorgien:"
+msgstr "Géorgien :"
 
 #: src/audacious/ui_credits.c:193
 msgid "Greek:"
-msgstr "Grec:"
+msgstr "Grec :"
 
 #: src/audacious/ui_credits.c:198
 msgid "Hindi:"
-msgstr "Hindi:"
+msgstr "Hindi :"
 
 #: src/audacious/ui_credits.c:201
 msgid "Hungarian:"
-msgstr "Hongrois:"
+msgstr "Hongrois :"
 
 #: src/audacious/ui_credits.c:204
 msgid "Italian:"
-msgstr "Italien:"
+msgstr "Italien :"
 
 #: src/audacious/ui_credits.c:208
 msgid "Japanese:"
-msgstr "Japonais:"
+msgstr "Japonais :"
 
 #: src/audacious/ui_credits.c:211
 msgid "Korean:"
-msgstr "Coréen:"
+msgstr "Koréenn :"
 
 #: src/audacious/ui_credits.c:214
 msgid "Lithuanian:"
-msgstr "Lituanien:"
+msgstr "Lituanien :"
 
 #: src/audacious/ui_credits.c:217
 msgid "Macedonian:"
-msgstr "Macédonien:"
+msgstr "Macédonien :"
 
 #: src/audacious/ui_credits.c:220
 msgid "Polish:"
-msgstr "Polonais:"
+msgstr "Polonais :"
 
 #: src/audacious/ui_credits.c:223
 msgid "Romanian:"
-msgstr "Roumain:"
+msgstr "Roumain :"
 
 #: src/audacious/ui_credits.c:227
 msgid "Russian:"
-msgstr "Russe:"
+msgstr "Russe :"
 
 #: src/audacious/ui_credits.c:230
 msgid "Serbian (Latin):"
-msgstr "Serbe (Latin):"
+msgstr "Serbe (latin) :"
 
 #: src/audacious/ui_credits.c:233
 msgid "Serbian (Cyrillic):"
-msgstr "Serbe (Cyrillic):"
+msgstr "Serbe (cyrillique) :"
 
 #: src/audacious/ui_credits.c:236
 msgid "Simplified Chinese:"
-msgstr "Chinois Simplifié:"
+msgstr "Chinois simplifié :"
 
 #: src/audacious/ui_credits.c:239
 msgid "Slovak:"
-msgstr "Slovaque:"
+msgstr "Slovaque :"
 
 #: src/audacious/ui_credits.c:242
 msgid "Spanish:"
-msgstr "Espagnol:"
+msgstr "Espagnol :"
 
 #: src/audacious/ui_credits.c:245
 msgid "Swedish:"
-msgstr "Suédois:"
+msgstr "Suédois :"
 
 #: src/audacious/ui_credits.c:248
 msgid "Traditional Chinese:"
-msgstr "Chinois Traditionnel:"
+msgstr "Chinois traditionnel :"
 
 #: src/audacious/ui_credits.c:251
 msgid "Turkish:"
-msgstr "Turque:"
+msgstr "Turc :"
 
 #: src/audacious/ui_credits.c:255
 msgid "Ukrainian:"
@@ -1039,7 +1052,7 @@
 
 #: src/audacious/ui_credits.c:258
 msgid "Welsh:"
-msgstr "Gallois:"
+msgstr "Gallois :"
 
 #: src/audacious/ui_credits.c:404
 msgid "Translators"
@@ -1047,15 +1060,15 @@
 
 #: src/audacious/ui_equalizer.c:535
 msgid "Audacious Equalizer"
-msgstr "Équaliseur"
+msgstr "Égaliseur d'Audacious"
 
 #: src/audacious/ui_equalizer.c:1169
 msgid "Presets"
-msgstr "Pré-réglages"
+msgstr "Préréglages"
 
 #: src/audacious/ui_fileinfo.c:158
 msgid "Track Information Window"
-msgstr "Fenêtre d'information de la piste"
+msgstr "Fenêtre d'informations sur le morceau"
 
 #: src/audacious/ui_fileinfopopup.c:252 src/audacious/ui_fileinfopopup.c:364
 #: src/audacious/ui_preferences.c:125
@@ -1080,11 +1093,11 @@
 
 #: src/audacious/ui_fileinfopopup.c:267
 msgid "Track Number"
-msgstr "Numéro de Piste"
+msgstr "Piste"
 
 #: src/audacious/ui_fileinfopopup.c:271
 msgid "Track Length"
-msgstr "Durée du Morceau"
+msgstr "Durée"
 
 #: src/audacious/ui_fileinfopopup.c:373 src/audacious/ui_preferences.c:128
 #: src/audacious/ui_preferences.c:420
@@ -1093,7 +1106,7 @@
 
 #: src/audacious/ui_fileopener.c:127
 msgid "Open Files"
-msgstr "Ouvrir les fichiers"
+msgstr "Ouvrir des fichiers"
 
 #: src/audacious/ui_fileopener.c:127
 msgid "Add Files"
@@ -1101,23 +1114,23 @@
 
 #: src/audacious/ui_fileopener.c:129
 msgid "Close dialog on Open"
-msgstr "Fermer la fenêtre après l'ouverture"
+msgstr "Fermer la fenêtre après l'ouverture des fichiers"
 
 #: src/audacious/ui_fileopener.c:129
 msgid "Close dialog on Add"
-msgstr "Fermer la fenêtre après l'ajout"
+msgstr "Fermer la fenêtre après l'ajout des fichiers"
 
 #: src/audacious/ui_fileopener.c:356
 msgid "Play files"
-msgstr "Jouer les fichiers"
+msgstr "Lire des fichiers"
 
 #: src/audacious/ui_fileopener.c:358
 msgid "Load files"
-msgstr "Charger les fichiers"
+msgstr "Charger des fichiers"
 
 #: src/audacious/ui_jumptotrack.c:138
 msgid "Un_queue"
-msgstr "_Retirer de la file"
+msgstr "Enlever de la file d'attente"
 
 #: src/audacious/ui_jumptotrack.c:140 src/audacious/ui_jumptotrack.c:603
 msgid "_Queue"
@@ -1125,19 +1138,21 @@
 
 #: src/audacious/ui_jumptotrack.c:518
 msgid "Jump to Track"
-msgstr "Aller au morceau"
+msgstr "Aller au morceau..."
 
 #: src/audacious/ui_jumptotrack.c:559
 msgid "Filter: "
-msgstr "Filtre:"
+msgstr "Filtre :"
 
 #: src/audacious/ui_jumptotrack.c:560
 msgid "_Filter:"
-msgstr "_Filtre:"
+msgstr "_Filtre :"
 
 #: src/audacious/ui_jumptotrack.c:594
 msgid "Close on Jump"
-msgstr "Fermer"
+msgstr ""
+"Fermeture après\n"
+"la sélection"
 
 #: src/audacious/ui_main.c:489
 #, c-format
@@ -1159,7 +1174,7 @@
 #: src/audacious/ui_main.c:1060 src/audacious/ui_manager.c:420
 #: src/audacious/ui_manager.c:421
 msgid "Jump to Time"
-msgstr "Aller au Temps"
+msgstr "Aller au temps..."
 
 #: src/audacious/ui_main.c:1081
 msgid "minutes:seconds"
@@ -1167,15 +1182,15 @@
 
 #: src/audacious/ui_main.c:1091
 msgid "Track length:"
-msgstr "Durée du morceau:"
+msgstr "Durée du morceau :"
 
 #: src/audacious/ui_main.c:1228
 msgid "Audacious - visibility warning"
-msgstr "Audacious - Alerte"
+msgstr "Audacious - avertissement quant à la visibilité"
 
 #: src/audacious/ui_main.c:1230
 msgid "Show main player window"
-msgstr "Voir la fenêtre du lecteur principal"
+msgstr "Montrer la fenêtre principale"
 
 #: src/audacious/ui_main.c:1231
 msgid "Ignore"
@@ -1188,70 +1203,74 @@
 "otherwise, you'll have to control it remotely via audtool or enabled plugins "
 "(such as the statusicon plugin)."
 msgstr ""
-"Audacious a été démarré avec toutes les fenêtres cachées.\n"
-"Vous voudriez encore voir la fenêtre du lecteur pour controler Audacious; "
-"Sinon, vous devrez le contrôler avec Audtool ou des greffons compilés (comme "
-"le greffon Statusicon)."
+"Audacious a démarré, mais toutes les fenêtres de l'interface sont cachées.\n"
+"Peut-être voulez-vous voir à nouveau la fenêtre principale, afin de pouvoir\n"
+"contrôler Audacious. Dans le cas contraire, vous devrez utiliser les "
+"commandes\n"
+"distantes, par l'intermédiaire de 'audtool' ou des extensions activées\n"
+"('statusicon', par exemple)."
 
 #: src/audacious/ui_main.c:1241
 msgid "Always ignore, show/hide is controlled remotely"
-msgstr "Toujours ignoré, voir/caché est controllé automatiquement"
+msgstr ""
+"Toujours ignorer : la fonction 'montrer'/'cacher' est contrôlée de manière "
+"distante."
 
 #: src/audacious/ui_main.c:1259
 msgid "Enter location to play:"
-msgstr "Entrer l'emplacement à jouer :"
+msgstr "Emplacement à lire :"
 
 #: src/audacious/ui_main.c:1504
 #, c-format
 msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-msgstr "Rechercher à: %d:%-2.2d/%d:%-2.2d (%d%%)"
+msgstr "Aller a : %d:%-2.2d/%d:%-2.2d (%d%%)"
 
 #: src/audacious/ui_main.c:1536
 #, c-format
 msgid "Volume: %d%%"
-msgstr "Volume: %d%%"
+msgstr "Volume : %d%%"
 
 #: src/audacious/ui_main.c:1566
 #, c-format
 msgid "Balance: %d%% left"
-msgstr "Balance: %d%% gauche"
+msgstr "Balance : %d%% gauche"
 
 #: src/audacious/ui_main.c:1570
 msgid "Balance: center"
-msgstr "Balance: centre"
+msgstr "Balance : centre"
 
 #: src/audacious/ui_main.c:1574
 #, c-format
 msgid "Balance: %d%% right"
-msgstr "Balance: %d%% droite"
+msgstr "Balance : %d%% droite"
 
 #: src/audacious/ui_main.c:1916
 msgid "Options Menu"
-msgstr "Menu des Options"
+msgstr "Menu des options"
 
 #: src/audacious/ui_main.c:1920
 msgid "Disable 'Always On Top'"
-msgstr "Désactiver Toujours au-dessus"
+msgstr "Annuler 'Toujours au premier plan'"
 
 #: src/audacious/ui_main.c:1922
 msgid "Enable 'Always On Top'"
-msgstr "Activer Toujours au-dessus"
+msgstr "Activer 'Toujours au premier plan'"
 
 #: src/audacious/ui_main.c:1925
 msgid "File Info Box"
-msgstr "Info du Fichier"
+msgstr "Informations sur le fichier"
 
 #: src/audacious/ui_main.c:1929
 msgid "Disable 'Doublesize'"
-msgstr "Désactiver 'Doublesize'"
+msgstr "Annuler 'Taille double'"
 
 #: src/audacious/ui_main.c:1931
 msgid "Enable 'Doublesize'"
-msgstr "Activer 'Doublesize'"
+msgstr "Activer 'Taille double'"
 
 #: src/audacious/ui_main.c:1934
 msgid "Visualization Menu"
-msgstr "Menu Visualisation"
+msgstr "Menu des effets visuels"
 
 #: src/audacious/ui_main.c:1982
 msgid ""
@@ -1262,16 +1281,16 @@
 "2. No other programs is blocking the soundcard.\n"
 "3. Your soundcard is configured properly.\n"
 msgstr ""
-"<b><big>Problème d'utilisation audio.</big></b>\n"
+"<b><big>Le périphérique audio n'a pas pu être ouvert.</big></b>\n"
 "\n"
-"Veuillez vérifier que:\n"
-"1. vous avez choisi le bon greffon de sortie.\n"
-"2. aucun programme n'utilise déjà la carte son.\n"
+"Veuillez vous assurer que\n"
+"1. vous avez sélectionné le module de sortie adéquat.\n"
+"2. d'autres programmes ne bloquent pas le système audio.\n"
 "3. votre carte son est correctement configurée.\n"
 
 #: src/audacious/ui_main.c:2446
 msgid "Error in Audacious."
-msgstr "Erruer dans Audacious"
+msgstr "Erreur dans Audacious."
 
 #: src/audacious/ui_manager.c:48 src/audacious/ui_manager.c:49
 msgid "Autoscroll Songname"
@@ -1279,7 +1298,7 @@
 
 #: src/audacious/ui_manager.c:51 src/audacious/ui_manager.c:52
 msgid "Stop after Current Song"
-msgstr "Arrêter la lecture du morceau"
+msgstr "Arrêter après le titre en cours de lecture"
 
 #: src/audacious/ui_manager.c:54 src/audacious/ui_manager.c:55
 msgid "Peaks"
@@ -1291,11 +1310,11 @@
 
 #: src/audacious/ui_manager.c:60 src/audacious/ui_manager.c:61
 msgid "Shuffle"
-msgstr "Mélanger"
+msgstr "Mode aléatoire"
 
 #: src/audacious/ui_manager.c:63 src/audacious/ui_manager.c:64
 msgid "No Playlist Advance"
-msgstr "Ne pas avancer dans la liste"
+msgstr "Ne pas avancer dans la liste de lecture"
 
 #: src/audacious/ui_manager.c:66 src/audacious/ui_manager.c:67
 msgid "Show Player"
@@ -1303,19 +1322,19 @@
 
 #: src/audacious/ui_manager.c:69 src/audacious/ui_manager.c:70
 msgid "Show Playlist Editor"
-msgstr "Montrer la liste d'écoute"
+msgstr "Montrer l'éditeur de liste"
 
 #: src/audacious/ui_manager.c:72 src/audacious/ui_manager.c:73
 msgid "Show Equalizer"
-msgstr "Équaliseur"
+msgstr "Montrer l'égaliseur"
 
 #: src/audacious/ui_manager.c:75 src/audacious/ui_manager.c:76
 msgid "Always on Top"
-msgstr "Toujours au-dessus"
+msgstr "Toujours au premier plan"
 
 #: src/audacious/ui_manager.c:78 src/audacious/ui_manager.c:79
 msgid "Put on All Workspaces"
-msgstr "Visible partout"
+msgstr "Afficher sur tous les bureaux"
 
 #: src/audacious/ui_manager.c:81 src/audacious/ui_manager.c:82
 msgid "Roll up Player"
@@ -1327,31 +1346,31 @@
 
 #: src/audacious/ui_manager.c:87 src/audacious/ui_manager.c:88
 msgid "Roll up Equalizer"
-msgstr "Enrouler l'équaliseur"
+msgstr "Enrouler l'égaliseur"
 
 #: src/audacious/ui_manager.c:90 src/audacious/ui_manager.c:91
 msgid "DoubleSize"
-msgstr "Double Taille"
+msgstr "Taille double"
 
 #: src/audacious/ui_manager.c:93 src/audacious/ui_manager.c:94
 msgid "Easy Move"
-msgstr "Easy Move"
+msgstr "Déplacement facile"
 
 #: src/audacious/ui_manager.c:102
 msgid "Analyzer"
-msgstr "Type Analyseur"
+msgstr "Analyseur"
 
 #: src/audacious/ui_manager.c:103
 msgid "Scope"
-msgstr "Type Scope"
+msgstr "Oscilloscope"
 
 #: src/audacious/ui_manager.c:104
 msgid "Voiceprint"
-msgstr "Type Analyseur/Feu"
+msgstr "Spectrogramme"
 
 #: src/audacious/ui_manager.c:105
 msgid "Off"
-msgstr "Off"
+msgstr "Arrêt"
 
 #: src/audacious/ui_manager.c:109 src/audacious/ui_manager.c:126
 #: src/audacious/ui_manager.c:132
@@ -1360,11 +1379,11 @@
 
 #: src/audacious/ui_manager.c:110 src/audacious/ui_manager.c:127
 msgid "Fire"
-msgstr "Fire"
+msgstr "Feu"
 
 #: src/audacious/ui_manager.c:111
 msgid "Vertical Lines"
-msgstr "Type Analyseur/Lignes verticales"
+msgstr "Lignes verticales"
 
 #: src/audacious/ui_manager.c:115
 msgid "Lines"
@@ -1372,55 +1391,55 @@
 
 #: src/audacious/ui_manager.c:116
 msgid "Bars"
-msgstr "Bars"
+msgstr "Barres"
 
 #: src/audacious/ui_manager.c:120
 msgid "Dot Scope"
-msgstr "Type Scope/Point"
+msgstr "En points"
 
 #: src/audacious/ui_manager.c:121
 msgid "Line Scope"
-msgstr "Type Scope/Ligne"
+msgstr "En lignes"
 
 #: src/audacious/ui_manager.c:122
 msgid "Solid Scope"
-msgstr "Type Scope/Solide"
+msgstr "En vagues"
 
 #: src/audacious/ui_manager.c:128
 msgid "Ice"
-msgstr "Ice"
+msgstr "Glace"
 
 #: src/audacious/ui_manager.c:133
 msgid "Smooth"
-msgstr "Smooth"
+msgstr "Lissé"
 
 #: src/audacious/ui_manager.c:137
 msgid "Full (~50 fps)"
-msgstr "Taux de Rafraîchissement/Max (~50 fps)"
+msgstr "Complet (~50 fps)"
 
 #: src/audacious/ui_manager.c:138
 msgid "Half (~25 fps)"
-msgstr "Taux de Rafraîchissement/Haut (~25 fps)"
+msgstr "Moitié (~25 fps)"
 
 #: src/audacious/ui_manager.c:139
 msgid "Quarter (~13 fps)"
-msgstr "Taux de Rafraîchissement/Moyen (~13 fps)"
+msgstr "Quart (~13 fps)"
 
 #: src/audacious/ui_manager.c:140
 msgid "Eighth (~6 fps)"
-msgstr "Taux de Rafraîchisement/Bas (~6 fps)"
+msgstr "Huitième (~6 fps)"
 
 #: src/audacious/ui_manager.c:144 src/audacious/ui_manager.c:152
 msgid "Slowest"
-msgstr "Plus lent"
+msgstr "Très lente"
 
 #: src/audacious/ui_manager.c:145 src/audacious/ui_manager.c:153
 msgid "Slow"
-msgstr "Lent"
+msgstr "Lente"
 
 #: src/audacious/ui_manager.c:146 src/audacious/ui_manager.c:154
 msgid "Medium"
-msgstr "Moyen"
+msgstr "Moyenne"
 
 #: src/audacious/ui_manager.c:147 src/audacious/ui_manager.c:155
 msgid "Fast"
@@ -1428,7 +1447,7 @@
 
 #: src/audacious/ui_manager.c:148 src/audacious/ui_manager.c:156
 msgid "Fastest"
-msgstr "Plus rapide"
+msgstr "Très rapide"
 
 #: src/audacious/ui_manager.c:160
 msgid "Time Elapsed"
@@ -1440,7 +1459,7 @@
 
 #: src/audacious/ui_manager.c:170
 msgid "Playback"
-msgstr "_Lecture"
+msgstr "Lecture"
 
 #: src/audacious/ui_manager.c:172 src/audacious/ui_manager.c:173
 msgid "Play"
@@ -1452,7 +1471,7 @@
 
 #: src/audacious/ui_manager.c:178 src/audacious/ui_manager.c:179
 msgid "Stop"
-msgstr "Stop"
+msgstr "Arrêt"
 
 #: src/audacious/ui_manager.c:181 src/audacious/ui_manager.c:182
 msgid "Previous"
@@ -1464,107 +1483,107 @@
 
 #: src/audacious/ui_manager.c:190
 msgid "Visualization"
-msgstr "Type de graph_ique"
+msgstr "Visualisation"
 
 #: src/audacious/ui_manager.c:191
 msgid "Visualization Mode"
-msgstr "Type de graphique"
+msgstr "Type de visualisation"
 
 #: src/audacious/ui_manager.c:192
 msgid "Analyzer Mode"
-msgstr "Type Analyseur/Feu"
+msgstr "Mode analyseur"
 
 #: src/audacious/ui_manager.c:193
 msgid "Scope Mode"
-msgstr "Type Scope"
+msgstr "Mode oscilloscope"
 
 #: src/audacious/ui_manager.c:194
 msgid "Voiceprint Mode"
-msgstr "Type Analyseur/Feu"
+msgstr "Mode spectrogramme"
 
 #: src/audacious/ui_manager.c:195
 msgid "WindowShade VU Mode"
-msgstr "Mode Fenêtre Réduite"
+msgstr "Mode VU en fenêtre réduite"
 
 #: src/audacious/ui_manager.c:196
 msgid "Refresh Rate"
-msgstr "Taux de Rafraîchissement"
+msgstr "Taux de rafraîchissement"
 
 #: src/audacious/ui_manager.c:197
 msgid "Analyzer Falloff"
-msgstr "Effet Retombée Analyseur"
+msgstr "Retombée de l'analyseur"
 
 #: src/audacious/ui_manager.c:198
 msgid "Peaks Falloff"
-msgstr "Effet Retombée Crêtes"
+msgstr "Retombée des pics"
 
 #: src/audacious/ui_manager.c:205 src/audacious/ui_manager.c:206
 msgid "New Playlist"
-msgstr "Nouvelle Liste d'Ecoute"
+msgstr "Nouvelle liste"
 
 #: src/audacious/ui_manager.c:208 src/audacious/ui_manager.c:209
 msgid "Select Next Playlist"
-msgstr "Sélectionner la Prochaine Liste d'Ecoute"
+msgstr "Liste suivante"
 
 #: src/audacious/ui_manager.c:211 src/audacious/ui_manager.c:212
 msgid "Select Previous Playlist"
-msgstr "Sélectionner la Liste d'Ecoute Précédente"
+msgstr "Liste précédente"
 
 #: src/audacious/ui_manager.c:214 src/audacious/ui_manager.c:215
 msgid "Delete Playlist"
-msgstr "Effacer la Liste d'Ecoute"
+msgstr "Supprimer la liste"
 
 #: src/audacious/ui_manager.c:217
 msgid "Load List"
-msgstr "Charger"
+msgstr "Charger une liste"
 
 #: src/audacious/ui_manager.c:218
 msgid "Loads a playlist file into the selected playlist."
-msgstr "Charger une liste d'écoute dans la liste d'écoute sélectionnée"
+msgstr "Importer une liste de lecture dans la liste active."
 
 #: src/audacious/ui_manager.c:220
 msgid "Save List"
-msgstr "Sauver"
+msgstr "Enregistrer la liste"
 
 #: src/audacious/ui_manager.c:221
 msgid "Saves the selected playlist."
-msgstr "Sauver la Liste d'écoute."
+msgstr "Enregistrer la liste de lecture active."
 
 #: src/audacious/ui_manager.c:223
 msgid "Save Default List"
-msgstr "Sauver la Liste par Défaut"
+msgstr "Enregistrer comme liste par défaut"
 
 #: src/audacious/ui_manager.c:224
 msgid "Saves the selected playlist to the default location."
-msgstr "Sauver la liste d'écoute sélectionnées vers l'emplacement par défaut."
+msgstr "Enregistre la liste de lecture active en tant que liste par défaut."
 
 #: src/audacious/ui_manager.c:227
 msgid "Refresh List"
-msgstr "Rafraichir"
+msgstr "Actualiser la liste"
 
 #: src/audacious/ui_manager.c:228
 msgid "Refreshes metadata associated with a playlist entry."
-msgstr "Rafraichir les méta-données associées avec la liste d'écoute"
+msgstr "Actualise les métadonnées associées à une entrée de la liste."
 
 #: src/audacious/ui_manager.c:231
 msgid "List Manager"
-msgstr "Gestionnaire de Listes"
+msgstr "Gestionnaire de listes"
 
 #: src/audacious/ui_manager.c:232
 msgid "Opens the playlist manager."
-msgstr "Ouvrir le gestionnaire de liste d'écoute."
+msgstr "Ouvre le gestionnaire de listes de lecture."
 
 #: src/audacious/ui_manager.c:238
 msgid "View"
-msgstr "Voir"
+msgstr "Affichage"
 
 #: src/audacious/ui_manager.c:242
 msgid "Add Internet Address..."
-msgstr "Ajouter une adresse Internet..."
+msgstr "Ajouter un flux Internet..."
 
 #: src/audacious/ui_manager.c:243
 msgid "Adds a remote track to the playlist."
-msgstr "Ajouter une piste aléatoire à la liste d'écoute"
+msgstr "Ajoute un flux distant à la liste de lecture."
 
 #: src/audacious/ui_manager.c:246
 msgid "Add Files..."
@@ -1572,19 +1591,19 @@
 
 #: src/audacious/ui_manager.c:247
 msgid "Adds files to the playlist."
-msgstr "Ajouter des fichiers à la liste d'écoute."
+msgstr "Ajoute des fichiers à la liste de lecture."
 
 #: src/audacious/ui_manager.c:252
 msgid "Search and Select"
-msgstr "Chercher et Sélectionner"
+msgstr "Chercher et sélectionner"
 
 #: src/audacious/ui_manager.c:253
 msgid ""
 "Searches the playlist and selects playlist entries based on specific "
 "criteria."
 msgstr ""
-"Chercher et sélectionner les entrées de la liste d'écoute basées sur des "
-"critères spécifiques."
+"Effectue une recherche dans la liste de lecture et sélectionne des entrées "
+"en fonction de critères définis."
 
 #: src/audacious/ui_manager.c:256
 msgid "Invert Selection"
@@ -1592,110 +1611,110 @@
 
 #: src/audacious/ui_manager.c:257
 msgid "Inverts the selected and unselected entries."
-msgstr "Inverser la sélection et les entrées non-sélectionnées."
+msgstr "Inverse les entrées sélectionnées et les entrées non sélectionnées"
 
 #: src/audacious/ui_manager.c:260
 msgid "Select All"
-msgstr "Tous"
+msgstr "Tout sélectionner"
 
 #: src/audacious/ui_manager.c:261
 msgid "Selects all of the playlist entries."
-msgstr "Sélectionner toutes les listes d'écoute."
+msgstr "Sélectionne toutes les entrées de la liste."
 
 #: src/audacious/ui_manager.c:264
 msgid "Select None"
-msgstr "Ne Rien Sélectionner"
+msgstr "Ne rien sélectionner"
 
 #: src/audacious/ui_manager.c:265
 msgid "Deselects all of the playlist entries."
-msgstr "Désélectionner toutes les listes d'écoute"
+msgstr "Annule la sélection de toutes les entrées de la liste."
 
 #: src/audacious/ui_manager.c:270
 msgid "Clear Queue"
-msgstr "Vider la File"
+msgstr "Vider la file"
 
 #: src/audacious/ui_manager.c:271
 msgid "Clears the queue associated with this playlist."
-msgstr "Effacer la queue associée avec cette liste d'écoute."
+msgstr "Vide la file associée à la liste de lecture."
 
 #: src/audacious/ui_manager.c:274
 msgid "Remove Unavailable Files"
-msgstr "Enlever les fichiers inexistants"
+msgstr "Effacer les fichiers inexistants"
 
 #: src/audacious/ui_manager.c:275
 msgid "Removes unavailable files from the playlist."
-msgstr "Enlever les fichiers inexistants"
+msgstr "Efface les fichiers inexistants de la liste de lecture."
 
 #: src/audacious/ui_manager.c:278
 msgid "Remove Duplicates"
-msgstr "Enlever les fichiers dupliqués"
+msgstr "Effacer les éléments redondants"
 
 #: src/audacious/ui_manager.c:280 src/audacious/ui_manager.c:316
 #: src/audacious/ui_manager.c:346
 msgid "By Title"
-msgstr "Par Titre"
+msgstr "Par titre"
 
 #: src/audacious/ui_manager.c:281
 msgid "Removes duplicate entries from the playlist by title."
-msgstr "Enlever les entrées dupliquées de la liste d'écoute par titre."
+msgstr "Efface les entrées redondantes, en fonction de leur titre."
 
 #: src/audacious/ui_manager.c:284 src/audacious/ui_manager.c:324
 #: src/audacious/ui_manager.c:354
 msgid "By Filename"
-msgstr "Par Nom du fichier"
+msgstr "Par nom de fichier"
 
 #: src/audacious/ui_manager.c:285
 msgid "Removes duplicate entries from the playlist by filename."
-msgstr "Enlever les fichiers dupliqués par nom de fichier."
+msgstr "Efface les entrées redondantes, en fonction de leur nom de fichier."
 
 #: src/audacious/ui_manager.c:288 src/audacious/ui_manager.c:328
 #: src/audacious/ui_manager.c:358
 msgid "By Path + Filename"
-msgstr "Par Chemin + Nom de Fichier"
+msgstr "Par chemin et nom de fichier"
 
 #: src/audacious/ui_manager.c:289
 msgid "Removes duplicate entries from the playlist by their full path."
-msgstr "Enlever les entrées dupliquées de la liste d'écoute par emplacement."
+msgstr "Efface les entrées redondantes, en fonction de leur chemin complet."
 
 #: src/audacious/ui_manager.c:292
 msgid "Remove All"
-msgstr "Tout Supprimer"
+msgstr "Effacer toutes les entrées"
 
 #: src/audacious/ui_manager.c:293
 msgid "Removes all entries from the playlist."
-msgstr "Enlever toutes les entrées de la liste d'écoute."
+msgstr "Efface toutes les entrées de la liste de lecture."
 
 #: src/audacious/ui_manager.c:296
 msgid "Remove Unselected"
-msgstr "Supprimer Non-sélectionnées"
+msgstr "Ne garder que la sélection"
 
 #: src/audacious/ui_manager.c:297
 msgid "Remove unselected entries from the playlist."
-msgstr "Enlever les entrées non-sélectionnées de la liste d'écoute."
+msgstr "Efface les entrées non sélectionnées de la liste de lecture"
 
 #: src/audacious/ui_manager.c:300
 msgid "Remove Selected"
-msgstr "Supprimer Sélectionnées"
+msgstr "Effacer la sélection"
 
 #: src/audacious/ui_manager.c:301
 msgid "Remove selected entries from the playlist."
-msgstr "Enlever les entrées sélectionnées de la liste d'écoute."
+msgstr "Efface les entrées sélectionnées de la liste de lecture."
 
 #: src/audacious/ui_manager.c:306
 msgid "Randomize List"
-msgstr "Mélanger la Liste"
+msgstr "Mélanger la liste"
 
 #: src/audacious/ui_manager.c:307
 msgid "Randomizes the playlist."
-msgstr "Mélanger la liste d'écoute"
+msgstr "Mélange la liste de lecture."
 
 #: src/audacious/ui_manager.c:310
 msgid "Reverse List"
-msgstr "Inverser la Liste"
+msgstr "Inverser la liste"
 
 #: src/audacious/ui_manager.c:311
 msgid "Reverses the playlist."
-msgstr "Renverser la liste d'écoute."
+msgstr "Inverse la liste de lecture."
 
 #: src/audacious/ui_manager.c:314
 msgid "Sort List"
@@ -1703,47 +1722,47 @@
 
 #: src/audacious/ui_manager.c:317 src/audacious/ui_manager.c:347
 msgid "Sorts the list by title."
-msgstr "Trier la liste par titre"
+msgstr "Trie la liste, en fonction du titre des entrées."
 
 #: src/audacious/ui_manager.c:320 src/audacious/ui_manager.c:350
 msgid "By Artist"
-msgstr "Par Artiste"
+msgstr "Par artiste"
 
 #: src/audacious/ui_manager.c:321 src/audacious/ui_manager.c:351
 msgid "Sorts the list by artist."
-msgstr "Trier la liste par artiste"
+msgstr "Trie la liste, en fonction de l'artiste."
 
 #: src/audacious/ui_manager.c:325 src/audacious/ui_manager.c:355
 msgid "Sorts the list by filename."
-msgstr "Trier la liste par nom de fichier"
+msgstr "Trie la liste, en fonction du nom de fichier des entrées."
 
 #: src/audacious/ui_manager.c:329 src/audacious/ui_manager.c:359
 msgid "Sorts the list by full pathname."
-msgstr "Tri de la liste par nom d'emplacement."
+msgstr "Trie la liste, en fonction du chemin complet des entrées."
 
 #: src/audacious/ui_manager.c:332 src/audacious/ui_manager.c:362
 msgid "By Date"
-msgstr "Par Date"
+msgstr "Par date"
 
 #: src/audacious/ui_manager.c:333 src/audacious/ui_manager.c:363
 msgid "Sorts the list by modification time."
-msgstr "Tri de la liste par temps de modification."
+msgstr "Trie la liste, en fonction de la date de modification."
 
 #: src/audacious/ui_manager.c:336 src/audacious/ui_manager.c:366
 msgid "By Track Number"
-msgstr "Par Numéro de Piste"
+msgstr "Par numéro de piste"
 
 #: src/audacious/ui_manager.c:337 src/audacious/ui_manager.c:367
 msgid "Sorts the list by track number."
-msgstr "Trier la Liste par numéro de piste"
+msgstr "Trie la liste, en fonction du numéro des pistes."
 
 #: src/audacious/ui_manager.c:340 src/audacious/ui_manager.c:370
 msgid "By Playlist Entry"
-msgstr "Trier la Liste par entrée de la liste d'écoute"
+msgstr "Par entrée de liste"
 
 #: src/audacious/ui_manager.c:341 src/audacious/ui_manager.c:371
 msgid "Sorts the list by playlist entry."
-msgstr "Trier la Liste par entrée de la liste d'écoute."
+msgstr "Trie la liste, en fonction des entrées qu'elle contient."
 
 #: src/audacious/ui_manager.c:344
 msgid "Sort Selected"
@@ -1759,44 +1778,43 @@
 
 #: src/audacious/ui_manager.c:383
 msgid "Plugin Services"
-msgstr "Services Greffon"
+msgstr "Services des modules"
 
 #: src/audacious/ui_manager.c:385 src/audacious/ui_manager.c:388
 msgid "View Track Details"
-msgstr "Afficher le Détail"
+msgstr "Afficher les détails"
 
 #: src/audacious/ui_manager.c:386 src/audacious/ui_manager.c:389
 msgid "View track details"
-msgstr "Afficher le Détail"
+msgstr "Affiche les informations relatives au morceau."
 
 #: src/audacious/ui_manager.c:394
 msgid "Play File"
-msgstr "Jouer le Fichier"
+msgstr "Lire un fichier..."
 
 #: src/audacious/ui_manager.c:395
 msgid "Load and play a file"
-msgstr "Charger et jouer un fichier"
+msgstr "Charge et lit un fichier."
 
 #: src/audacious/ui_manager.c:397
 msgid "Play Location"
-msgstr "Jouer le Chemin"
+msgstr "Lire un emplacement..."
 
 #: src/audacious/ui_manager.c:398
 msgid "Play media from the selected location"
-msgstr "Lire le média de la location sélectionnée"
+msgstr "Lit les média de l'emplacement sélectionné."
 
 #: src/audacious/ui_manager.c:400
-#, fuzzy
 msgid "Plugin services"
-msgstr "Services Greffon"
+msgstr "Menu des services"
 
 #: src/audacious/ui_manager.c:402
 msgid "Preferences"
-msgstr "Préférences"
+msgstr "Préférences..."
 
 #: src/audacious/ui_manager.c:403
 msgid "Open preferences window"
-msgstr "Ouvrir les Préférences"
+msgstr "Ouvre la fenêtre des préférences."
 
 #: src/audacious/ui_manager.c:405
 msgid "_Quit"
@@ -1804,11 +1822,11 @@
 
 #: src/audacious/ui_manager.c:406
 msgid "Quit Audacious"
-msgstr "Quitter Audacious"
+msgstr "Ferme Audacious."
 
 #: src/audacious/ui_manager.c:408 src/audacious/ui_manager.c:409
 msgid "Set A-B"
-msgstr "Activer A-B"
+msgstr "Marquer A-B"
 
 #: src/audacious/ui_manager.c:411 src/audacious/ui_manager.c:412
 msgid "Clear A-B"
@@ -1816,19 +1834,19 @@
 
 #: src/audacious/ui_manager.c:414 src/audacious/ui_manager.c:415
 msgid "Jump to Playlist Start"
-msgstr "Retourner au début de la liste"
+msgstr "Aller au début de la liste"
 
 #: src/audacious/ui_manager.c:417 src/audacious/ui_manager.c:418
 msgid "Jump to File"
-msgstr "Aller au Fichier"
+msgstr "Aller au fichier..."
 
 #: src/audacious/ui_manager.c:423
 msgid "Queue Toggle"
-msgstr "Basculer dans la file"
+msgstr "Mettre dans la file d'attente"
 
 #: src/audacious/ui_manager.c:424
 msgid "Enables/disables the entry in the playlist's queue."
-msgstr "Activer/Désactiver l'entrée dans la file de la liste d'écoute."
+msgstr "Active/désactive l'entrée dans la file d'attente de la liste."
 
 #: src/audacious/ui_manager.c:431
 msgid "Load"
@@ -1840,7 +1858,7 @@
 
 #: src/audacious/ui_manager.c:433
 msgid "Save"
-msgstr "Sauver"
+msgstr "Enregistrer"
 
 #: src/audacious/ui_manager.c:434
 msgid "Delete"
@@ -1849,100 +1867,100 @@
 #: src/audacious/ui_manager.c:436 src/audacious/ui_manager.c:457
 #: src/audacious/ui_manager.c:472
 msgid "Preset"
-msgstr "Pré-réglage"
+msgstr "Préréglage général"
 
 #: src/audacious/ui_manager.c:437
 msgid "Load preset"
-msgstr "Charger pré-réglages"
+msgstr "Charge un préréglage général."
 
 #: src/audacious/ui_manager.c:439 src/audacious/ui_manager.c:460
 #: src/audacious/ui_manager.c:475
 msgid "Auto-load preset"
-msgstr "Charger le pré-réglage"
+msgstr "Préréglage spécifique"
 
 #: src/audacious/ui_manager.c:440
 msgid "Load auto-load preset"
-msgstr "Charger le pré-réglage"
+msgstr "Charge un préréglage spécifique."
 
 #: src/audacious/ui_manager.c:442 src/audacious/ui_manager.c:463
 msgid "Default"
-msgstr "Défaut"
+msgstr "Préréglage par défaut"
 
 #: src/audacious/ui_manager.c:443
 msgid "Load default preset into equalizer"
-msgstr "Charger le preset par défaut dans l'équaliseur"
+msgstr "Charge le préréglage par défaut dans l'égaliseur."
 
 #: src/audacious/ui_manager.c:445
 msgid "Zero"
-msgstr "Zéro"
+msgstr "Remise à zéro"
 
 #: src/audacious/ui_manager.c:446
 msgid "Set equalizer preset levels to zero"
-msgstr "Preset de l'équaliseur au niveau zéro"
+msgstr "Réinitialise le niveau des préréglages."
 
 #: src/audacious/ui_manager.c:448
 msgid "From file"
-msgstr "/A partir du fichier"
+msgstr "À partir d'un fichier"
 
 #: src/audacious/ui_manager.c:449
 msgid "Load preset from file"
-msgstr "Charger les preset à partir du fichier"
+msgstr "Charge un préréglage à partir d'un fichier."
 
 #: src/audacious/ui_manager.c:451
 msgid "From WinAMP EQF file"
-msgstr "A partir d'un fichier EQF de Winamp"
+msgstr "À partir d'un fichier EQF WinAMP"
 
 #: src/audacious/ui_manager.c:452
 msgid "Load preset from WinAMP EQF file"
-msgstr "Charger un preset à partir d'un fichier EQF de Winamp"
+msgstr "Charge un préréglage à partir d'un fichier EQF de WinAMP."
 
 #: src/audacious/ui_manager.c:454
 msgid "WinAMP Presets"
-msgstr "Pré-réglages Winamp"
+msgstr "Préréglages WinAMP"
 
 #: src/audacious/ui_manager.c:455
 msgid "Import WinAMP presets"
-msgstr "Importer les pré-réglages Winamp"
+msgstr "Importe les préréglages de WinAMP."
 
 #: src/audacious/ui_manager.c:458
 msgid "Save preset"
-msgstr "Sauver pré-réglages"
+msgstr "Enregistre comme préréglage général."
 
 #: src/audacious/ui_manager.c:461
 msgid "Save auto-load preset"
-msgstr "Sauver le pré-réglage"
+msgstr "Enregistre comme préréglage spécifique."
 
 #: src/audacious/ui_manager.c:464
 msgid "Save default preset"
-msgstr "Sauver pré-réglages auto"
+msgstr "Enregistre comme préréglage par défaut."
 
 #: src/audacious/ui_manager.c:466
 msgid "To file"
-msgstr "Vers le fichier"
+msgstr "Dans un fichier"
 
 #: src/audacious/ui_manager.c:467
 msgid "Save preset to file"
-msgstr "Sauver le preset vers le fichier"
+msgstr "Enregistre le préréglage dans un fichier."
 
 #: src/audacious/ui_manager.c:469
 msgid "To WinAMP EQF file"
-msgstr "Vers un fichier EQF de Winamp"
+msgstr "Dans un fichier EQF WinAMP"
 
 #: src/audacious/ui_manager.c:470
 msgid "Save preset to WinAMP EQF file"
-msgstr "Sauver le preset vers un fichier EQF de Winamp"
+msgstr "Enregistre le préréglage dans un fichier EQF de WinAMP."
 
 #: src/audacious/ui_manager.c:473
 msgid "Delete preset"
-msgstr "Effacer pré-réglages"
+msgstr "Efface un préréglage."
 
 #: src/audacious/ui_manager.c:476
 msgid "Delete auto-load preset"
-msgstr "Effacer le pré-réglage chargé auto."
+msgstr "Efface un préréglage spécifique."
 
 #: src/audacious/ui_playlist.c:477
 msgid "Search entries in active playlist"
-msgstr "Chercher les entrées dans la liste d'écoute active"
+msgstr "Chercher des entrées dans la liste active"
 
 #: src/audacious/ui_playlist.c:485
 msgid ""
@@ -1951,48 +1969,49 @@
 "expressions work, simply insert a literal portion of what you're searching "
 "for."
 msgstr ""
-"Sélectionner les entrées dans la liste d'écoute en fichant un ou plusieurs "
-"champs. Les champs utilise des syntaxes d'expressions régulières, des cases "
-"insensitives. Si vous ne connaissez pas comment fonctionne des expressions "
-"régulières, insérer simplement une portion littérale de ce que vous cherchez."
+"Le choix des entrées de la liste de lecture s'effectue au moyen des champs "
+"ci-dessous. La syntaxe utilisée est celle des expressions régulières et est "
+"sensible à la casse. Si vous ne savez pas comment fonctionnent les "
+"expressions régulières, vous pouvez simplement indiquer une expression "
+"littérale de ce que vous cherchez."
 
 #: src/audacious/ui_playlist.c:493
 msgid "Title: "
-msgstr "Titre:"
+msgstr "Titre du morceau : "
 
 #: src/audacious/ui_playlist.c:500
 msgid "Album: "
-msgstr "Album:"
+msgstr "Titre de l'album : "
 
 #: src/audacious/ui_playlist.c:507
 msgid "Artist: "
-msgstr "Artiste:"
+msgstr "Nom de l'artiste : "
 
 #: src/audacious/ui_playlist.c:514
 msgid "Filename: "
-msgstr "Nom du Fichier:"
+msgstr "Nom du fichier : "
 
 #: src/audacious/ui_playlist.c:522
 msgid "Clear previous selection before searching"
-msgstr "Effacer la précédente sélection avant de rechercher"
+msgstr "Effacer la sélection précédente avant d'effectuer la recherche"
 
 #: src/audacious/ui_playlist.c:525
 msgid "Automatically toggle queue for matching entries"
-msgstr ""
+msgstr "Mettre automatiquement dans la file d'attente les entrées trouvées"
 
 #: src/audacious/ui_playlist.c:528
 msgid "Create a new playlist with matching entries"
-msgstr "Créer une nouvelle liste d'écoute avec des entrées assorties"
+msgstr "Créer une nouvelle liste avec les entrées trouvées"
 
 #: src/audacious/ui_playlist.c:748
 #, c-format
 msgid "Error writing playlist \"%s\": %s"
-msgstr "Erreur à l'écriture de la liste \"%s\": %s"
+msgstr "Erreur lors de l'écriture de la liste \"%s\": %s"
 
 #: src/audacious/ui_playlist.c:770
 #, c-format
 msgid "%s already exist. Continue?"
-msgstr "%s existe déjà. Continuer ?"
+msgstr "%s existe déjà. Faut-il continuer ?"
 
 #: src/audacious/ui_playlist.c:785
 #, c-format
@@ -2001,33 +2020,33 @@
 "\n"
 "Unknown file type for '%s'.\n"
 msgstr ""
-"<b><big>Impossible de sauver la liste.</big></b>\n"
+"<b><big>Impossible d'enregistrer la liste.</big></b>\n"
 "\n"
 "Type de fichier inconnu pour '%s'.\n"
 
 #: src/audacious/ui_playlist.c:911
 msgid "Save as Static Playlist"
-msgstr "Sauver comme liste d'écoute statique"
+msgstr "Enregistrer comme liste statique"
 
 #: src/audacious/ui_playlist.c:918
 msgid "Use Relative Path"
-msgstr "Utiliser un emplacement relatif"
+msgstr "Utiliser une arborescence relative"
 
 #: src/audacious/ui_playlist.c:940
 msgid "Load Playlist"
-msgstr "Charger Liste d'écoute"
+msgstr "Charger une liste de lecture"
 
 #: src/audacious/ui_playlist.c:953
 msgid "Save Playlist"
-msgstr "Sauver la Liste d'écoute"
+msgstr "Enregistrer la liste"
 
 #: src/audacious/ui_playlist.c:1508
 msgid "Audacious Playlist Editor"
-msgstr "Éditeur de liste d'écoute"
+msgstr "Éditeur de liste d'Audacious"
 
 #: src/audacious/ui_playlist_manager.c:363
 msgid "Playlist Manager"
-msgstr "/Gestionnaire de liste d'écoute"
+msgstr "Gestionnaire de listes de lecture"
 
 #: src/audacious/ui_playlist_manager.c:409
 msgid "Entries"
@@ -2043,11 +2062,11 @@
 
 #: src/audacious/ui_preferences.c:113
 msgid "Connectivity"
-msgstr "Proxy"
+msgstr "Connectivité"
 
 #: src/audacious/ui_preferences.c:126
 msgid "Tracknumber"
-msgstr "Numéro de piste"
+msgstr "Numéro de la piste"
 
 #: src/audacious/ui_preferences.c:129
 msgid "Filepath"
@@ -2071,11 +2090,11 @@
 
 #: src/audacious/ui_preferences.c:155
 msgid "localhost"
-msgstr "localhost"
+msgstr "hôte local"
 
 #: src/audacious/ui_preferences.c:390
 msgid "Enabled"
-msgstr "Actif"
+msgstr "Activé"
 
 #: src/audacious/ui_preferences.c:406
 msgid "Description"
@@ -2083,15 +2102,15 @@
 
 #: src/audacious/ui_preferences.c:1395
 msgid "Category"
-msgstr "Rubrique"
+msgstr "Catégorie"
 
 #: src/audacious/ui_preferences.c:1963
 msgid "Preferences Window"
-msgstr "Fenêtre des Préférences"
+msgstr "Fenêtre des préférences"
 
 #: src/audacious/ui_skinned_equalizer_slider.c:386
 msgid "PREAMP"
-msgstr "PREAMP"
+msgstr "PREAMPLIFICATION"
 
 #: src/audacious/ui_skinned_equalizer_slider.c:386
 msgid "60HZ"
@@ -2135,468 +2154,12 @@
 
 #: src/audacious/ui_skinselector.c:178
 msgid "Archived Winamp 2.x skin"
-msgstr "Skin Winamp 2.x archivé"
+msgstr "Thème Winamp 2.x archivé"
 
 #: src/audacious/ui_skinselector.c:183
 msgid "Unarchived Winamp 2.x skin"
-msgstr "Skin Winamp 2.x non-archivé"
+msgstr "Thème Winamp 2.x non archivé"
 
 #: src/audacious/ui_urlopener.c:88
 msgid "Add/Open URL Dialog"
-msgstr "Ajouter / Ouvrir un URL"
-
-#~ msgid "Show window manager decorations"
-#~ msgstr "Montrer les décorations du gestionnaire de fenêtre"
-
-#~ msgid "Not last.fm stream"
-#~ msgstr "Ceci n'est pas un stream last.fm"
-
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "<b>Artist:</b> %s"
-
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<b>Title:</b> %s"
-
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<b>Album</b> %s"
-
-#~ msgid ""
-#~ "<b><big>Couldn't find your lastfm login data.</big></b>\n"
-#~ "\n"
-#~ "Check if your Scrobbler's plugin login settings are configured properly.\n"
-#~ msgstr ""
-#~ "<b><big>Votre login lastfm est introuvable.</big></b>\n"
-#~ "\n"
-#~ "Vérifiez si le login du greffon de Scrobbler a été correctement "
-#~ "configuré.\n"
-
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "Radio Tuner Last.fm"
-
-#~ msgid "Station:"
-#~ msgstr "Station:"
-
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "<b>Artiste</b>"
-
-#~ msgid "<b>Title:</b>"
-#~ msgstr "<b>Titre</b>"
-
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<b>Album</b>"
-
-#~ msgid "Love"
-#~ msgstr "Favoris"
-
-#~ msgid "Ban"
-#~ msgstr "Bannis"
-
-#~ msgid "Skip"
-#~ msgstr "Sauter"
-
-#~ msgid "Tune in"
-#~ msgstr "Ecouter"
-
-#~ msgid "Neighbours' radio"
-#~ msgstr "Radio voisine"
-
-#~ msgid "Personal radio"
-#~ msgstr "Radio personnelle"
-
-#~ msgid ""
-#~ "<b><big>The lastfm radio plugin could not be found.</big></b>\n"
-#~ "\n"
-#~ "Check if the AudioScrobbler plugin was compiled in\n"
-#~ msgstr ""
-#~ "<b><big>Le greffon radio lastfm ne peut être trouvé</big></b>\n"
-#~ "\n"
-#~ "Vérifiez si le greffon AudioScrobbler a été compilé avec Audacious\n"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "VOLUME: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANCE: %d%% GAUCHE"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANCE: CENTRÉE"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANCE: %d%% DROITE"
-
-#~ msgid "Last.fm radio"
-#~ msgstr "Radio Last.fm"
-
-#~ msgid "Play Last.fm radio"
-#~ msgstr "Jouer Last.fm"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Impossible de jouer des fichiers.</big></b>\n"
-#~ "\n"
-#~ "Les fichiers suivants ne peuvent être lus. Veuillez vérifier que:\n"
-#~ "1. ils sont accessibles.\n"
-#~ "2. vous avez activé le greffon pour le média correspondant."
-
-#~ msgid "Don't show this warning anymore"
-#~ msgstr "Ne plus afficher cet avertissement"
-
-#~ msgid "Show more _details"
-#~ msgstr "Afficher plus de _détails"
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "Désolé, votre version de GTK+ (%d.%d.%d) ne fonctionne pas avec "
-#~ "Audacious.\n"
-#~ "Mettez à jour GTK+ vers la version %s ou plus.\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "SIGSEGV reçu\n"
-#~ "\n"
-#~ "Il est possible que ce soit un bug d'Audacious. Si vous ne comprenez pas "
-#~ "comment \n"
-#~ "c'est arrivé, envoyez un mail (en anglais) expliquant clairement vos "
-#~ "manipulations à http://bugs-meta.atheme.org/\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "MENU OPTIONS"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "DESACTIVER TOUJOURS AU-DESSUS"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "ACTIVER TOUJOURS AU-DESSUS"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "INFOS FICHIER"
-
-#~ msgid "DISABLE DOUBLESIZE"
-#~ msgstr "DESACTIVER DOUBLE-TAILLE"
-
-#~ msgid "ENABLE DOUBLESIZE"
-#~ msgstr "ACTIVER DOUBLE-TAILLE"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "MENU DES EFFETS VISUELS"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Pas de CD jouable.</big></b>\n"
-#~ "\n"
-#~ "Pas de CD à lire, ou le CD inséré n'est pas un CD audio.\n"
-
-#~ msgid "Play CD"
-#~ msgstr "Lecture du CD"
-
-#~ msgid "Add CD..."
-#~ msgstr "Ajouter un CD..."
-
-#~ msgid "Adds a CD to the playlist."
-#~ msgstr "Ajouter un CD à la playlist."
-
-#~ msgid "Track name: "
-#~ msgstr "Nom du Morceau:"
-
-#~ msgid "Album name: "
-#~ msgstr "Nom Album:"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "Artiste"
-
-#~ msgid "File name"
-#~ msgstr "Nom du fichier"
-
-#~ msgid "File path"
-#~ msgstr "Chemin du fichier"
-
-#~ msgid "File extension"
-#~ msgstr "Extension du fichier"
-
-#~ msgid "Track name"
-#~ msgstr "Nom du morceau"
-
-#~ msgid "Track number"
-#~ msgstr "Numéro de piste"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: Affiche \"...\" si plus de %n éléments sont présents"
-
-#~ msgid "Enable playlist transparency"
-#~ msgstr "Activer la transparence de la liste d'écoute"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: l'option '%s' est ambigüe\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s l'option '--%s' n'accepte pas de paramètre\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: l'option '%c%s' n'accepte pas de paramètre\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: l'option '%s' nécessite un paramètre\n"
-
-#~ msgid "%s: unrecognized option `--%s'\n"
-#~ msgstr "%s: option '--%s' inconnue\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: option '%c%s' inconnue\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: option interdite -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: option incorrecte -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: option nécessitant un paramètre -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: l'option `-W %s' est ambigüe\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: l'option '-W %s' n'accepte pas de paramètre\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "Usage: audacious [options] [fichiers] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-
-#~ msgid "Display this text and exit"
-#~ msgstr "Affiche ce message et quitte"
-
-#~ msgid "Activate Audacious"
-#~ msgstr "Activer Audacious"
-
-#~ msgid "Previous session ID"
-#~ msgstr "ID de la session précédente"
-
-#~ msgid "Disable error/warning interception (logging)"
-#~ msgstr "Désactiver les logs d'erreurs/mises en garde"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "Affiche le numéro de version et quitte\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "Fenêtre d'Ajout/Ouverture de fichiers"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "Fermer la fenêtre après l'ajout"
-
-#~ msgid "Deselect All"
-#~ msgstr "Aucun"
-
-#~ msgid "Track Information Popup"
-#~ msgstr "Popup d'information de la piste"
-
-#~ msgid "Artist Popup"
-#~ msgstr "Fenêtre Artiste"
-
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<i>Genre</i>"
-
-#~ msgid "<i>Year</i>"
-#~ msgstr "<i>Année</i>"
-
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "<i>Numéro de piste</i>"
-
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "<i>Durée du Morceau</i>"
-
-#~ msgid "label65"
-#~ msgstr "label65"
-
-#~ msgid "label76"
-#~ msgstr "label76"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/Afficher le détail"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/Type de graphique/Analyseur"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "/Type de graphique/Scope"
-
-#, fuzzy
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "/Type de graphique/Scope"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/Type de graphique/Aucun"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/Type Analyseur/Normal"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/Type Analyseur/Lignes"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/Type Analyseur/Barres"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/Type Analyseur/Crêtes"
-
-#, fuzzy
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/Type Analyseur/Normal"
-
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "/Mode Fenêtre Réduite/Normale"
-
-#~ msgid "/WindowShade VU Mode/Smooth"
-#~ msgstr "/Mode Fenêtre Réduite/Lissée"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/Effet Retombée Analyseur/Le plus lent"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/Effet Retombée Analyseur/Lent"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/Effet Retombée Analyseur/Moyen"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/Effet Retombée Analyseur/Rapide"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/Effet Retombée Analyseur/Le plus rapide"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/Effet Retombée Crêtes/Le plus lent"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/Effet Retombée Crêtes/Lent"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/Effet Retombée Crêtes/Moyen"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/Effet Retombée Crêtes/Rapide"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/Effet Retombée Crêtes/Le plus rapide"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/Aller au Temps"
-
-#~ msgid "/About Audacious"
-#~ msgstr "/A Propos d'Audacious"
-
-#~ msgid "/Files..."
-#~ msgstr "/Fichiers..."
-
-#~ msgid "/Internet location..."
-#~ msgstr "/Adresse Internet..."
-
-#, fuzzy
-#~ msgid "New List"
-#~ msgstr "/Nouvelle Liste"
-
-#, fuzzy
-#~ msgid "Creates a new playlist."
-#~ msgstr "Montrer les séparateurs dans la liste d'écoute"
-
-#, fuzzy
-#~ msgid "Displays track information."
-#~ msgstr "Information de la Piste"
-
-#~ msgid "Chinese:"
-#~ msgstr "Chinois:"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/Charger/un pré-réglage"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/Charger/le pré-réglage par défaut"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/Charger/remise à zéro"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/Sauver/le pré-réglage"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/Sauver/le pré-réglage par défaut"
-
-#~ msgid "/Save/To file"
-#~ msgstr "/Sauver/dans un fichier"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/Effacer/le pré-réglage"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "Charger pré-réglages auto."
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "Charger pré-réglages de l'équaliseur"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "Effacer pré-réglages auto."
-
-#~ msgid "/Show Popup Info"
-#~ msgstr "/Montrer les infos Popup"
-
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/Enlever les fichiers dupliqués/Par Titre"
-
-#~ msgid "/Remove Duplicates/By Filename"
-#~ msgstr "/Enlever les fichiers dupliqués/Par Nom de Fichier"
-
-#~ msgid "/Update View"
-#~ msgstr "/Rafraîchir la Liste"
-
-#~ msgid "/Select All"
-#~ msgstr "/Sélectionner tout"
-
-#~ msgid "/Sort List/By Date"
-#~ msgstr "/Trier la liste/Par Date"
-
-#~ msgid "/Sort Selection/By Title"
-#~ msgstr "/Trier la sélection/Par Titre"
-
-#~ msgid "/Sort Selection/By Artist"
-#~ msgstr "/Trier la Sélection/Par Artiste"
-
-#~ msgid "/Sort Selection/By Filename"
-#~ msgstr "/Trier la sélection/Par Nom de Fichier"
-
-#~ msgid "/Sort Selection/By Path + Filename"
-#~ msgstr "/Trier la sélection/Par Chemin + Nom de Fichier"
-
-#~ msgid "/Sort Selection/By Date"
-#~ msgstr "/Trier la sélection/Par Date"
-
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/Trier la Sélection/Par Numéro de Piste"
-
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/Trier la Sélection/Par Entrée de Liste d'écoute"
+msgstr "Ouvrir/Ajouter un flux"
--- a/po/ja.po	Sun Oct 14 05:54:54 2007 +0300
+++ b/po/ja.po	Fri Oct 19 12:14:04 2007 +0300
@@ -14,7 +14,7 @@
 "Project-Id-Version: audacious HEAD\n"
 "Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n"
 "POT-Creation-Date: 2007-10-13 14:15+0200\n"
-"PO-Revision-Date: 2007-09-10 09:20+0900\n"
+"PO-Revision-Date: 2007-10-14 22:22+0900\n"
 "Last-Translator: dai <d+po@vdr.jp>\n"
 "Language-Team: Japanese <ja@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -191,10 +191,12 @@
 "If selected, the file information text in the main window will scroll back "
 "and forth. If not selected, the text will only scroll in one direction."
 msgstr ""
+"これを使うと,メインウィンドウのファイル情報テキストが前後にスクロールしま"
+"す.そうでなければ,テキストは一方向のみにスクロールします."
 
 #: src/audacious/glade/prefswin.glade:1380
 msgid "Use two-way text scroller"
-msgstr ""
+msgstr "双方向テキストスクロールを使う"
 
 #: src/audacious/glade/prefswin.glade:1422 src/audacious/ui_preferences.c:111
 msgid "Appearance"
@@ -551,19 +553,20 @@
 msgstr "サンプリングレート [Hz]:"
 
 #: src/audacious/glade/prefswin.glade:4517
-#, fuzzy
 msgid "<b>Volume Control</b>"
-msgstr "<b>マウスのホィール</b>"
+msgstr "<b>ボリュームコントロール</b>"
 
 #: src/audacious/glade/prefswin.glade:4556
 msgid ""
 "Use software volume control. This may be useful for situations where your "
 "audio system does not support controlling the playback volume."
 msgstr ""
+"ソフトウェアボリュームコントロールを使います.オーディオシステムが再生音量の"
+"コントロールをサポートしていない状況で有用でしょう."
 
 #: src/audacious/glade/prefswin.glade:4558
 msgid "Use software volume control"
-msgstr ""
+msgstr "ソフトウェアボリュームコントロールを使う"
 
 #: src/audacious/glade/prefswin.glade:4746
 msgid "Reload Plugins"
@@ -864,7 +867,7 @@
 msgstr "クレジット"
 
 #: src/audacious/ui_credits.c:47
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "<big><b>Audacious %s</b></big>\n"
 "A skinned multimedia player for many platforms.\n"
@@ -872,7 +875,7 @@
 "Copyright (C) 2005-2007 Audacious Development Team\n"
 msgstr ""
 "<big><b>Audacious %s</b></big>\n"
-"The future of UNIX multimedia.\n"
+"多くのプラットフォーム向けのスキン機能付マルチメディアプレーヤ.\n"
 "\n"
 "Copyright (C) 2005-2007 Audacious 開発チーム\n"
 
@@ -1775,7 +1778,6 @@
 msgstr "選択した場所からメディアを演奏"
 
 #: src/audacious/ui_manager.c:400
-#, fuzzy
 msgid "Plugin services"
 msgstr "プラグインサービス"
 
@@ -2051,12 +2053,11 @@
 
 #: src/audacious/ui_preferences.c:133
 msgid "Codec"
-msgstr ""
+msgstr "コーデック"
 
 #: src/audacious/ui_preferences.c:134
-#, fuzzy
 msgid "Quality"
-msgstr "終了(_Q)"
+msgstr "音質"
 
 #: src/audacious/ui_preferences.c:155
 msgid "localhost"
--- a/po/update-potfiles.sh	Sun Oct 14 05:54:54 2007 +0300
+++ b/po/update-potfiles.sh	Fri Oct 19 12:14:04 2007 +0300
@@ -1,4 +1,5 @@
 #!/bin/bash
 rm POTFILES*
+echo "# Please don't update this file manually - use ./update-potfiles.sh instead!" > POTFILES.in
 cd ..
-find src/ \( -name "*.c*" -o -name "*.glade" \) -exec grep -lE "translatable|_\(" \{\} \; | sort | uniq > po/POTFILES.in
+find src/ \( -name "*.c*" -o -name "*.glade" \) -exec grep -lE "translatable|_\(" \{\} \; | sort | uniq >> po/POTFILES.in
--- a/scripts/makerelease.sh	Sun Oct 14 05:54:54 2007 +0300
+++ b/scripts/makerelease.sh	Fri Oct 19 12:14:04 2007 +0300
@@ -85,8 +85,8 @@
 fi
 
 if [ "x$PUBLISH" = "xyes" ]; then
-	scp $RELEASENAME.tgz sidhe.atheme.org:/var/www/distfiles/htdocs
-	scp $RELEASENAME.tbz2 sidhe.atheme.org:/var/www/distfiles/htdocs
+	scp $RELEASENAME.tgz distfiles-master.atheme.org:/srv/distfiles
+	scp $RELEASENAME.tbz2 distfiles-master.atheme.org:/srv/distfiles
 
 	echo
 	echo "The releases have been published, and will be available to the entire"
--- a/src/audacious/Makefile	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/Makefile	Fri Oct 19 12:14:04 2007 +0300
@@ -191,7 +191,7 @@
 	${LIBGLADE_LIBS}	\
 	${REGEX_LIBS}
 
-LDFLAGS += ${EXPORTDYN} ${PROG_IMPLIB_LDFLAGS}
+LDFLAGS += ${PROG_IMPLIB_LDFLAGS}
 
 build_stamp.c: 
 	if [ -d ../../.hg ]; then \
--- a/src/audacious/auddrct.c	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/auddrct.c	Fri Oct 19 12:14:04 2007 +0300
@@ -36,14 +36,14 @@
 /* player */
 
 void
-audacious_drct_quit ( void )
+drct_quit ( void )
 {
   mainwin_quit_cb();
   return;
 }
 
 void
-audacious_drct_eject ( void )
+drct_eject ( void )
 {
   if (has_x11_connection)
     mainwin_eject_pushed();
@@ -51,7 +51,7 @@
 }
 
 void
-audacious_drct_jtf_show ( void )
+drct_jtf_show ( void )
 {
   if (has_x11_connection)
     ui_jump_to_track();
@@ -59,13 +59,13 @@
 }
 
 gboolean
-audacious_drct_main_win_is_visible ( void )
+drct_main_win_is_visible ( void )
 {
   return cfg.player_visible;
 }
 
 void
-audacious_drct_main_win_toggle ( gboolean show )
+drct_main_win_toggle ( gboolean show )
 {
   if (has_x11_connection)
     mainwin_show(show);
@@ -73,13 +73,13 @@
 }
 
 gboolean
-audacious_drct_eq_win_is_visible ( void )
+drct_eq_win_is_visible ( void )
 {
   return cfg.equalizer_visible;
 }
 
 void
-audacious_drct_eq_win_toggle ( gboolean show )
+drct_eq_win_toggle ( gboolean show )
 {
   if (has_x11_connection)
     equalizerwin_show(show);
@@ -87,13 +87,13 @@
 }
 
 gboolean
-audacious_drct_pl_win_is_visible ( void )
+drct_pl_win_is_visible ( void )
 {
   return cfg.playlist_visible;
 }
 
 void
-audacious_drct_pl_win_toggle ( gboolean show )
+drct_pl_win_toggle ( gboolean show )
 {
   if (has_x11_connection) {
     if (show)
@@ -104,13 +104,13 @@
   return;
 }
 
-void audacious_drct_set_skin(gchar *skinfile)
+void drct_set_skin(gchar *skinfile)
 {
     if (has_x11_connection)
         bmp_active_skin_load(skinfile);
 }
 
-void audacious_drct_activate(void)
+void drct_activate(void)
 {
     gtk_window_present(GTK_WINDOW(mainwin));
 }
@@ -118,7 +118,7 @@
 /* playback */
 
 void
-audacious_drct_play ( void )
+drct_play ( void )
 {
   if (playback_get_paused())
     playback_pause();
@@ -130,14 +130,14 @@
 }
 
 void
-audacious_drct_pause ( void )
+drct_pause ( void )
 {
   playback_pause();
   return;
 }
 
 void
-audacious_drct_stop ( void )
+drct_stop ( void )
 {
   ip_data.stop = TRUE;
   playback_stop();
@@ -147,31 +147,31 @@
 }
 
 gboolean
-audacious_drct_get_playing ( void )
+drct_get_playing ( void )
 {
   return playback_get_playing();
 }
 
 gboolean
-audacious_drct_get_paused ( void )
+drct_get_paused ( void )
 {
   return playback_get_paused();
 }
 
 gboolean
-audacious_drct_get_stopped ( void )
+drct_get_stopped ( void )
 {
   return !playback_get_playing();
 }
 
 void
-audacious_drct_get_info( gint *rate, gint *freq, gint *nch)
+drct_get_info( gint *rate, gint *freq, gint *nch)
 {
     playback_get_sample_params(rate, freq, nch);
 }
 
 gint
-audacious_drct_get_time ( void )
+drct_get_time ( void )
 {
   gint time;
   if (playback_get_playing())
@@ -182,7 +182,7 @@
 }
 
 void
-audacious_drct_seek ( guint pos )
+drct_seek ( guint pos )
 {
   if (playlist_get_current_length(playlist_get_active()) > 0 &&
       pos < (guint)playlist_get_current_length(playlist_get_active()))
@@ -191,14 +191,14 @@
 }
 
 void
-audacious_drct_get_volume ( gint *vl, gint *vr )
+drct_get_volume ( gint *vl, gint *vr )
 {
   input_get_volume(vl, vr);
   return;
 }
 
 void
-audacious_drct_set_volume ( gint vl, gint vr )
+drct_set_volume ( gint vl, gint vr )
 {
   if (vl > 100)
     vl = 100;
@@ -209,19 +209,19 @@
 }
 
 void
-audacious_drct_get_volume_main( gint *v )
+drct_get_volume_main( gint *v )
 {
   gint vl, vr;
-  audacious_drct_get_volume(&vl, &vr);
+  drct_get_volume(&vl, &vr);
   *v = (vl > vr) ? vl : vr;
   return;
 }
 
 void
-audacious_drct_set_volume_main ( gint v )
+drct_set_volume_main ( gint v )
 {
   gint b, vl, vr;
-  audacious_drct_get_volume_balance(&b);
+  drct_get_volume_balance(&b);
   if (b < 0) {
     vl = v;
     vr = (v * (100 - abs(b))) / 100;
@@ -232,11 +232,11 @@
   }
   else
     vl = vr = v;
-  audacious_drct_set_volume(vl, vr);
+  drct_set_volume(vl, vr);
 }
 
 void
-audacious_drct_get_volume_balance ( gint *b )
+drct_get_volume_balance ( gint *b )
 {
   gint vl, vr;
   input_get_volume(&vl, &vr);
@@ -252,14 +252,14 @@
 }
 
 void
-audacious_drct_set_volume_balance ( gint b )
+drct_set_volume_balance ( gint b )
 {
   gint v, vl, vr;
   if (b < -100)
     b = -100;
   if (b > 100)
     b = 100;
-  audacious_drct_get_volume_main(&v);
+  drct_get_volume_main(&v);
   if (b < 0) {
     vl = v;
     vr = (v * (100 - abs(b))) / 100;
@@ -273,7 +273,7 @@
     vl = v;
     vr = v;
   }
-  audacious_drct_set_volume(vl, vr);
+  drct_set_volume(vl, vr);
   return;
 }
 
@@ -281,71 +281,71 @@
 /* playlist */
 
 void
-audacious_drct_pl_next ( void )
+drct_pl_next ( void )
 {
   playlist_next(playlist_get_active());
   return;
 }
 
 void
-audacious_drct_pl_prev ( void )
+drct_pl_prev ( void )
 {
   playlist_prev(playlist_get_active());
   return;
 }
 
 gboolean
-audacious_drct_pl_repeat_is_enabled( void )
+drct_pl_repeat_is_enabled( void )
 {
     return cfg.repeat;
 }
 
 void
-audacious_drct_pl_repeat_toggle( void )
+drct_pl_repeat_toggle( void )
 {
   mainwin_repeat_pushed(!cfg.repeat);
   return;
 }
 
 gboolean
-audacious_drct_pl_repeat_is_shuffled( void )
+drct_pl_repeat_is_shuffled( void )
 {
     return cfg.shuffle;
 }
 
 void
-audacious_drct_pl_shuffle_toggle( void )
+drct_pl_shuffle_toggle( void )
 {
   mainwin_shuffle_pushed(!cfg.shuffle);
   return;
 }
 
 gchar *
-audacious_drct_pl_get_title( gint pos )
+drct_pl_get_title( gint pos )
 {
     return playlist_get_songtitle(playlist_get_active(), pos);
 }
 
 gint
-audacious_drct_pl_get_time( gint pos )
+drct_pl_get_time( gint pos )
 {
     return playlist_get_songtime(playlist_get_active(), pos);
 }
 
 gint
-audacious_drct_pl_get_pos( void )
+drct_pl_get_pos( void )
 {
     return playlist_get_position_nolock(playlist_get_active());
 }
 
 gchar *
-audacious_drct_pl_get_file( gint pos )
+drct_pl_get_file( gint pos )
 {
     return playlist_get_filename(playlist_get_active(), pos);
 }
 
 void
-audacious_drct_pl_add ( GList * list )
+drct_pl_add ( GList * list )
 {
   GList *node = list;
   while ( node != NULL )
@@ -357,7 +357,7 @@
 }
 
 void
-audacious_drct_pl_clear ( void )
+drct_pl_clear ( void )
 {
   playlist_clear(playlist_get_active());
   mainwin_clear_song_info();
@@ -367,7 +367,7 @@
 
 /* following functions are not tested yet. be careful. --yaz */
 void
-audacious_drct_pl_delete ( gint pos )
+drct_pl_delete ( gint pos )
 {
     GDK_THREADS_ENTER();
     playlist_delete_index(playlist_get_active(), pos);
@@ -375,7 +375,7 @@
 }
 
 void
-audacious_drct_pl_set_pos( gint pos )
+drct_pl_set_pos( gint pos )
 {
     Playlist *playlist = playlist_get_active();
     if (pos < (guint)playlist_get_length(playlist))
@@ -383,19 +383,19 @@
 }
 
 gint
-audacious_drct_pl_get_length( void )
+drct_pl_get_length( void )
 {
     return playlist_get_length(playlist_get_active());
 }
 
 void
-audacious_drct_pl_ins_url_string( gchar * string, gint pos )
+drct_pl_ins_url_string( gchar * string, gint pos )
 {
     playlist_ins_url(playlist_get_active(), string, pos);
 }
 
 void
-audacious_drct_pl_add_url_string( gchar * string )
+drct_pl_add_url_string( gchar * string )
 {
     GDK_THREADS_ENTER();
     playlist_add_url(playlist_get_active(), string);
@@ -403,7 +403,7 @@
 }
 
 void
-audacious_drct_pl_enqueue_to_temp( gchar * string )
+drct_pl_enqueue_to_temp( gchar * string )
 {
     Playlist *new_pl = playlist_new();
 
@@ -416,13 +416,13 @@
 
 /* playqueue */
 gint
-audacious_drct_pq_get_length( void )
+drct_pq_get_length( void )
 {
     return playlist_queue_get_length(playlist_get_active());
 }
 
 void
-audacious_drct_pq_add( gint pos )
+drct_pq_add( gint pos )
 {
     Playlist *playlist = playlist_get_active();
     if (pos < (guint)playlist_get_length(playlist))
@@ -430,7 +430,7 @@
 }
 
 void
-audacious_drct_pq_remove( gint pos )
+drct_pq_remove( gint pos )
 {
     Playlist *playlist = playlist_get_active();
     if (pos < (guint)playlist_get_length(playlist))
@@ -438,25 +438,25 @@
 }
 
 void
-audacious_drct_pq_clear( void )
+drct_pq_clear( void )
 {
     playlist_clear_queue(playlist_get_active());
 }
 
 gboolean
-audacious_drct_pq_is_queued( gint pos )
+drct_pq_is_queued( gint pos )
 {
     return playlist_is_position_queued(playlist_get_active(), pos);
 }
 
 gint
-audacious_drct_pq_get_position( gint pos )
+drct_pq_get_position( gint pos )
 {
     return playlist_get_queue_position_number(playlist_get_active(), pos);
 }
 
 gint
-audaciuos_drct_pq_get_queue_position( gint pos )
+drct_pq_get_queue_position( gint pos )
 {
     return playlist_get_queue_position_number(playlist_get_active(), pos);
 }
--- a/src/audacious/auddrct.h	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/auddrct.h	Fri Oct 19 12:14:04 2007 +0300
@@ -27,63 +27,63 @@
 #include <glib.h>
 
 /* player */
-void audacious_drct_quit ( void );
-void audacious_drct_eject ( void );
-void audacious_drct_jtf_show ( void );
-gboolean audacious_drct_main_win_is_visible ( void );
-void audacious_drct_main_win_toggle ( gboolean );
-gboolean audacious_drct_eq_win_is_visible ( void );
-void audacious_drct_eq_win_toggle ( gboolean );
-gboolean audacious_drct_pl_win_is_visible ( void );
-void audacious_drct_pl_win_toggle ( gboolean );
-void audacious_drct_set_skin(gchar *skinfile);
-void audacious_drct_activate(void);
+void drct_quit ( void );
+void drct_eject ( void );
+void drct_jtf_show ( void );
+gboolean drct_main_win_is_visible ( void );
+void drct_main_win_toggle ( gboolean );
+gboolean drct_eq_win_is_visible ( void );
+void drct_eq_win_toggle ( gboolean );
+gboolean drct_pl_win_is_visible ( void );
+void drct_pl_win_toggle ( gboolean );
+void drct_set_skin(gchar *skinfile);
+void drct_activate(void);
 
 /* playback */
-void audacious_drct_play ( void );
-void audacious_drct_pause ( void );
-void audacious_drct_stop ( void );
-gboolean audacious_drct_get_playing ( void );
-gboolean audacious_drct_get_paused ( void );
-gboolean audacious_drct_get_stopped ( void );
-void audacious_drct_get_info( gint *rate, gint *freq, gint *nch);
-gint audacious_drct_get_time ( void );
-void audacious_drct_seek ( guint pos );
-void audacious_drct_get_volume( gint *vl, gint *vr );
-void audacious_drct_set_volume( gint vl, gint vr );
-void audacious_drct_get_volume_main( gint *v );
-void audacious_drct_set_volume_main( gint v );
-void audacious_drct_get_volume_balance( gint *b );
-void audacious_drct_set_volume_balance( gint b );
+void drct_play ( void );
+void drct_pause ( void );
+void drct_stop ( void );
+gboolean drct_get_playing ( void );
+gboolean drct_get_paused ( void );
+gboolean drct_get_stopped ( void );
+void drct_get_info( gint *rate, gint *freq, gint *nch);
+gint drct_get_time ( void );
+void drct_seek ( guint pos );
+void drct_get_volume( gint *vl, gint *vr );
+void drct_set_volume( gint vl, gint vr );
+void drct_get_volume_main( gint *v );
+void drct_set_volume_main( gint v );
+void drct_get_volume_balance( gint *b );
+void drct_set_volume_balance( gint b );
 
 /* playlist */
-void audacious_drct_pl_next( void );
-void audacious_drct_pl_prev( void );
-gboolean audacious_drct_pl_repeat_is_enabled ( void );
-void audacious_drct_pl_repeat_toggle ( void );
-gboolean audacious_drct_pl_repeat_is_shuffled ( void );
-void audacious_drct_pl_shuffle_toggle ( void );
-gchar *audacious_drct_pl_get_title( gint pos );
-gint audacious_drct_pl_get_time( gint pos );
-gint audacious_drct_pl_get_pos( void );
-gchar *audacious_drct_pl_get_file( gint pos );
-void audacious_drct_pl_add ( GList * list );
-void audacious_drct_pl_clear ( void );
-gint audacious_drct_pl_get_length( void );
-void audacious_drct_pl_delete ( gint pos );
-void audacious_drct_pl_set_pos( gint pos );
-void audacious_drct_pl_ins_url_string( gchar * string, gint pos );
-void audacious_drct_pl_add_url_string( gchar * string );
-void audacious_drct_pl_enqueue_to_temp( gchar * string );
+void drct_pl_next( void );
+void drct_pl_prev( void );
+gboolean drct_pl_repeat_is_enabled ( void );
+void drct_pl_repeat_toggle ( void );
+gboolean drct_pl_repeat_is_shuffled ( void );
+void drct_pl_shuffle_toggle ( void );
+gchar *drct_pl_get_title( gint pos );
+gint drct_pl_get_time( gint pos );
+gint drct_pl_get_pos( void );
+gchar *drct_pl_get_file( gint pos );
+void drct_pl_add ( GList * list );
+void drct_pl_clear ( void );
+gint drct_pl_get_length( void );
+void drct_pl_delete ( gint pos );
+void drct_pl_set_pos( gint pos );
+void drct_pl_ins_url_string( gchar * string, gint pos );
+void drct_pl_add_url_string( gchar * string );
+void drct_pl_enqueue_to_temp( gchar * string );
 
 /* playqueue */
-gint audacious_drct_pq_get_length( void );
-void audacious_drct_pq_add( gint pos );
-void audacious_drct_pq_remove( gint pos );
-void audacious_drct_pq_clear( void );
-gboolean audacious_drct_pq_is_queued( gint pos );
-gint audacious_drct_pq_get_position( gint pos );
-gint audaciuos_drct_pq_get_queue_position( gint pos );
+gint drct_pq_get_length( void );
+void drct_pq_add( gint pos );
+void drct_pq_remove( gint pos );
+void drct_pq_clear( void );
+gboolean drct_pq_is_queued( gint pos );
+gint drct_pq_get_position( gint pos );
+gint drct_pq_get_queue_position( gint pos );
 
 /* adjust naming scheme to audacious_remote_* functions */
 #define audacious_drct_show_jtf_box audacious_drct_jtf_show
--- a/src/audacious/dock.c	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/dock.c	Fri Oct 19 12:14:04 2007 +0300
@@ -565,3 +565,8 @@
 
     return list;
 }
+
+GList *
+get_dock_window_list() {
+    return dock_window_list;
+}
--- a/src/audacious/dock.h	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/dock.h	Fri Oct 19 12:14:04 2007 +0300
@@ -44,4 +44,6 @@
                                  gboolean decorated);
 void dock_window_resize(GtkWindow * widget, gint new_w, gint new_h, gint w, gint h);
 
+GList *get_dock_window_list();
+
 #endif
--- a/src/audacious/input.h	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/input.h	Fri Oct 19 12:14:04 2007 +0300
@@ -23,13 +23,13 @@
  *  Audacious or using our public API to be a derived work.
  */
 
-#ifndef INPUT_H
-#define INPUT_H
+#ifndef _AUDACIOUS_INPUT_H
+#define _AUDACIOUS_INPUT_H
+
+typedef struct _InputPluginData InputPluginData;
 
 #include "plugin.h"
 
-typedef struct _InputPluginData InputPluginData;
-
 struct _InputPluginData {
     GList *input_list;
     InputPlayback *current_input_playback;
@@ -40,11 +40,6 @@
     GMutex *playback_mutex;
 };
 
-typedef struct {
-    Tuple *tuple;
-    InputPlugin *ip;
-} ProbeResult;
-
 GList *get_input_list(void);
 InputPlayback *get_current_input_playback(void);
 void set_current_input_playback(InputPlayback * ip);
--- a/src/audacious/main.c	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/main.c	Fri Oct 19 12:14:04 2007 +0300
@@ -1184,35 +1184,35 @@
             audacious_remote_activate(session);
     } else {
         if (options->rew)
-            audacious_drct_playlist_prev();
+            drct_pl_prev();
 
         if (options->play)
-            audacious_drct_play();
+            drct_play();
 
         if (options->pause)
-            audacious_drct_pause();
+            drct_pause();
 
         if (options->stop)
-            audacious_drct_stop();
+            drct_stop();
 
         if (options->fwd)
-            audacious_drct_playlist_next();
+            drct_pl_next();
 
         if (options->play_pause) {
-            if (audacious_drct_get_paused())
-                audacious_drct_play();
+            if (drct_get_paused())
+                drct_play();
             else
-                audacious_drct_pause();
+                drct_pause();
         }
 
         if (options->show_jump_box)
-            audacious_drct_show_jtf_box();
+            drct_jtf_show();
 
         if (options->mainwin)
-            audacious_drct_main_win_toggle(TRUE);
+            drct_main_win_toggle(TRUE);
 
         if (options->activate)
-            audacious_drct_activate();
+            drct_activate();
     }
 
     if(remote) {
--- a/src/audacious/main.h	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/main.h	Fri Oct 19 12:14:04 2007 +0300
@@ -28,10 +28,9 @@
 
 #ifdef _AUDACIOUS_CORE
 # include "ui_main.h"
-#endif
-
-#ifdef USE_DBUS
-#include "dbus-service.h"
+# ifdef USE_DBUS
+#  include "dbus-service.h"
+# endif
 #endif
 
 #include <sys/types.h>
@@ -180,7 +179,7 @@
 
 extern GCond *cond_scan;
 extern GMutex *mutex_scan;
-#ifdef USE_DBUS
+#if defined(USE_DBUS) && defined(_AUDACIOUS_CORE)
 extern MprisPlayer *mpris;
 #endif
 
--- a/src/audacious/output.c	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/output.c	Fri Oct 19 12:14:04 2007 +0300
@@ -499,9 +499,14 @@
                 return;                        /* yes, so finish */
 
             /* else sleep for retry */
+#ifndef GDK_WINDOWING_QUARTZ
             g_mutex_lock(playback->pb_change_mutex);
             g_cond_timed_wait(playback->pb_change_cond, playback->pb_change_mutex, &pb_abs_time);
             g_mutex_unlock(playback->pb_change_mutex);
+#else
+            /* Darwin threading sucks. */
+            g_usleep(10000);
+#endif
         }
 
         if (ip_data.stop)
--- a/src/audacious/playlist.c	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/playlist.c	Fri Oct 19 12:14:04 2007 +0300
@@ -668,8 +668,8 @@
 			       InputPlugin * dec)
 {
     PlaylistEntry *entry;
-    Tuple *main_tuple = NULL;
-    gint nsubtunes = 0, i = 0;
+    Tuple *parent_tuple = NULL;
+    gint nsubtunes = 0, subtune = 0;
     gboolean add_flag = TRUE;
 
     g_return_if_fail(playlist != NULL);
@@ -678,17 +678,17 @@
     if (tuple != NULL) {
         nsubtunes = tuple->nsubtunes;
         if (nsubtunes > 0) {
-            main_tuple = tuple;
-            i = 1;
+            parent_tuple = tuple;
+            subtune = 1;
         }
     }
 
-    for (; add_flag && i <= nsubtunes; i++) {
+    for (; add_flag && subtune <= nsubtunes; subtune++) {
         gchar *filename_entry;
         
         if (nsubtunes > 0) {
             filename_entry = g_strdup_printf("%s?%d", filename,
-                main_tuple->subtunes ? main_tuple->subtunes[i] : i);
+                parent_tuple->subtunes ? parent_tuple->subtunes[subtune - 1] : subtune);
             
             /* We're dealing with subtune, let's ask again tuple information
              * to plugin, by passing the ?subtune suffix; this way we get
@@ -704,12 +704,12 @@
             tuple ? tuple_get_int(tuple, FIELD_LENGTH, NULL) : -1, dec);
         g_free(filename_entry);
 
+        PLAYLIST_LOCK(playlist);
+        
         if (!playlist->tail)
             playlist->tail = g_list_last(playlist->entries);
 
-        PLAYLIST_LOCK(playlist);
-
-        if ((pos == -1) && (i < 2)) { // the common case
+        if (pos == -1) { // the common case
             GList *element;
             element = g_list_alloc();
             element->data = entry;
@@ -726,12 +726,9 @@
                 } else
                     add_flag = FALSE;
             }
-        } else {
-            playlist->entries = g_list_insert(playlist->entries, entry, pos);
-        }
-
-        PLAYLIST_UNLOCK(playlist);
-
+        } else
+            playlist->entries = g_list_insert(playlist->entries, entry, pos++);
+        
         if (tuple != NULL) {
             const gchar *formatter = tuple_get_string(tuple, FIELD_FORMATTER, NULL);
             entry->title = tuple_formatter_make_title_string(tuple,
@@ -739,10 +736,12 @@
             entry->length = tuple_get_int(tuple, FIELD_LENGTH, NULL);
             entry->tuple = tuple;
         }
+        
+        PLAYLIST_UNLOCK(playlist);
     }
-    
-    if (main_tuple)
-        tuple_free(main_tuple);
+
+    if (parent_tuple)
+        tuple_free(parent_tuple);
 
     if (tuple != NULL && tuple_get_int(tuple, FIELD_MTIME, NULL) == -1) {
         // kick the scanner thread only if mtime = -1 (uninitialized)
--- a/src/audacious/playlist.h	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/playlist.h	Fri Oct 19 12:14:04 2007 +0300
@@ -22,8 +22,8 @@
  *  The Audacious team does not consider modular code linking to
  *  Audacious or using our public API to be a derived work.
  */
-#ifndef PLAYLIST_H
-#define PLAYLIST_H
+#ifndef _AUDACIOUS_PLAYLIST_H
+#define _AUDACIOUS_PLAYLIST_H
 
 /* XXX: Allow pre-0.2 libmowgli to build audacious. */
 #ifdef TRUE
@@ -38,9 +38,9 @@
 #include <glib.h>
 #include "audacious/tuple.h"
 #include "audacious/tuple_formatter.h"
-#include "input.h"
 
-G_BEGIN_DECLS
+typedef struct _PlaylistEntry PlaylistEntry;
+typedef struct _Playlist Playlist;
 
 typedef enum {
     PLAYLIST_SORT_PATH,
@@ -58,22 +58,19 @@
     PLAYLIST_DUPS_TITLE
 } PlaylistDupsType;
 
-typedef enum {
-    PLAYLIST_FORMAT_UNKNOWN = -1,
-    PLAYLIST_FORMAT_M3U,
-    PLAYLIST_FORMAT_PLS,
-    PLAYLIST_FORMAT_COUNT
-} PlaylistFormat;
+#include "audacious/plugin.h"
+
+G_BEGIN_DECLS
 
 #define PLAYLIST_ENTRY(x)  ((PlaylistEntry*)(x))
-typedef struct _PlaylistEntry {
+struct _PlaylistEntry {
     gchar *filename;
     gchar *title;
     gint length;
     gboolean selected;
     InputPlugin *decoder;
     Tuple *tuple;		/* cached entry tuple, if available */
-} PlaylistEntry;
+};
 
 #define PLAYLIST(x)  ((Playlist *)(x))
 
@@ -83,7 +80,7 @@
     PLAYLIST_USE_RELATIVE = 1 << 1,
 } PlaylistAttribute;
 
-typedef struct _Playlist {
+struct _Playlist {
     gchar         *title;
     gchar         *filename;
     gint           length;
@@ -99,7 +96,7 @@
     GMutex        *mutex;       /* this is required for multiple playlist */
     GList *tail; /* marker for the last element in playlist->entries */
     gint           attribute; /* PlaylistAttribute */
-} Playlist;
+};
 
 typedef enum {
     PLAYLIST_ASSOC_LINEAR,
@@ -193,7 +190,6 @@
 gint playlist_get_songtime(Playlist *playlist, guint pos);
 
 GList *playlist_get_selected(Playlist *playlist);
-GList *playlist_get_selected_list(Playlist *playlist);
 int playlist_get_num_selected(Playlist *playlist);
 
 void playlist_get_total_time(Playlist *playlist, gulong * total_time, gulong * selection_time,
@@ -225,7 +221,6 @@
 void playlist_free(Playlist *playlist);
 Playlist *playlist_new_from_selected(void);
 
-PlaylistFormat playlist_format_get_from_name(const gchar * filename);
 gboolean is_playlist_name(const gchar * filename);
 
 #define PLAYLIST_LOCK(pl)    g_mutex_lock(pl->mutex)
--- a/src/audacious/plugin.h	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/plugin.h	Fri Oct 19 12:14:04 2007 +0300
@@ -43,6 +43,7 @@
 #include "audacious/eventqueue.h"
 #include "audacious/configdb.h"
 #include "audacious/playlist_container.h"
+#include "audacious/main.h"
 
 #define PLUGIN(x)         ((Plugin *)(x))
 #define INPUT_PLUGIN(x)   ((InputPlugin *)(x))
@@ -55,8 +56,8 @@
 #define LOWLEVEL_PLUGIN(x) ((LowlevelPlugin *)(x))
 
 #define __AUDACIOUS_NEWVFS__
-#define __AUDACIOUS_PLUGIN_API__ 6
-#define __AUDACIOUS_INPUT_PLUGIN_API__ 6
+#define __AUDACIOUS_PLUGIN_API__ 7
+#define __AUDACIOUS_INPUT_PLUGIN_API__ 7
 
 typedef enum {
     FMT_U8,
@@ -88,8 +89,22 @@
 
 typedef struct _InputPlayback InputPlayback;
 
+typedef struct {
+    Tuple *tuple;
+    InputPlugin *ip;
+} ProbeResult;
+
+typedef GHashTable INIFile;
+
+#include "audacious/playlist.h"
+#include "audacious/input.h"
 #include "audacious/mime.h"
 #include "audacious/custom_uri.h"
+#include "audacious/hook.h"
+#include "audacious/xconvert.h"
+#include "audacious/ui_plugin_menu.h"
+#include "audacious/formatter.h"
+#include "audacious/flow.h"
 
 #define PLUGIN_COMMON_FIELDS		\
     gpointer handle;			\
@@ -286,6 +301,17 @@
                                    GCallback button_action,
                                    gpointer action_data);
     const gchar *(*get_gentitle_format)(void);
+    gchar *(*util_get_localdir)(void);
+    void (*util_menu_main_show)(gint x, gint y, guint button, guint time);
+
+    /* INI funcs */
+    INIFile *(*open_ini_file)(const gchar *filename);
+    void (*close_ini_file)(INIFile *key_file);
+    gchar *(*read_ini_string)(INIFile *key_file, const gchar *section,
+                                           const gchar *key);
+    GArray *(*read_ini_array)(INIFile *key_file, const gchar *section,
+                       const gchar *key);
+
 
     /* strings API */
     gchar *(*escape_shell_chars)(const gchar * string);
@@ -316,6 +342,250 @@
     void (*playlist_container_read)(gchar *filename, gint pos);
     void (*playlist_container_write)(gchar *filename, gint pos);
     PlaylistContainer *(*playlist_container_find)(gchar *ext);
+
+    /* Playlist API */
+    PlaylistEntry *(*playlist_entry_new)(const gchar * filename,
+                                  const gchar * title, const gint len,
+                                  InputPlugin * dec);
+    void (*playlist_entry_free)(PlaylistEntry * entry);
+
+    void (*playlist_add_playlist)(Playlist *);
+    void (*playlist_remove_playlist)(Playlist *);
+    void (*playlist_select_playlist)(Playlist *);
+    void (*playlist_select_next)(void);
+    void (*playlist_select_prev)(void);
+    GList *(*playlist_get_playlists)(void);
+
+    void (*playlist_clear_only)(Playlist *playlist);
+    void (*playlist_clear)(Playlist *playlist);
+    void (*playlist_delete)(Playlist *playlist, gboolean crop);
+
+    gboolean (*playlist_add)(Playlist *playlist, const gchar * filename);
+    gboolean (*playlist_ins)(Playlist *playlist, const gchar * filename, gint pos);
+    guint (*playlist_add_dir)(Playlist *playlist, const gchar * dir);
+    guint (*playlist_ins_dir)(Playlist *playlist, const gchar * dir, gint pos, gboolean background);
+    guint (*playlist_add_url)(Playlist *playlist, const gchar * url);
+    guint (*playlist_ins_url)(Playlist *playlist, const gchar * string, gint pos);
+
+    void (*playlist_check_pos_current)(Playlist *playlist);
+    void (*playlist_next)(Playlist *playlist);
+    void (*playlist_prev)(Playlist *playlist);
+    void (*playlist_queue)(Playlist *playlist);
+    void (*playlist_queue_position)(Playlist *playlist, guint pos);
+    void (*playlist_queue_remove)(Playlist *playlist, guint pos);
+    gint (*playlist_queue_get_length)(Playlist *playlist);
+    gboolean (*playlist_is_position_queued)(Playlist *playlist, guint pos);
+    void (*playlist_clear_queue)(Playlist *playlist);
+    gint (*playlist_get_queue_position)(Playlist *playlist, PlaylistEntry * entry);
+    gint (*playlist_get_queue_position_number)(Playlist *playlist, guint pos);
+    gint (*playlist_get_queue_qposition_number)(Playlist *playlist, guint pos);
+    void (*playlist_eof_reached)(Playlist *playlist);
+    void (*playlist_set_position)(Playlist *playlist, guint pos);
+    gint (*playlist_get_length)(Playlist *playlist);
+    gint (*playlist_get_position)(Playlist *playlist);
+    gint (*playlist_get_position_nolock)(Playlist *playlist);
+    gchar *(*playlist_get_info_text)(Playlist *playlist);
+    gint (*playlist_get_current_length)(Playlist *playlist);
+
+    gboolean (*playlist_save)(Playlist *playlist, const gchar * filename);
+    gboolean (*playlist_load)(Playlist *playlist, const gchar * filename);
+
+    void (*playlist_sort)(Playlist *playlist, PlaylistSortType type);
+    void (*playlist_sort_selected)(Playlist *playlist, PlaylistSortType type);
+
+    void (*playlist_reverse)(Playlist *playlist);
+    void (*playlist_random)(Playlist *playlist);
+    void (*playlist_remove_duplicates)(Playlist *playlist, PlaylistDupsType);
+    void (*playlist_remove_dead_files)(Playlist *playlist);
+
+    void (*playlist_fileinfo_current)(Playlist *playlist);
+    void (*playlist_fileinfo)(Playlist *playlist, guint pos);
+
+    void (*playlist_delete_index)(Playlist *playlist, guint pos);
+    void (*playlist_delete_filenames)(Playlist *playlist, GList * filenames);
+
+    PlaylistEntry *(*playlist_get_entry_to_play)(Playlist *playlist);
+
+    gchar *(*playlist_get_filename)(Playlist *playlist, guint pos);
+    gchar *(*playlist_get_songtitle)(Playlist *playlist, guint pos);
+    Tuple *(*playlist_get_tuple)(Playlist *playlist, guint pos);
+    gint (*playlist_get_songtime)(Playlist *playlist, guint pos);
+
+    GList *(*playlist_get_selected)(Playlist *playlist);
+    int (*playlist_get_num_selected)(Playlist *playlist);
+
+    void (*playlist_get_total_time)(Playlist *playlist, gulong * total_time, gulong * selection_time,
+                             gboolean * total_more,
+                             gboolean * selection_more);
+
+    gint (*playlist_select_search)(Playlist *playlist, Tuple *tuple, gint action);
+    void (*playlist_select_all)(Playlist *playlist, gboolean set);
+    void (*playlist_select_range)(Playlist *playlist, gint min, gint max, gboolean sel);
+    void (*playlist_select_invert_all)(Playlist *playlist);
+    gboolean (*playlist_select_invert)(Playlist *playlist, guint pos);
+
+    gboolean (*playlist_read_info_selection)(Playlist *playlist);
+    void (*playlist_read_info)(Playlist *playlist, guint pos);
+
+    void (*playlist_set_shuffle)(gboolean shuffle);
+
+    void (*playlist_clear_selected)(Playlist *playlist);
+
+    GList *(*get_playlist_nth)(Playlist *playlist, guint);
+
+    gboolean (*playlist_set_current_name)(Playlist *playlist, const gchar * title);
+    const gchar *(*playlist_get_current_name)(Playlist *playlist);
+
+    gboolean (*playlist_filename_set)(Playlist *playlist, const gchar * filename);
+
+    gchar *(*playlist_filename_get)(Playlist *playlist);
+
+    Playlist *(*playlist_new)(void);
+    void (*playlist_free)(Playlist *playlist);
+    Playlist *(*playlist_new_from_selected)(void);
+
+    gboolean (*is_playlist_name)(const gchar * filename);
+
+    void (*playlist_load_ins_file)(Playlist *playlist, const gchar * filename,
+                                   const gchar * playlist_name, gint pos,
+                                   const gchar * title, gint len);
+
+    void (*playlist_load_ins_file_tuple)(Playlist *playlist, const gchar * filename_p,
+                                         const gchar * playlist_name, gint pos,
+                                         Tuple *tuple);
+
+    Playlist *(*playlist_get_active)(void);
+
+    gboolean (*playlist_playlists_equal)(Playlist *p1, Playlist *p2);
+
+    /* state vars */
+    InputPluginData *ip_state;
+    BmpConfig *_cfg;
+
+    /* hook API */
+    void (*hook_register)(const gchar *name);
+    gint (*hook_associate)(const gchar *name, HookFunction func, gpointer user_data);
+    gint (*hook_dissociate)(const gchar *name, HookFunction func);
+    void (*hook_call)(const gchar *name, gpointer hook_data);
+
+    /* xconvert API */
+    struct xmms_convert_buffers *(*xmms_convert_buffers_new)(void);
+    void (*xmms_convert_buffers_free)(struct xmms_convert_buffers *buf);
+    void (*xmms_convert_buffers_destroy)(struct xmms_convert_buffers *buf);
+    convert_func_t (*xmms_convert_get_func)(AFormat output, AFormat input);
+    convert_channel_func_t (*xmms_convert_get_channel_func)(AFormat fmt,
+                                                     int output,
+                                                     int input);
+    convert_freq_func_t (*xmms_convert_get_frequency_func)(AFormat fmt,
+                                                    int channels);
+
+    /* PluginMenu API */
+    gint (*menu_plugin_item_add)(gint, GtkWidget *);
+    gint (*menu_plugin_item_remove)(gint, GtkWidget *);
+
+    /* DRCT API. */
+    void (*drct_quit) ( void );
+    void (*drct_eject) ( void );
+    void (*drct_jtf_show) ( void );
+    gboolean (*drct_main_win_is_visible)( void );
+    void (*drct_main_win_toggle) ( gboolean );
+    gboolean (*drct_eq_win_is_visible)( void );
+    void (*drct_eq_win_toggle) ( gboolean );
+    gboolean (*drct_pl_win_is_visible)( void );
+    void (*drct_pl_win_toggle) ( gboolean );
+    void (*drct_set_skin)(gchar *skinfile);
+    void (*drct_activate)(void);
+
+    /* DRCT API: playback */
+    void (*drct_play) ( void );
+    void (*drct_pause) ( void );
+    void (*drct_stop) ( void );
+    gboolean (*drct_get_playing)( void );
+    gboolean (*drct_get_paused)( void );
+    gboolean (*drct_get_stopped)( void );
+    void (*drct_get_info)( gint *rate, gint *freq, gint *nch);
+    gint (*drct_get_time )( void );
+    void (*drct_seek) ( guint pos );
+    void (*drct_get_volume)( gint *vl, gint *vr );
+    void (*drct_set_volume)( gint vl, gint vr );
+    void (*drct_get_volume_main)( gint *v );
+    void (*drct_set_volume_main)( gint v );
+    void (*drct_get_volume_balance)( gint *b );
+    void (*drct_set_volume_balance)( gint b );
+
+    /* DRCT API: playlist */
+    void (*drct_pl_next)( void );
+    void (*drct_pl_prev)( void );
+    gboolean (*drct_pl_repeat_is_enabled)( void );
+    void (*drct_pl_repeat_toggle) ( void );
+    gboolean (*drct_pl_repeat_is_shuffled)( void );
+    void (*drct_pl_shuffle_toggle) ( void );
+    gchar *(*drct_pl_get_title)( gint pos );
+    gint (*drct_pl_get_time)( gint pos );
+    gint (*drct_pl_get_pos)( void );
+    gchar *(*drct_pl_get_file)( gint pos );
+    void (*drct_pl_add) ( GList * list );
+    void (*drct_pl_clear) ( void );
+    gint (*drct_pl_get_length)( void );
+    void (*drct_pl_delete) ( gint pos );
+    void (*drct_pl_set_pos)( gint pos );
+    void (*drct_pl_ins_url_string)( gchar * string, gint pos );
+    void (*drct_pl_add_url_string)( gchar * string );
+    void (*drct_pl_enqueue_to_temp)( gchar * string );
+
+    /* DRCT API: playqueue */
+    gint (*drct_pq_get_length)( void );
+    void (*drct_pq_add)( gint pos );
+    void (*drct_pq_remove)( gint pos );
+    void (*drct_pq_clear)( void );
+    gboolean (*drct_pq_is_queued)( gint pos );
+    gint (*drct_pq_get_position)( gint pos );
+    gint (*drct_pq_get_queue_position)( gint pos );
+
+    /* Formatter API */
+    Formatter *(*formatter_new)(void);
+    void (*formatter_destroy)(Formatter * formatter);
+    void (*formatter_associate)(Formatter * formatter, guchar id,
+                                gchar * value);
+    void (*formatter_dissociate)(Formatter * formatter, guchar id);
+    gchar *(*formatter_format)(Formatter * formatter, gchar * format);
+
+    gint (*prefswin_page_new)(GtkWidget *container, gchar *name, gchar *imgurl);
+    void (*prefswin_page_destroy)(GtkWidget *container);
+
+    /* FileInfoPopup API */
+    GtkWidget *(*fileinfopopup_create)(void);
+    void (*fileinfopopup_destroy)(GtkWidget* fileinfopopup_win);
+    void (*fileinfopopup_show_from_tuple)(GtkWidget *fileinfopopup_win, Tuple *tuple);
+    void (*fileinfopopup_show_from_title)(GtkWidget *fileinfopopup_win, gchar *title);
+    void (*fileinfopopup_hide)(GtkWidget *filepopup_win, gpointer unused);
+
+    /* Probe */
+    ProbeResult *(*input_check_file)(const gchar * filename, gboolean show_warning);
+
+    /* InputPlayback */
+    InputPlayback *(*playback_new)(void);
+    void (*playback_run)(InputPlayback *);
+
+    /* Flows */
+    gsize (*flow_execute)(Flow *flow, gint time, gpointer *data, gsize len, AFormat fmt,
+                          gint srate, gint channels);
+    Flow *(*flow_new)(void);
+    void (*flow_link_element)(Flow *flow, FlowFunction func);
+    void (*flow_unlink_element)(Flow *flow, FlowFunction func);
+    void (*effect_flow)(FlowContext *context);
+    void (*iir_flow)(FlowContext *context);
+    void (*volumecontrol_flow)(FlowContext *context);
+    
+    /* Dock */
+    GList *(*get_dock_window_list)(void);
+    GList *(*dock_add_window)(GList * window_list, GtkWindow * window);
+    GList *(*dock_remove_window)(GList * window_list, GtkWindow * window);
+    void (*dock_move_press)(GList * window_list, GtkWindow * w,
+                         GdkEventButton * event, gboolean move_list);
+    void (*dock_move_motion)(GtkWindow * w, GdkEventMotion * event);
+    void (*dock_move_release)(GtkWindow * w);
+    gboolean (*dock_is_moving)(GtkWindow * w);
 };
 
 /* Convenience macros for accessing the public API. */
@@ -427,6 +697,234 @@
 #define aud_playlist_container_write		_audvt->playlist_container_write
 #define aud_playlist_container_find		_audvt->playlist_container_find
 
+#define aud_playlist_entry_new			_audvt->playlist_entry_new
+#define aud_playlist_entry_free			_audvt->playlist_entry_free
+
+#define aud_playlist_add_playlist		_audvt->playlist_add_playlist
+#define aud_playlist_remove_playlist		_audvt->playlist_remove_playlist
+#define aud_playlist_select_playlist		_audvt->playlist_select_playlist
+#define aud_playlist_select_next		_audvt->playlist_select_next
+#define aud_playlist_select_prev		_audvt->playlist_select_prev
+#define aud_playlist_get_playlists		_audvt->playlist_get_playlists
+
+#define aud_playlist_clear_only			_audvt->playlist_clear_only
+#define aud_playlist_clear			_audvt->playlist_clear
+#define aud_playlist_delete			_audvt->playlist_delete
+
+#define aud_playlist_add			_audvt->playlist_add
+#define aud_playlist_ins			_audvt->playlist_ins
+#define aud_playlist_add_dir			_audvt->playlist_add_dir
+#define aud_playlist_ins_dir			_audvt->playlist_ins_dir
+#define aud_playlist_add_url			_audvt->playlist_add_url
+#define aud_playlist_ins_url			_audvt->playlist_ins_url
+
+#define aud_playlist_check_pos_current		_audvt->playlist_check_pos_current
+#define aud_playlist_next			_audvt->playlist_next
+#define aud_playlist_prev			_audvt->playlist_prev
+
+#define aud_playlist_queue			_audvt->playlist_queue
+#define aud_playlist_queue_position		_audvt->playlist_queue_position
+#define aud_playlist_queue_remove		_audvt->playlist_queue_remove
+#define aud_playlist_queue_get_length		_audvt->playlist_queue_get_length
+#define aud_playlist_is_position_queued		_audvt->playlist_is_position_queued
+#define aud_playlist_clear_queue		_audvt->playlist_clear_queue
+#define aud_playlist_get_queue_position		_audvt->playlist_get_queue_position
+#define aud_playlist_get_queue_position_number	_audvt->playlist_get_queue_position_number
+#define aud_playlist_get_queue_qposition_number	_audvt->playlist_get_queue_qposition_number
+#define aud_playlist_eof_reached		_audvt->playlist_eof_reached
+#define aud_playlist_set_position		_audvt->playlist_set_position
+#define aud_playlist_get_length			_audvt->playlist_get_length
+#define aud_playlist_get_position		_audvt->playlist_get_position
+#define aud_playlist_get_position_nolock	_audvt->playlist_get_position_nolock
+#define aud_playlist_get_info_text		_audvt->playlist_get_info_text
+#define aud_playlist_get_current_length		_audvt->playlist_get_current_length
+
+#define aud_playlist_save			_audvt->playlist_save
+#define aud_playlist_load			_audvt->playlist_load
+
+#define aud_playlist_sort			_audvt->playlist_sort
+#define aud_playlist_sort_selected		_audvt->playlist_sort_selected
+
+#define aud_playlist_reverse			_audvt->playlist_reverse
+#define aud_playlist_random			_audvt->playlist_random
+#define aud_playlist_remove_duplicates		_audvt->playlist_remove_duplicates
+#define aud_playlist_remove_dead_files		_audvt->playlist_remove_dead_files
+
+#define aud_playlist_fileinfo_current		_audvt->playlist_fileinfo_current
+#define aud_playlist_fileinfo			_audvt->playlist_fileinfo
+
+#define aud_playlist_delete_index		_audvt->playlist_delete_index
+#define aud_playlist_delete_filenames		_audvt->playlist_delete_filenames
+
+#define aud_playlist_get_entry_to_play		_audvt->playlist_get_entry_to_play
+
+#define aud_playlist_get_filename		_audvt->playlist_get_filename
+#define aud_playlist_get_songtitle		_audvt->playlist_get_songtitle
+#define aud_playlist_get_tuple			_audvt->playlist_get_tuple
+#define aud_playlist_get_songtime		_audvt->playlist_get_songtime
+
+#define aud_playlist_get_selected		_audvt->playlist_get_selected
+#define aud_playlist_get_num_selected		_audvt->playlist_get_num_selected
+
+#define aud_playlist_get_total_time		_audvt->playlist_get_total_time
+
+#define aud_playlist_select_search		_audvt->playlist_select_search
+#define aud_playlist_select_all			_audvt->playlist_select_all
+#define aud_playlist_select_range		_audvt->playlist_select_range
+#define aud_playlist_select_invert_all		_audvt->playlist_select_invert_all
+#define aud_playlist_select_invert		_audvt->playlist_select_invert
+
+#define aud_playlist_read_info_selection	_audvt->playlist_read_info_selection
+#define aud_playlist_read_info			_audvt->playlist_read_info
+
+#define aud_playlist_set_shuffle		_audvt->playlist_set_shuffle
+
+#define aud_playlist_clear_selected		_audvt->playlist_clear_selected
+
+#define aud_get_playlist_nth			_audvt->get_playlist_nth
+
+#define aud_playlist_set_current_name		_audvt->playlist_set_current_name
+#define aud_playlist_get_current_name		_audvt->playlist_get_current_name
+
+#define aud_playlist_filename_set		_audvt->playlist_filename_set
+#define aud_playlist_filename_get		_audvt->playlist_filename_get
+
+#define aud_playlist_new			_audvt->playlist_new
+#define aud_playlist_free			_audvt->playlist_free
+#define aud_playlist_new_from_selected		_audvt->playlist_new_from_selected
+
+#define aud_is_playlist_name			_audvt->is_playlist_name
+
+#define aud_playlist_load_ins_file		_audvt->playlist_load_ins_file
+#define aud_playlist_load_ins_file_tuple	_audvt->playlist_load_ins_file_tuple
+
+#define aud_playlist_get_active			_audvt->playlist_get_active
+#define aud_playlist_playlists_equal		_audvt->playlist_playlists_equal
+
+#define aud_ip_state				_audvt->ip_state
+#define aud_cfg					_audvt->_cfg
+
+#define aud_hook_associate			_audvt->hook_associate
+#define aud_hook_dissociate			_audvt->hook_dissociate
+#define aud_hook_register			_audvt->hook_register
+#define aud_hook_call				_audvt->hook_call
+
+#define aud_open_ini_file			_audvt->open_ini_file
+#define aud_close_ini_file			_audvt->close_ini_file
+#define aud_read_ini_string			_audvt->read_ini_string
+#define aud_read_ini_array			_audvt->read_ini_array
+
+#define aud_convert_buffers_new			_audvt->xmms_convert_buffers_new
+#define aud_convert_buffers_free		_audvt->xmms_convert_buffers_free
+#define aud_convert_buffers_destroy		_audvt->xmms_convert_buffers_destroy
+#define aud_convert_get_func			_audvt->xmms_convert_get_func
+#define aud_convert_get_channel_func		_audvt->xmms_convert_get_channel_func
+#define aud_convert_get_frequency_func		_audvt->xmms_convert_get_frequency_func
+
+#define audacious_menu_plugin_item_add		_audvt->menu_plugin_item_add
+#define audacious_menu_plugin_item_remove	_audvt->menu_plugin_item_remove
+#define aud_menu_plugin_item_add		_audvt->menu_plugin_item_add
+#define aud_menu_plugin_item_remove		_audvt->menu_plugin_item_remove
+
+#define audacious_drct_quit			_audvt->drct_quit
+#define audacious_drct_eject			_audvt->drct_eject
+#define audacious_drct_jtf_show			_audvt->drct_jtf_show
+#define audacious_drct_main_win_is_visible	_audvt->drct_main_win_is_visible
+#define audacious_drct_main_win_toggle		_audvt->drct_main_win_toggle
+#define audacious_drct_eq_win_is_visible	_audvt->drct_eq_win_is_visible
+#define audacious_drct_eq_win_toggle		_audvt->drct_eq_win_toggle
+#define audacious_drct_pl_win_is_visible	_audvt->drct_pl_win_is_visible
+#define audacious_drct_pl_win_toggle		_audvt->drct_pl_win_toggle
+#define audacious_drct_set_skin			_audvt->drct_set_skin
+#define audacious_drct_activate			_audvt->drct_activate
+
+#define audacious_drct_play			_audvt->drct_play
+#define audacious_drct_pause			_audvt->drct_pause
+#define audacious_drct_stop			_audvt->drct_stop
+#define audacious_drct_get_playing		_audvt->drct_get_playing
+#define audacious_drct_get_paused		_audvt->drct_get_paused
+#define audacious_drct_get_stopped		_audvt->drct_get_stopped
+#define audacious_drct_get_info			_audvt->drct_get_info
+#define audacious_drct_get_time			_audvt->drct_get_time
+#define audacious_drct_seek			_audvt->drct_seek
+#define audacious_drct_get_volume		_audvt->drct_get_volume
+#define audacious_drct_set_volume		_audvt->drct_set_volume
+#define audacious_drct_get_volume_main		_audvt->drct_get_volume_main
+#define audacious_drct_set_volume_main		_audvt->drct_set_volume_main
+#define audacious_drct_get_volume_balance	_audvt->drct_get_volume_balance
+#define audacious_drct_set_volume_balance	_audvt->drct_set_volume_balance
+
+#define audacious_drct_pl_next			_audvt->drct_pl_next
+#define audacious_drct_pl_prev			_audvt->drct_pl_prev
+#define audacious_drct_pl_repeat_is_enabled	_audvt->drct_pl_repeat_is_enabled
+#define audacious_drct_pl_repeat_toggle		_audvt->drct_pl_repeat_toggle
+#define audacious_drct_pl_repeat_is_shuffled	_audvt->drct_pl_repeat_is_shuffled
+#define audacious_drct_pl_shuffle_toggle	_audvt->drct_pl_shuffle_toggle
+#define audacious_drct_pl_get_title		_audvt->drct_pl_get_title
+#define audacious_drct_pl_get_time		_audvt->drct_pl_get_time
+#define audacious_drct_pl_get_pos		_audvt->drct_pl_get_pos
+#define audacious_drct_pl_get_file		_audvt->drct_pl_get_file
+#define audacious_drct_pl_add			_audvt->drct_pl_add
+#define audacious_drct_pl_clear			_audvt->drct_pl_clear
+#define audacious_drct_pl_get_length		_audvt->drct_pl_get_length
+#define audacious_drct_pl_delete		_audvt->drct_pl_delete
+#define audacious_drct_pl_set_pos		_audvt->drct_pl_set_pos
+#define audacious_drct_pl_ins_url_string	_audvt->drct_pl_ins_url_string
+#define audacious_drct_pl_add_url_string	_audvt->drct_pl_add_url_string
+#define audacious_drct_pl_enqueue_to_temp	_audvt->drct_pl_enqueue_to_temp
+
+#define audacious_drct_pq_get_length		_audvt->drct_pq_get_length
+#define audacious_drct_pq_add			_audvt->drct_pq_add
+#define audacious_drct_pq_remove		_audvt->drct_pq_remove
+#define audacious_drct_pq_clear			_audvt->drct_pq_clear
+#define audacious_drct_pq_is_queued		_audvt->drct_pq_is_queued
+#define audacious_drct_pq_get_position		_audvt->drct_pq_get_position
+#define audacious_drct_pq_get_queue_position	_audvt->drct_pq_get_queue_position
+
+#define aud_formatter_new			_audvt->formatter_new
+#define aud_formatter_destroy			_audvt->formatter_destroy
+#define aud_formatter_associate			_audvt->formatter_associate
+#define aud_formatter_dissociate		_audvt->formatter_dissociate
+#define aud_formatter_format			_audvt->formatter_format
+
+#define aud_prefswin_page_new			_audvt->prefswin_page_new
+#define aud_prefswin_page_destroy		_audvt->prefswin_page_destroy
+
+#define audacious_fileinfopopup_create			_audvt->fileinfopopup_create
+#define audacious_fileinfopopup_destroy			_audvt->fileinfopopup_destroy
+#define audacious_fileinfopopup_show_from_tuple		_audvt->fileinfopopup_show_from_tuple
+#define audacious_fileinfopopup_show_from_title		_audvt->fileinfopopup_show_from_title
+#define audacious_fileinfopopup_hide			_audvt->fileinfopopup_hide
+
+#define audacious_get_localdir			_audvt->util_get_localdir
+
+#define aud_input_check_file			_audvt->input_check_file
+
+#define aud_playback_new			_audvt->playback_new
+#define aud_playback_run			_audvt->playback_run
+#define aud_playback_free(x)			g_slice_free(InputPlayback, (x))
+
+#define aud_flow_execute			_audvt->flow_execute
+#define aud_flow_new				_audvt->flow_new
+#define aud_flow_link_element			_audvt->flow_link_element
+#define aud_flow_unlink_element			_audvt->flow_unlink_element
+#define aud_effect_flow				_audvt->effect_flow
+#define aud_iir_flow				_audvt->iir_flow
+#define aud_volumecontrol_flow			_audvt->volumecontrol_flow
+#define aud_flow_destroy(flow)			mowgli_object_unref(flow)
+
+#define audacious_menu_main_show		_audvt->util_menu_main_show
+
+#define aud_get_dock_window_list                _audvt->get_dock_window_list
+#define aud_dock_add_window                     _audvt->dock_add_window
+#define aud_dock_remove_window                  _audvt->dock_remove_window
+#define aud_dock_move_press                     _audvt->dock_move_press
+#define aud_dock_move_motion                    _audvt->dock_move_motion
+#define aud_dock_move_release                   _audvt->dock_move_release
+#define aud_dock_is_moving                      _audvt->dock_is_moving
+
+#include "audacious/auddrct.h"
+
 /* for multi-file plugins :( */
 extern struct _AudaciousFuncTableV1 *_audvt;
 
--- a/src/audacious/pluginenum.c	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/pluginenum.c	Fri Oct 19 12:14:04 2007 +0300
@@ -37,6 +37,7 @@
 #include <string.h>
 
 #include "main.h"
+#include "dock.h"
 #include "ui_main.h"
 #include "playback.h"
 #include "playlist.h"
@@ -55,6 +56,13 @@
 #include "vfs_buffer.h"
 #include "vfs_buffered_file.h"
 
+#include "ui_preferences.h"
+#include "ui_fileinfopopup.h"
+
+#include "effect.h"
+#include "iir.h"
+#include "volumecontrol.h"
+
 const gchar *plugin_dir_list[] = {
     PLUGINSUBS,
     NULL
@@ -154,6 +162,226 @@
     .playlist_container_read = playlist_container_read,
     .playlist_container_write = playlist_container_write,
     .playlist_container_find = playlist_container_find,
+
+    .playlist_entry_new = playlist_entry_new,
+    .playlist_entry_free = playlist_entry_free,
+
+    .playlist_add_playlist = playlist_add_playlist,
+    .playlist_remove_playlist = playlist_remove_playlist,
+    .playlist_select_playlist = playlist_select_playlist,
+    .playlist_select_next = playlist_select_next,
+    .playlist_select_prev = playlist_select_prev,
+    .playlist_get_playlists = playlist_get_playlists,
+
+    .playlist_clear_only = playlist_clear_only,
+    .playlist_clear = playlist_clear,
+    .playlist_delete = playlist_delete,
+
+    .playlist_add = playlist_add,
+    .playlist_ins = playlist_ins,
+    .playlist_add_dir = playlist_add_dir,
+    .playlist_ins_dir = playlist_ins_dir,
+    .playlist_add_url = playlist_add_url,
+    .playlist_ins_url = playlist_ins_url,
+
+    .playlist_check_pos_current = playlist_check_pos_current,
+    .playlist_next = playlist_next,
+    .playlist_prev = playlist_prev,
+
+    .playlist_queue = playlist_queue,
+    .playlist_queue_position = playlist_queue_position,
+    .playlist_queue_remove = playlist_queue_remove,
+    .playlist_queue_get_length = playlist_queue_get_length,
+    .playlist_is_position_queued = playlist_is_position_queued,
+    .playlist_clear_queue = playlist_clear_queue,
+    .playlist_get_queue_position = playlist_get_queue_position,
+    .playlist_get_queue_position_number = playlist_get_queue_position_number,
+    .playlist_get_queue_qposition_number = playlist_get_queue_qposition_number,
+
+    .playlist_eof_reached = playlist_eof_reached,
+    .playlist_set_position = playlist_set_position,
+
+    .playlist_get_length = playlist_get_length,
+    .playlist_get_position = playlist_get_position,
+    .playlist_get_position_nolock = playlist_get_position_nolock,
+    .playlist_get_info_text = playlist_get_info_text,
+    .playlist_get_current_length = playlist_get_current_length,
+
+    .playlist_save = playlist_save,
+    .playlist_load = playlist_load,
+
+    .playlist_sort = playlist_sort,
+    .playlist_sort_selected = playlist_sort_selected,
+
+    .playlist_reverse = playlist_reverse,
+    .playlist_random = playlist_random,
+    .playlist_remove_duplicates = playlist_remove_duplicates,
+    .playlist_remove_dead_files = playlist_remove_dead_files,
+
+    .playlist_fileinfo_current = playlist_fileinfo_current,
+    .playlist_fileinfo = playlist_fileinfo,
+
+    .playlist_delete_index = playlist_delete_index,
+    .playlist_delete_filenames = playlist_delete_filenames,
+
+    .playlist_get_entry_to_play = playlist_get_entry_to_play,
+
+    .playlist_get_filename = playlist_get_filename,
+    .playlist_get_songtitle = playlist_get_songtitle,
+    .playlist_get_tuple = playlist_get_tuple,
+    .playlist_get_songtime = playlist_get_songtime,
+
+    .playlist_get_selected = playlist_get_selected,
+    .playlist_get_num_selected = playlist_get_num_selected,
+
+    .playlist_get_total_time = playlist_get_total_time,
+    .playlist_select_search = playlist_select_search,
+    .playlist_select_all = playlist_select_all,
+    .playlist_select_range = playlist_select_range,
+    .playlist_select_invert_all = playlist_select_invert_all,
+    .playlist_select_invert = playlist_select_invert,
+
+    .playlist_read_info_selection = playlist_read_info_selection,
+    .playlist_read_info = playlist_read_info,
+
+    .playlist_set_shuffle = playlist_set_shuffle,
+
+    .playlist_clear_selected = playlist_clear_selected,
+
+    .get_playlist_nth = get_playlist_nth,
+
+    .playlist_set_current_name = playlist_set_current_name,
+    .playlist_get_current_name = playlist_get_current_name,
+
+    .playlist_filename_set = playlist_filename_set,
+    .playlist_filename_get = playlist_filename_get,
+
+    .playlist_new = playlist_new,
+    .playlist_free = playlist_free,
+    .playlist_new_from_selected = playlist_new_from_selected,
+
+    .is_playlist_name = is_playlist_name,
+
+    .playlist_load_ins_file = playlist_load_ins_file,
+    .playlist_load_ins_file_tuple = playlist_load_ins_file_tuple,
+
+    .playlist_get_active = playlist_get_active,
+    .playlist_playlists_equal = playlist_playlists_equal,
+
+    .ip_state = &ip_data,
+    ._cfg = &cfg,
+
+    .hook_associate = hook_associate,
+    .hook_dissociate = hook_dissociate,
+    .hook_register = hook_register,
+    .hook_call = hook_call,
+
+    .open_ini_file = open_ini_file,
+    .close_ini_file = close_ini_file,
+    .read_ini_string = read_ini_string,
+    .read_ini_array = read_ini_array,
+
+    .xmms_convert_buffers_new = xmms_convert_buffers_new,
+    .xmms_convert_buffers_free = xmms_convert_buffers_free,
+    .xmms_convert_buffers_destroy = xmms_convert_buffers_destroy,
+    .xmms_convert_get_func = xmms_convert_get_func,
+    .xmms_convert_get_channel_func = xmms_convert_get_channel_func,
+    .xmms_convert_get_frequency_func = xmms_convert_get_frequency_func,
+
+    .menu_plugin_item_add = menu_plugin_item_add,
+    .menu_plugin_item_remove = menu_plugin_item_remove,
+
+    .drct_quit = drct_quit,
+    .drct_eject = drct_eject,
+    .drct_jtf_show = drct_jtf_show,
+    .drct_main_win_is_visible = drct_main_win_is_visible,
+    .drct_main_win_toggle = drct_main_win_toggle,
+    .drct_eq_win_is_visible = drct_eq_win_is_visible,
+    .drct_eq_win_toggle = drct_eq_win_toggle,
+    .drct_pl_win_is_visible = drct_pl_win_is_visible,
+    .drct_pl_win_toggle = drct_pl_win_toggle,
+    .drct_set_skin = drct_set_skin,
+    .drct_activate = drct_activate,
+
+    .drct_play = drct_play,
+    .drct_pause = drct_pause,
+    .drct_stop = drct_stop,
+    .drct_get_playing = drct_get_playing,
+    .drct_get_paused = drct_get_paused,
+    .drct_get_stopped = drct_get_stopped,
+    .drct_get_info = drct_get_info,
+    .drct_get_time = drct_get_time,
+    .drct_seek = drct_seek,
+    .drct_get_volume = drct_get_volume,
+    .drct_set_volume = drct_set_volume,
+    .drct_get_volume_main = drct_get_volume_main,
+    .drct_set_volume_main = drct_set_volume_main,
+    .drct_get_volume_balance = drct_get_volume_balance,
+    .drct_set_volume_balance = drct_set_volume_balance,
+
+    .drct_pl_next = drct_pl_next,
+    .drct_pl_prev = drct_pl_prev,
+    .drct_pl_repeat_is_enabled = drct_pl_repeat_is_enabled,
+    .drct_pl_repeat_toggle = drct_pl_repeat_toggle,
+    .drct_pl_repeat_is_shuffled = drct_pl_repeat_is_shuffled,
+    .drct_pl_shuffle_toggle = drct_pl_shuffle_toggle,
+    .drct_pl_get_title = drct_pl_get_title,
+    .drct_pl_get_time = drct_pl_get_time,
+    .drct_pl_get_pos = drct_pl_get_pos,
+    .drct_pl_get_file = drct_pl_get_file,
+    .drct_pl_add = drct_pl_add,
+    .drct_pl_clear = drct_pl_clear,
+    .drct_pl_get_length = drct_pl_get_length,
+    .drct_pl_delete = drct_pl_delete,
+    .drct_pl_set_pos = drct_pl_set_pos,
+    .drct_pl_ins_url_string = drct_pl_ins_url_string,
+    .drct_pl_add_url_string = drct_pl_add_url_string,
+    .drct_pl_enqueue_to_temp = drct_pl_enqueue_to_temp,
+
+    .drct_pq_get_length = drct_pq_get_length,
+    .drct_pq_add = drct_pq_add,
+    .drct_pq_remove = drct_pq_remove,
+    .drct_pq_clear = drct_pq_clear,
+    .drct_pq_is_queued = drct_pq_is_queued,
+    .drct_pq_get_position = drct_pq_get_position,
+    .drct_pq_get_queue_position = drct_pq_get_queue_position,
+
+    .formatter_new = formatter_new,
+    .formatter_destroy = formatter_destroy,
+    .formatter_associate = formatter_associate,
+    .formatter_dissociate = formatter_dissociate,
+    .formatter_format = formatter_format,
+
+    .prefswin_page_new = prefswin_page_new,
+    .prefswin_page_destroy = prefswin_page_destroy,
+
+    .fileinfopopup_create = fileinfopopup_create,
+    .fileinfopopup_destroy = fileinfopopup_destroy,
+    .fileinfopopup_show_from_title = fileinfopopup_show_from_title,
+    .fileinfopopup_show_from_tuple = fileinfopopup_show_from_tuple,
+    .fileinfopopup_hide = fileinfopopup_hide,
+
+    .util_get_localdir = util_get_localdir,
+
+    .input_check_file = input_check_file,
+
+    .flow_new = flow_new,
+    .flow_execute = flow_execute,
+    .flow_link_element = flow_link_element,
+    .flow_unlink_element = flow_unlink_element,
+    .effect_flow = effect_flow,
+    .iir_flow = iir_flow,
+    .volumecontrol_flow = volumecontrol_flow,
+
+    .util_menu_main_show = util_menu_main_show,
+    
+    .get_dock_window_list = get_dock_window_list,
+    .dock_add_window = dock_add_window,
+    .dock_remove_window = dock_remove_window,
+    .dock_move_press = dock_move_press,
+    .dock_move_motion = dock_move_motion,
+    .dock_move_release = dock_move_release,
+    .dock_is_moving = dock_is_moving,
 };
 
 /*****************************************************************/
--- a/src/audacious/skin.c	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/skin.c	Fri Oct 19 12:14:04 2007 +0300
@@ -127,6 +127,8 @@
     {200, 200, 200}
 };
 
+static gchar *original_gtk_theme = NULL;
+
 static GdkBitmap *skin_create_transparent_mask(const gchar *,
                                                const gchar *,
                                                const gchar *,
@@ -1461,10 +1463,37 @@
     return TRUE;
 }
 
+static void
+skin_set_gtk_theme(GtkSettings * settings, Skin * skin, gboolean tmp_clean)
+{
+    if (original_gtk_theme == NULL)
+         g_object_get(settings, "gtk-theme-name", &original_gtk_theme, NULL);
+
+    gchar *tmp = g_strdup_printf("%s/.themes/aud-%s", g_get_home_dir(),
+                                 basename(skin->path));
+
+    gchar *troot = g_strdup_printf("%s/.themes", g_get_home_dir());
+    g_mkdir_with_parents(troot, 0755);
+    g_free(troot);
+
+    symlink(skin->path, tmp);
+    gtk_settings_set_string_property(settings, "gtk-theme-name",
+                                     basename(tmp), "audacious");
+
+#if 0
+    if (tmp_clean)
+    {
+        unlink(tmp);
+        g_free(tmp);
+    }
+#endif
+}
+
 static gboolean
 skin_load_nolock(Skin * skin, const gchar * path, gboolean force)
 {
-    gchar *cpath;
+    GtkSettings *settings;
+    gchar *cpath, *gtkrcpath;
 
     g_return_val_if_fail(skin != NULL, FALSE);
     g_return_val_if_fail(path != NULL, FALSE);
@@ -1474,12 +1503,24 @@
         return FALSE;
    
     if (!force && skin->path && !strcmp(skin->path, path))
-	return FALSE;
+    return FALSE;
       
     skin_current_num++;
 
     skin->path = g_strdup(path);
 
+
+    settings = gtk_settings_get_default();
+    
+    if (original_gtk_theme != NULL)
+    {
+        gtk_settings_set_string_property(settings, "gtk-theme-name",
+                                         original_gtk_theme, "audacious");
+        g_free(original_gtk_theme);
+        original_gtk_theme = NULL;
+    }
+
+
     if (!file_is_archive(path)) {
         /* Parse the hints for this skin. */
         skin_parse_hints(skin, NULL);
@@ -1489,6 +1530,17 @@
 
         skin_load_cursor(skin, path);
 
+#ifndef _WIN32
+        gtkrcpath = find_path_recursively(skin->path, "gtkrc");
+
+        /* the way GTK does things can be very broken. --nenolod */
+        if (gtkrcpath != NULL) {
+            skin_set_gtk_theme(settings, skin, FALSE);
+        }
+
+        g_free(gtkrcpath);
+#endif
+
         return TRUE;
     }
 
@@ -1509,6 +1561,17 @@
 
     skin_load_cursor(skin, cpath);
 
+#ifndef _WIN32
+    gtkrcpath = find_path_recursively(skin->path, "gtkrc");
+
+    /* the way GTK does things can be very broken. --nenolod */
+    if (gtkrcpath != NULL) {
+        skin_set_gtk_theme(settings, skin, TRUE);
+    }
+
+    g_free(gtkrcpath);
+#endif
+
     del_directory(cpath);
     g_free(cpath);
 
--- a/src/audacious/tuple_compiler.c	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/tuple_compiler.c	Fri Oct 19 12:14:04 2007 +0300
@@ -33,6 +33,10 @@
 #include <stdarg.h>
 #include "tuple_compiler.h"
 
+#define MAX_STR		(256)
+#define MIN_ALLOC_NODES (8)
+#define MIN_ALLOC_BUF	(64)
+
 
 void tuple_error(const char *fmt, ...)
 {
@@ -583,9 +587,10 @@
       }
       break;
     default:
-      break;
+      tmps = NULL;
+      tmpi = 0;
   }
-
+  
   return type;
 }
 
@@ -608,6 +613,7 @@
   
   while (curr) {
     const gchar *str = NULL;
+
     switch (curr->opcode) {
       case OP_RAW:
         str = curr->text;
@@ -654,7 +660,7 @@
       case OP_GT: case OP_GTEQ:
         var0 = ctx->variables[curr->var[0]];
         var1 = ctx->variables[curr->var[1]];
-
+        
         type0 = tf_get_var(&tmps0, &tmpi0, var0, tuple);
         type1 = tf_get_var(&tmps1, &tmpi1, var1, tuple);
         
@@ -751,6 +757,8 @@
   assert(ctx != NULL);
   assert(tuple != NULL);
   
+  if (!expr) return res;
+  
   tuple_formatter_eval_do(ctx, expr, tuple, &res, &resmax, &reslen);
   
   return res;
--- a/src/audacious/tuple_compiler.h	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/tuple_compiler.h	Fri Oct 19 12:14:04 2007 +0300
@@ -25,10 +25,7 @@
 #include "tuple.h"
 
 
-#define MAX_VAR		(2)
-#define MAX_STR		(256)
-#define MIN_ALLOC_NODES (8)
-#define MIN_ALLOC_BUF	(128)
+#define TUP_MAX_VARS (4)
 
 
 enum {
@@ -79,8 +76,8 @@
 
 typedef struct _TupleEvalNode {
     gint opcode;		/* operator, see OP_ enums */
-    gint var[MAX_VAR];		/* tuple / global variable references (perhaps hashes, or just indexes to a list?) */
-    gboolean global[MAX_VAR];
+    gint var[TUP_MAX_VARS];	/* tuple / global variable references (perhaps hashes, or just indexes to a list?) */
+    gboolean global[TUP_MAX_VARS];
     gchar *text;		/* raw text, if any (OP_RAW) */
     gint function, expression;	/* for OP_FUNCTION and OP_EXPRESSION */
     struct _TupleEvalNode *children, *next, *prev; /* children of this struct, and pointer to next node. */
--- a/src/audacious/tuple_formatter.c	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/tuple_formatter.c	Fri Oct 19 12:14:04 2007 +0300
@@ -25,7 +25,23 @@
 #include "tuple.h"
 #include "tuple_formatter.h"
 
-//#define _DEBUG
+/*
+ * TUPLE_USE_COMPILER:
+ *  Undefine this to disable usage of the Tuplez compiler implementation.
+ *  This may be useful for prototyping new features of the language.
+ */
+#define TUPLE_USE_COMPILER
+
+/*
+ * TUPLE_COMPILER_DEBUG:
+ *  Define this to debug the execution process of the Tuplez compiled
+ *  bytecode. This may be useful if bugs creep in.
+ */
+#undef TUPLE_COMPILER_DEBUG
+
+#ifdef TUPLE_USE_COMPILER
+# include "tuple_compiler.h"
+#endif
 
 #ifdef _DEBUG
 # define _TRACE(fmt, ...) g_print("[tuple-fmt] %s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__);
@@ -497,12 +513,22 @@
     return g_strdup(PACKAGE_NAME " " PACKAGE_VERSION);
 }
 
-/* processes a string containing instructions. does initialization phases
-   if not already done */
+/*
+ * Compile a tuplez string and cache the result.
+ * This caches the result for the last string, so that
+ * successive calls are sped up.
+ *
+ * TODO/1.5: Implement a more efficient use of the compiler.
+ */
 gchar *
 tuple_formatter_process_string(Tuple *tuple, const gchar *string)
 {
     static gboolean initialized = FALSE;
+    static gchar *last_string = NULL;
+#ifdef TUPLE_USE_COMPILER
+    static TupleEvalContext *last_ctx = NULL;
+    static TupleEvalNode *last_ev = NULL;
+#endif
 
     if (initialized == FALSE)
     {
@@ -515,7 +541,36 @@
         initialized = TRUE;
     }
 
+#ifdef TUPLE_USE_COMPILER
+    if (last_string == NULL ||
+        (last_string != NULL && strcmp(last_string, string)))
+    {
+        g_free(last_string);
+
+        if (last_ctx != NULL)
+        {
+            tuple_evalctx_free(last_ctx);
+            tuple_evalnode_free(last_ev);
+        }
+
+        last_ctx = tuple_evalctx_new();
+        last_string = g_strdup(string);
+        last_ev = tuple_formatter_compile(last_ctx, last_string);
+    }
+
+#ifdef TUPLE_COMPILER_DEBUG
+    {
+        gint level = 0;
+
+        tuple_formatter_print(stderr, &level, last_ctx, last_ev);
+    }
+#endif
+
+    tuple_evalctx_reset(last_ctx);
+    return tuple_formatter_eval(last_ctx, last_ev, tuple);
+#else
     return tuple_formatter_process_construct(tuple, string);
+#endif
 }
 
 /* wrapper function for making title string. it falls back to filename
@@ -536,3 +591,114 @@
 
     return rv;
 }
+
+#ifdef TUPLE_COMPILER_DEBUG
+static void print_vars(FILE *f, TupleEvalContext *ctx, TupleEvalNode *node, gint start, gint end)
+{
+  gint i;
+  g_return_if_fail(node != NULL);
+  g_return_if_fail(ctx != NULL);
+  g_return_if_fail(start >= 0);
+  g_return_if_fail(start <= end);
+  g_return_if_fail(end < MAX_VAR);
+
+  for (i = start; i <= end; i++) {
+    TupleEvalVar *v = NULL;
+    gchar *s = NULL;
+    gint n = node->var[i];
+
+    if (n >= 0) {
+      v = ctx->variables[n];
+      if (v) {
+        s = v->name;
+
+        if (v->type == VAR_CONST)
+          fprintf(f, "(const)");
+        else if (v->type == VAR_DEF)
+          fprintf(f, "(def)");
+      }
+    }
+
+    fprintf(f, "var[%d]=(%d),\"%s\" ", i, n, s);
+  }
+}
+
+gint tuple_formatter_print(FILE *f, gint *level, TupleEvalContext *ctx, TupleEvalNode *expr)
+{
+  TupleEvalNode *curr = expr;
+
+  if (!expr) return -1;
+
+  (*level)++;
+
+  /* Evaluate tuple in given TupleEval expression in given
+   * context and return resulting string.
+   */
+  while (curr) {
+    gint i;
+    for (i = 0; i < *level; i++)
+      fprintf(f, "  ");
+
+    switch (curr->opcode) {
+      case OP_RAW:
+        fprintf(f, "OP_RAW text=\"%s\"\n", curr->text);
+        break;
+
+      case OP_FIELD:
+        fprintf(f, "OP_FIELD ");
+        print_vars(f, ctx, curr, 0, 0);
+        fprintf(f, "\n");
+        break;
+
+      case OP_EXISTS:
+        fprintf(f, "OP_EXISTS ");
+        print_vars(f, ctx, curr, 0, 0);
+        fprintf(f, "\n");
+        tuple_formatter_print(f, level, ctx, curr->children);
+        break;
+
+      case OP_DEF_STRING:
+        fprintf(f, "OP_DEF_STRING ");
+        fprintf(f, "\n");
+        break;
+
+      case OP_DEF_INT:
+        fprintf(f, "OP_DEF_INT ");
+        fprintf(f, "\n");
+        break;
+
+      case OP_EQUALS:
+        fprintf(f, "OP_EQUALS ");
+        print_vars(f, ctx, curr, 0, 1);
+        fprintf(f, "\n");
+        tuple_formatter_print(f, level, ctx, curr->children);
+        break;
+
+      case OP_NOT_EQUALS:
+        fprintf(f, "OP_NOT_EQUALS ");
+        print_vars(f, ctx, curr, 0, 1);
+        fprintf(f, "\n");
+        tuple_formatter_print(f, level, ctx, curr->children);
+        break;
+
+      case OP_IS_EMPTY:
+        fprintf(f, "OP_IS_EMPTY ");
+        print_vars(f, ctx, curr, 0, 0);
+        fprintf(f, "\n");
+        tuple_formatter_print(f, level, ctx, curr->children);
+        break;
+
+      default:
+        fprintf(f, "Unimplemented opcode %d!\n", curr->opcode);
+        break;
+    }
+
+    curr = curr->next;
+  }
+
+  (*level)--;
+
+  return 0;
+}
+
+#endif
--- a/src/audacious/ui_fileinfopopup.c	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/ui_fileinfopopup.c	Fri Oct 19 12:14:04 2007 +0300
@@ -87,7 +87,7 @@
 }
 
 static gboolean
-audacious_fileinfopopup_progress_cb(gpointer filepopup_win)
+fileinfopopup_progress_cb(gpointer filepopup_win)
 {
     GtkWidget *progressbar =
         g_object_get_data(G_OBJECT(filepopup_win), "progressbar");
@@ -138,7 +138,7 @@
 }
 
 static gboolean
-audacious_fileinfopopup_progress_check_active(GtkWidget *filepopup_win)
+fileinfopopup_progress_check_active(GtkWidget *filepopup_win)
 {
     if (GPOINTER_TO_INT(g_object_get_data(G_OBJECT(filepopup_win),"progress_sid")) == 0)
         return FALSE;
@@ -146,23 +146,23 @@
 }
 
 static void
-audacious_fileinfopopup_progress_init(GtkWidget *filepopup_win)
+fileinfopopup_progress_init(GtkWidget *filepopup_win)
 {
     g_object_set_data( G_OBJECT(filepopup_win) , "progress_sid" , GINT_TO_POINTER(0) );
 }
 
 static void
-audacious_fileinfopopup_progress_start(GtkWidget *filepopup_win)
+fileinfopopup_progress_start(GtkWidget *filepopup_win)
 {
     gint sid =
-        g_timeout_add(500, (GSourceFunc)audacious_fileinfopopup_progress_cb,
+        g_timeout_add(500, (GSourceFunc)fileinfopopup_progress_cb,
                       filepopup_win);
     g_object_set_data(G_OBJECT(filepopup_win), "progress_sid",
                       GINT_TO_POINTER(sid));
 }
 
 static void
-audacious_fileinfopopup_progress_stop(GtkWidget *filepopup_win)
+fileinfopopup_progress_stop(GtkWidget *filepopup_win)
 {
     gint sid = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(filepopup_win),
                                                  "progress_sid"));
@@ -174,7 +174,7 @@
 }
 
 static void
-audacious_fileinfopopup_add_category(GtkWidget *filepopup_win,
+fileinfopopup_add_category(GtkWidget *filepopup_win,
                                      GtkWidget *filepopup_data_table,
                                      const gchar *category,
                                      const gchar *header_data,
@@ -211,7 +211,7 @@
 
 
 GtkWidget *
-audacious_fileinfopopup_create(void)
+fileinfopopup_create(void)
 {
     GtkWidget *filepopup_win;
     GtkWidget *filepopup_hbox;
@@ -248,26 +248,26 @@
     gtk_box_pack_start(GTK_BOX(filepopup_hbox), filepopup_data_table,
                        TRUE, TRUE, 0);
 
-    audacious_fileinfopopup_add_category(filepopup_win, filepopup_data_table,
+    fileinfopopup_add_category(filepopup_win, filepopup_data_table,
                                          _("Title"),
                                          "header_title", "label_title", 0);
-    audacious_fileinfopopup_add_category(filepopup_win, filepopup_data_table,
+    fileinfopopup_add_category(filepopup_win, filepopup_data_table,
                                          _("Artist"),
                                          "header_artist", "label_artist", 1);
-    audacious_fileinfopopup_add_category(filepopup_win, filepopup_data_table,
+    fileinfopopup_add_category(filepopup_win, filepopup_data_table,
                                          _("Album"),
                                          "header_album", "label_album", 2);
-    audacious_fileinfopopup_add_category(filepopup_win, filepopup_data_table,
+    fileinfopopup_add_category(filepopup_win, filepopup_data_table,
                                          _("Genre"),
                                          "header_genre", "label_genre", 3);
-    audacious_fileinfopopup_add_category(filepopup_win, filepopup_data_table,
+    fileinfopopup_add_category(filepopup_win, filepopup_data_table,
                                          _("Year"),
                                          "header_year", "label_year", 4);
-    audacious_fileinfopopup_add_category(filepopup_win, filepopup_data_table,
+    fileinfopopup_add_category(filepopup_win, filepopup_data_table,
                                          _("Track Number"),
                                          "header_tracknum", "label_tracknum",
                                          5);
-    audacious_fileinfopopup_add_category(filepopup_win, filepopup_data_table,
+    fileinfopopup_add_category(filepopup_win, filepopup_data_table,
                                          _("Track Length"),
                                          "header_tracklen", "label_tracklen",
                                          6);
@@ -284,7 +284,7 @@
     g_object_set_data(G_OBJECT(filepopup_win), "file", NULL);
     g_object_set_data(G_OBJECT(filepopup_win), "progressbar",
                       filepopup_progress);
-    audacious_fileinfopopup_progress_init(filepopup_win);
+    fileinfopopup_progress_init(filepopup_win);
     
     /* this will realize all widgets contained in filepopup_hbox */
     gtk_widget_show_all(filepopup_hbox);
@@ -296,10 +296,10 @@
 }
 
 void
-audacious_fileinfopopup_destroy(GtkWidget *filepopup_win)
+fileinfopopup_destroy(GtkWidget *filepopup_win)
 {
     gchar *last_artwork;
-    audacious_fileinfopopup_progress_stop(filepopup_win);
+    fileinfopopup_progress_stop(filepopup_win);
 
     last_artwork =
         g_object_get_data(G_OBJECT(filepopup_win), "last_artwork");
@@ -310,7 +310,7 @@
 }
 
 static void
-audacious_fileinfopupup_update_data(GtkWidget *filepopup_win,
+fileinfopupup_update_data(GtkWidget *filepopup_win,
                                     const gchar *text,
                                     const gchar *label_data,
                                     const gchar *header_data)
@@ -329,7 +329,7 @@
 }
 
 void
-audacious_fileinfopopup_show_from_tuple(GtkWidget *filepopup_win,
+fileinfopopup_show_from_tuple(GtkWidget *filepopup_win,
                                         Tuple *tuple)
 {
     gchar *tmp = NULL;
@@ -378,17 +378,17 @@
         g_free(utf_filename);
     }
 
-    audacious_fileinfopupup_update_data(filepopup_win, tuple_get_string(tuple, FIELD_ARTIST, NULL),
+    fileinfopupup_update_data(filepopup_win, tuple_get_string(tuple, FIELD_ARTIST, NULL),
                                         "label_artist", "header_artist");
-    audacious_fileinfopupup_update_data(filepopup_win, tuple_get_string(tuple, FIELD_ALBUM, NULL),
+    fileinfopupup_update_data(filepopup_win, tuple_get_string(tuple, FIELD_ALBUM, NULL),
                                         "label_album", "header_album");
-    audacious_fileinfopupup_update_data(filepopup_win, tuple_get_string(tuple, FIELD_GENRE, NULL),
+    fileinfopupup_update_data(filepopup_win, tuple_get_string(tuple, FIELD_GENRE, NULL),
                                         "label_genre", "header_genre");
 
     length = tuple_get_int(tuple, FIELD_LENGTH, NULL);
     length_string = (length > 0) ?
         g_strdup_printf("%d:%02d", length / 60000, (length / 1000) % 60) : NULL;
-    audacious_fileinfopupup_update_data(filepopup_win, length_string,
+    fileinfopupup_update_data(filepopup_win, length_string,
                                         "label_tracklen", "header_tracklen");
     g_free(length_string);
 
@@ -398,12 +398,12 @@
       g_object_set_data( G_OBJECT(filepopup_win), "length" , GINT_TO_POINTER(-1) );
 
     year_string = (tuple_get_int(tuple, FIELD_YEAR, NULL) == 0) ? NULL : g_strdup_printf("%d", tuple_get_int(tuple, FIELD_YEAR, NULL));
-    audacious_fileinfopupup_update_data(filepopup_win, year_string,
+    fileinfopupup_update_data(filepopup_win, year_string,
                                         "label_year", "header_year");
     g_free(year_string);
 
     track_string = (tuple_get_int(tuple, FIELD_TRACK_NUMBER, NULL) == 0) ? NULL : g_strdup_printf("%d", tuple_get_int(tuple, FIELD_TRACK_NUMBER, NULL));
-    audacious_fileinfopupup_update_data(filepopup_win, track_string,
+    fileinfopupup_update_data(filepopup_win, track_string,
                                         "label_tracknum", "header_tracknum");
     g_free(track_string);
     
@@ -433,11 +433,11 @@
 
     /* start a timer that updates a progress bar if the tooltip
        is shown for the song that is being currently played */
-    if (audacious_fileinfopopup_progress_check_active(filepopup_win) == FALSE)
+    if (fileinfopopup_progress_check_active(filepopup_win) == FALSE)
     { 
-        audacious_fileinfopopup_progress_start(filepopup_win);
+        fileinfopopup_progress_start(filepopup_win);
         /* immediately run the callback once to update progressbar status */
-        audacious_fileinfopopup_progress_cb(filepopup_win);
+        fileinfopopup_progress_cb(filepopup_win);
     }
 
     gdk_window_get_pointer(gdk_get_default_root_window(), &x, &y, NULL);
@@ -450,21 +450,21 @@
 }
 
 void
-audacious_fileinfopopup_show_from_title(GtkWidget *filepopup_win, gchar *title)
+fileinfopopup_show_from_title(GtkWidget *filepopup_win, gchar *title)
 {
     Tuple * tuple = tuple_new();
     tuple_associate_string(tuple, FIELD_TITLE, NULL, title);
-    audacious_fileinfopopup_show_from_tuple(filepopup_win, tuple);
+    fileinfopopup_show_from_tuple(filepopup_win, tuple);
     mowgli_object_unref(tuple);
     return;
 }
 
 void
-audacious_fileinfopopup_hide(GtkWidget *filepopup_win, gpointer unused)
+fileinfopopup_hide(GtkWidget *filepopup_win, gpointer unused)
 {
     if (GTK_WIDGET_VISIBLE(filepopup_win))
     {
-        audacious_fileinfopopup_progress_stop(filepopup_win);
+        fileinfopopup_progress_stop(filepopup_win);
 
         gtk_widget_hide(filepopup_win);
 
--- a/src/audacious/ui_fileinfopopup.h	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/ui_fileinfopopup.h	Fri Oct 19 12:14:04 2007 +0300
@@ -25,12 +25,12 @@
 #include <gtk/gtk.h>
 
 /* create/destroy */
-GtkWidget* audacious_fileinfopopup_create(void);
-void audacious_fileinfopopup_destroy(GtkWidget* fileinfopopup_win);
+GtkWidget* fileinfopopup_create(void);
+void fileinfopopup_destroy(GtkWidget* fileinfopopup_win);
 
 /* show/hide */
-void audacious_fileinfopopup_show_from_tuple(GtkWidget *fileinfopopup_win, Tuple *tuple);
-void audacious_fileinfopopup_show_from_title(GtkWidget *fileinfopopup_win, gchar *title);
-void audacious_fileinfopopup_hide(GtkWidget *filepopup_win, gpointer unused);
+void fileinfopopup_show_from_tuple(GtkWidget *fileinfopopup_win, Tuple *tuple);
+void fileinfopopup_show_from_title(GtkWidget *fileinfopopup_win, gchar *title);
+void fileinfopopup_hide(GtkWidget *filepopup_win, gpointer unused);
 
 #endif
--- a/src/audacious/ui_main.c	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/ui_main.c	Fri Oct 19 12:14:04 2007 +0300
@@ -2640,7 +2640,7 @@
 
 
 void
-audacious_menu_main_show( gint x , gint y , guint button , guint time )
+util_menu_main_show( gint x , gint y , guint button , guint time )
 {
   /* convenience function that shows the main popup menu wherever requested */
   ui_manager_popup_menu_show( GTK_MENU(mainwin_general_menu),
--- a/src/audacious/ui_manager.c	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/ui_manager.c	Fri Oct 19 12:14:04 2007 +0300
@@ -810,7 +810,7 @@
 
 
 gint
-audacious_menu_plugin_item_add( gint menu_id , GtkWidget * item )
+menu_plugin_item_add( gint menu_id , GtkWidget * item )
 {
   if ( menu_created )
   {
@@ -840,7 +840,7 @@
 
 
 gint
-audacious_menu_plugin_item_remove( gint menu_id , GtkWidget * item )
+menu_plugin_item_remove( gint menu_id , GtkWidget * item )
 {
   if ( menu_created )
   {
--- a/src/audacious/ui_plugin_menu.h	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/ui_plugin_menu.h	Fri Oct 19 12:14:04 2007 +0300
@@ -35,8 +35,8 @@
 #define AUDACIOUS_MENU_PLAYLIST_SELECT  5
 #define AUDACIOUS_MENU_PLAYLIST_MISC    6
 
-gint audacious_menu_plugin_item_add( gint , GtkWidget * );
-gint audacious_menu_plugin_item_remove( gint , GtkWidget * );
+gint menu_plugin_item_add( gint , GtkWidget * );
+gint menu_plugin_item_remove( gint , GtkWidget * );
 
 
 #endif /* AUD_UIPLUGINMENU_H */
--- a/src/audacious/ui_skinned_playlist.c	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/ui_skinned_playlist.c	Fri Oct 19 12:14:04 2007 +0300
@@ -164,7 +164,7 @@
     g_object_set_data(G_OBJECT(playlist), "timer_id", GINT_TO_POINTER(0));
     g_object_set_data(G_OBJECT(playlist), "timer_active", GINT_TO_POINTER(0));
 
-    GtkWidget *popup = audacious_fileinfopopup_create();
+    GtkWidget *popup = fileinfopopup_create();
     g_object_set_data(G_OBJECT(playlist), "popup", popup);
     g_object_set_data(G_OBJECT(playlist), "popup_active", GINT_TO_POINTER(0));
     g_object_set_data(G_OBJECT(playlist), "popup_position", GINT_TO_POINTER(-1));
@@ -1021,10 +1021,10 @@
         tuple = playlist_get_tuple(pl_active, pos);
         if ((tuple == NULL) || (tuple_get_int(tuple, FIELD_LENGTH, NULL) < 1)) {
            gchar *title = playlist_get_songtitle(pl_active, pos);
-           audacious_fileinfopopup_show_from_title(popup, title);
+           fileinfopopup_show_from_title(popup, title);
            g_free(title);
         } else {
-           audacious_fileinfopopup_show_from_tuple(popup , tuple);
+           fileinfopopup_show_from_tuple(popup , tuple);
         }
         g_object_set_data(G_OBJECT(widget), "popup_active" , GINT_TO_POINTER(1));
     }
@@ -1037,7 +1037,7 @@
     if (GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), "popup_active")) == 1) {
         GtkWidget *popup = g_object_get_data(G_OBJECT(widget), "popup");
         g_object_set_data(G_OBJECT(widget), "popup_active", GINT_TO_POINTER(0));
-        audacious_fileinfopopup_hide(popup, NULL);
+        fileinfopopup_hide(popup, NULL);
     }
 }
 
--- a/src/audacious/util.c	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/util.c	Fri Oct 19 12:14:04 2007 +0300
@@ -949,7 +949,7 @@
 
 
 /**
- * audacious_get_localdir:
+ * util_get_localdir:
  *
  * Returns a string with the full path of Audacious local datadir (where config files are placed).
  * It's useful in order to put in the right place custom config files for audacious plugins.
@@ -957,7 +957,7 @@
  * Return value: a string with full path of Audacious local datadir (should be freed after use)
  **/
 gchar*
-audacious_get_localdir(void)
+util_get_localdir(void)
 {
   gchar *datadir;
   gchar *tmp;
--- a/src/audacious/util.h	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/util.h	Fri Oct 19 12:14:04 2007 +0300
@@ -37,9 +37,9 @@
 
 G_BEGIN_DECLS
 
-#define SWAP(a, b)      { a^=b; b^=a; a^=b; }
+#include "audacious/plugin.h"
 
-typedef GHashTable INIFile;
+#define SWAP(a, b)      { a^=b; b^=a; a^=b; }
 
 typedef gboolean(*DirForeachFunc) (const gchar * path,
                                    const gchar * basename,
@@ -100,10 +100,10 @@
 
 GdkPixbuf *audacious_create_colorized_pixbuf(GdkPixbuf *src, gint red, gint green, gint blue);
 
-gchar *audacious_get_localdir(void);
+gchar *util_get_localdir(void);
 
 /* menu-related function */
-void audacious_menu_main_show(gint x, gint y, guint button, guint time);
+void util_menu_main_show(gint x, gint y, guint button, guint time);
 
 
 G_END_DECLS
--- a/src/audacious/xconvert.h	Sun Oct 14 05:54:54 2007 +0300
+++ b/src/audacious/xconvert.h	Fri Oct 19 12:14:04 2007 +0300
@@ -4,6 +4,9 @@
  *  Licensed under GNU GPL version 3.
  */
 
+#ifndef _AUDACIOUS_XCONVERT_H
+#define _AUDACIOUS_XCONVERT_H
+
 #include <audacious/plugin.h>
 
 struct xmms_convert_buffers;
@@ -32,3 +35,5 @@
                                                      int input);
 convert_freq_func_t xmms_convert_get_frequency_func(AFormat fmt,
                                                     int channels);
+
+#endif