# HG changeset patch # User Andrew O. Shadoura # Date 1215095831 -10800 # Node ID 7fc2c317d190d090e1e071145cd9b843963cf7c7 # Parent c40585c578774df95b1ee8c19c7d1b69a790d29a# Parent ffb79e3d133a4b3486e0a27419d9089cf1c90bdd branch merge diff -r c40585c57877 -r 7fc2c317d190 acinclude.m4 --- a/acinclude.m4 Thu Jul 03 17:23:34 2008 +0300 +++ b/acinclude.m4 Thu Jul 03 17:37:11 2008 +0300 @@ -1,5 +1,6 @@ dnl ** ADD_PKG_REQUIRES([requirement]) +dnl ** Adds a dependency to package's pkg-config file. AC_DEFUN([ADD_PC_REQUIRES], [ if test "x$PC_REQUIRES" = "x"; then PC_REQUIRES="$1" @@ -10,10 +11,13 @@ ]) -dnl ** Like PKG_CHECK_MODULES, but provides an informative error message. dnl ** AUD_CHECK_MODULE([define name], [module], [version required], dnl ** [informational name], [additional error message]) dnl ** +dnl ** Works like PKG_CHECK_MODULES, but provides an informative +dnl ** error message if the package is not found. NOTICE! Unlike +dnl ** PKG_C_M, this macro ONLY supports one module name! +dnl ** dnl ** AUD_CHECK_MODULE([GLIB], [gtk+-2.0], [>= 2.10.0], [Gtk+2], [See http://www.gtk.org/]) AC_DEFUN([AUD_CHECK_MODULE], [ PKG_CHECK_MODULES([$1], [$2 $3], [ @@ -34,7 +38,10 @@ ]) -dnl ** Simplifying wrapper +dnl ** AUD_CONDITIONAL([symbol], [variable to test][, value]) +dnl ** Simplifying wrapper for AM_CONDITIONAL. +dnl ** +dnl ** AUD_CONDITIONAL([FOO], [foo]) AC_DEFUN([AUD_CONDITIONAL], [if test "x${$2}" = m4_ifval([$3], ["x$3"],["xyes"]) ; then $1="yes" @@ -48,8 +55,9 @@ dnl ** Simple wrapper for AC_ARG_ENABLE dnl ** AUD_ARG_ENABLE([name], [default value], [help string], [if enabled], [if disabled]) AC_DEFUN([AUD_ARG_ENABLE], [dnl - define([Name], [translit([$1], [./-], [___])]) - AC_ARG_ENABLE([$1], [$3],, [enable_[]Name=$2]) +define([Name], [translit([$1], [./-], [___])])dnl +define([cBasce], [ifelse([$2],[yes],[Disable],[Enable]) $3 (def: ifelse([$2],[yes],[enabled],[disabled]))])dnl + AC_ARG_ENABLE([$1], [AS_HELP_STRING([ifelse([$2],[yes],[--disable-$1],[--enable-$1])], cBasce)],, [enable_[]Name=$2]) if test "x${enable_[]Name}" = "xyes"; then m4_ifvaln([$4], [$4], [:])dnl m4_ifvaln([$5], [else $5])dnl @@ -58,8 +66,9 @@ AC_DEFUN([AUD_ARG_SIMPLE], [dnl - define([Name], [translit([$1], [./-], [___])]) - AC_ARG_ENABLE([$1], [$3],, [enable_[]Name=$2]) +define([Name], [translit([$1], [./-], [___])])dnl +define([cBasce], [ifelse([$2],[yes],[Disable],[Enable]) $3 (def: ifelse([$2],[yes],[enabled],[disabled]))])dnl + AC_ARG_ENABLE([$1], [AS_HELP_STRING([ifelse([$2],[yes],[--disable-$1],[--enable-$1])], cBasce)],, [enable_[]Name=$2]) if test "x${enable_[]Name}" = "xyes"; then AC_DEFINE([$4], [$5], [$6]) fi @@ -97,12 +106,12 @@ else AC_MSG_ERROR([** GNU make not found. If it is installed, try setting MAKE environment variable. **]) fi - AC_SUBST([MAKE]) -]) + AC_SUBST([MAKE])dnl +])dnl dnl *** Define plugin directories -AC_DEFUN([AUD_DEFINE_PLUGIN_DIR],[ +AC_DEFUN([AUD_DEFINE_PLUGIN_DIR],[dnl define([Name], [translit([$1], [a-z], [A-Z])])dnl if test "x$enable_one_plugin_dir" = "xyes"; then ifdef([aud_plugin_dirs_defined],[], @@ -121,7 +130,7 @@ dnl *** Get plugin directories -AC_DEFUN([AUD_GET_PLUGIN_DIR],[ +AC_DEFUN([AUD_GET_PLUGIN_DIR],[dnl define([Name], [translit([$1_plugin_dir], [A-Z], [a-z])])dnl define([BigName], [translit([$1], [a-z], [A-Z])])dnl ifdef([aud_get_plugin_dirs_defined], @@ -134,9 +143,9 @@ -dnl *** -dnl *** Common checks -dnl *** +dnl ** +dnl ** Common checks +dnl ** AC_DEFUN([AUD_COMMON_PROGS], [ dnl Check for C and C++ compilers @@ -187,8 +196,7 @@ dnl SSE2 support dnl ============ -AUD_ARG_ENABLE([sse2], [yes], -[ --disable-sse2 Disable SSE2 support (def: enabled)], +AUD_ARG_ENABLE([sse2], [yes], [SSE2 support], [ AC_MSG_CHECKING([SSE2 support]) aud_my_save_CFLAGS="$CFLAGS" @@ -214,8 +222,7 @@ dnl AltiVec support dnl =============== -AUD_ARG_ENABLE([altivec], [yes], -[ --disable-altivec Disable AltiVec support (def: enabled)], +AUD_ARG_ENABLE([altivec], [yes], [AltiVec support], [ AC_CHECK_HEADERS([altivec.h], [ @@ -230,3 +237,93 @@ ]) ]) + + +dnl ** +dnl ** Plugin helper macros +dnl ** + +dnl ** Unconditionally add a plugin to "build these" list +AC_DEFUN([AUD_PLUGIN_ADD], [dnl +define([Name], [translit([$1], [A-Z./-], [a-z___])])dnl +have_[]Name="yes"; res_short_[]Name="$1" +res_desc_[]Name="$3"; ifdef([aud_def_plugin_$2], [$2[]_PLUGINS="${$2[]_PLUGINS} $1"], [$2[]_PLUGINS="$1"])dnl +define([aud_def_plugin_$2],[1])dnl +]) + + +dnl ** Generic template for macros below +AC_DEFUN([AUD_PLUGIN_CHK], [dnl +define([cBasce], [ifelse([$3],[yes],[Disable],[Enable]) $5 (def: ifelse([$3],[yes],[enabled],[disabled]))])dnl +AC_ARG_ENABLE([$1], [AS_HELP_STRING([ifelse([$3],[yes],[--disable-$1],[--enable-$1])], cBasce)],, [enable_$2="$3"])dnl + have_$2="no" + if test "x${enable_$2}" = "xyes"; then + m4_ifvaln([$6], [$6], [:]) + if test "x${have_$2}" = "xyes"; then + m4_ifvaln([$7], [$7], [:])dnl + else + res_msg_$2="(not found)" + m4_ifvaln([$8], [$8], [:])dnl + fi + else + res_msg_$2="(disabled)" + m4_ifvaln([$9], [$9], [:])dnl + fi +]) + + +dnl ** Add a plugin based on --enable/--disable options +AC_DEFUN([AUD_PLUGIN_CHECK_SIMPLE], [dnl +define([cBasce], [ifelse([$2],[yes],[Disable],[Enable]) $6 (def: ifelse([$2],[yes],[enabled],[disabled]))])dnl +AC_ARG_ENABLE([$1], [AS_HELP_STRING([ifelse([$2],[yes],[--disable-$1],[--enable-$1])], cBasce)],, [enable_$2="$3"])dnl + have_$2="no" + if test "x${enable_$2}" = "xyes"; then + m4_ifvaln([$6], [$6], [:]) + else + res_msg_$2="(disabled)" + m4_ifvaln([$7], [$7], [:])dnl + fi +]) + + +dnl ** Check and enable a plugin with a pkg-config check +AC_DEFUN([AUD_PLUGIN_CHECK_PKG], [dnl +define([Name], [translit([$1], [A-Z./-], [a-z___])])dnl +define([BigN], [translit([$1], [a-z./-], [A-Z___])])dnl + AUD_PLUGIN_CHK([$1], Name, [$2], [$4], [$6], [dnl + PKG_CHECK_MODULES([]BigN, [$7], [have_[]Name[]="yes"], [have_[]Name[]="no"]) + ], [ + AUD_PLUGIN_ADD([$5], [$3]) + m4_ifvaln([$8], [$8]) + ], [$9], [$10]) +]) + + +dnl ** Check and enable a plugin with a header files check +AC_DEFUN([AUD_PLUGIN_CHECK_HEADERS], [ +define([Name], [translit([$1], [A-Z./-], [a-z___])])dnl + AUD_PLUGIN_CHK([$1], Name, [$2], [$4], [$6], [ + AC_CHECK_HEADERS([$7], [have_[]Name[]="yes"], [have_[]Name[]="no"]) + ], [ + AUD_PLUGIN_ADD([$5], [$3]) + m4_ifvaln([$8], [$8]) + ], [$9], [$10]) +]) + + +dnl ** Check and enable a plugin with a complex check +AC_DEFUN([AUD_PLUGIN_CHECK_COMPLEX], [ +# CHECK_COMPLEX #1 : $1 +define([Name], [translit([$1], [A-Z./-], [a-z___])])dnl + AUD_PLUGIN_CHK([$1], Name, [$2], [$4], [$6], [ +# CHECK_COMPLEX #2 BEGIN + $7 +# CHECK_COMPLEX #2 END + ], [ +# CHECK_COMPLEX #3 BEGIN + AUD_PLUGIN_ADD([$5], [$3]) + m4_ifvaln([$8], [$8]) +# CHECK_COMPLEX #3 END + ], [$9], [$10]) +# CHECK_COMPLEX #4 END +]) diff -r c40585c57877 -r 7fc2c317d190 configure.ac --- a/configure.ac Thu Jul 03 17:23:34 2008 +0300 +++ b/configure.ac Thu Jul 03 17:37:11 2008 +0300 @@ -120,7 +120,7 @@ dnl These plugins are always built. -INPUT_PLUGINS="tonegen console sexypsf cue alac metronom vtx" +INPUT_PLUGINS="tonegen console sexypsf psf2 cue alac metronom vtx" OUTPUT_PLUGINS="null" EFFECT_PLUGINS="audiocompress crystalizer ladspa voice_removal sndstretch stereo_plugin echo_plugin" GENERAL_PLUGINS="song_change alarm" @@ -130,9 +130,9 @@ dnl Check for Audacious -PKG_CHECK_MODULES(AUDACIOUS, [audacious >= 1.5.0], - [ADD_PC_REQUIRES([audacious >= 1.5.0])], - [AC_MSG_ERROR([Cannot find Audacious 1.5.0 or later, have you installed audacious yet?])] +PKG_CHECK_MODULES(AUDACIOUS, [audacious >= 1.9.0], + [ADD_PC_REQUIRES([audacious >= 1.9.0])], + [AC_MSG_ERROR([Cannot find Audacious 1.9.0 or later, have you installed audacious yet?])] ) dnl Check for GTK/GLib/GThread/Pango/DBus @@ -1259,6 +1259,16 @@ ) fi +AC_ARG_ENABLE(streambrowser, + [ --disable-streambrowser disable streambrowser general plugin (default=enabled) ], + [enable_streambrowser=$enableval], + [enable_streambrowser=yes] +) + +if test "$enable_streambrowser" = "yes"; then + GENERAL_PLUGINS="$GENERAL_PLUGINS streambrowser" +fi + AM_CONDITIONAL(HAVE_CDROM, test "${ac_cv_header_linux_cdrom_h}" = "yes" || test "${ac_cv_header_sys_cdio_h}" = "yes") AM_CONDITIONAL(HAVE_LINUX_JOYSTICK,test "${ac_cv_header_linux_joystick_h}" = "yes") @@ -1710,9 +1720,13 @@ echo " Tone Generator: yes" echo " Ogg Vorbis (vorbis): $have_oggvorbis" echo " Free Lossless Audio Codec (flacng): $have_flacng" -echo " Commodore 64 audio (sid): $have_sidplay" +echo " Commodore 64 audio (SID): $have_sidplay $xs_have_sidplay2_api" +echo " -> libSIDPlay1 support: $xs_have_sidplay1" +echo " -> libSIDPlay2 support: $xs_have_sidplay2" +echo " -> distortion patched libSIDPlay2: $xs_have_distortion" echo " Game music (spc, nsf & gbs): yes" echo " PlayStation audio (sexypsf): yes" +echo " PlayStation2 audio (psf2): yes" echo " AdLib synthesizer (adplug): $have_adplug" echo " Apple Lossless Audio Codec (alac): yes" echo " WavPack 4.31+ (wavpack): $have_wavpack" @@ -1735,6 +1749,7 @@ echo " Upload to MTP device: $have_mtp_up" echo " Bluetooth audio support: $have_bluetooth" echo " MacOS Dock Album Art plugin: $have_dockalbumart" +echo " Streambrowser: $enable_streambrowser" echo echo " Effect" echo " ------" diff -r c40585c57877 -r 7fc2c317d190 m4/libmad.m4 --- a/m4/libmad.m4 Thu Jul 03 17:23:34 2008 +0300 +++ b/m4/libmad.m4 Thu Jul 03 17:37:11 2008 +0300 @@ -8,10 +8,21 @@ [dnl dnl Get the cflags and libraries dnl -AC_ARG_WITH(libmad,[ --with-libmad=PFX Prefix where libmad is installed (optional)], libmad_prefix="$withval", libmad_prefix="") -AC_ARG_WITH(libmad-libraries,[ --with-libmad-libraries=DIR Directory where libmad library is installed (optional)], libmad_libraries="$withval", libmad_libraries="") -AC_ARG_WITH(libmad-includes,[ --with-libmad-includes=DIR Directory where libmad header files are installed (optional)], libmad_includes="$withval", libmad_includes="") -AC_ARG_ENABLE(libmadtest, [ --disable-libmadtest do not try to compile and run a test libmad program],, enable_libmadtest=yes) +AC_ARG_WITH([libmad], +[AS_HELP_STRING([--with-libmad=PFX], [Prefix where libmad is installed])], +[libmad_prefix="$withval"], [libmad_prefix=""]) + +AC_ARG_WITH([libmad-libraries], +[AS_HELP_STRING([--with-libmad-libraries=DIR], [Directory where libmad library is installed])], +[libmad_libraries="$withval"], [libmad_libraries=""]) + +AC_ARG_WITH([libmad-includes], +[AS_HELP_STRING([--with-libmad-includes=DIR], [Directory where libmad header files are installed])], +[libmad_includes="$withval"], [libmad_includes=""]) + +AC_ARG_ENABLE([libmadtest], +[AS_HELP_STRING([--disable-libmadtest], [Do not try to compile and run a test libmad program])],, +[enable_libmadtest="yes"]) if test "x$libmad_libraries" != "x" ; then MAD_LIBS="-L$libmad_libraries" @@ -44,7 +55,7 @@ dnl dnl Now check if the installed libmad is sufficiently new. dnl - AC_MSG_CHECKING(for libmad) + AC_MSG_CHECKING([for libmad]) rm -f conf.libmadtest AC_TRY_RUN([ #include @@ -60,16 +71,16 @@ return 0; } -],, no_libmad=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) +],, [no_libmad="yes"],[echo $ac_n "cross compiling; assumed OK... $ac_c"]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi if test "x$no_libmad" = "x" ; then - AC_MSG_RESULT(yes) + AC_MSG_RESULT([yes]) ifelse([$1], , :, [$1]) else - AC_MSG_RESULT(no) + AC_MSG_RESULT([no]) if test -f conf.libmadtest ; then : else @@ -99,7 +110,7 @@ MAD_LIBS="" ifelse([$2], , :, [$2]) fi - AC_SUBST(MAD_CFLAGS) - AC_SUBST(MAD_LIBS) + AC_SUBST([MAD_CFLAGS]) + AC_SUBST([MAD_LIBS]) rm -f conf.libmadtest ]) diff -r c40585c57877 -r 7fc2c317d190 m4/pkg.m4 --- a/m4/pkg.m4 Thu Jul 03 17:23:34 2008 +0300 +++ b/m4/pkg.m4 Thu Jul 03 17:37:11 2008 +0300 @@ -35,6 +35,11 @@ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version ; then AC_MSG_RESULT([yes]) + if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes + else + _pkg_short_errors_supported=no + fi else AC_MSG_RESULT([no]) PKG_CONFIG="" @@ -62,35 +67,29 @@ $3])dnl fi]) - -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# _PKG_CONFIG([VARIABLE], [MODULES]) # --------------------------------------------- m4_define([_PKG_CONFIG], [if test "x$PKG_CONFIG" != "x"; then - if test "x$$1" != "x"; then - pkg_cv_[]$1="$$1" + if AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$2"]); then + if test "x${$1[]_CFLAGS}" != "x"; then + pkg_cv_[]$1[]_CFLAGS="${$1[]_CFLAGS}" + else + pkg_cv_[]$1[]_CFLAGS=`$PKG_CONFIG --cflags "$2" 2>/dev/null` + fi + if test "x${$1[]_LIBS}" != "x"; then + pkg_cv_[]$1[]_LIBS="${$1_LIBS}" + else + pkg_cv_[]$1[]_LIBS=`$PKG_CONFIG --libs "$2" 2>/dev/null` + fi else - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], - [pkg_failed=yes]) + pkg_failed="yes" fi else - pkg_failed=untried + pkg_failed="untried" fi[]dnl ])# _PKG_CONFIG -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED - - # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], # [ACTION-IF-NOT-FOUND]) # @@ -105,27 +104,21 @@ [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - pkg_failed=no AC_MSG_CHECKING([for $1]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - +_PKG_CONFIG([$1], [$2]) m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS and $1[]_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.]) if test "x$pkg_failed" = "xyes"; then - _PKG_SHORT_ERRORS_SUPPORTED if test "x$_pkg_short_errors_supported" = "xyes"; then $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2" 2>&1` else $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2" 2>&1` fi - # Put the nasty error message in config.log where it belongs + dnl Put the nasty error message in config.log where it belongs echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - ifelse([$4], , [AC_MSG_ERROR(dnl [Package requirements ($2) were not met: diff -r c40585c57877 -r 7fc2c317d190 m4/sid.m4 --- a/m4/sid.m4 Thu Jul 03 17:23:34 2008 +0300 +++ b/m4/sid.m4 Thu Jul 03 17:37:11 2008 +0300 @@ -10,13 +10,50 @@ if test "x$xs_have_sidplay2" = "xyes"; then AC_DEFINE([HAVE_SIDPLAY2]) AC_LANG_PUSH([C++]) + XS_BUILDERS_CHECK XS_BUILDERS_FIND([reSID], [resid-builder], [resid.h], [ReSIDBuilder]) XS_BUILDERS_FIND([HardSID], [hardsid-builder], [hardsid.h], [HardSID]) - AC_LANG_POP([C++]) if test "x$xs_builders_available" = "xno"; then AC_MSG_ERROR([No builder modules were found in the sidbuilders directory!]); fi + + dnl *** Check for new COMI API + AC_MSG_CHECKING([libSIDPlay2 API style]) + tmp_CPPFLAGS="$CPPFLAGS" + if test -d "$xs_sidplay2_includes"; then + CPPFLAGS="$CPPFLAGS -I${xs_sidplay2_includes}" + fi + AC_EGREP_HEADER([SIDIID], [sidplay/sidplay2.h], + [xs_have_sidplay2_api="yes"], + [xs_have_sidplay2_api="(old style API)"] + ) + if test "x$xs_have_sidplay2_api" = "xyes"; then + AC_LINK_IFELSE([ + AC_LANG_PROGRAM( + [#include ], + [ISidUnknown *i;]) + ], [ + xs_have_sidplay2_api="(new COMI style API)" + AC_DEFINE([HAVE_SIDPLAY2_COMI], [1], [Define if using new libSIDPlay2 with COM-style API.]) + ],[ + xs_have_sidplay2_api="(broken version!)" + ]) + fi + AC_MSG_RESULT([$xs_have_sidplay2_api]) + + AC_LANG_POP([C++]) + + dnl *** Check for distortion patch + AC_MSG_CHECKING([libSIDPlay2+reSID distortion patch]) + AC_EGREP_HEADER([minimumfetresistance], [sidplay/sidtypes.h], [ + xs_have_distortion="yes" + AC_DEFINE([HAVE_SIDPLAY2_DISTORTION], [1], [Define if using libSIDPlay+reSID with Antti Lankila's distortion patches.]) + ],[ + xs_have_distortion="no" + ]) + AC_MSG_RESULT([$xs_have_distortion]) + CPPFLAGS="$tmp_CPPFLAGS" fi if test "x$xs_have_sidplay1" = "xyes" || test "x$xs_have_sidplay2" = "xyes"; then diff -r c40585c57877 -r 7fc2c317d190 m4/sidplay.m4 --- a/m4/sidplay.m4 Thu Jul 03 17:23:34 2008 +0300 +++ b/m4/sidplay.m4 Thu Jul 03 17:37:11 2008 +0300 @@ -74,9 +74,10 @@ AC_DEFUN([XS_ARG_WITH], [dnl # xs_arg_with ( $1:$2:$3 ) define([Name], [translit([$1], [a-z], [A-Z])])dnl + define([roflCopter], [Enable $2 with install-PREFIX])dnl AH_TEMPLATE(HAVE_[]Name, [Define if you have and want to use $2])dnl AC_ARG_WITH([$1], - [ --with-$1=PREFIX Enable $2 with install-PREFIX], [dnl + [AS_HELP_STRING([--with-$1=PREFIX], roflCopter)], [dnl if test "x$withval" = "xyes"; then xs_use_$1="yes" xs_$1_library="" @@ -95,11 +96,13 @@ xs_$1_library="" xs_$1_includes="" ])dnl + define([roflCopter], [Where the $2 headers are located])dnl AC_ARG_WITH([$1-inc], - [ --with-$1-inc=DIR Where the $2 headers are located], + [AS_HELP_STRING([--with-$1-inc=DIR], roflCopter)], [xs_$1_includes="$withval"])dnl + define([roflCopter], [Where the $2 library is installed])dnl AC_ARG_WITH([$1-lib], - [ --with-$1-lib=DIR Where the $2 library is installed], + [AS_HELP_STRING([--with-$1-lib=DIR], roflCopter)], [xs_$1_library="$withval"])dnl dnl Okay, handle this @@ -327,16 +330,16 @@ fi AC_ARG_WITH([sidbuilders], - [ --with-sidbuilders=DIR what the SIDPlay2 builders install PREFIX is], + [AS_HELP_STRING([--with-sidbuilders=DIR], [What the SIDPlay2 builders install PREFIX is])], [builders_includedir="$withval/include" builders_libdir="$withval/lib/sidplay/builders"]) AC_ARG_WITH([builders-inc], - [ --with-builders-inc=DIR where the SIDPlay2 builders headers are located], + [AS_HELP_STRING([--with-builders-inc=DIR], [Where the SIDPlay2 builders headers are located])], [builders_includedir="$withval"]) AC_ARG_WITH([builders-lib], - [ --with-builders-lib=DIR where the SIDPlay2 builders libraries are installed], + [AS_HELP_STRING([--with-builders-lib=DIR], [Where the SIDPlay2 builders libraries are installed])], [builders_libdir="$withval"]) if test "x$builders_includedir" != "x"; then diff -r c40585c57877 -r 7fc2c317d190 po/POTFILES.in --- a/po/POTFILES.in Thu Jul 03 17:23:34 2008 +0300 +++ b/po/POTFILES.in Thu Jul 03 17:37:11 2008 +0300 @@ -57,6 +57,7 @@ src/console/Vfs_File.cxx src/console/Vgm_Emu.cxx src/console/Ym2612_Emu.cxx +src/crystalizer/crystalizer.c src/demac/plugin.c src/echo_plugin/gui.c src/esd/about.c @@ -88,10 +89,10 @@ src/mtp_up/mtp.c src/musepack/libmpc.cxx src/null/null.c -src/OSS4/about.c src/OSS4/configure.c -src/OSS/about.c +src/OSS4/OSS4.c src/OSS/configure.c +src/OSS/OSS.c src/paranormal-ng/plugin.c src/paranormal/plugin.c src/projectm-1.0/main.c @@ -101,18 +102,20 @@ src/scrobbler/gtkstuff.c src/scrobbler/plugin.c src/scrobbler/scrobbler.c -src/sid/xmms-sid.c src/sid/xmms-sid.glade src/sid/xs_about.c -src/sid/xs_config.c src/sid/xs_fileinfo.c src/sid/xs_glade.c src/sid/xs_interface.c -src/sid/xs_length.c -src/sid/xs_sidplay1.cc -src/sid/xs_sidplay2.cc -src/sid/xs_slsup.c -src/sid/xs_stil.c +src/skins/plugin.c +src/skins/skins_cfg.c +src/skins/ui_equalizer.c +src/skins/ui_main.c +src/skins/ui_manager.c +src/skins/ui_playlist.c +src/skins/ui_skinned_equalizer_slider.c +src/skins/ui_skinselector.c +src/skins/util.c src/sndfile/plugin.c src/sndstretch/sndstretch_xmms.c src/song_change/song_change.c diff -r c40585c57877 -r 7fc2c317d190 po/audacious-plugins.pot --- a/po/audacious-plugins.pot Thu Jul 03 17:23:34 2008 +0300 +++ b/po/audacious-plugins.pot Thu Jul 03 17:37:11 2008 +0300 @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" -"POT-Creation-Date: 2008-03-30 17:25+0200\n" +"Report-Msgid-Bugs-To: http://bugzilla.atheme.org/\n" +"POT-Creation-Date: 2008-06-21 08:27+0300\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,49 +16,49 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/aac/libmp4.c:286 +#: src/aac/libmp4.c:283 msgid "Using libfaad2-" msgstr "" -#: src/aac/libmp4.c:287 +#: src/aac/libmp4.c:284 msgid "" " for decoding.\n" "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n" "Copyright (c) 2005-2006 Audacious team" msgstr "" -#: src/aac/libmp4.c:291 +#: src/aac/libmp4.c:288 msgid "About MP4 AAC player plugin" msgstr "" -#: src/aac/libmp4.c:293 src/adplug/adplug-xmms.cc:182 -#: src/adplug/adplug-xmms.cc:265 src/adplug/adplug-xmms.cc:526 -#: src/alac/plugin.c:77 src/arts/arts.c:26 src/arts/configure.c:90 -#: src/audiocompress/audacious-glue.c:102 -#: src/audiocompress/audacious-glue.c:552 src/cdaudio-ng/configure.c:228 -#: src/console/Audacious_Driver.cxx:449 src/demac/plugin.c:393 -#: src/echo_plugin/gui.c:26 src/echo_plugin/gui.c:137 src/esd/about.c:49 -#: src/filewriter/filewriter.c:183 src/jack/configure.c:141 -#: src/jack/jack.c:456 src/madplug/plugin.c:542 src/madplug/plugin.c:566 -#: src/metronom/metronom.c:88 src/modplug/gui/main.cxx:49 -#: src/musepack/libmpc.cxx:232 src/null/null.c:67 src/null/null.c:110 -#: src/OSS4/about.c:59 src/OSS/about.c:54 src/paranormal-ng/plugin.c:283 -#: src/paranormal/plugin.c:291 src/scrobbler/gtkstuff.c:25 -#: src/sndfile/plugin.c:565 src/statusicon/si_ui.c:628 -#: src/stereo_plugin/stereo.c:53 src/stereo_plugin/stereo.c:116 -#: src/sun/about.c:38 src/sun/configure.c:559 src/timidity/interface.c:222 -#: src/timidity/xmms-timidity.c:120 src/tonegen/tonegen.c:62 -#: src/tta/libtta.c:153 src/tta/libtta.c:267 src/tta/libtta.c:402 -#: src/vorbis/vorbis.c:700 src/vtx/about.c:32 src/vtx/info.c:43 -#: src/wavpack/ui.cxx:56 src/wavpack/ui.cxx:556 +#: src/aac/libmp4.c:290 src/adplug/adplug-xmms.cc:180 +#: src/adplug/adplug-xmms.cc:263 src/adplug/adplug-xmms.cc:524 +#: src/alac/plugin.c:74 src/arts/arts.c:25 src/arts/configure.c:90 +#: src/audiocompress/audacious-glue.c:110 +#: src/audiocompress/audacious-glue.c:560 src/cdaudio-ng/configure.c:242 +#: src/console/Audacious_Driver.cxx:447 src/crystalizer/crystalizer.c:113 +#: src/demac/plugin.c:364 src/echo_plugin/gui.c:24 src/echo_plugin/gui.c:135 +#: src/esd/about.c:48 src/filewriter/filewriter.c:183 src/jack/configure.c:140 +#: src/jack/jack.c:454 src/madplug/plugin.c:679 src/madplug/plugin.c:703 +#: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:52 +#: src/musepack/libmpc.cxx:228 src/null/null.c:64 src/null/null.c:107 +#: src/OSS4/OSS4.c:55 src/OSS/OSS.c:52 src/paranormal-ng/plugin.c:282 +#: src/paranormal/plugin.c:290 src/scrobbler/gtkstuff.c:22 +#: src/sndfile/plugin.c:571 src/statusicon/si_ui.c:626 +#: src/stereo_plugin/stereo.c:52 src/stereo_plugin/stereo.c:115 +#: src/sun/about.c:37 src/sun/configure.c:557 src/timidity/interface.c:222 +#: src/timidity/xmms-timidity.c:117 src/tonegen/tonegen.c:61 +#: src/tta/libtta.c:150 src/tta/libtta.c:264 src/tta/libtta.c:399 +#: src/vorbis/vorbis.c:696 src/vtx/about.c:26 src/vtx/info.c:38 +#: src/wavpack/ui.cxx:54 src/wavpack/ui.cxx:554 msgid "Ok" msgstr "" -#: src/adplug/adplug-xmms.cc:171 +#: src/adplug/adplug-xmms.cc:169 msgid "About " msgstr "" -#: src/adplug/adplug-xmms.cc:175 +#: src/adplug/adplug-xmms.cc:173 msgid "" "\n" "Copyright (C) 2002, 2003 Simon Peter \n" @@ -71,195 +71,195 @@ "Linked AdPlug library version: " msgstr "" -#: src/adplug/adplug-xmms.cc:256 +#: src/adplug/adplug-xmms.cc:254 msgid "AdPlug :: Configuration" msgstr "" -#: src/adplug/adplug-xmms.cc:275 src/alarm/interface.c:1398 +#: src/adplug/adplug-xmms.cc:273 src/alarm/interface.c:1398 #: src/alsa/configure.c:389 src/arts/configure.c:91 -#: src/audiocompress/audacious-glue.c:557 src/cdaudio-ng/configure.c:232 -#: src/echo_plugin/gui.c:145 src/jack/configure.c:148 -#: src/modplug/gui/interface.cxx:714 src/modplug/gui/modplug.glade:1668 -#: src/musepack/libmpc.cxx:237 src/musepack/libmpc.cxx:557 src/null/null.c:111 -#: src/sid/xmms-sid.glade:3080 src/sid/xs_interface.c:1250 -#: src/stereo_plugin/stereo.c:125 src/sun/configure.c:567 -#: src/timidity/interface.c:230 src/wavpack/ui.cxx:280 src/wavpack/ui.cxx:563 +#: src/audiocompress/audacious-glue.c:565 src/cdaudio-ng/configure.c:246 +#: src/crystalizer/crystalizer.c:122 src/echo_plugin/gui.c:143 +#: src/jack/configure.c:147 src/modplug/gui/interface.cxx:714 +#: src/modplug/gui/modplug.glade:1668 src/musepack/libmpc.cxx:233 +#: src/musepack/libmpc.cxx:553 src/null/null.c:108 +#: src/stereo_plugin/stereo.c:124 src/sun/configure.c:565 +#: src/timidity/interface.c:230 src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561 msgid "Cancel" msgstr "" -#: src/adplug/adplug-xmms.cc:291 src/console/Audacious_Config.cxx:145 -#: src/madplug/configure.c:290 src/modplug/gui/interface.cxx:628 +#: src/adplug/adplug-xmms.cc:289 src/console/Audacious_Config.cxx:144 +#: src/madplug/configure.c:289 src/modplug/gui/interface.cxx:628 #: src/modplug/gui/interface.cxx:887 src/modplug/gui/modplug.glade:1404 #: src/modplug/gui/modplug.glade:1804 msgid "General" msgstr "" -#: src/adplug/adplug-xmms.cc:303 +#: src/adplug/adplug-xmms.cc:301 msgid "Sound quality" msgstr "" -#: src/adplug/adplug-xmms.cc:308 src/modplug/gui/interface.cxx:187 +#: src/adplug/adplug-xmms.cc:306 src/modplug/gui/interface.cxx:187 #: src/modplug/gui/modplug.glade:113 msgid "Resolution" msgstr "" -#: src/adplug/adplug-xmms.cc:310 +#: src/adplug/adplug-xmms.cc:308 msgid "8bit" msgstr "" -#: src/adplug/adplug-xmms.cc:315 +#: src/adplug/adplug-xmms.cc:313 msgid "16bit" msgstr "" -#: src/adplug/adplug-xmms.cc:323 src/modplug/gui/interface.cxx:218 +#: src/adplug/adplug-xmms.cc:321 src/modplug/gui/interface.cxx:218 #: src/modplug/gui/modplug.glade:199 src/timidity/interface.c:148 msgid "Channels" msgstr "" -#: src/adplug/adplug-xmms.cc:325 src/filewriter/mp3.c:900 -#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:288 +#: src/adplug/adplug-xmms.cc:323 src/filewriter/mp3.c:900 +#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:300 #: src/timidity/interface.c:165 msgid "Mono" msgstr "" -#: src/adplug/adplug-xmms.cc:330 src/filewriter/mp3.c:895 +#: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:895 #: src/modplug/gui/interface.cxx:204 src/modplug/gui/modplug.glade:159 -#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:295 +#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:307 #: src/timidity/interface.c:173 msgid "Stereo" msgstr "" -#: src/adplug/adplug-xmms.cc:334 +#: src/adplug/adplug-xmms.cc:332 msgid "" "Setting stereo is not recommended, unless you need to. This won't add any " "stereo effects to the sound - OPL2 is just mono - but eats up more CPU power!" msgstr "" -#: src/adplug/adplug-xmms.cc:342 +#: src/adplug/adplug-xmms.cc:340 msgid "Frequency" msgstr "" -#: src/adplug/adplug-xmms.cc:378 src/adplug/adplug-xmms.cc:582 -#: src/console/Audacious_Config.cxx:147 +#: src/adplug/adplug-xmms.cc:376 src/adplug/adplug-xmms.cc:580 +#: src/console/Audacious_Config.cxx:146 src/skins/ui_manager.c:175 msgid "Playback" msgstr "" -#: src/adplug/adplug-xmms.cc:382 +#: src/adplug/adplug-xmms.cc:380 msgid "Detect songend" msgstr "" -#: src/adplug/adplug-xmms.cc:386 +#: src/adplug/adplug-xmms.cc:384 msgid "" "If enabled, XMMS will detect a song's ending, stop it and advance in the " "playlist. If disabled, XMMS won't take notice of a song's ending and loop it " "all over again and again." msgstr "" -#: src/adplug/adplug-xmms.cc:397 +#: src/adplug/adplug-xmms.cc:395 msgid "Formats" msgstr "" -#: src/adplug/adplug-xmms.cc:404 +#: src/adplug/adplug-xmms.cc:402 msgid "Format selection" msgstr "" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Format" msgstr "" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Extension" msgstr "" -#: src/adplug/adplug-xmms.cc:447 +#: src/adplug/adplug-xmms.cc:445 msgid "" "Selected file types will be recognized and played back by this plugin. " "Deselected types will be ignored to make room for other plugins to play " "these files." msgstr "" -#: src/adplug/adplug-xmms.cc:533 +#: src/adplug/adplug-xmms.cc:531 msgid "AdPlug :: File Info" msgstr "" -#: src/adplug/adplug-xmms.cc:555 src/amidi-plug/i_configure-fluidsynth.c:448 +#: src/adplug/adplug-xmms.cc:553 src/amidi-plug/i_configure-fluidsynth.c:448 msgid "Filename" msgstr "" +#: src/adplug/adplug-xmms.cc:557 src/skins/ui_playlist.c:470 +msgid "Title: " +msgstr "" + +#: src/adplug/adplug-xmms.cc:558 +msgid "Author: " +msgstr "" + #: src/adplug/adplug-xmms.cc:559 -msgid "Title: " +msgid "File Type: " msgstr "" #: src/adplug/adplug-xmms.cc:560 -msgid "Author: " +msgid "Subsongs: " msgstr "" #: src/adplug/adplug-xmms.cc:561 -msgid "File Type: " -msgstr "" - -#: src/adplug/adplug-xmms.cc:562 -msgid "Subsongs: " -msgstr "" - -#: src/adplug/adplug-xmms.cc:563 msgid "Instruments: " msgstr "" -#: src/adplug/adplug-xmms.cc:568 +#: src/adplug/adplug-xmms.cc:566 msgid "Orders: " msgstr "" -#: src/adplug/adplug-xmms.cc:569 +#: src/adplug/adplug-xmms.cc:567 msgid "Patterns: " msgstr "" -#: src/adplug/adplug-xmms.cc:573 +#: src/adplug/adplug-xmms.cc:571 msgid "Song" msgstr "" -#: src/adplug/adplug-xmms.cc:599 +#: src/adplug/adplug-xmms.cc:597 msgid "Instrument name" msgstr "" -#: src/adplug/adplug-xmms.cc:641 +#: src/adplug/adplug-xmms.cc:639 msgid "Song message" msgstr "" -#: src/adplug/adplug-xmms.cc:663 +#: src/adplug/adplug-xmms.cc:661 msgid "Subsong selection" msgstr "" -#: src/adplug/adplug-xmms.cc:727 +#: src/adplug/adplug-xmms.cc:725 msgid "Order: " msgstr "" +#: src/adplug/adplug-xmms.cc:726 +msgid "Pattern: " +msgstr "" + #: src/adplug/adplug-xmms.cc:728 -msgid "Pattern: " +msgid "Row: " +msgstr "" + +#: src/adplug/adplug-xmms.cc:729 +msgid "Speed: " msgstr "" #: src/adplug/adplug-xmms.cc:730 -msgid "Row: " -msgstr "" - -#: src/adplug/adplug-xmms.cc:731 -msgid "Speed: " -msgstr "" - -#: src/adplug/adplug-xmms.cc:732 msgid "Timer: " msgstr "" -#: src/adplug/adplug-xmms.cc:733 src/console/Audacious_Config.cxx:225 -#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:341 +#: src/adplug/adplug-xmms.cc:731 src/console/Audacious_Config.cxx:224 +#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:353 msgid "Hz" msgstr "" -#: src/alac/plugin.c:74 +#: src/alac/plugin.c:71 msgid "About Apple Lossless Audio Plugin" msgstr "" -#: src/alac/plugin.c:75 +#: src/alac/plugin.c:72 msgid "" "Copyright (c) 2006 Audacious team\n" "Portions (c) 2005-2006 David Hammerton " @@ -287,8 +287,8 @@ #: src/alarm/interface.c:71 src/lirc/about.c:115 #: src/modplug/gui/interface.cxx:971 src/modplug/gui/modplug.glade:2030 -#: src/sid/xmms-sid.glade:3643 src/sid/xs_about.c:214 -#: src/sid/xs_interface.c:1740 +#: src/sid/xmms-sid.glade:3837 src/sid/xs_about.c:214 +#: src/sid/xs_interface.c:1824 msgid "Close" msgstr "" @@ -300,13 +300,12 @@ msgid "This is your wakeup call." msgstr "" -#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:46 +#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:45 #: src/alsa/configure.c:383 src/cdaudio-ng/cdaudio-ng.c:247 -#: src/flacng/plugin.c:706 src/gnomeshortcuts/gnomeshortcuts.c:311 -#: src/hotkey/gui.c:671 src/modplug/gui/interface.cxx:702 -#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:738 -#: src/scrobbler/gtkstuff.c:45 src/sid/xmms-sid.glade:3066 -#: src/sid/xs_interface.c:1243 +#: src/flacng/plugin.c:705 src/gnomeshortcuts/gnomeshortcuts.c:310 +#: src/hotkey/gui.c:670 src/modplug/gui/interface.cxx:702 +#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:736 +#: src/scrobbler/gtkstuff.c:42 src/skins/plugin.c:130 msgid "OK" msgstr "" @@ -375,7 +374,8 @@ #: src/alarm/interface.c:612 src/alarm/interface.c:660 #: src/alarm/interface.c:708 src/alarm/interface.c:756 #: src/alarm/interface.c:804 src/alarm/interface.c:852 -#: src/alarm/interface.c:900 src/OSS4/configure.c:138 src/OSS/configure.c:169 +#: src/alarm/interface.c:900 src/OSS4/configure.c:136 src/OSS/configure.c:168 +#: src/skins/ui_manager.c:447 src/skins/ui_manager.c:468 msgid "Default" msgstr "" @@ -420,9 +420,9 @@ msgstr "" #: src/alarm/interface.c:1087 src/sid/xmms-sid.glade:2007 -#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2676 -#: src/sid/xs_interface.c:908 src/sid/xs_interface.c:962 -#: src/sid/xs_interface.c:1122 +#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2746 +#: src/sid/xs_interface.c:920 src/sid/xs_interface.c:974 +#: src/sid/xs_interface.c:1154 msgid "seconds" msgstr "" @@ -475,7 +475,7 @@ msgid "Use reminder" msgstr "" -#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:377 +#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:376 msgid "Options" msgstr "" @@ -538,7 +538,7 @@ " toggle button if you want it to be shown.\n" msgstr "" -#: src/alarm/interface.c:1366 +#: src/alarm/interface.c:1366 src/skins/ui_manager.c:386 msgid "Help" msgstr "" @@ -550,11 +550,11 @@ msgid "Thankyou" msgstr "" -#: src/alsa/about.c:30 +#: src/alsa/about.c:29 msgid "About ALSA Driver" msgstr "" -#: src/alsa/about.c:31 +#: src/alsa/about.c:30 msgid "" "Audacious ALSA Driver\n" "\n" @@ -588,8 +588,8 @@ msgid "ALSA Driver configuration" msgstr "" -#: src/alsa/configure.c:274 src/OSS4/configure.c:186 src/OSS/configure.c:217 -#: src/sun/configure.c:183 +#: src/alsa/configure.c:274 src/OSS4/configure.c:184 src/OSS/configure.c:216 +#: src/sun/configure.c:181 msgid "Audio device:" msgstr "" @@ -601,7 +601,7 @@ msgid "Mixer card:" msgstr "" -#: src/alsa/configure.c:313 src/OSS/configure.c:260 src/sun/configure.c:220 +#: src/alsa/configure.c:313 src/OSS/configure.c:259 src/sun/configure.c:218 msgid "Mixer device:" msgstr "" @@ -1184,8 +1184,8 @@ "backend" msgstr "" -#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3465 -#: src/sid/xs_interface.c:1684 +#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3659 +#: src/sid/xs_interface.c:1768 msgid "Name:" msgstr "" @@ -1288,46 +1288,46 @@ msgid "None" msgstr "" -#: src/aosd/aosd_trigger.c:75 +#: src/aosd/aosd_trigger.c:74 msgid "Playback Start" msgstr "" -#: src/aosd/aosd_trigger.c:76 +#: src/aosd/aosd_trigger.c:75 msgid "Triggers OSD when a playlist entry is played." msgstr "" +#: src/aosd/aosd_trigger.c:79 +msgid "Title Change" +msgstr "" + #: src/aosd/aosd_trigger.c:80 -msgid "Title Change" -msgstr "" - -#: src/aosd/aosd_trigger.c:81 msgid "" "Triggers OSD when, during playback, the song title changes but the filename " "is the same. This is mostly useful to display title changes in internet " "streams." msgstr "" -#: src/aosd/aosd_trigger.c:87 +#: src/aosd/aosd_trigger.c:86 msgid "Volume Change" msgstr "" -#: src/aosd/aosd_trigger.c:88 +#: src/aosd/aosd_trigger.c:87 msgid "Triggers OSD when volume is changed." msgstr "" +#: src/aosd/aosd_trigger.c:91 +msgid "Pause On" +msgstr "" + #: src/aosd/aosd_trigger.c:92 -msgid "Pause On" -msgstr "" - -#: src/aosd/aosd_trigger.c:93 msgid "Triggers OSD when playback is paused." msgstr "" +#: src/aosd/aosd_trigger.c:96 +msgid "Pause Off" +msgstr "" + #: src/aosd/aosd_trigger.c:97 -msgid "Pause Off" -msgstr "" - -#: src/aosd/aosd_trigger.c:98 msgid "Triggers OSD when playback is unpaused." msgstr "" @@ -1426,10 +1426,10 @@ msgid "Skin file:" msgstr "" -#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2331 -#: src/sid/xmms-sid.glade:2856 src/sid/xmms-sid.glade:2962 -#: src/sid/xs_interface.c:1010 src/sid/xs_interface.c:1182 -#: src/sid/xs_interface.c:1218 +#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2373 +#: src/sid/xmms-sid.glade:2968 src/sid/xmms-sid.glade:3136 +#: src/sid/xs_interface.c:1043 src/sid/xs_interface.c:1235 +#: src/sid/xs_interface.c:1291 msgid "Browse" msgstr "" @@ -1509,9 +1509,9 @@ msgid "Trigger" msgstr "" -#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:167 +#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:175 #: src/modplug/gui/interface.cxx:688 src/modplug/gui/modplug.glade:1603 -#: src/sid/xmms-sid.glade:3026 src/sid/xs_interface.c:1229 +#: src/sid/xmms-sid.glade:3220 src/sid/xs_interface.c:1301 msgid "Misc" msgstr "" @@ -1538,11 +1538,11 @@ "\n" msgstr "" -#: src/arts/arts.c:22 +#: src/arts/arts.c:21 msgid "About aRts Output" msgstr "" -#: src/arts/arts.c:23 +#: src/arts/arts.c:22 msgid "" "aRts output plugin by Håvard Kvålen \n" "Audacious port by Giacomo Lozito from develia.org" @@ -1552,26 +1552,26 @@ msgid "aRts Driver configuration" msgstr "" -#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:232 -#: src/OSS/configure.c:304 src/sun/configure.c:259 +#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:230 +#: src/OSS/configure.c:303 src/sun/configure.c:257 msgid "Buffering:" msgstr "" -#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:245 -#: src/OSS/configure.c:317 src/sun/configure.c:272 +#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:243 +#: src/OSS/configure.c:316 src/sun/configure.c:270 msgid "Buffer size (ms):" msgstr "" -#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:270 -#: src/OSS/configure.c:342 src/sun/configure.c:304 +#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:268 +#: src/OSS/configure.c:341 src/sun/configure.c:302 msgid "Buffering" msgstr "" -#: src/audiocompress/audacious-glue.c:95 +#: src/audiocompress/audacious-glue.c:103 msgid "AudioCompress " msgstr "" -#: src/audiocompress/audacious-glue.c:96 +#: src/audiocompress/audacious-glue.c:104 msgid "" "\n" "(c)2003 trikuare studios(http://trikuare.cx)\n" @@ -1581,108 +1581,108 @@ "keeping the volume level more or less consistent" msgstr "" -#: src/audiocompress/audacious-glue.c:101 +#: src/audiocompress/audacious-glue.c:109 msgid "About AudioCompress" msgstr "" -#: src/audiocompress/audacious-glue.c:320 -msgid "" -"If checked, when the sound peaks the volume will be cut instantly; " -"otherwise, it will ramp down just in time for the peak (but some minor " -"clipping may still occur)." -msgstr "" - -#: src/audiocompress/audacious-glue.c:324 -msgid "The maximum amount to amplify the audio by" -msgstr "" - -#: src/audiocompress/audacious-glue.c:326 -msgid "Defines how smoothly the volume will ramp up" -msgstr "" - #: src/audiocompress/audacious-glue.c:328 msgid "" +"If checked, when the sound peaks the volume will be cut instantly; " +"otherwise, it will ramp down just in time for the peak (but some minor " +"clipping may still occur)." +msgstr "" + +#: src/audiocompress/audacious-glue.c:332 +msgid "The maximum amount to amplify the audio by" +msgstr "" + +#: src/audiocompress/audacious-glue.c:334 +msgid "Defines how smoothly the volume will ramp up" +msgstr "" + +#: src/audiocompress/audacious-glue.c:336 +msgid "" "The target audio level for ramping up. Lowering the value gives a bit more " "dynamic range for peaks, but will make the overall sound quieter." msgstr "" -#: src/audiocompress/audacious-glue.c:331 +#: src/audiocompress/audacious-glue.c:339 msgid "How long of a window to maintain" msgstr "" -#: src/audiocompress/audacious-glue.c:372 +#: src/audiocompress/audacious-glue.c:380 msgid "AudioCompress preferences" msgstr "" -#: src/audiocompress/audacious-glue.c:389 +#: src/audiocompress/audacious-glue.c:397 msgid " Quality Options " msgstr "" -#: src/audiocompress/audacious-glue.c:394 +#: src/audiocompress/audacious-glue.c:402 msgid " Aggressively prevent clipping" msgstr "" -#: src/audiocompress/audacious-glue.c:406 +#: src/audiocompress/audacious-glue.c:414 msgid " Target & gain" msgstr "" -#: src/audiocompress/audacious-glue.c:417 -msgid "Target audio level:" -msgstr "" - #: src/audiocompress/audacious-glue.c:425 -msgid "Maximum gain:" +msgid "Target audio level:" msgstr "" #: src/audiocompress/audacious-glue.c:433 +msgid "Maximum gain:" +msgstr "" + +#: src/audiocompress/audacious-glue.c:441 msgid "Gain smooth:" msgstr "" -#: src/audiocompress/audacious-glue.c:485 +#: src/audiocompress/audacious-glue.c:493 msgid " History " msgstr "" -#: src/audiocompress/audacious-glue.c:517 +#: src/audiocompress/audacious-glue.c:525 msgid "" "How long of a history to maintain. A higher number will make the volume " "changes less responsive." msgstr "" -#: src/audiocompress/audacious-glue.c:528 +#: src/audiocompress/audacious-glue.c:536 msgid "Load default values" msgstr "" -#: src/audiocompress/audacious-glue.c:533 +#: src/audiocompress/audacious-glue.c:541 msgid "Audio values" msgstr "" -#: src/audiocompress/audacious-glue.c:562 src/echo_plugin/gui.c:152 -#: src/modplug/gui/interface.cxx:708 src/modplug/gui/modplug.glade:1655 -#: src/stereo_plugin/stereo.c:132 +#: src/audiocompress/audacious-glue.c:570 src/crystalizer/crystalizer.c:129 +#: src/echo_plugin/gui.c:150 src/modplug/gui/interface.cxx:708 +#: src/modplug/gui/modplug.glade:1655 src/stereo_plugin/stereo.c:131 msgid "Apply" msgstr "" +#: src/blur_scope/blur_scope.c:52 +msgid "/Toggle Decorations" +msgstr "" + #: src/blur_scope/blur_scope.c:54 -msgid "/Toggle Decorations" -msgstr "" - -#: src/blur_scope/blur_scope.c:56 msgid "/-" msgstr "" -#: src/blur_scope/blur_scope.c:57 +#: src/blur_scope/blur_scope.c:55 msgid "/Close" msgstr "" -#: src/blur_scope/blur_scope.c:181 +#: src/blur_scope/blur_scope.c:179 msgid "Blur scope" msgstr "" -#: src/blur_scope/config.c:72 +#: src/blur_scope/config.c:71 msgid "Blur Scope: Color selection" msgstr "" -#: src/blur_scope/config.c:82 src/jack/configure.c:108 +#: src/blur_scope/config.c:81 src/jack/configure.c:107 msgid "Options:" msgstr "" @@ -1711,115 +1711,119 @@ "This was a Google Summer of Code 2007 project." msgstr "" -#: src/cdaudio-ng/cdaudio-ng.c:814 +#: src/cdaudio-ng/cdaudio-ng.c:815 msgid "" "No playable CD found.\n" "\n" "No CD inserted, or inserted CD is not an audio CD.\n" msgstr "" -#: src/cdaudio-ng/configure.c:147 +#: src/cdaudio-ng/configure.c:155 msgid "CD Audio Plugin Configuration" msgstr "" -#: src/cdaudio-ng/configure.c:157 +#: src/cdaudio-ng/configure.c:165 msgid "Digital audio extraction" msgstr "" -#: src/cdaudio-ng/configure.c:162 +#: src/cdaudio-ng/configure.c:170 msgid "Title information" msgstr "" -#: src/cdaudio-ng/configure.c:179 +#: src/cdaudio-ng/configure.c:187 msgid "Limit read speed to: " msgstr "" -#: src/cdaudio-ng/configure.c:186 -msgid "Use cd-text if available" -msgstr "" - -#: src/cdaudio-ng/configure.c:190 -msgid "Use CDDB if available" -msgstr "" - #: src/cdaudio-ng/configure.c:194 +msgid "Use cd-text if available" +msgstr "" + +#: src/cdaudio-ng/configure.c:198 +msgid "Use CDDB if available" +msgstr "" + +#: src/cdaudio-ng/configure.c:202 msgid "Server: " msgstr "" -#: src/cdaudio-ng/configure.c:197 +#: src/cdaudio-ng/configure.c:205 +msgid "Path: " +msgstr "" + +#: src/cdaudio-ng/configure.c:208 msgid "Port: " msgstr "" -#: src/cdaudio-ng/configure.c:203 +#: src/cdaudio-ng/configure.c:217 msgid "Use HTTP instead of CDDBP" msgstr "" -#: src/cdaudio-ng/configure.c:211 +#: src/cdaudio-ng/configure.c:225 msgid "Override default device: " msgstr "" -#: src/cdaudio-ng/configure.c:218 +#: src/cdaudio-ng/configure.c:232 msgid "Print debug information" msgstr "" -#: src/console/Audacious_Config.cxx:125 +#: src/console/Audacious_Config.cxx:124 msgid "Console Music Decoder" msgstr "" -#: src/console/Audacious_Config.cxx:162 +#: src/console/Audacious_Config.cxx:161 msgid "Bass:" msgstr "" -#: src/console/Audacious_Config.cxx:166 src/console/Audacious_Config.cxx:177 -#: src/console/Audacious_Config.cxx:198 +#: src/console/Audacious_Config.cxx:165 src/console/Audacious_Config.cxx:176 +#: src/console/Audacious_Config.cxx:197 msgid "secs" msgstr "" -#: src/console/Audacious_Config.cxx:173 +#: src/console/Audacious_Config.cxx:172 msgid "Treble:" msgstr "" -#: src/console/Audacious_Config.cxx:194 +#: src/console/Audacious_Config.cxx:193 msgid "Default song length:" msgstr "" -#: src/console/Audacious_Config.cxx:200 src/modplug/gui/interface.cxx:268 +#: src/console/Audacious_Config.cxx:199 src/modplug/gui/interface.cxx:268 #: src/modplug/gui/modplug.glade:338 src/sid/xmms-sid.glade:1243 -#: src/sid/xs_interface.c:653 +#: src/sid/xs_interface.c:665 msgid "Resampling" msgstr "" -#: src/console/Audacious_Config.cxx:206 +#: src/console/Audacious_Config.cxx:205 msgid "Enable audio resampling" msgstr "" -#: src/console/Audacious_Config.cxx:221 +#: src/console/Audacious_Config.cxx:220 msgid "Resampling rate:" msgstr "" +#: src/console/Audacious_Config.cxx:235 +msgid "SPC" +msgstr "" + #: src/console/Audacious_Config.cxx:236 -msgid "SPC" +msgid "Ignore length from SPC tags" msgstr "" #: src/console/Audacious_Config.cxx:237 -msgid "Ignore length from SPC tags" -msgstr "" - -#: src/console/Audacious_Config.cxx:238 msgid "Increase reverb" msgstr "" -#: src/console/Audacious_Config.cxx:263 +#: src/console/Audacious_Config.cxx:262 msgid "" "The default song length, expressed in seconds, is used for songs that do not " "provide length information (i.e. looping tracks)." msgstr "" -#: src/console/Audacious_Driver.cxx:444 +#: src/console/Audacious_Driver.cxx:442 msgid "About the Console Music Decoder" msgstr "" -#: src/console/Audacious_Driver.cxx:445 +#: src/console/Audacious_Driver.cxx:443 msgid "" "Console music decoder engine based on Game_Music_Emu 0.5.2.\n" "Supported formats: AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ\n" @@ -1827,11 +1831,19 @@ " Shay Green " msgstr "" -#: src/demac/plugin.c:388 +#: src/crystalizer/crystalizer.c:90 +msgid "Configure Crystalizer" +msgstr "" + +#: src/crystalizer/crystalizer.c:92 src/stereo_plugin/stereo.c:94 +msgid "Effect intensity:" +msgstr "" + +#: src/demac/plugin.c:359 msgid "About Monkey's Audio Plugin" msgstr "" -#: src/demac/plugin.c:389 +#: src/demac/plugin.c:360 msgid "" "Copyright (C) 2007 Eugene Zagidullin \n" "Based on ffape decoder, Copyright (C) 2007 Benjamin Zores\n" @@ -1840,7 +1852,7 @@ "ffape is a part of FFmpeg project, http://ffmpeg.mplayerhq.hu/" msgstr "" -#: src/echo_plugin/gui.c:11 +#: src/echo_plugin/gui.c:9 msgid "" "Echo Plugin\n" "By Johan Levin 1999.\n" @@ -1848,35 +1860,35 @@ "Surround echo by Carl van Schaik 1999" msgstr "" -#: src/echo_plugin/gui.c:25 +#: src/echo_plugin/gui.c:23 msgid "About Echo Plugin" msgstr "" -#: src/echo_plugin/gui.c:76 +#: src/echo_plugin/gui.c:74 msgid "Configure Echo" msgstr "" -#: src/echo_plugin/gui.c:89 +#: src/echo_plugin/gui.c:87 msgid "Delay: (ms)" msgstr "" -#: src/echo_plugin/gui.c:94 +#: src/echo_plugin/gui.c:92 msgid "Feedback: (%)" msgstr "" -#: src/echo_plugin/gui.c:99 +#: src/echo_plugin/gui.c:97 msgid "Volume: (%)" msgstr "" -#: src/echo_plugin/gui.c:122 +#: src/echo_plugin/gui.c:120 msgid "Surround echo" msgstr "" +#: src/esd/about.c:33 +msgid "About ESounD Plugin" +msgstr "" + #: src/esd/about.c:34 -msgid "About ESounD Plugin" -msgstr "" - -#: src/esd/about.c:35 msgid "" "Audacious ESounD Plugin\n" "\n" @@ -1920,8 +1932,8 @@ msgid "Server" msgstr "" -#: src/esd/configure.c:198 src/OSS4/configure.c:259 src/OSS/configure.c:331 -#: src/sun/configure.c:290 +#: src/esd/configure.c:198 src/OSS4/configure.c:257 src/OSS/configure.c:330 +#: src/sun/configure.c:288 msgid "Pre-buffer (percent):" msgstr "" @@ -1993,93 +2005,93 @@ msgid "Window->JumpToFile" msgstr "" -#: src/evdev-plug/ed_internals.c:94 +#: src/evdev-plug/ed_internals.c:93 #, c-format msgid "" "event-device-plugin: unable to open device file %s , skipping this device; " "check that the file exists and that you have read permission for it\n" msgstr "" -#: src/evdev-plug/ed_internals.c:103 +#: src/evdev-plug/ed_internals.c:102 #, c-format msgid "" "event-device-plugin: unable to create a io_channel for device file %s ," "skipping this device\n" msgstr "" -#: src/evdev-plug/ed_internals.c:342 +#: src/evdev-plug/ed_internals.c:341 msgid "" "event-device-plugin: unable to open /proc/bus/input/devices , automatic " "detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:351 +#: src/evdev-plug/ed_internals.c:350 msgid "" "event-device-plugin: unable to open a io_channel for /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:361 +#: src/evdev-plug/ed_internals.c:360 msgid "" "event-device-plugin: an error occurred while reading /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:424 +#: src/evdev-plug/ed_internals.c:423 #, c-format msgid "event-device-plugin: device %s not found in /dev/input , skipping.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:489 src/evdev-plug/ed_internals.c:583 +#: src/evdev-plug/ed_internals.c:488 src/evdev-plug/ed_internals.c:582 #, c-format msgid "" "event-device-plugin: unable to load config file %s , default settings will " "be used.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:535 +#: src/evdev-plug/ed_internals.c:534 #, c-format msgid "" "event-device-plugin: incomplete information in config file for device \"%s" "\" , skipping.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:604 src/evdev-plug/ed_internals.c:936 +#: src/evdev-plug/ed_internals.c:603 src/evdev-plug/ed_internals.c:935 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_active value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:840 +#: src/evdev-plug/ed_internals.c:839 #, c-format msgid "" "event-device-plugin: unable to access local directory %s , settings will not " "be saved.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:890 +#: src/evdev-plug/ed_internals.c:889 #, c-format msgid "" "event-device-plugin: configuration, unable to get filename value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:906 +#: src/evdev-plug/ed_internals.c:905 #, c-format msgid "" "event-device-plugin: configuration, unable to get phys value for device \"%s" "\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:922 +#: src/evdev-plug/ed_internals.c:921 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_custom value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:946 +#: src/evdev-plug/ed_internals.c:945 #, c-format msgid "" "event-device-plugin: configuration, unexpected value for device \"%s\", " @@ -2097,7 +2109,7 @@ "Ensure that the device has been correctly plugged in." msgstr "" -#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:566 +#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:703 msgid "Error" msgstr "" @@ -2151,7 +2163,7 @@ msgid "Active" msgstr "" -#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:488 +#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:486 msgid "Status" msgstr "" @@ -2247,7 +2259,7 @@ msgid "Output file format:" msgstr "" -#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:960 +#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:959 msgid "Configure" msgstr "" @@ -2471,11 +2483,11 @@ msgid "Quality level (0 - 10):" msgstr "" -#: src/flacng/plugin.c:698 +#: src/flacng/plugin.c:697 msgid "FLAC Audio Plugin " msgstr "" -#: src/flacng/plugin.c:699 +#: src/flacng/plugin.c:698 msgid "" "\n" "\n" @@ -2485,15 +2497,15 @@ "http://www.skytale.net/projects/bmp-flac2/" msgstr "" -#: src/flacng/plugin.c:704 +#: src/flacng/plugin.c:703 msgid "About FLAC Audio Plugin" msgstr "" +#: src/gnomeshortcuts/gnomeshortcuts.c:305 +msgid "About Gnome Shortcut Plugin" +msgstr "" + #: src/gnomeshortcuts/gnomeshortcuts.c:306 -msgid "About Gnome Shortcut Plugin" -msgstr "" - -#: src/gnomeshortcuts/gnomeshortcuts.c:307 msgid "" "Gnome Shortcut Plugin\n" "Let's you control the player with Gnome's shortcuts.\n" @@ -2506,7 +2518,7 @@ msgid "Previous Track" msgstr "" -#: src/hotkey/gui.c:69 +#: src/hotkey/gui.c:69 src/skins/ui_manager.c:177 src/skins/ui_manager.c:178 msgid "Play" msgstr "" @@ -2514,7 +2526,7 @@ msgid "Pause/Resume" msgstr "" -#: src/hotkey/gui.c:71 +#: src/hotkey/gui.c:71 src/skins/ui_manager.c:183 src/skins/ui_manager.c:184 msgid "Stop" msgstr "" @@ -2542,7 +2554,7 @@ msgid "Volume Down" msgstr "" -#: src/hotkey/gui.c:78 +#: src/hotkey/gui.c:78 src/skins/ui_manager.c:422 src/skins/ui_manager.c:423 msgid "Jump to File" msgstr "" @@ -2592,11 +2604,11 @@ msgid "Key Binding:" msgstr "" -#: src/hotkey/gui.c:660 +#: src/hotkey/gui.c:659 msgid "About Global Hotkey Plugin" msgstr "" -#: src/hotkey/gui.c:661 +#: src/hotkey/gui.c:660 msgid "" "Global Hotkey Plugin\n" "Control the player with global key combinations or multimedia keys.\n" @@ -2612,35 +2624,35 @@ "\n" msgstr "" -#: src/jack/configure.c:70 +#: src/jack/configure.c:69 msgid "Connect to all available jack ports" msgstr "" -#: src/jack/configure.c:77 +#: src/jack/configure.c:76 msgid "Connect only the output ports" msgstr "" -#: src/jack/configure.c:84 +#: src/jack/configure.c:83 msgid "Connect to no ports" msgstr "" -#: src/jack/configure.c:99 +#: src/jack/configure.c:98 msgid "jack Plugin configuration" msgstr "" -#: src/jack/configure.c:117 +#: src/jack/configure.c:116 msgid "Connection mode:" msgstr "" -#: src/jack/configure.c:129 +#: src/jack/configure.c:128 msgid "Enable debug printing" msgstr "" -#: src/jack/jack.c:84 +#: src/jack/jack.c:82 msgid "Sample rate mismatch" msgstr "" -#: src/jack/jack.c:87 +#: src/jack/jack.c:85 msgid "" "Xmms is asking for a sample rate that differs from\n" " that of the jack server. Xmms 1.2.8 or later\n" @@ -2654,15 +2666,15 @@ "Chris Morgan \n" msgstr "" -#: src/jack/jack.c:100 src/wma/wma.c:148 +#: src/jack/jack.c:98 src/wma/wma.c:145 msgid " Close " msgstr "" -#: src/jack/jack.c:452 +#: src/jack/jack.c:450 msgid "About JACK Output Plugin 0.17" msgstr "" -#: src/jack/jack.c:453 +#: src/jack/jack.c:451 msgid "" "XMMS jack Driver 0.17\n" "\n" @@ -2673,39 +2685,39 @@ "Giacomo Lozito from develia.org" msgstr "" -#: src/ladspa/ladspa.c:722 +#: src/ladspa/ladspa.c:721 msgid "This LADSPA plugin has no user controls" msgstr "" -#: src/ladspa/ladspa.c:767 src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:766 src/ladspa/ladspa.c:852 msgid "Name" msgstr "" -#: src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:852 msgid "UID" msgstr "" -#: src/ladspa/ladspa.c:928 +#: src/ladspa/ladspa.c:927 msgid "Installed plugins" msgstr "" -#: src/ladspa/ladspa.c:937 +#: src/ladspa/ladspa.c:936 msgid "Running plugins" msgstr "" -#: src/ladspa/ladspa.c:952 +#: src/ladspa/ladspa.c:951 msgid "Add" msgstr "" -#: src/ladspa/ladspa.c:956 +#: src/ladspa/ladspa.c:955 msgid "Remove" msgstr "" -#: src/ladspa/ladspa.c:969 +#: src/ladspa/ladspa.c:968 msgid "LADSPA Plugin Catalog" msgstr "" -#: src/lastfm/lastfm.c:96 +#: src/lastfm/lastfm.c:94 msgid "" "Couldn't initialize the last.fm radio plugin.\n" "\n" @@ -2788,56 +2800,56 @@ msgid "%s: will try reconnect every %d seconds...\n" msgstr "" -#: src/madplug/configure.c:209 +#: src/madplug/configure.c:208 msgid "MPEG Audio Plugin Configuration" msgstr "" -#: src/madplug/configure.c:226 +#: src/madplug/configure.c:225 msgid "Audio Settings" msgstr "" -#: src/madplug/configure.c:234 +#: src/madplug/configure.c:233 msgid "Force reopen audio when audio type changed" msgstr "" -#: src/madplug/configure.c:243 +#: src/madplug/configure.c:242 msgid "Metadata Settings" msgstr "" -#: src/madplug/configure.c:252 +#: src/madplug/configure.c:251 msgid "Enable fast play-length calculation" msgstr "" -#: src/madplug/configure.c:259 +#: src/madplug/configure.c:258 msgid "Parse XING headers" msgstr "" -#: src/madplug/configure.c:266 +#: src/madplug/configure.c:265 msgid "Use SJIS to write ID3 tags (not recommended)" msgstr "" -#: src/madplug/configure.c:273 +#: src/madplug/configure.c:272 msgid "Miscellaneous Settings" msgstr "" -#: src/madplug/configure.c:282 +#: src/madplug/configure.c:281 msgid "Display average bitrate for VBR" msgstr "" -#: src/madplug/configure.c:296 src/vorbis/configure.c:102 +#: src/madplug/configure.c:295 src/vorbis/configure.c:100 msgid "Override generic titles" msgstr "" -#: src/madplug/configure.c:308 +#: src/madplug/configure.c:307 msgid "ID3 format:" msgstr "" -#: src/madplug/configure.c:320 src/sid/xmms-sid.glade:2540 -#: src/sid/xs_interface.c:1070 +#: src/madplug/configure.c:319 src/sid/xmms-sid.glade:2610 +#: src/sid/xs_interface.c:1102 msgid "Title" msgstr "" -#: src/madplug/plugin.c:524 +#: src/madplug/plugin.c:661 #, c-format msgid "" "Audacious MPEG Audio Plugin\n" @@ -2855,15 +2867,15 @@ " Samuel Krempp" msgstr "" -#: src/madplug/plugin.c:540 +#: src/madplug/plugin.c:677 msgid "About MPEG Audio Plugin" msgstr "" +#: src/metronom/metronom.c:86 +msgid "About Metronom" +msgstr "" + #: src/metronom/metronom.c:87 -msgid "About Metronom" -msgstr "" - -#: src/metronom/metronom.c:88 msgid "" "A Tact Generator by Martin Strauss \n" "\n" @@ -2872,12 +2884,12 @@ "or tact://60*3/4 to play 60 bpm in 3/4 tacts" msgstr "" -#: src/metronom/metronom.c:198 src/metronom/metronom.c:262 +#: src/metronom/metronom.c:197 src/metronom/metronom.c:261 #, c-format msgid "Tact generator: %d bpm" msgstr "" -#: src/metronom/metronom.c:200 src/metronom/metronom.c:264 +#: src/metronom/metronom.c:199 src/metronom/metronom.c:263 #, c-format msgid "Tact generator: %d bpm %d/%d" msgstr "" @@ -3069,11 +3081,11 @@ msgid "Message" msgstr "" -#: src/modplug/gui/main.cxx:45 +#: src/modplug/gui/main.cxx:48 msgid "Modplug Input Plugin for Audacious ver" msgstr "" -#: src/modplug/gui/main.cxx:46 +#: src/modplug/gui/main.cxx:49 msgid "" "\n" "Modplug sound engine written by Olivier Lapicque.\n" @@ -3083,7 +3095,7 @@ "Ported to BMP by Theofilos Intzoglou." msgstr "" -#: src/modplug/gui/main.cxx:49 +#: src/modplug/gui/main.cxx:52 msgid "About Modplug" msgstr "" @@ -3093,27 +3105,27 @@ msgid "Couldn't find pixmap file: %s" msgstr "" -#: src/mtp_up/mtp.c:35 +#: src/mtp_up/mtp.c:33 msgid "Upload selected track(s)" msgstr "" -#: src/mtp_up/mtp.c:296 +#: src/mtp_up/mtp.c:294 msgid "Upload in progress..." msgstr "" -#: src/mtp_up/mtp.c:305 +#: src/mtp_up/mtp.c:303 msgid "MTP device handler" msgstr "" -#: src/mtp_up/mtp.c:309 +#: src/mtp_up/mtp.c:307 msgid "Disconnect the device" msgstr "" -#: src/musepack/libmpc.cxx:146 +#: src/musepack/libmpc.cxx:142 msgid "Musepack Decoder Plugin 1.2" msgstr "" -#: src/musepack/libmpc.cxx:147 +#: src/musepack/libmpc.cxx:143 msgid "" "Plugin code by\n" "Benoit Amiaux\n" @@ -3123,196 +3135,226 @@ "Get latest version at http://musepack.net\n" msgstr "" -#: src/musepack/libmpc.cxx:148 +#: src/musepack/libmpc.cxx:144 msgid "Nevermind" msgstr "" -#: src/musepack/libmpc.cxx:166 +#: src/musepack/libmpc.cxx:162 msgid "Musepack Decoder Configuration" msgstr "" -#: src/musepack/libmpc.cxx:176 +#: src/musepack/libmpc.cxx:172 msgid "General Settings" msgstr "" -#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:492 +#: src/musepack/libmpc.cxx:179 src/wavpack/ui.cxx:490 msgid "Enable Dynamic Bitrate Display" msgstr "" -#: src/musepack/libmpc.cxx:187 src/wavpack/ui.cxx:498 +#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:496 msgid "Plugin" msgstr "" -#: src/musepack/libmpc.cxx:190 +#: src/musepack/libmpc.cxx:186 msgid "ReplayGain Settings" msgstr "" -#: src/musepack/libmpc.cxx:197 src/wavpack/ui.cxx:510 +#: src/musepack/libmpc.cxx:193 src/wavpack/ui.cxx:508 msgid "Enable Clipping Prevention" msgstr "" -#: src/musepack/libmpc.cxx:202 src/wavpack/ui.cxx:515 +#: src/musepack/libmpc.cxx:198 src/wavpack/ui.cxx:513 msgid "Enable ReplayGain" msgstr "" -#: src/musepack/libmpc.cxx:207 +#: src/musepack/libmpc.cxx:203 msgid "ReplayGain Type" msgstr "" +#: src/musepack/libmpc.cxx:211 +msgid "Use Track Gain" +msgstr "" + #: src/musepack/libmpc.cxx:215 -msgid "Use Track Gain" -msgstr "" - -#: src/musepack/libmpc.cxx:219 msgid "Use Album Gain" msgstr "" -#: src/musepack/libmpc.cxx:224 src/wavpack/ui.cxx:547 +#: src/musepack/libmpc.cxx:220 src/wavpack/ui.cxx:545 msgid "ReplayGain" msgstr "" -#: src/musepack/libmpc.cxx:491 src/sid/xmms-sid.glade:3144 -#: src/sid/xs_interface.c:1564 src/tta/libtta.c:304 src/wavpack/ui.cxx:152 +#: src/musepack/libmpc.cxx:487 src/sid/xmms-sid.glade:3338 +#: src/sid/xs_interface.c:1648 src/tta/libtta.c:301 src/wavpack/ui.cxx:150 msgid "Filename:" msgstr "" -#: src/musepack/libmpc.cxx:506 +#: src/musepack/libmpc.cxx:502 msgid "Musepack Tag" msgstr "" -#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:323 src/wavpack/ui.cxx:172 +#: src/musepack/libmpc.cxx:510 src/tta/libtta.c:320 src/wavpack/ui.cxx:170 msgid "Title:" msgstr "" -#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:333 src/wavpack/ui.cxx:184 +#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:330 src/wavpack/ui.cxx:182 msgid "Artist:" msgstr "" -#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:344 src/wavpack/ui.cxx:196 +#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:341 src/wavpack/ui.cxx:194 msgid "Album:" msgstr "" -#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:355 src/wavpack/ui.cxx:208 +#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:352 src/wavpack/ui.cxx:206 msgid "Comment:" msgstr "" -#: src/musepack/libmpc.cxx:530 src/tta/libtta.c:366 src/wavpack/ui.cxx:221 +#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:363 src/wavpack/ui.cxx:219 msgid "Year:" msgstr "" -#: src/musepack/libmpc.cxx:535 +#: src/musepack/libmpc.cxx:531 msgid "Track:" msgstr "" -#: src/musepack/libmpc.cxx:540 src/tta/libtta.c:390 src/wavpack/ui.cxx:248 +#: src/musepack/libmpc.cxx:536 src/tta/libtta.c:387 src/wavpack/ui.cxx:246 msgid "Genre:" msgstr "" -#: src/musepack/libmpc.cxx:551 src/sid/xmms-sid.glade:1732 -#: src/sid/xs_interface.c:820 src/wavpack/ui.cxx:267 +#: src/musepack/libmpc.cxx:547 src/sid/xmms-sid.glade:1732 +#: src/sid/xs_interface.c:832 src/skins/ui_manager.c:438 +#: src/wavpack/ui.cxx:265 msgid "Save" msgstr "" -#: src/musepack/libmpc.cxx:554 src/wavpack/ui.cxx:273 +#: src/musepack/libmpc.cxx:550 src/wavpack/ui.cxx:271 msgid "Remove Tag" msgstr "" -#: src/musepack/libmpc.cxx:562 +#: src/musepack/libmpc.cxx:558 msgid "Musepack Info" msgstr "" +#: src/musepack/libmpc.cxx:591 +#, c-format +msgid "Streamversion %d" +msgstr "" + +#: src/musepack/libmpc.cxx:592 +#, c-format +msgid "Encoder: %s" +msgstr "" + +#: src/musepack/libmpc.cxx:593 +#, c-format +msgid "Profile: %s" +msgstr "" + +#: src/musepack/libmpc.cxx:594 +#, c-format +msgid "Average bitrate: %6.1f kbps" +msgstr "" + #: src/musepack/libmpc.cxx:595 #, c-format -msgid "Streamversion %d" +msgid "Samplerate: %d Hz" msgstr "" #: src/musepack/libmpc.cxx:596 #, c-format -msgid "Encoder: %s" +msgid "Channels: %d" msgstr "" #: src/musepack/libmpc.cxx:597 #, c-format -msgid "Profile: %s" +msgid "Length: %d:\\%.2d" msgstr "" #: src/musepack/libmpc.cxx:598 #, c-format -msgid "Average bitrate: %6.1f kbps" +msgid "File size: %d Bytes" msgstr "" #: src/musepack/libmpc.cxx:599 #, c-format -msgid "Samplerate: %d Hz" +msgid "Track Peak: %5u" msgstr "" #: src/musepack/libmpc.cxx:600 #, c-format -msgid "Channels: %d" +msgid "Track Gain: %-+2.2f dB" msgstr "" #: src/musepack/libmpc.cxx:601 #, c-format -msgid "Length: %d:\\%.2d" +msgid "Album Peak: %5u" msgstr "" #: src/musepack/libmpc.cxx:602 #, c-format -msgid "File size: %d Bytes" -msgstr "" - -#: src/musepack/libmpc.cxx:603 -#, c-format -msgid "Track Peak: %5u" -msgstr "" - -#: src/musepack/libmpc.cxx:604 -#, c-format -msgid "Track Gain: %-+2.2f dB" -msgstr "" - -#: src/musepack/libmpc.cxx:605 -#, c-format -msgid "Album Peak: %5u" -msgstr "" - -#: src/musepack/libmpc.cxx:606 -#, c-format msgid "Album Gain: %-+5.2f dB" msgstr "" -#: src/musepack/libmpc.cxx:634 src/tta/libtta.c:413 src/wavpack/ui.cxx:409 +#: src/musepack/libmpc.cxx:630 src/tta/libtta.c:410 src/wavpack/ui.cxx:407 #, c-format msgid "File Info - %s" msgstr "" -#: src/null/null.c:61 +#: src/null/null.c:58 msgid "Null output plugin " msgstr "" +#: src/null/null.c:59 +msgid "" +" by Christian Birchinger \n" +"based on the XMMS plugin by Håvard Kvål " +msgstr "" + #: src/null/null.c:62 -msgid "" -" by Christian Birchinger \n" -"based on the XMMS plugin by Håvard Kvål " -msgstr "" - -#: src/null/null.c:65 msgid "About Null Output" msgstr "" -#: src/null/null.c:94 +#: src/null/null.c:91 msgid "Null output preferences" msgstr "" -#: src/null/null.c:103 +#: src/null/null.c:100 msgid "Run in real time" msgstr "" -#: src/OSS4/about.c:42 +#: src/OSS4/configure.c:118 src/OSS/configure.c:150 +#, c-format +msgid "Default (%s)" +msgstr "" + +#: src/OSS4/configure.c:168 src/OSS/configure.c:200 +msgid "OSS Driver configuration" +msgstr "" + +#: src/OSS4/configure.c:206 src/OSS/configure.c:238 src/OSS/configure.c:279 +msgid "Use alternate device:" +msgstr "" + +#: src/OSS4/configure.c:228 src/OSS/configure.c:301 src/sun/configure.c:246 +msgid "Devices" +msgstr "" + +#: src/OSS4/configure.c:270 src/OSS/configure.c:342 +msgid "Mixer Settings:" +msgstr "" + +#: src/OSS4/configure.c:276 +msgid "Save VMIX volume between sessions" +msgstr "" + +#: src/OSS4/configure.c:282 src/OSS/configure.c:354 src/sun/configure.c:392 +msgid "Mixer" +msgstr "" + +#: src/OSS4/OSS4.c:38 msgid "About OSSv4 Driver" msgstr "" -#: src/OSS4/about.c:43 +#: src/OSS4/OSS4.c:39 msgid "" "Audacious OSSv4 Driver\n" "\n" @@ -3335,40 +3377,15 @@ "USA." msgstr "" -#: src/OSS4/configure.c:120 src/OSS/configure.c:151 -#, c-format -msgid "Default (%s)" -msgstr "" - -#: src/OSS4/configure.c:170 src/OSS/configure.c:201 -msgid "OSS Driver configuration" -msgstr "" - -#: src/OSS4/configure.c:208 src/OSS/configure.c:239 src/OSS/configure.c:280 -msgid "Use alternate device:" -msgstr "" - -#: src/OSS4/configure.c:230 src/OSS/configure.c:302 src/sun/configure.c:248 -msgid "Devices" -msgstr "" - -#: src/OSS4/configure.c:272 src/OSS/configure.c:343 -msgid "Mixer Settings:" -msgstr "" - -#: src/OSS4/configure.c:278 -msgid "Save VMIX volume between sessions" -msgstr "" - -#: src/OSS4/configure.c:284 src/OSS/configure.c:355 src/sun/configure.c:394 -msgid "Mixer" -msgstr "" - -#: src/OSS/about.c:39 +#: src/OSS/configure.c:348 +msgid "Volume controls Master not PCM" +msgstr "" + +#: src/OSS/OSS.c:37 msgid "About OSS Driver" msgstr "" -#: src/OSS/about.c:40 +#: src/OSS/OSS.c:38 msgid "" "Audacious OSS Driver\n" "\n" @@ -3388,19 +3405,15 @@ "USA." msgstr "" -#: src/OSS/configure.c:349 -msgid "Volume controls Master not PCM" -msgstr "" - #: src/projectm-1.0/main.c:70 msgid "_Random" msgstr "" -#: src/pulse_audio/pulse_audio.c:722 +#: src/pulse_audio/pulse_audio.c:720 msgid "About Audacious PulseAudio Output Plugin" msgstr "" -#: src/pulse_audio/pulse_audio.c:723 +#: src/pulse_audio/pulse_audio.c:721 msgid "" "Audacious PulseAudio Output Plugin\n" "\n" @@ -3420,27 +3433,27 @@ "USA." msgstr "" -#: src/scrobbler/configure.c:138 +#: src/scrobbler/configure.c:134 msgid "Services" msgstr "" -#: src/scrobbler/configure.c:160 src/scrobbler/configure.c:199 +#: src/scrobbler/configure.c:156 src/scrobbler/configure.c:195 msgid "Username:" msgstr "" -#: src/scrobbler/configure.c:166 src/scrobbler/configure.c:205 +#: src/scrobbler/configure.c:162 src/scrobbler/configure.c:201 msgid "Password:" msgstr "" -#: src/scrobbler/configure.c:183 +#: src/scrobbler/configure.c:179 msgid "Last.FM" msgstr "" -#: src/scrobbler/configure.c:222 +#: src/scrobbler/configure.c:218 msgid "Gerpok" msgstr "" -#: src/scrobbler/gtkstuff.c:21 +#: src/scrobbler/gtkstuff.c:18 msgid "" "Audacious AudioScrobbler Plugin\n" "\n" @@ -3448,11 +3461,11 @@ "com>\n" msgstr "" -#: src/scrobbler/gtkstuff.c:23 +#: src/scrobbler/gtkstuff.c:20 msgid "About Scrobbler Plugin" msgstr "" -#: src/scrobbler/gtkstuff.c:36 +#: src/scrobbler/gtkstuff.c:33 #, c-format msgid "" "There has been an error that may require your attention.\n" @@ -3462,106 +3475,106 @@ "%s\n" msgstr "" -#: src/scrobbler/gtkstuff.c:43 +#: src/scrobbler/gtkstuff.c:40 msgid "Scrobbler Error" msgstr "" -#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:221 +#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:233 msgid "Audacious-SID configuration" msgstr "" -#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:257 +#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:269 msgid "8-bit" msgstr "" -#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:264 +#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:276 msgid "16-bit" msgstr "" -#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:271 +#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:283 msgid "Resolution:" msgstr "" -#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:302 +#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:314 msgid "Autopanning" msgstr "" -#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:309 +#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:321 msgid "Channels:" msgstr "" -#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:353 +#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:365 msgid "Samplerate:" msgstr "" -#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:370 +#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:382 msgid "Use oversampling" msgstr "" -#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:381 +#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:393 msgid "Factor:" msgstr "" -#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:393 +#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:405 msgid "Large factors require more CPU-power" msgstr "" -#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:399 +#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:411 msgid "Oversampling:" msgstr "" -#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:404 +#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:416 msgid "Audio" msgstr "" -#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:436 +#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:448 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "clock speed/frequency. Otherwise the speed is determined from played file " "itself." msgstr "" -#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:432 +#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:444 msgid "Force speed" msgstr "" -#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:442 +#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:454 msgid "" "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. " "Most of SID-tunes have been made for PAL computers." msgstr "" -#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:438 +#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:450 msgid "PAL (50 Hz)" msgstr "" -#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:450 +#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:462 msgid "" "NTSC is the TV standard with 60Hz vertical refresh rate (and other features " "that differ from PAL). It is mainly used in United States, Japan and certain " "other countries." msgstr "" -#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:446 +#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:458 msgid "NTSC (60 Hz)" msgstr "" -#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:454 +#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:466 msgid "Clock speed:" msgstr "" -#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:475 +#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:487 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "SID-chip model. Otherwise the preferred SID model is determined from the " "file (if PSIDv2NG type) or if not available, this setting is used." msgstr "" -#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:471 +#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:483 msgid "Force model" msgstr "" -#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:481 +#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:493 msgid "" "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 " "in few ways, having much fuller filter (which, due to design error, is never " @@ -3569,89 +3582,89 @@ "which enables playing of digital samples." msgstr "" -#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:477 +#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:489 msgid "MOS 6581" msgstr "" -#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:485 +#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:497 msgid "MOS 8580" msgstr "" -#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:492 +#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:504 msgid "SID model:" msgstr "" -#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:513 +#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:525 msgid "" "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most " "cases, though." msgstr "" -#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:509 +#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:521 msgid "SIDPlay 1 (frame-based)" msgstr "" -#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:521 +#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:533 msgid "" "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact " "emulation." msgstr "" -#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:517 +#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:529 msgid "SIDPlay 2 (cycle-based)" msgstr "" -#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:525 +#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:537 msgid "Emulation library selection:" msgstr "" -#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:542 +#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:554 msgid "Real C64 (SIDPlay 2 only)" msgstr "" -#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:549 +#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:561 msgid "Bank switching" msgstr "" -#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:556 +#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:568 msgid "Transparent ROM" msgstr "" -#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:563 +#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:575 msgid "PlaySID environment" msgstr "" -#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:570 +#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:582 msgid "Memory mode:" msgstr "" -#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:575 +#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:587 msgid "Emu#1" msgstr "" -#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:602 +#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:614 msgid "" "This setting can be used to enable libSIDPlay2's \"optimization mode\", " "which in downgrades the emulation from cycle-exact to something similar to " "frame-exact. The result is lower CPU usage, but worse accuracy." msgstr "" -#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:598 +#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:610 msgid "Optimization mode (faster, inaccurate)" msgstr "" -#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:608 +#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:620 msgid "" "reSID is the software SID-chip simulator based on SID reverse-engineering, " "created by Dag Lem. It is probably the closest thing to real SID available " "as software-only emulation." msgstr "" -#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:604 +#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:616 msgid "reSID-emulation" msgstr "" -#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:616 +#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:628 msgid "" "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a " "real SID-chip. Software can be used to control the HardSID and combined with " @@ -3660,47 +3673,47 @@ "http://www.hardsid.com/" msgstr "" -#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:612 +#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:624 msgid "HardSID" msgstr "" -#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:620 +#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:632 msgid "SIDPlay 2 options:" msgstr "" -#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:641 +#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:653 msgid "" "Fastest and also worst sounding sampling method, simply picks nearest " "neighbouring sample." msgstr "" -#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:637 +#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:649 msgid "Fast (nearest neighbour)" msgstr "" -#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:649 +#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:661 msgid "" "Uses linear interpolation between samples, yielding higher audio quality " "with less sampling noise." msgstr "" -#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:645 +#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:657 msgid "Linear interpolation" msgstr "" -#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:660 +#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:672 msgid "Resampling (FIR)" msgstr "" -#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:667 +#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:679 msgid "reSID sampling options:" msgstr "" -#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:672 +#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:684 msgid "Emu#2" msgstr "" -#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:688 +#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:700 msgid "" "This option enables emulation of SID filter. The filter is an essential part " "of SID's sound capacity, but accurate emulation of it may require quite much " @@ -3708,294 +3721,305 @@ "authentic at all if they utilize the filter." msgstr "" -#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:684 +#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:696 msgid "Emulate filters" msgstr "" -#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:713 +#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:725 msgid "FS" msgstr "" -#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:730 +#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:742 msgid "FM" msgstr "" -#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:747 +#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:759 msgid "FT" msgstr "" -#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:758 +#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:770 msgid "Reset values" msgstr "" -#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:763 +#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:775 msgid "SIDPlay1" msgstr "" -#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:804 +#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:816 msgid "Export" msgstr "" -#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:812 +#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:824 msgid "Use" msgstr "" -#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:828 +#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:840 +#: src/skins/ui_manager.c:437 msgid "Import" msgstr "" -#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:836 +#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:848 +#: src/skins/ui_manager.c:439 msgid "Delete" msgstr "" -#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:850 +#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:862 msgid "Filter curve:" msgstr "" -#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:855 +#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:867 msgid "SIDPlay2" msgstr "" -#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:861 +#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:873 msgid "Filters" msgstr "" -#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:888 +#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:900 msgid "" "If enabled, the tune is played at least for the specified time, adding " "silence to the end if necessary." msgstr "" -#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:884 +#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:896 msgid "Play at least for specified time" msgstr "" #: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133 -#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:895 -#: src/sid/xs_interface.c:949 src/sid/xs_interface.c:1109 +#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:907 +#: src/sid/xs_interface.c:961 src/sid/xs_interface.c:1141 msgid "Playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:915 +#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:927 msgid "Minimum playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:936 +#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:948 msgid "" "If enabled, tune is played until specified duration is reached (aka maximum " "playtime)." msgstr "" -#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:932 +#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:944 msgid "Play for specified time maximum" msgstr "" -#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:942 +#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:954 msgid "" "If enabled, the maximum playtime is applied only if song/tune length is not " "known." msgstr "" -#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:938 +#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:950 msgid "Only when song length is unknown" msgstr "" -#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:969 +#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:981 msgid "Maximum playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:990 +#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:1002 msgid "" "This option enables using of XSIDPLAY compatible song length database. " "(Refer to Audacious-SID documentation for more information)" msgstr "" -#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:986 +#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:998 msgid "Use XSIDPLAY-compatible database" msgstr "" -#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:997 +#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:1009 msgid "DB-file:" msgstr "" -#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1007 +#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1019 msgid "Database path and filename" msgstr "" -#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1014 +#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1026 msgid "Browse for song length-database file" msgstr "" -#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1016 +#: src/sid/xmms-sid.glade:2418 src/sid/xs_interface.c:1048 msgid "Song length database:" msgstr "" -#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1021 +#: src/sid/xmms-sid.glade:2454 src/sid/xs_interface.c:1053 msgid "Songlength" msgstr "" -#: src/sid/xmms-sid.glade:2430 src/sid/xs_interface.c:1043 +#: src/sid/xmms-sid.glade:2492 src/sid/xs_interface.c:1075 msgid "" "By enabling this option you can specify a custom Tuplez formatting string " "for SID-files. The SID-plugin specific Tuplez tags are described shortly " "below." msgstr "" -#: src/sid/xmms-sid.glade:2432 src/sid/xs_interface.c:1039 +#: src/sid/xmms-sid.glade:2494 src/sid/xs_interface.c:1071 msgid "Override generic Tuplez format string" msgstr "" -#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1054 +#: src/sid/xmms-sid.glade:2519 src/sid/xs_interface.c:1086 msgid "Tuplez format string for SID-files" msgstr "" -#: src/sid/xmms-sid.glade:2477 src/sid/xs_interface.c:1057 -msgid "Descriptions of SID-specific Tuplez fields go here. :D" -msgstr "" - -#: src/sid/xmms-sid.glade:2511 src/sid/xs_interface.c:1065 +#: src/sid/xmms-sid.glade:2539 src/sid/xs_interface.c:1089 +msgid "" +"SID-specific Tuplez fields:\n" +"\n" +"sid-format\t\t- Specific fileformat\n" +"sid-model\t\t- 6581 or 8580\n" +"sid-speed\t\t- Timing or speed: PAL/NTSC/etc.\n" +"\n" +"Other \"special\" fields set:\n" +"\n" +"subsong-num, subsong-id" +msgstr "" + +#: src/sid/xmms-sid.glade:2581 src/sid/xs_interface.c:1097 msgid "Song title format:" msgstr "" -#: src/sid/xmms-sid.glade:2584 src/sid/xs_interface.c:1096 +#: src/sid/xmms-sid.glade:2654 src/sid/xs_interface.c:1128 msgid "" "If enabled, sub-tunes of each file will be added to playlist. If disabled, " "only the default sub-tune will be added." msgstr "" -#: src/sid/xmms-sid.glade:2586 src/sid/xs_interface.c:1092 +#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1124 msgid "Add sub-tunes to playlist" msgstr "" -#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1102 +#: src/sid/xmms-sid.glade:2675 src/sid/xs_interface.c:1134 msgid "Only add sub-tunes that have a duration of at least specified time." msgstr "" -#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1098 +#: src/sid/xmms-sid.glade:2677 src/sid/xs_interface.c:1130 msgid "Only tunes with specified minimum duration" msgstr "" -#: src/sid/xmms-sid.glade:2710 src/sid/xs_interface.c:1129 +#: src/sid/xmms-sid.glade:2780 src/sid/xs_interface.c:1161 msgid "Sub-tune handling:" msgstr "" -#: src/sid/xmms-sid.glade:2755 src/sid/xs_interface.c:1150 +#: src/sid/xmms-sid.glade:2825 src/sid/xs_interface.c:1182 msgid "" "If this option is enabled (and the database & HVSC settings below are " "correctly set), Audacious-SID will use and display additional information " "from STIL database when HVSC SIDs are played." msgstr "" -#: src/sid/xmms-sid.glade:2757 src/sid/xs_interface.c:1146 +#: src/sid/xmms-sid.glade:2827 src/sid/xs_interface.c:1178 msgid "Use STIL database" msgstr "" -#: src/sid/xmms-sid.glade:2782 src/sid/xs_interface.c:1157 +#: src/sid/xmms-sid.glade:2852 src/sid/xs_interface.c:1189 msgid "STIL file:" msgstr "" -#: src/sid/xmms-sid.glade:2819 src/sid/xs_interface.c:1173 +#: src/sid/xmms-sid.glade:2889 src/sid/xs_interface.c:1205 msgid "" "Path and filename of STIL database file (STIL.txt), usually found from " "HVSC's DOCUMENTS-subdirectory." msgstr "" -#: src/sid/xmms-sid.glade:2854 src/sid/xs_interface.c:1186 +#: src/sid/xmms-sid.glade:2924 src/sid/xs_interface.c:1218 msgid "Browse for STIL-database file" msgstr "" -#: src/sid/xmms-sid.glade:2888 src/sid/xs_interface.c:1193 +#: src/sid/xmms-sid.glade:3020 src/sid/xs_interface.c:1245 msgid "HVSC path:" msgstr "" -#: src/sid/xmms-sid.glade:2925 src/sid/xs_interface.c:1209 +#: src/sid/xmms-sid.glade:3057 src/sid/xs_interface.c:1261 msgid "" "Path to base-directory of your High Voltage SID Collection (HVSC), for " "example /media/C64Music/" msgstr "" -#: src/sid/xmms-sid.glade:2960 src/sid/xs_interface.c:1222 +#: src/sid/xmms-sid.glade:3092 src/sid/xs_interface.c:1274 msgid "Browse for HVSC path" msgstr "" -#: src/sid/xmms-sid.glade:2990 src/sid/xs_interface.c:1224 +#: src/sid/xmms-sid.glade:3184 src/sid/xs_interface.c:1296 msgid "SID Tune Information List (STIL) database:" msgstr "" -#: src/sid/xmms-sid.glade:3063 src/sid/xs_interface.c:1248 +#: src/sid/xmms-sid.glade:3257 src/sid/xs_interface.c:1320 msgid "Accept and update changes" msgstr "" -#: src/sid/xmms-sid.glade:3077 src/sid/xs_interface.c:1255 +#: src/sid/xmms-sid.glade:3271 src/sid/xs_interface.c:1327 msgid "Cancel any changes" msgstr "" -#: src/sid/xmms-sid.glade:3102 src/sid/xs_interface.c:1543 +#: src/sid/xmms-sid.glade:3296 src/sid/xs_interface.c:1627 msgid "Audacious-SID Fileinfo" msgstr "" -#: src/sid/xmms-sid.glade:3172 src/sid/xs_interface.c:1572 +#: src/sid/xmms-sid.glade:3366 src/sid/xs_interface.c:1656 msgid "Songname:" msgstr "" -#: src/sid/xmms-sid.glade:3200 src/sid/xs_interface.c:1580 +#: src/sid/xmms-sid.glade:3394 src/sid/xs_interface.c:1664 msgid "Composer:" msgstr "" -#: src/sid/xmms-sid.glade:3228 src/sid/xs_interface.c:1588 +#: src/sid/xmms-sid.glade:3422 src/sid/xs_interface.c:1672 msgid "Copyright:" msgstr "" -#: src/sid/xmms-sid.glade:3342 src/sid/xs_interface.c:1632 +#: src/sid/xmms-sid.glade:3536 src/sid/xs_interface.c:1716 msgid "Song Information:" msgstr "" -#: src/sid/xmms-sid.glade:3416 src/sid/xs_interface.c:1667 +#: src/sid/xmms-sid.glade:3610 src/sid/xs_interface.c:1751 msgid "Author:" msgstr "" -#: src/sid/xmms-sid.glade:3514 src/sid/xs_interface.c:1701 +#: src/sid/xmms-sid.glade:3708 src/sid/xs_interface.c:1785 msgid "Duration:" msgstr "" -#: src/sid/xmms-sid.glade:3608 src/sid/xs_interface.c:1735 +#: src/sid/xmms-sid.glade:3802 src/sid/xs_interface.c:1819 msgid "Sub-tune Information:" msgstr "" -#: src/sid/xmms-sid.glade:3662 src/sid/xs_interface.c:1796 +#: src/sid/xmms-sid.glade:3856 src/sid/xs_interface.c:1880 msgid "Select HVSC song length database" msgstr "" -#: src/sid/xmms-sid.glade:3704 src/sid/xs_interface.c:1837 +#: src/sid/xmms-sid.glade:3898 src/sid/xs_interface.c:1921 msgid "Select STIL-database" msgstr "" -#: src/sid/xmms-sid.glade:3746 src/sid/xs_interface.c:1878 +#: src/sid/xmms-sid.glade:3940 src/sid/xs_interface.c:1962 msgid "Select HVSC location prefix" msgstr "" -#: src/sid/xmms-sid.glade:3788 src/sid/xs_interface.c:1919 +#: src/sid/xmms-sid.glade:3982 src/sid/xs_interface.c:2003 msgid "Select SIDPlay2 filters file for importing" msgstr "" -#: src/sid/xmms-sid.glade:3830 src/sid/xs_interface.c:1960 +#: src/sid/xmms-sid.glade:4024 src/sid/xs_interface.c:2044 msgid "Select SIDPlay2 filters file for exporting" msgstr "" -#: src/sid/xmms-sid.glade:3871 src/sid/xmms-sid.glade:3953 -#: src/sid/xs_interface.c:2008 src/sid/xs_interface.c:2021 +#: src/sid/xmms-sid.glade:4065 src/sid/xmms-sid.glade:4147 +#: src/sid/xs_interface.c:2092 src/sid/xs_interface.c:2105 msgid "Confirm selected action" msgstr "" -#: src/sid/xmms-sid.glade:3909 src/sid/xs_interface.c:2038 +#: src/sid/xmms-sid.glade:4103 src/sid/xs_interface.c:2122 msgid "Yes" msgstr "" -#: src/sid/xmms-sid.glade:3921 src/sid/xs_interface.c:2044 +#: src/sid/xmms-sid.glade:4115 src/sid/xs_interface.c:2128 msgid "No" msgstr "" -#: src/sid/xs_about.c:84 src/wma/wma.c:121 +#: src/sid/xs_about.c:84 src/wma/wma.c:118 #, c-format msgid "About %s" msgstr "" @@ -4009,11 +4033,1059 @@ msgid "Tune #%i: " msgstr "" -#: src/sndfile/plugin.c:548 +#: src/skins/plugin.c:128 +msgid "About Skinned GUI" +msgstr "" + +#: src/skins/plugin.c:129 +msgid "" +"Copyright (c) 2008, by Tomasz Moń \n" +"\n" +msgstr "" + +#: src/skins/skins_cfg.c:329 +msgid "_Fonts" +msgstr "" + +#: src/skins/skins_cfg.c:330 +msgid "_Player:" +msgstr "" + +#: src/skins/skins_cfg.c:330 +msgid "Select main player window font:" +msgstr "" + +#: src/skins/skins_cfg.c:331 +msgid "_Playlist:" +msgstr "" + +#: src/skins/skins_cfg.c:331 +msgid "Select playlist font:" +msgstr "" + +#: src/skins/skins_cfg.c:332 +msgid "Use Bitmap fonts if available" +msgstr "" + +#: src/skins/skins_cfg.c:332 +msgid "" +"Use bitmap fonts if they are available. Bitmap fonts do not support Unicode " +"strings." +msgstr "" + +#: src/skins/skins_cfg.c:333 +msgid "_Miscellaneous" +msgstr "" + +#: src/skins/skins_cfg.c:334 +msgid "Show track numbers in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:336 +msgid "Show separators in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:338 +msgid "Show window manager decoration" +msgstr "" + +#: src/skins/skins_cfg.c:339 +msgid "This enables the window manager to show decorations for windows." +msgstr "" + +#: src/skins/skins_cfg.c:340 +msgid "Use two-way text scroller" +msgstr "" + +#: src/skins/skins_cfg.c:341 +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 "" + +#: src/skins/skins_cfg.c:342 +msgid "Disable inline gtk theme" +msgstr "" + +#: src/skins/skins_cfg.c:343 +msgid "Allow loading incomplete skins" +msgstr "" + +#: src/skins/skins_cfg.c:344 +msgid "" +"If selected, audacious won't refuse loading broken skins. Use only if your " +"favourite skin doesn't work" +msgstr "" + +#: src/skins/skins_cfg.c:410 +msgid "Color Adjustment" +msgstr "" + +#: src/skins/skins_cfg.c:417 +msgid "" +"Audacious allows you to alter the color balance of the skinned UI. The " +"sliders below will allow you to do this." +msgstr "" + +#: src/skins/skins_cfg.c:427 +msgid "Blue" +msgstr "" + +#: src/skins/skins_cfg.c:434 +msgid "Green" +msgstr "" + +#: src/skins/skins_cfg.c:441 +msgid "Red" +msgstr "" + +#: src/skins/skins_cfg.c:571 +msgid "Audacious Skinned GUI Configuration" +msgstr "" + +#: src/skins/skins_cfg.c:596 +msgid "_Skin" +msgstr "" + +#: src/skins/ui_equalizer.c:494 +msgid "Audacious Equalizer" +msgstr "" + +#: src/skins/ui_equalizer.c:794 +#, c-format +msgid "Error importing Winamp EQF file '%s'" +msgstr "" + +#: src/skins/ui_equalizer.c:1172 +msgid "Presets" +msgstr "" + +#: src/skins/ui_main.c:392 +#, c-format +msgid "%s - Audacious" +msgstr "" + +#: src/skins/ui_main.c:394 src/skins/ui_main.c:2397 +msgid "Audacious" +msgstr "" + +#: src/skins/ui_main.c:641 +msgid "VBR" +msgstr "" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +msgid "stereo" +msgstr "" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +msgid "mono" +msgstr "" + +#: src/skins/ui_main.c:957 +msgid "Can't jump to time when no track is being played.\n" +msgstr "" + +#: src/skins/ui_main.c:972 src/skins/ui_manager.c:425 +#: src/skins/ui_manager.c:426 +msgid "Jump to Time" +msgstr "" + +#: src/skins/ui_main.c:993 +msgid "minutes:seconds" +msgstr "" + +#: src/skins/ui_main.c:1003 +msgid "Track length:" +msgstr "" + +#: src/skins/ui_main.c:1149 +msgid "Audacious - visibility warning" +msgstr "" + +#: src/skins/ui_main.c:1152 +msgid "Show main player window" +msgstr "" + +#: src/skins/ui_main.c:1153 +msgid "Ignore" +msgstr "" + +#: src/skins/ui_main.c:1159 +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)." +msgstr "" + +#: src/skins/ui_main.c:1165 +msgid "Always ignore, show/hide is controlled remotely" +msgstr "" + +#: src/skins/ui_main.c:1210 +msgid "Audacious - broken GTK engine usage warning" +msgstr "" + +#: src/skins/ui_main.c:1218 +#, c-format +msgid "" +"Broken GTK engine in use\n" +"\n" +"Audacious has detected that you are using a broken GTK engine.\n" +"\n" +"The theme engine you are using, %s, is incompatible with some of the " +"features used by modern skins. The incompatible features have been disabled " +"for this session.\n" +"\n" +"To use these features, please consider using a different GTK theme engine." +msgstr "" + +#: src/skins/ui_main.c:1229 +msgid "Do not display this warning again" +msgstr "" + +#: src/skins/ui_main.c:1253 +msgid "Enter location to play:" +msgstr "" + +#: src/skins/ui_main.c:1497 +#, c-format +msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" +msgstr "" + +#: src/skins/ui_main.c:1527 +#, c-format +msgid "Volume: %d%%" +msgstr "" + +#: src/skins/ui_main.c:1555 +#, c-format +msgid "Balance: %d%% left" +msgstr "" + +#: src/skins/ui_main.c:1559 +msgid "Balance: center" +msgstr "" + +#: src/skins/ui_main.c:1563 +#, c-format +msgid "Balance: %d%% right" +msgstr "" + +#: src/skins/ui_main.c:1881 +msgid "Options Menu" +msgstr "" + +#: src/skins/ui_main.c:1885 +msgid "Disable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1887 +msgid "Enable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1890 +msgid "File Info Box" +msgstr "" + +#: src/skins/ui_main.c:1894 +msgid "Disable 'GUI Scaling'" +msgstr "" + +#: src/skins/ui_main.c:1896 +msgid "Enable 'GUI Scaling'" +msgstr "" + +#: src/skins/ui_main.c:1899 +msgid "Visualization Menu" +msgstr "" + +#: src/skins/ui_main.c:1946 +msgid "" +"Couldn't open audio.\n" +"\n" +"Please check that:\n" +"1. You have the correct output plugin selected.\n" +"2. No other programs is blocking the soundcard.\n" +"3. Your soundcard is configured properly.\n" +msgstr "" + +#: src/skins/ui_manager.c:53 src/skins/ui_manager.c:54 +msgid "Autoscroll Songname" +msgstr "" + +#: src/skins/ui_manager.c:56 src/skins/ui_manager.c:57 +msgid "Stop after Current Song" +msgstr "" + +#: src/skins/ui_manager.c:59 src/skins/ui_manager.c:60 +msgid "Peaks" +msgstr "" + +#: src/skins/ui_manager.c:62 src/skins/ui_manager.c:63 +msgid "Repeat" +msgstr "" + +#: src/skins/ui_manager.c:65 src/skins/ui_manager.c:66 +msgid "Shuffle" +msgstr "" + +#: src/skins/ui_manager.c:68 src/skins/ui_manager.c:69 +msgid "No Playlist Advance" +msgstr "" + +#: src/skins/ui_manager.c:71 src/skins/ui_manager.c:72 +msgid "Show Player" +msgstr "" + +#: src/skins/ui_manager.c:74 src/skins/ui_manager.c:75 +msgid "Show Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:77 src/skins/ui_manager.c:78 +msgid "Show Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:80 src/skins/ui_manager.c:81 +msgid "Always on Top" +msgstr "" + +#: src/skins/ui_manager.c:83 src/skins/ui_manager.c:84 +msgid "Put on All Workspaces" +msgstr "" + +#: src/skins/ui_manager.c:86 src/skins/ui_manager.c:87 +msgid "Roll up Player" +msgstr "" + +#: src/skins/ui_manager.c:89 src/skins/ui_manager.c:90 +msgid "Roll up Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:92 src/skins/ui_manager.c:93 +msgid "Roll up Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:95 src/sndstretch/sndstretch_xmms.c:375 +msgid "Scale" +msgstr "" + +#: src/skins/ui_manager.c:96 +msgid "DoubleSize" +msgstr "" + +#: src/skins/ui_manager.c:98 src/skins/ui_manager.c:99 +msgid "Easy Move" +msgstr "" + +#: src/skins/ui_manager.c:107 +msgid "Analyzer" +msgstr "" + +#: src/skins/ui_manager.c:108 +msgid "Scope" +msgstr "" + +#: src/skins/ui_manager.c:109 +msgid "Voiceprint" +msgstr "" + +#: src/skins/ui_manager.c:110 +msgid "Off" +msgstr "" + +#: src/skins/ui_manager.c:114 src/skins/ui_manager.c:131 +#: src/skins/ui_manager.c:137 +msgid "Normal" +msgstr "" + +#: src/skins/ui_manager.c:115 src/skins/ui_manager.c:132 +msgid "Fire" +msgstr "" + +#: src/skins/ui_manager.c:116 +msgid "Vertical Lines" +msgstr "" + +#: src/skins/ui_manager.c:120 +msgid "Lines" +msgstr "" + +#: src/skins/ui_manager.c:121 +msgid "Bars" +msgstr "" + +#: src/skins/ui_manager.c:125 +msgid "Dot Scope" +msgstr "" + +#: src/skins/ui_manager.c:126 +msgid "Line Scope" +msgstr "" + +#: src/skins/ui_manager.c:127 +msgid "Solid Scope" +msgstr "" + +#: src/skins/ui_manager.c:133 +msgid "Ice" +msgstr "" + +#: src/skins/ui_manager.c:138 +msgid "Smooth" +msgstr "" + +#: src/skins/ui_manager.c:142 +msgid "Full (~50 fps)" +msgstr "" + +#: src/skins/ui_manager.c:143 +msgid "Half (~25 fps)" +msgstr "" + +#: src/skins/ui_manager.c:144 +msgid "Quarter (~13 fps)" +msgstr "" + +#: src/skins/ui_manager.c:145 +msgid "Eighth (~6 fps)" +msgstr "" + +#: src/skins/ui_manager.c:149 src/skins/ui_manager.c:157 +msgid "Slowest" +msgstr "" + +#: src/skins/ui_manager.c:150 src/skins/ui_manager.c:158 +msgid "Slow" +msgstr "" + +#: src/skins/ui_manager.c:151 src/skins/ui_manager.c:159 +msgid "Medium" +msgstr "" + +#: src/skins/ui_manager.c:152 src/skins/ui_manager.c:160 +msgid "Fast" +msgstr "" + +#: src/skins/ui_manager.c:153 src/skins/ui_manager.c:161 +msgid "Fastest" +msgstr "" + +#: src/skins/ui_manager.c:165 +msgid "Time Elapsed" +msgstr "" + +#: src/skins/ui_manager.c:166 +msgid "Time Remaining" +msgstr "" + +#: src/skins/ui_manager.c:180 src/skins/ui_manager.c:181 +msgid "Pause" +msgstr "" + +#: src/skins/ui_manager.c:186 src/skins/ui_manager.c:187 +msgid "Previous" +msgstr "" + +#: src/skins/ui_manager.c:189 src/skins/ui_manager.c:190 +msgid "Next" +msgstr "" + +#: src/skins/ui_manager.c:195 +msgid "Visualization" +msgstr "" + +#: src/skins/ui_manager.c:196 +msgid "Visualization Mode" +msgstr "" + +#: src/skins/ui_manager.c:197 +msgid "Analyzer Mode" +msgstr "" + +#: src/skins/ui_manager.c:198 +msgid "Scope Mode" +msgstr "" + +#: src/skins/ui_manager.c:199 +msgid "Voiceprint Mode" +msgstr "" + +#: src/skins/ui_manager.c:200 +msgid "WindowShade VU Mode" +msgstr "" + +#: src/skins/ui_manager.c:201 +msgid "Refresh Rate" +msgstr "" + +#: src/skins/ui_manager.c:202 +msgid "Analyzer Falloff" +msgstr "" + +#: src/skins/ui_manager.c:203 +msgid "Peaks Falloff" +msgstr "" + +#: src/skins/ui_manager.c:208 +msgid "Playlist" +msgstr "" + +#: src/skins/ui_manager.c:210 src/skins/ui_manager.c:211 +msgid "New Playlist" +msgstr "" + +#: src/skins/ui_manager.c:213 src/skins/ui_manager.c:214 +msgid "Select Next Playlist" +msgstr "" + +#: src/skins/ui_manager.c:216 src/skins/ui_manager.c:217 +msgid "Select Previous Playlist" +msgstr "" + +#: src/skins/ui_manager.c:219 src/skins/ui_manager.c:220 +msgid "Delete Playlist" +msgstr "" + +#: src/skins/ui_manager.c:222 +msgid "Load List" +msgstr "" + +#: src/skins/ui_manager.c:223 +msgid "Loads a playlist file into the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:225 +msgid "Save List" +msgstr "" + +#: src/skins/ui_manager.c:226 +msgid "Saves the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:228 +msgid "Save Default List" +msgstr "" + +#: src/skins/ui_manager.c:229 +msgid "Saves the selected playlist to the default location." +msgstr "" + +#: src/skins/ui_manager.c:232 +msgid "Refresh List" +msgstr "" + +#: src/skins/ui_manager.c:233 +msgid "Refreshes metadata associated with a playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:236 +msgid "List Manager" +msgstr "" + +#: src/skins/ui_manager.c:237 +msgid "Opens the playlist manager." +msgstr "" + +#: src/skins/ui_manager.c:243 +msgid "View" +msgstr "" + +#: src/skins/ui_manager.c:247 +msgid "Add Internet Address..." +msgstr "" + +#: src/skins/ui_manager.c:248 +msgid "Adds a remote track to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:251 +msgid "Add Files..." +msgstr "" + +#: src/skins/ui_manager.c:252 +msgid "Adds files to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:257 +msgid "Search and Select" +msgstr "" + +#: src/skins/ui_manager.c:258 +msgid "" +"Searches the playlist and selects playlist entries based on specific " +"criteria." +msgstr "" + +#: src/skins/ui_manager.c:261 +msgid "Invert Selection" +msgstr "" + +#: src/skins/ui_manager.c:262 +msgid "Inverts the selected and unselected entries." +msgstr "" + +#: src/skins/ui_manager.c:265 +msgid "Select All" +msgstr "" + +#: src/skins/ui_manager.c:266 +msgid "Selects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:269 +msgid "Select None" +msgstr "" + +#: src/skins/ui_manager.c:270 +msgid "Deselects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:275 +msgid "Remove All" +msgstr "" + +#: src/skins/ui_manager.c:276 +msgid "Removes all entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:279 +msgid "Clear Queue" +msgstr "" + +#: src/skins/ui_manager.c:280 +msgid "Clears the queue associated with this playlist." +msgstr "" + +#: src/skins/ui_manager.c:283 +msgid "Remove Unavailable Files" +msgstr "" + +#: src/skins/ui_manager.c:284 +msgid "Removes unavailable files from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:287 +msgid "Remove Duplicates" +msgstr "" + +#: src/skins/ui_manager.c:289 src/skins/ui_manager.c:321 +#: src/skins/ui_manager.c:351 +msgid "By Title" +msgstr "" + +#: src/skins/ui_manager.c:290 +msgid "Removes duplicate entries from the playlist by title." +msgstr "" + +#: src/skins/ui_manager.c:293 src/skins/ui_manager.c:329 +#: src/skins/ui_manager.c:359 +msgid "By Filename" +msgstr "" + +#: src/skins/ui_manager.c:294 +msgid "Removes duplicate entries from the playlist by filename." +msgstr "" + +#: src/skins/ui_manager.c:297 src/skins/ui_manager.c:333 +#: src/skins/ui_manager.c:363 +msgid "By Path + Filename" +msgstr "" + +#: src/skins/ui_manager.c:298 +msgid "Removes duplicate entries from the playlist by their full path." +msgstr "" + +#: src/skins/ui_manager.c:301 +msgid "Remove Unselected" +msgstr "" + +#: src/skins/ui_manager.c:302 +msgid "Remove unselected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:305 +msgid "Remove Selected" +msgstr "" + +#: src/skins/ui_manager.c:306 +msgid "Remove selected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:311 +msgid "Randomize List" +msgstr "" + +#: src/skins/ui_manager.c:312 +msgid "Randomizes the playlist." +msgstr "" + +#: src/skins/ui_manager.c:315 +msgid "Reverse List" +msgstr "" + +#: src/skins/ui_manager.c:316 +msgid "Reverses the playlist." +msgstr "" + +#: src/skins/ui_manager.c:319 +msgid "Sort List" +msgstr "" + +#: src/skins/ui_manager.c:322 src/skins/ui_manager.c:352 +msgid "Sorts the list by title." +msgstr "" + +#: src/skins/ui_manager.c:325 src/skins/ui_manager.c:355 +msgid "By Artist" +msgstr "" + +#: src/skins/ui_manager.c:326 src/skins/ui_manager.c:356 +msgid "Sorts the list by artist." +msgstr "" + +#: src/skins/ui_manager.c:330 src/skins/ui_manager.c:360 +msgid "Sorts the list by filename." +msgstr "" + +#: src/skins/ui_manager.c:334 src/skins/ui_manager.c:364 +msgid "Sorts the list by full pathname." +msgstr "" + +#: src/skins/ui_manager.c:337 src/skins/ui_manager.c:367 +msgid "By Date" +msgstr "" + +#: src/skins/ui_manager.c:338 src/skins/ui_manager.c:368 +msgid "Sorts the list by modification time." +msgstr "" + +#: src/skins/ui_manager.c:341 src/skins/ui_manager.c:371 +msgid "By Track Number" +msgstr "" + +#: src/skins/ui_manager.c:342 src/skins/ui_manager.c:372 +msgid "Sorts the list by track number." +msgstr "" + +#: src/skins/ui_manager.c:345 src/skins/ui_manager.c:375 +msgid "By Playlist Entry" +msgstr "" + +#: src/skins/ui_manager.c:346 src/skins/ui_manager.c:376 +msgid "Sorts the list by playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:349 +msgid "Sort Selected" +msgstr "" + +#: src/skins/ui_manager.c:385 +msgid "File" +msgstr "" + +#: src/skins/ui_manager.c:388 +msgid "Plugin Services" +msgstr "" + +#: src/skins/ui_manager.c:390 src/skins/ui_manager.c:393 +msgid "View Track Details" +msgstr "" + +#: src/skins/ui_manager.c:391 src/skins/ui_manager.c:394 +msgid "View track details" +msgstr "" + +#: src/skins/ui_manager.c:396 src/skins/ui_manager.c:397 +msgid "About Audacious" +msgstr "" + +#: src/skins/ui_manager.c:399 +msgid "Play File" +msgstr "" + +#: src/skins/ui_manager.c:400 +msgid "Load and play a file" +msgstr "" + +#: src/skins/ui_manager.c:402 +msgid "Play Location" +msgstr "" + +#: src/skins/ui_manager.c:403 +msgid "Play media from the selected location" +msgstr "" + +#: src/skins/ui_manager.c:405 +msgid "Plugin services" +msgstr "" + +#: src/skins/ui_manager.c:407 +msgid "Preferences" +msgstr "" + +#: src/skins/ui_manager.c:408 +msgid "Open preferences window" +msgstr "" + +#: src/skins/ui_manager.c:410 +msgid "_Quit" +msgstr "" + +#: src/skins/ui_manager.c:411 +msgid "Quit Audacious" +msgstr "" + +#: src/skins/ui_manager.c:413 src/skins/ui_manager.c:414 +msgid "Set A-B" +msgstr "" + +#: src/skins/ui_manager.c:416 src/skins/ui_manager.c:417 +msgid "Clear A-B" +msgstr "" + +#: src/skins/ui_manager.c:419 src/skins/ui_manager.c:420 +msgid "Jump to Playlist Start" +msgstr "" + +#: src/skins/ui_manager.c:428 +msgid "Queue Toggle" +msgstr "" + +#: src/skins/ui_manager.c:429 +msgid "Enables/disables the entry in the playlist's queue." +msgstr "" + +#: src/skins/ui_manager.c:436 +msgid "Load" +msgstr "" + +#: src/skins/ui_manager.c:441 src/skins/ui_manager.c:462 +#: src/skins/ui_manager.c:477 +msgid "Preset" +msgstr "" + +#: src/skins/ui_manager.c:442 +msgid "Load preset" +msgstr "" + +#: src/skins/ui_manager.c:444 src/skins/ui_manager.c:465 +#: src/skins/ui_manager.c:480 +msgid "Auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:445 +msgid "Load auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:448 +msgid "Load default preset into equalizer" +msgstr "" + +#: src/skins/ui_manager.c:450 +msgid "Zero" +msgstr "" + +#: src/skins/ui_manager.c:451 +msgid "Set equalizer preset levels to zero" +msgstr "" + +#: src/skins/ui_manager.c:453 +msgid "From file" +msgstr "" + +#: src/skins/ui_manager.c:454 +msgid "Load preset from file" +msgstr "" + +#: src/skins/ui_manager.c:456 +msgid "From WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:457 +msgid "Load preset from WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:459 +msgid "WinAMP Presets" +msgstr "" + +#: src/skins/ui_manager.c:460 +msgid "Import WinAMP presets" +msgstr "" + +#: src/skins/ui_manager.c:463 +msgid "Save preset" +msgstr "" + +#: src/skins/ui_manager.c:466 +msgid "Save auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:469 +msgid "Save default preset" +msgstr "" + +#: src/skins/ui_manager.c:471 +msgid "To file" +msgstr "" + +#: src/skins/ui_manager.c:472 +msgid "Save preset to file" +msgstr "" + +#: src/skins/ui_manager.c:474 +msgid "To WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:475 +msgid "Save preset to WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:478 +msgid "Delete preset" +msgstr "" + +#: src/skins/ui_manager.c:481 +msgid "Delete auto-load preset" +msgstr "" + +#: src/skins/ui_playlist.c:454 +msgid "Search entries in active playlist" +msgstr "" + +#: src/skins/ui_playlist.c:462 +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 "" + +#: src/skins/ui_playlist.c:477 +msgid "Album: " +msgstr "" + +#: src/skins/ui_playlist.c:484 +msgid "Artist: " +msgstr "" + +#: src/skins/ui_playlist.c:491 +msgid "Filename: " +msgstr "" + +#: src/skins/ui_playlist.c:499 +msgid "Clear previous selection before searching" +msgstr "" + +#: src/skins/ui_playlist.c:502 +msgid "Automatically toggle queue for matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:505 +msgid "Create a new playlist with matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:724 +#, c-format +msgid "Error writing playlist \"%s\": %s" +msgstr "" + +#: src/skins/ui_playlist.c:746 +#, c-format +msgid "%s already exist. Continue?" +msgstr "" + +#: src/skins/ui_playlist.c:761 +#, c-format +msgid "" +"Unable to save playlist.\n" +"\n" +"Unknown file type for '%s'.\n" +msgstr "" + +#: src/skins/ui_playlist.c:887 +msgid "Save as Static Playlist" +msgstr "" + +#: src/skins/ui_playlist.c:894 +msgid "Use Relative Path" +msgstr "" + +#: src/skins/ui_playlist.c:916 +msgid "Load Playlist" +msgstr "" + +#: src/skins/ui_playlist.c:929 +msgid "Save Playlist" +msgstr "" + +#: src/skins/ui_playlist.c:1497 +msgid "Audacious Playlist Editor" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "PREAMP" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "60HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "170HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "310HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "600HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "1KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "3KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "6KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "12KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "14KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "16KHZ" +msgstr "" + +#: src/skins/ui_skinselector.c:178 +msgid "Archived Winamp 2.x skin" +msgstr "" + +#: src/skins/ui_skinselector.c:183 +msgid "Unarchived Winamp 2.x skin" +msgstr "" + +#: src/skins/util.c:1132 +#, c-format +msgid "Could not create directory (%s): %s\n" +msgstr "" + +#: src/sndfile/plugin.c:554 msgid "About sndfile plugin" msgstr "" -#: src/sndfile/plugin.c:549 +#: src/sndfile/plugin.c:555 msgid "" "Adapted for Audacious usage by Tony Vroon \n" "from the xmms_sndfile plugin which is:\n" @@ -4036,61 +5108,57 @@ "Boston, MA 02110-1301 USA" msgstr "" -#: src/sndstretch/sndstretch_xmms.c:159 +#: src/sndstretch/sndstretch_xmms.c:158 msgid "About SndStretch" msgstr "" +#: src/sndstretch/sndstretch_xmms.c:318 +msgid "Volume corr." +msgstr "" + #: src/sndstretch/sndstretch_xmms.c:319 -msgid "Volume corr." -msgstr "" - -#: src/sndstretch/sndstretch_xmms.c:320 msgid "Short Overlap" msgstr "" +#: src/sndstretch/sndstretch_xmms.c:373 +msgid "Speed" +msgstr "" + #: src/sndstretch/sndstretch_xmms.c:374 -msgid "Speed" -msgstr "" - -#: src/sndstretch/sndstretch_xmms.c:375 msgid "Pitch" msgstr "" -#: src/sndstretch/sndstretch_xmms.c:376 -msgid "Scale" -msgstr "" - -#: src/sndstretch/sndstretch_xmms.c:396 +#: src/sndstretch/sndstretch_xmms.c:395 msgid "SndStretch - Configuration" msgstr "" -#: src/song_change/song_change.c:312 +#: src/song_change/song_change.c:310 msgid "Commands" msgstr "" -#: src/song_change/song_change.c:319 +#: src/song_change/song_change.c:317 msgid "Command to run when Audacious starts a new song." msgstr "" -#: src/song_change/song_change.c:328 src/song_change/song_change.c:350 -#: src/song_change/song_change.c:371 src/song_change/song_change.c:392 +#: src/song_change/song_change.c:326 src/song_change/song_change.c:348 +#: src/song_change/song_change.c:369 src/song_change/song_change.c:390 msgid "Command:" msgstr "" -#: src/song_change/song_change.c:342 +#: src/song_change/song_change.c:340 msgid "Command to run toward the end of a song." msgstr "" -#: src/song_change/song_change.c:362 +#: src/song_change/song_change.c:360 msgid "Command to run when Audacious reaches the end of the playlist." msgstr "" -#: src/song_change/song_change.c:383 +#: src/song_change/song_change.c:381 msgid "" "Command to run when title changes for a song (i.e. network streams titles)." msgstr "" -#: src/song_change/song_change.c:404 +#: src/song_change/song_change.c:402 #, c-format msgid "" "You can use the following format strings which\n" @@ -4107,13 +5175,13 @@ "%%p: Currently playing (1 or 0)" msgstr "" -#: src/song_change/song_change.c:429 +#: src/song_change/song_change.c:427 msgid "" "Parameters passed to the shell should be encapsulated in " "quotes. Doing otherwise is a security risk." msgstr "" -#: src/spectrum/spectrum.c:90 +#: src/spectrum/spectrum.c:89 msgid "Spectrum Analyzer" msgstr "" @@ -4125,11 +5193,11 @@ msgid "The orientation of the tray" msgstr "" -#: src/statusicon/si_ui.c:622 +#: src/statusicon/si_ui.c:620 msgid "About Status Icon Plugin" msgstr "" -#: src/statusicon/si_ui.c:624 +#: src/statusicon/si_ui.c:622 msgid "" "\n" "written by Giacomo Lozito < james@develia.org >\n" @@ -4138,62 +5206,58 @@ "the system tray area of the window manager.\n" msgstr "" -#: src/statusicon/si_ui.c:696 +#: src/statusicon/si_ui.c:694 msgid "Status Icon Plugin - Preferences" msgstr "" -#: src/statusicon/si_ui.c:707 +#: src/statusicon/si_ui.c:705 msgid "Right-Click Menu" msgstr "" -#: src/statusicon/si_ui.c:712 +#: src/statusicon/si_ui.c:710 msgid "Audacious standard menu" msgstr "" -#: src/statusicon/si_ui.c:717 +#: src/statusicon/si_ui.c:715 msgid "Small playback menu #1" msgstr "" -#: src/statusicon/si_ui.c:722 +#: src/statusicon/si_ui.c:720 msgid "Small playback menu #2" msgstr "" -#: src/statusicon/si_ui.c:745 +#: src/statusicon/si_ui.c:743 msgid "Mouse Scroll Action" msgstr "" -#: src/statusicon/si_ui.c:750 +#: src/statusicon/si_ui.c:748 msgid "Change volume" msgstr "" -#: src/statusicon/si_ui.c:755 +#: src/statusicon/si_ui.c:753 msgid "Change playing song" msgstr "" -#: src/stereo_plugin/stereo.c:26 +#: src/stereo_plugin/stereo.c:25 msgid "" "Extra Stereo Plugin\n" "\n" "By Johan Levin 1999." msgstr "" -#: src/stereo_plugin/stereo.c:52 +#: src/stereo_plugin/stereo.c:51 msgid "About Extra Stereo Plugin" msgstr "" -#: src/stereo_plugin/stereo.c:93 +#: src/stereo_plugin/stereo.c:92 msgid "Configure Extra Stereo" msgstr "" -#: src/stereo_plugin/stereo.c:95 -msgid "Effect intensity:" +#: src/sun/about.c:33 +msgid "About the Sun Driver" msgstr "" #: src/sun/about.c:34 -msgid "About the Sun Driver" -msgstr "" - -#: src/sun/about.c:35 msgid "" "XMMS BSD Sun Driver\n" "\n" @@ -4201,19 +5265,19 @@ "Maintainer: .\n" msgstr "" -#: src/sun/configure.c:201 +#: src/sun/configure.c:199 msgid "Audio control device:" msgstr "" -#: src/sun/configure.c:350 +#: src/sun/configure.c:348 msgid "Volume controls device:" msgstr "" -#: src/sun/configure.c:363 +#: src/sun/configure.c:361 msgid "XMMS uses mixer exclusively." msgstr "" -#: src/sun/configure.c:538 +#: src/sun/configure.c:536 msgid "Sun driver configuration" msgstr "" @@ -4241,27 +5305,27 @@ msgid "TiMidity Configuration File" msgstr "" -#: src/timidity/xmms-timidity.c:118 +#: src/timidity/xmms-timidity.c:115 msgid "" "TiMidity Plugin\n" "http://libtimidity.sourceforge.net\n" "by Konstantin Korikov" msgstr "" -#: src/timidity/xmms-timidity.c:119 +#: src/timidity/xmms-timidity.c:116 #, c-format msgid "TiMidity Plugin %s" msgstr "" -#: src/timidity/xmms-timidity.c:336 +#: src/timidity/xmms-timidity.c:333 msgid "Couldn't load MIDI file" msgstr "" -#: src/tonegen/tonegen.c:56 +#: src/tonegen/tonegen.c:55 msgid "About Tone Generator" msgstr "" -#: src/tonegen/tonegen.c:58 +#: src/tonegen/tonegen.c:57 msgid "" "Sinus tone generator by Haavard Kvaalen \n" "Modified by Daniel J. Peng \n" @@ -4270,86 +5334,86 @@ "e.g. tone://2000;2005 to play a 2000Hz tone and a 2005Hz tone" msgstr "" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 #, c-format msgid "%s %.1f Hz" msgstr "" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 msgid "Tone Generator: " msgstr "" +#: src/tta/libtta.c:127 +msgid "Can't open file\n" +msgstr "" + #: src/tta/libtta.c:130 -msgid "Can't open file\n" +msgid "Not supported file format\n" msgstr "" #: src/tta/libtta.c:133 -msgid "Not supported file format\n" +msgid "File is corrupted\n" msgstr "" #: src/tta/libtta.c:136 -msgid "File is corrupted\n" +msgid "Can't read from file\n" msgstr "" #: src/tta/libtta.c:139 -msgid "Can't read from file\n" +msgid "Insufficient memory available\n" msgstr "" #: src/tta/libtta.c:142 -msgid "Insufficient memory available\n" +msgid "Output plugin error\n" msgstr "" #: src/tta/libtta.c:145 -msgid "Output plugin error\n" -msgstr "" - -#: src/tta/libtta.c:148 msgid "Unknown error\n" msgstr "" -#: src/tta/libtta.c:152 +#: src/tta/libtta.c:149 msgid "TTA Decoder Error" msgstr "" -#: src/tta/libtta.c:261 +#: src/tta/libtta.c:258 msgid "TTA input plugin " msgstr "" -#: src/tta/libtta.c:262 +#: src/tta/libtta.c:259 msgid "" " for BMP\n" "Copyright (c) 2004 True Audio Software\n" msgstr "" -#: src/tta/libtta.c:265 +#: src/tta/libtta.c:262 msgid "About True Audio Plugin" msgstr "" -#: src/tta/libtta.c:316 +#: src/tta/libtta.c:313 msgid "ID3 Tag:" msgstr "" -#: src/tta/libtta.c:378 src/wavpack/ui.cxx:234 +#: src/tta/libtta.c:375 src/wavpack/ui.cxx:232 msgid "Track number:" msgstr "" -#: src/vorbis/configure.c:84 +#: src/vorbis/configure.c:82 msgid "Ogg Vorbis Audio Plugin Configuration" msgstr "" -#: src/vorbis/configure.c:94 +#: src/vorbis/configure.c:92 msgid "Ogg Vorbis Tags:" msgstr "" -#: src/vorbis/configure.c:115 +#: src/vorbis/configure.c:113 msgid "Title format:" msgstr "" -#: src/vorbis/vorbis.c:681 +#: src/vorbis/vorbis.c:677 msgid "About Ogg Vorbis Audio Plugin" msgstr "" -#: src/vorbis/vorbis.c:687 +#: src/vorbis/vorbis.c:683 msgid "" "Ogg Vorbis Plugin by the Xiph.org Foundation\n" "\n" @@ -4368,11 +5432,11 @@ "Visit the Xiph.org Foundation at http://www.xiph.org/\n" msgstr "" -#: src/vtx/about.c:23 +#: src/vtx/about.c:17 msgid "About Vortex Player" msgstr "" -#: src/vtx/about.c:25 +#: src/vtx/about.c:19 msgid "" "Vortex file format player by Sashnov Alexander \n" "Founded on original source in_vtx.dll by Roman Sherbakov " msgstr "" -#: src/wavpack/ui.cxx:52 +#: src/wavpack/ui.cxx:50 #, c-format msgid "Wavpack Decoder Plugin %s" msgstr "" -#: src/wavpack/ui.cxx:53 +#: src/wavpack/ui.cxx:51 msgid "" "Copyright (c) 2006 William Pitcock \n" "\n" @@ -4397,90 +5461,90 @@ "Visit the Wavpack site at http://www.wavpack.com/\n" msgstr "" -#: src/wavpack/ui.cxx:165 +#: src/wavpack/ui.cxx:163 msgid "Ape2 Tag" msgstr "" -#: src/wavpack/ui.cxx:288 +#: src/wavpack/ui.cxx:286 msgid "Wavpack Info:" msgstr "" +#: src/wavpack/ui.cxx:379 +#, c-format +msgid "version %d" +msgstr "" + +#: src/wavpack/ui.cxx:380 +#, c-format +msgid "average bitrate: %6.1f kbps" +msgstr "" + #: src/wavpack/ui.cxx:381 #, c-format -msgid "version %d" +msgid "samplerate: %d Hz" msgstr "" #: src/wavpack/ui.cxx:382 #, c-format -msgid "average bitrate: %6.1f kbps" +msgid "bits per sample: %d" msgstr "" #: src/wavpack/ui.cxx:383 #, c-format -msgid "samplerate: %d Hz" +msgid "channels: %d" msgstr "" #: src/wavpack/ui.cxx:384 #, c-format -msgid "bits per sample: %d" +msgid "length: %d:%.2d" msgstr "" #: src/wavpack/ui.cxx:385 #, c-format -msgid "channels: %d" -msgstr "" - -#: src/wavpack/ui.cxx:386 -#, c-format -msgid "length: %d:%.2d" -msgstr "" - -#: src/wavpack/ui.cxx:387 -#, c-format msgid "file size: %d Bytes" msgstr "" +#: src/wavpack/ui.cxx:392 +msgid "Title Peak: ?" +msgstr "" + +#: src/wavpack/ui.cxx:393 +msgid "Album Peak: ?" +msgstr "" + #: src/wavpack/ui.cxx:394 -msgid "Title Peak: ?" +msgid "Title Gain: ?" msgstr "" #: src/wavpack/ui.cxx:395 -msgid "Album Peak: ?" -msgstr "" - -#: src/wavpack/ui.cxx:396 -msgid "Title Gain: ?" -msgstr "" - -#: src/wavpack/ui.cxx:397 msgid "Album Gain: ?" msgstr "" -#: src/wavpack/ui.cxx:471 +#: src/wavpack/ui.cxx:469 msgid "Wavpack Configuration" msgstr "" -#: src/wavpack/ui.cxx:484 +#: src/wavpack/ui.cxx:482 msgid "General Plugin Settings:" msgstr "" -#: src/wavpack/ui.cxx:502 +#: src/wavpack/ui.cxx:500 msgid "ReplayGain Settings:" msgstr "" -#: src/wavpack/ui.cxx:520 +#: src/wavpack/ui.cxx:518 msgid "ReplayGain Type:" msgstr "" -#: src/wavpack/ui.cxx:531 +#: src/wavpack/ui.cxx:529 msgid "use Track Gain/Peak" msgstr "" -#: src/wavpack/ui.cxx:539 +#: src/wavpack/ui.cxx:537 msgid "use Album Gain/Peak" msgstr "" -#: src/wma/wma.c:123 +#: src/wma/wma.c:120 msgid "" "Adapted for use in Audacious by Tony Vroon (chainsaw@gentoo.org) from\n" "the BEEP-WMA plugin which is Copyright (C) 2004,2005 Mokrushin I.V. aka " diff -r c40585c57877 -r 7fc2c317d190 po/ca.po --- a/po/ca.po Thu Jul 03 17:23:34 2008 +0300 +++ b/po/ca.po Thu Jul 03 17:37:11 2008 +0300 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: audacious-plugins 1.3.0-alpha4\n" -"Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" -"POT-Creation-Date: 2008-03-30 17:25+0200\n" +"Report-Msgid-Bugs-To: http://bugzilla.atheme.org/\n" +"POT-Creation-Date: 2008-06-21 08:27+0300\n" "PO-Revision-Date: 2007-02-09 21:12+0100\n" "Last-Translator: Ernest Adrogué \n" "Language-Team: Catalan \n" @@ -15,50 +15,50 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/aac/libmp4.c:286 +#: src/aac/libmp4.c:283 msgid "Using libfaad2-" msgstr "" -#: src/aac/libmp4.c:287 +#: src/aac/libmp4.c:284 msgid "" " for decoding.\n" "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n" "Copyright (c) 2005-2006 Audacious team" msgstr "" -#: src/aac/libmp4.c:291 +#: src/aac/libmp4.c:288 #, fuzzy msgid "About MP4 AAC player plugin" msgstr "Quant al plugin per a àudio MPEG" -#: src/aac/libmp4.c:293 src/adplug/adplug-xmms.cc:182 -#: src/adplug/adplug-xmms.cc:265 src/adplug/adplug-xmms.cc:526 -#: src/alac/plugin.c:77 src/arts/arts.c:26 src/arts/configure.c:90 -#: src/audiocompress/audacious-glue.c:102 -#: src/audiocompress/audacious-glue.c:552 src/cdaudio-ng/configure.c:228 -#: src/console/Audacious_Driver.cxx:449 src/demac/plugin.c:393 -#: src/echo_plugin/gui.c:26 src/echo_plugin/gui.c:137 src/esd/about.c:49 -#: src/filewriter/filewriter.c:183 src/jack/configure.c:141 -#: src/jack/jack.c:456 src/madplug/plugin.c:542 src/madplug/plugin.c:566 -#: src/metronom/metronom.c:88 src/modplug/gui/main.cxx:49 -#: src/musepack/libmpc.cxx:232 src/null/null.c:67 src/null/null.c:110 -#: src/OSS4/about.c:59 src/OSS/about.c:54 src/paranormal-ng/plugin.c:283 -#: src/paranormal/plugin.c:291 src/scrobbler/gtkstuff.c:25 -#: src/sndfile/plugin.c:565 src/statusicon/si_ui.c:628 -#: src/stereo_plugin/stereo.c:53 src/stereo_plugin/stereo.c:116 -#: src/sun/about.c:38 src/sun/configure.c:559 src/timidity/interface.c:222 -#: src/timidity/xmms-timidity.c:120 src/tonegen/tonegen.c:62 -#: src/tta/libtta.c:153 src/tta/libtta.c:267 src/tta/libtta.c:402 -#: src/vorbis/vorbis.c:700 src/vtx/about.c:32 src/vtx/info.c:43 -#: src/wavpack/ui.cxx:56 src/wavpack/ui.cxx:556 +#: src/aac/libmp4.c:290 src/adplug/adplug-xmms.cc:180 +#: src/adplug/adplug-xmms.cc:263 src/adplug/adplug-xmms.cc:524 +#: src/alac/plugin.c:74 src/arts/arts.c:25 src/arts/configure.c:90 +#: src/audiocompress/audacious-glue.c:110 +#: src/audiocompress/audacious-glue.c:560 src/cdaudio-ng/configure.c:242 +#: src/console/Audacious_Driver.cxx:447 src/crystalizer/crystalizer.c:113 +#: src/demac/plugin.c:364 src/echo_plugin/gui.c:24 src/echo_plugin/gui.c:135 +#: src/esd/about.c:48 src/filewriter/filewriter.c:183 src/jack/configure.c:140 +#: src/jack/jack.c:454 src/madplug/plugin.c:679 src/madplug/plugin.c:703 +#: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:52 +#: src/musepack/libmpc.cxx:228 src/null/null.c:64 src/null/null.c:107 +#: src/OSS4/OSS4.c:55 src/OSS/OSS.c:52 src/paranormal-ng/plugin.c:282 +#: src/paranormal/plugin.c:290 src/scrobbler/gtkstuff.c:22 +#: src/sndfile/plugin.c:571 src/statusicon/si_ui.c:626 +#: src/stereo_plugin/stereo.c:52 src/stereo_plugin/stereo.c:115 +#: src/sun/about.c:37 src/sun/configure.c:557 src/timidity/interface.c:222 +#: src/timidity/xmms-timidity.c:117 src/tonegen/tonegen.c:61 +#: src/tta/libtta.c:150 src/tta/libtta.c:264 src/tta/libtta.c:399 +#: src/vorbis/vorbis.c:696 src/vtx/about.c:26 src/vtx/info.c:38 +#: src/wavpack/ui.cxx:54 src/wavpack/ui.cxx:554 msgid "Ok" msgstr "D'acord" -#: src/adplug/adplug-xmms.cc:171 +#: src/adplug/adplug-xmms.cc:169 msgid "About " msgstr "Quant a " -#: src/adplug/adplug-xmms.cc:175 +#: src/adplug/adplug-xmms.cc:173 msgid "" "\n" "Copyright (C) 2002, 2003 Simon Peter \n" @@ -81,209 +81,209 @@ "\n" "Versió de la llibreria AdPlug enllaçada: " -#: src/adplug/adplug-xmms.cc:256 +#: src/adplug/adplug-xmms.cc:254 #, fuzzy msgid "AdPlug :: Configuration" msgstr "Configuració del plugin d'àudio MPEG" -#: src/adplug/adplug-xmms.cc:275 src/alarm/interface.c:1398 +#: src/adplug/adplug-xmms.cc:273 src/alarm/interface.c:1398 #: src/alsa/configure.c:389 src/arts/configure.c:91 -#: src/audiocompress/audacious-glue.c:557 src/cdaudio-ng/configure.c:232 -#: src/echo_plugin/gui.c:145 src/jack/configure.c:148 -#: src/modplug/gui/interface.cxx:714 src/modplug/gui/modplug.glade:1668 -#: src/musepack/libmpc.cxx:237 src/musepack/libmpc.cxx:557 src/null/null.c:111 -#: src/sid/xmms-sid.glade:3080 src/sid/xs_interface.c:1250 -#: src/stereo_plugin/stereo.c:125 src/sun/configure.c:567 -#: src/timidity/interface.c:230 src/wavpack/ui.cxx:280 src/wavpack/ui.cxx:563 +#: src/audiocompress/audacious-glue.c:565 src/cdaudio-ng/configure.c:246 +#: src/crystalizer/crystalizer.c:122 src/echo_plugin/gui.c:143 +#: src/jack/configure.c:147 src/modplug/gui/interface.cxx:714 +#: src/modplug/gui/modplug.glade:1668 src/musepack/libmpc.cxx:233 +#: src/musepack/libmpc.cxx:553 src/null/null.c:108 +#: src/stereo_plugin/stereo.c:124 src/sun/configure.c:565 +#: src/timidity/interface.c:230 src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561 msgid "Cancel" msgstr "Cancel·la" -#: src/adplug/adplug-xmms.cc:291 src/console/Audacious_Config.cxx:145 -#: src/madplug/configure.c:290 src/modplug/gui/interface.cxx:628 +#: src/adplug/adplug-xmms.cc:289 src/console/Audacious_Config.cxx:144 +#: src/madplug/configure.c:289 src/modplug/gui/interface.cxx:628 #: src/modplug/gui/interface.cxx:887 src/modplug/gui/modplug.glade:1404 #: src/modplug/gui/modplug.glade:1804 msgid "General" msgstr "General" -#: src/adplug/adplug-xmms.cc:303 +#: src/adplug/adplug-xmms.cc:301 #, fuzzy msgid "Sound quality" msgstr "Clip d'àudio" -#: src/adplug/adplug-xmms.cc:308 src/modplug/gui/interface.cxx:187 +#: src/adplug/adplug-xmms.cc:306 src/modplug/gui/interface.cxx:187 #: src/modplug/gui/modplug.glade:113 #, fuzzy msgid "Resolution" msgstr "Resolució:" -#: src/adplug/adplug-xmms.cc:310 +#: src/adplug/adplug-xmms.cc:308 #, fuzzy msgid "8bit" msgstr "8 bits" -#: src/adplug/adplug-xmms.cc:315 +#: src/adplug/adplug-xmms.cc:313 #, fuzzy msgid "16bit" msgstr "16 bits" -#: src/adplug/adplug-xmms.cc:323 src/modplug/gui/interface.cxx:218 +#: src/adplug/adplug-xmms.cc:321 src/modplug/gui/interface.cxx:218 #: src/modplug/gui/modplug.glade:199 src/timidity/interface.c:148 msgid "Channels" msgstr "Canals" -#: src/adplug/adplug-xmms.cc:325 src/filewriter/mp3.c:900 -#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:288 +#: src/adplug/adplug-xmms.cc:323 src/filewriter/mp3.c:900 +#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:300 #: src/timidity/interface.c:165 msgid "Mono" msgstr "Mono" -#: src/adplug/adplug-xmms.cc:330 src/filewriter/mp3.c:895 +#: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:895 #: src/modplug/gui/interface.cxx:204 src/modplug/gui/modplug.glade:159 -#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:295 +#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:307 #: src/timidity/interface.c:173 msgid "Stereo" msgstr "Estèreo" -#: src/adplug/adplug-xmms.cc:334 +#: src/adplug/adplug-xmms.cc:332 msgid "" "Setting stereo is not recommended, unless you need to. This won't add any " "stereo effects to the sound - OPL2 is just mono - but eats up more CPU power!" msgstr "" -#: src/adplug/adplug-xmms.cc:342 +#: src/adplug/adplug-xmms.cc:340 msgid "Frequency" msgstr "" -#: src/adplug/adplug-xmms.cc:378 src/adplug/adplug-xmms.cc:582 -#: src/console/Audacious_Config.cxx:147 +#: src/adplug/adplug-xmms.cc:376 src/adplug/adplug-xmms.cc:580 +#: src/console/Audacious_Config.cxx:146 src/skins/ui_manager.c:175 msgid "Playback" msgstr "Reproducció" -#: src/adplug/adplug-xmms.cc:382 +#: src/adplug/adplug-xmms.cc:380 msgid "Detect songend" msgstr "" -#: src/adplug/adplug-xmms.cc:386 +#: src/adplug/adplug-xmms.cc:384 msgid "" "If enabled, XMMS will detect a song's ending, stop it and advance in the " "playlist. If disabled, XMMS won't take notice of a song's ending and loop it " "all over again and again." msgstr "" -#: src/adplug/adplug-xmms.cc:397 +#: src/adplug/adplug-xmms.cc:395 msgid "Formats" msgstr "" -#: src/adplug/adplug-xmms.cc:404 +#: src/adplug/adplug-xmms.cc:402 msgid "Format selection" msgstr "" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Format" msgstr "" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Extension" msgstr "" -#: src/adplug/adplug-xmms.cc:447 +#: src/adplug/adplug-xmms.cc:445 msgid "" "Selected file types will be recognized and played back by this plugin. " "Deselected types will be ignored to make room for other plugins to play " "these files." msgstr "" -#: src/adplug/adplug-xmms.cc:533 +#: src/adplug/adplug-xmms.cc:531 msgid "AdPlug :: File Info" msgstr "" -#: src/adplug/adplug-xmms.cc:555 src/amidi-plug/i_configure-fluidsynth.c:448 +#: src/adplug/adplug-xmms.cc:553 src/amidi-plug/i_configure-fluidsynth.c:448 msgid "Filename" msgstr "" +#: src/adplug/adplug-xmms.cc:557 src/skins/ui_playlist.c:470 +#, fuzzy +msgid "Title: " +msgstr "Títol:" + +#: src/adplug/adplug-xmms.cc:558 +msgid "Author: " +msgstr "" + #: src/adplug/adplug-xmms.cc:559 #, fuzzy -msgid "Title: " -msgstr "Títol:" +msgid "File Type: " +msgstr "Mida del fitxer:" #: src/adplug/adplug-xmms.cc:560 -msgid "Author: " +msgid "Subsongs: " msgstr "" #: src/adplug/adplug-xmms.cc:561 #, fuzzy -msgid "File Type: " -msgstr "Mida del fitxer:" - -#: src/adplug/adplug-xmms.cc:562 -msgid "Subsongs: " -msgstr "" - -#: src/adplug/adplug-xmms.cc:563 -#, fuzzy msgid "Instruments: " msgstr "Instrumental" -#: src/adplug/adplug-xmms.cc:568 +#: src/adplug/adplug-xmms.cc:566 msgid "Orders: " msgstr "" -#: src/adplug/adplug-xmms.cc:569 +#: src/adplug/adplug-xmms.cc:567 msgid "Patterns: " msgstr "" -#: src/adplug/adplug-xmms.cc:573 +#: src/adplug/adplug-xmms.cc:571 #, fuzzy msgid "Song" msgstr "Swing" -#: src/adplug/adplug-xmms.cc:599 +#: src/adplug/adplug-xmms.cc:597 #, fuzzy msgid "Instrument name" msgstr "Instrumental" -#: src/adplug/adplug-xmms.cc:641 +#: src/adplug/adplug-xmms.cc:639 #, fuzzy msgid "Song message" msgstr "Canvi de cançó %s" -#: src/adplug/adplug-xmms.cc:663 +#: src/adplug/adplug-xmms.cc:661 msgid "Subsong selection" msgstr "" -#: src/adplug/adplug-xmms.cc:727 +#: src/adplug/adplug-xmms.cc:725 msgid "Order: " msgstr "" +#: src/adplug/adplug-xmms.cc:726 +msgid "Pattern: " +msgstr "" + #: src/adplug/adplug-xmms.cc:728 -msgid "Pattern: " -msgstr "" - -#: src/adplug/adplug-xmms.cc:730 msgid "Row: " msgstr "" -#: src/adplug/adplug-xmms.cc:731 +#: src/adplug/adplug-xmms.cc:729 #, fuzzy msgid "Speed: " msgstr "Parlat" -#: src/adplug/adplug-xmms.cc:732 +#: src/adplug/adplug-xmms.cc:730 #, fuzzy msgid "Timer: " msgstr "Títol:" -#: src/adplug/adplug-xmms.cc:733 src/console/Audacious_Config.cxx:225 -#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:341 +#: src/adplug/adplug-xmms.cc:731 src/console/Audacious_Config.cxx:224 +#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:353 msgid "Hz" msgstr "Hz" -#: src/alac/plugin.c:74 +#: src/alac/plugin.c:71 #, fuzzy msgid "About Apple Lossless Audio Plugin" msgstr "Quant al plugin d'àudio Ogg Vorbis" -#: src/alac/plugin.c:75 +#: src/alac/plugin.c:72 msgid "" "Copyright (c) 2006 Audacious team\n" "Portions (c) 2005-2006 David Hammerton " @@ -311,8 +311,8 @@ #: src/alarm/interface.c:71 src/lirc/about.c:115 #: src/modplug/gui/interface.cxx:971 src/modplug/gui/modplug.glade:2030 -#: src/sid/xmms-sid.glade:3643 src/sid/xs_about.c:214 -#: src/sid/xs_interface.c:1740 +#: src/sid/xmms-sid.glade:3837 src/sid/xs_about.c:214 +#: src/sid/xs_interface.c:1824 msgid "Close" msgstr "Tanca" @@ -324,13 +324,12 @@ msgid "This is your wakeup call." msgstr "" -#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:46 +#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:45 #: src/alsa/configure.c:383 src/cdaudio-ng/cdaudio-ng.c:247 -#: src/flacng/plugin.c:706 src/gnomeshortcuts/gnomeshortcuts.c:311 -#: src/hotkey/gui.c:671 src/modplug/gui/interface.cxx:702 -#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:738 -#: src/scrobbler/gtkstuff.c:45 src/sid/xmms-sid.glade:3066 -#: src/sid/xs_interface.c:1243 +#: src/flacng/plugin.c:705 src/gnomeshortcuts/gnomeshortcuts.c:310 +#: src/hotkey/gui.c:670 src/modplug/gui/interface.cxx:702 +#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:736 +#: src/scrobbler/gtkstuff.c:42 src/skins/plugin.c:130 msgid "OK" msgstr "D'acord" @@ -403,7 +402,8 @@ #: src/alarm/interface.c:612 src/alarm/interface.c:660 #: src/alarm/interface.c:708 src/alarm/interface.c:756 #: src/alarm/interface.c:804 src/alarm/interface.c:852 -#: src/alarm/interface.c:900 src/OSS4/configure.c:138 src/OSS/configure.c:169 +#: src/alarm/interface.c:900 src/OSS4/configure.c:136 src/OSS/configure.c:168 +#: src/skins/ui_manager.c:447 src/skins/ui_manager.c:468 msgid "Default" msgstr "Per defecte" @@ -450,9 +450,9 @@ msgstr "" #: src/alarm/interface.c:1087 src/sid/xmms-sid.glade:2007 -#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2676 -#: src/sid/xs_interface.c:908 src/sid/xs_interface.c:962 -#: src/sid/xs_interface.c:1122 +#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2746 +#: src/sid/xs_interface.c:920 src/sid/xs_interface.c:974 +#: src/sid/xs_interface.c:1154 #, fuzzy msgid "seconds" msgstr "segons" @@ -509,7 +509,7 @@ msgid "Use reminder" msgstr "" -#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:377 +#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:376 #, fuzzy msgid "Options" msgstr "Opcions:" @@ -573,7 +573,7 @@ " toggle button if you want it to be shown.\n" msgstr "" -#: src/alarm/interface.c:1366 +#: src/alarm/interface.c:1366 src/skins/ui_manager.c:386 msgid "Help" msgstr "" @@ -586,12 +586,12 @@ msgid "Thankyou" msgstr "Tango" -#: src/alsa/about.c:30 +#: src/alsa/about.c:29 #, fuzzy msgid "About ALSA Driver" msgstr "Quant al driver OSS" -#: src/alsa/about.c:31 +#: src/alsa/about.c:30 #, fuzzy msgid "" "Audacious ALSA Driver\n" @@ -643,8 +643,8 @@ msgid "ALSA Driver configuration" msgstr "Configuració del driver OSS" -#: src/alsa/configure.c:274 src/OSS4/configure.c:186 src/OSS/configure.c:217 -#: src/sun/configure.c:183 +#: src/alsa/configure.c:274 src/OSS4/configure.c:184 src/OSS/configure.c:216 +#: src/sun/configure.c:181 msgid "Audio device:" msgstr "Dispositiu d'àudio:" @@ -658,7 +658,7 @@ msgid "Mixer card:" msgstr "Dispositiu de mescla:" -#: src/alsa/configure.c:313 src/OSS/configure.c:260 src/sun/configure.c:220 +#: src/alsa/configure.c:313 src/OSS/configure.c:259 src/sun/configure.c:218 msgid "Mixer device:" msgstr "Dispositiu de mescla:" @@ -1266,8 +1266,8 @@ "backend" msgstr "" -#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3465 -#: src/sid/xs_interface.c:1684 +#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3659 +#: src/sid/xs_interface.c:1768 msgid "Name:" msgstr "Nom:" @@ -1372,48 +1372,48 @@ msgid "None" msgstr "Cap" -#: src/aosd/aosd_trigger.c:75 +#: src/aosd/aosd_trigger.c:74 #, fuzzy msgid "Playback Start" msgstr "Reproducció" -#: src/aosd/aosd_trigger.c:76 +#: src/aosd/aosd_trigger.c:75 msgid "Triggers OSD when a playlist entry is played." msgstr "" -#: src/aosd/aosd_trigger.c:80 +#: src/aosd/aosd_trigger.c:79 #, fuzzy msgid "Title Change" msgstr "Canal únic" -#: src/aosd/aosd_trigger.c:81 +#: src/aosd/aosd_trigger.c:80 msgid "" "Triggers OSD when, during playback, the song title changes but the filename " "is the same. This is mostly useful to display title changes in internet " "streams." msgstr "" -#: src/aosd/aosd_trigger.c:87 +#: src/aosd/aosd_trigger.c:86 msgid "Volume Change" msgstr "" -#: src/aosd/aosd_trigger.c:88 +#: src/aosd/aosd_trigger.c:87 msgid "Triggers OSD when volume is changed." msgstr "" +#: src/aosd/aosd_trigger.c:91 +msgid "Pause On" +msgstr "" + #: src/aosd/aosd_trigger.c:92 -msgid "Pause On" -msgstr "" - -#: src/aosd/aosd_trigger.c:93 msgid "Triggers OSD when playback is paused." msgstr "" +#: src/aosd/aosd_trigger.c:96 +msgid "Pause Off" +msgstr "" + #: src/aosd/aosd_trigger.c:97 -msgid "Pause Off" -msgstr "" - -#: src/aosd/aosd_trigger.c:98 msgid "Triggers OSD when playback is unpaused." msgstr "" @@ -1514,10 +1514,10 @@ msgid "Skin file:" msgstr "" -#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2331 -#: src/sid/xmms-sid.glade:2856 src/sid/xmms-sid.glade:2962 -#: src/sid/xs_interface.c:1010 src/sid/xs_interface.c:1182 -#: src/sid/xs_interface.c:1218 +#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2373 +#: src/sid/xmms-sid.glade:2968 src/sid/xmms-sid.glade:3136 +#: src/sid/xs_interface.c:1043 src/sid/xs_interface.c:1235 +#: src/sid/xs_interface.c:1291 msgid "Browse" msgstr "" @@ -1602,9 +1602,9 @@ msgid "Trigger" msgstr "Tràiler" -#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:167 +#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:175 #: src/modplug/gui/interface.cxx:688 src/modplug/gui/modplug.glade:1603 -#: src/sid/xmms-sid.glade:3026 src/sid/xs_interface.c:1229 +#: src/sid/xmms-sid.glade:3220 src/sid/xs_interface.c:1301 #, fuzzy msgid "Misc" msgstr "Disco" @@ -1633,12 +1633,12 @@ "\n" msgstr "" -#: src/arts/arts.c:22 +#: src/arts/arts.c:21 #, fuzzy msgid "About aRts Output" msgstr "Quant a la sortida nul·la" -#: src/arts/arts.c:23 +#: src/arts/arts.c:22 msgid "" "aRts output plugin by Håvard Kvålen \n" "Audacious port by Giacomo Lozito from develia.org" @@ -1649,26 +1649,26 @@ msgid "aRts Driver configuration" msgstr "Configuració del driver OSS" -#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:232 -#: src/OSS/configure.c:304 src/sun/configure.c:259 +#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:230 +#: src/OSS/configure.c:303 src/sun/configure.c:257 msgid "Buffering:" msgstr "Buffers:" -#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:245 -#: src/OSS/configure.c:317 src/sun/configure.c:272 +#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:243 +#: src/OSS/configure.c:316 src/sun/configure.c:270 msgid "Buffer size (ms):" msgstr "Mida del buffer (ms):" -#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:270 -#: src/OSS/configure.c:342 src/sun/configure.c:304 +#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:268 +#: src/OSS/configure.c:341 src/sun/configure.c:302 msgid "Buffering" msgstr "Buffers" -#: src/audiocompress/audacious-glue.c:95 +#: src/audiocompress/audacious-glue.c:103 msgid "AudioCompress " msgstr "AudioCompress " -#: src/audiocompress/audacious-glue.c:96 +#: src/audiocompress/audacious-glue.c:104 msgid "" "\n" "(c)2003 trikuare studios(http://trikuare.cx)\n" @@ -1684,111 +1684,111 @@ "Compressor simple del recorregut dinàmic per a mantenir el\n" "volum més o menys consistent de forma transparent." -#: src/audiocompress/audacious-glue.c:101 +#: src/audiocompress/audacious-glue.c:109 msgid "About AudioCompress" msgstr "Quant a l'AudioCompress" -#: src/audiocompress/audacious-glue.c:320 +#: src/audiocompress/audacious-glue.c:328 msgid "" "If checked, when the sound peaks the volume will be cut instantly; " "otherwise, it will ramp down just in time for the peak (but some minor " "clipping may still occur)." msgstr "" -#: src/audiocompress/audacious-glue.c:324 +#: src/audiocompress/audacious-glue.c:332 msgid "The maximum amount to amplify the audio by" msgstr "" -#: src/audiocompress/audacious-glue.c:326 +#: src/audiocompress/audacious-glue.c:334 msgid "Defines how smoothly the volume will ramp up" msgstr "" -#: src/audiocompress/audacious-glue.c:328 +#: src/audiocompress/audacious-glue.c:336 msgid "" "The target audio level for ramping up. Lowering the value gives a bit more " "dynamic range for peaks, but will make the overall sound quieter." msgstr "" -#: src/audiocompress/audacious-glue.c:331 +#: src/audiocompress/audacious-glue.c:339 msgid "How long of a window to maintain" msgstr "" -#: src/audiocompress/audacious-glue.c:372 +#: src/audiocompress/audacious-glue.c:380 #, fuzzy msgid "AudioCompress preferences" msgstr "AudioCompress " -#: src/audiocompress/audacious-glue.c:389 +#: src/audiocompress/audacious-glue.c:397 msgid " Quality Options " msgstr "" -#: src/audiocompress/audacious-glue.c:394 +#: src/audiocompress/audacious-glue.c:402 msgid " Aggressively prevent clipping" msgstr "" -#: src/audiocompress/audacious-glue.c:406 +#: src/audiocompress/audacious-glue.c:414 msgid " Target & gain" msgstr "" -#: src/audiocompress/audacious-glue.c:417 -msgid "Target audio level:" -msgstr "" - #: src/audiocompress/audacious-glue.c:425 +msgid "Target audio level:" +msgstr "" + +#: src/audiocompress/audacious-glue.c:433 #, fuzzy msgid "Maximum gain:" msgstr "Guany del disc:" -#: src/audiocompress/audacious-glue.c:433 +#: src/audiocompress/audacious-glue.c:441 msgid "Gain smooth:" msgstr "" -#: src/audiocompress/audacious-glue.c:485 +#: src/audiocompress/audacious-glue.c:493 msgid " History " msgstr "" -#: src/audiocompress/audacious-glue.c:517 +#: src/audiocompress/audacious-glue.c:525 msgid "" "How long of a history to maintain. A higher number will make the volume " "changes less responsive." msgstr "" -#: src/audiocompress/audacious-glue.c:528 +#: src/audiocompress/audacious-glue.c:536 msgid "Load default values" msgstr "" -#: src/audiocompress/audacious-glue.c:533 +#: src/audiocompress/audacious-glue.c:541 #, fuzzy msgid "Audio values" msgstr "Dispositiu d'àudio:" -#: src/audiocompress/audacious-glue.c:562 src/echo_plugin/gui.c:152 -#: src/modplug/gui/interface.cxx:708 src/modplug/gui/modplug.glade:1655 -#: src/stereo_plugin/stereo.c:132 +#: src/audiocompress/audacious-glue.c:570 src/crystalizer/crystalizer.c:129 +#: src/echo_plugin/gui.c:150 src/modplug/gui/interface.cxx:708 +#: src/modplug/gui/modplug.glade:1655 src/stereo_plugin/stereo.c:131 msgid "Apply" msgstr "Aplica" -#: src/blur_scope/blur_scope.c:54 +#: src/blur_scope/blur_scope.c:52 msgid "/Toggle Decorations" msgstr "/Mostra o amaga la decoració" -#: src/blur_scope/blur_scope.c:56 +#: src/blur_scope/blur_scope.c:54 msgid "/-" msgstr "/-" -#: src/blur_scope/blur_scope.c:57 +#: src/blur_scope/blur_scope.c:55 msgid "/Close" msgstr "/Tanca" -#: src/blur_scope/blur_scope.c:181 +#: src/blur_scope/blur_scope.c:179 msgid "Blur scope" msgstr "Oscil·loscopi difús" -#: src/blur_scope/config.c:72 +#: src/blur_scope/config.c:71 msgid "Blur Scope: Color selection" msgstr "Oscil·loscopi difús: Selecció de color" -#: src/blur_scope/config.c:82 src/jack/configure.c:108 +#: src/blur_scope/config.c:81 src/jack/configure.c:107 msgid "Options:" msgstr "Opcions:" @@ -1818,111 +1818,116 @@ "This was a Google Summer of Code 2007 project." msgstr "" -#: src/cdaudio-ng/cdaudio-ng.c:814 +#: src/cdaudio-ng/cdaudio-ng.c:815 msgid "" "No playable CD found.\n" "\n" "No CD inserted, or inserted CD is not an audio CD.\n" msgstr "" -#: src/cdaudio-ng/configure.c:147 +#: src/cdaudio-ng/configure.c:155 #, fuzzy msgid "CD Audio Plugin Configuration" msgstr "Configuració del plugin d'àudio MPEG" -#: src/cdaudio-ng/configure.c:157 +#: src/cdaudio-ng/configure.c:165 msgid "Digital audio extraction" msgstr "Extracció d'àudio digital" -#: src/cdaudio-ng/configure.c:162 +#: src/cdaudio-ng/configure.c:170 #, fuzzy msgid "Title information" msgstr "Format del títol:" -#: src/cdaudio-ng/configure.c:179 +#: src/cdaudio-ng/configure.c:187 msgid "Limit read speed to: " msgstr "" -#: src/cdaudio-ng/configure.c:186 +#: src/cdaudio-ng/configure.c:194 #, fuzzy msgid "Use cd-text if available" msgstr "Estèreo (si està disponible)" -#: src/cdaudio-ng/configure.c:190 +#: src/cdaudio-ng/configure.c:198 #, fuzzy msgid "Use CDDB if available" msgstr "Estèreo (si està disponible)" -#: src/cdaudio-ng/configure.c:194 +#: src/cdaudio-ng/configure.c:202 #, fuzzy msgid "Server: " msgstr "Servidor" -#: src/cdaudio-ng/configure.c:197 +#: src/cdaudio-ng/configure.c:205 +#, fuzzy +msgid "Path: " +msgstr "Port:" + +#: src/cdaudio-ng/configure.c:208 #, fuzzy msgid "Port: " msgstr "Port:" -#: src/cdaudio-ng/configure.c:203 +#: src/cdaudio-ng/configure.c:217 msgid "Use HTTP instead of CDDBP" msgstr "" -#: src/cdaudio-ng/configure.c:211 +#: src/cdaudio-ng/configure.c:225 msgid "Override default device: " msgstr "" -#: src/cdaudio-ng/configure.c:218 +#: src/cdaudio-ng/configure.c:232 msgid "Print debug information" msgstr "" -#: src/console/Audacious_Config.cxx:125 +#: src/console/Audacious_Config.cxx:124 msgid "Console Music Decoder" msgstr "Descodificador de música de consoles" -#: src/console/Audacious_Config.cxx:162 +#: src/console/Audacious_Config.cxx:161 msgid "Bass:" msgstr "Baixos:" -#: src/console/Audacious_Config.cxx:166 src/console/Audacious_Config.cxx:177 -#: src/console/Audacious_Config.cxx:198 +#: src/console/Audacious_Config.cxx:165 src/console/Audacious_Config.cxx:176 +#: src/console/Audacious_Config.cxx:197 msgid "secs" msgstr "segons" -#: src/console/Audacious_Config.cxx:173 +#: src/console/Audacious_Config.cxx:172 msgid "Treble:" msgstr "Aguts:" -#: src/console/Audacious_Config.cxx:194 +#: src/console/Audacious_Config.cxx:193 msgid "Default song length:" msgstr "Duració per defecte:" -#: src/console/Audacious_Config.cxx:200 src/modplug/gui/interface.cxx:268 +#: src/console/Audacious_Config.cxx:199 src/modplug/gui/interface.cxx:268 #: src/modplug/gui/modplug.glade:338 src/sid/xmms-sid.glade:1243 -#: src/sid/xs_interface.c:653 +#: src/sid/xs_interface.c:665 msgid "Resampling" msgstr "Remostreig" -#: src/console/Audacious_Config.cxx:206 +#: src/console/Audacious_Config.cxx:205 msgid "Enable audio resampling" msgstr "Habilita el remostreig d'àudio" -#: src/console/Audacious_Config.cxx:221 +#: src/console/Audacious_Config.cxx:220 msgid "Resampling rate:" msgstr "Taxa de remostreig:" -#: src/console/Audacious_Config.cxx:236 +#: src/console/Audacious_Config.cxx:235 msgid "SPC" msgstr "SPC" +#: src/console/Audacious_Config.cxx:236 +msgid "Ignore length from SPC tags" +msgstr "Ignora la duració de les etiquetes SPC" + #: src/console/Audacious_Config.cxx:237 -msgid "Ignore length from SPC tags" -msgstr "Ignora la duració de les etiquetes SPC" - -#: src/console/Audacious_Config.cxx:238 msgid "Increase reverb" msgstr "" -#: src/console/Audacious_Config.cxx:263 +#: src/console/Audacious_Config.cxx:262 #, fuzzy msgid "" "The default song length, expressed in seconds, is used for songs that do not " @@ -1932,11 +1937,11 @@ "La durada per defecte, expressada en segons, s'utilitza en cançons que\n" "no proporcionen informació sobre la seva durada (ie, pistes bucle)." -#: src/console/Audacious_Driver.cxx:444 +#: src/console/Audacious_Driver.cxx:442 msgid "About the Console Music Decoder" msgstr "Quant al descodificador de música de consoles" -#: src/console/Audacious_Driver.cxx:445 +#: src/console/Audacious_Driver.cxx:443 msgid "" "Console music decoder engine based on Game_Music_Emu 0.5.2.\n" "Supported formats: AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ\n" @@ -1949,12 +1954,21 @@ "Implemetació en l'Audacious per: William Pitcock ,\n" "Shay Green " -#: src/demac/plugin.c:388 +#: src/crystalizer/crystalizer.c:90 +#, fuzzy +msgid "Configure Crystalizer" +msgstr "Configuració de l'estèreo extra" + +#: src/crystalizer/crystalizer.c:92 src/stereo_plugin/stereo.c:94 +msgid "Effect intensity:" +msgstr "Intensitat de l'efecte:" + +#: src/demac/plugin.c:359 #, fuzzy msgid "About Monkey's Audio Plugin" msgstr "Quant al plugin per a àudio MPEG" -#: src/demac/plugin.c:389 +#: src/demac/plugin.c:360 msgid "" "Copyright (C) 2007 Eugene Zagidullin \n" "Based on ffape decoder, Copyright (C) 2007 Benjamin Zores\n" @@ -1963,7 +1977,7 @@ "ffape is a part of FFmpeg project, http://ffmpeg.mplayerhq.hu/" msgstr "" -#: src/echo_plugin/gui.c:11 +#: src/echo_plugin/gui.c:9 msgid "" "Echo Plugin\n" "By Johan Levin 1999.\n" @@ -1975,35 +1989,35 @@ "\n" "Eco envolvent per Carl van Schaik, 1999." -#: src/echo_plugin/gui.c:25 +#: src/echo_plugin/gui.c:23 msgid "About Echo Plugin" msgstr "Quant al plugin d'eco" -#: src/echo_plugin/gui.c:76 +#: src/echo_plugin/gui.c:74 msgid "Configure Echo" msgstr "Configuració de l'eco" -#: src/echo_plugin/gui.c:89 +#: src/echo_plugin/gui.c:87 msgid "Delay: (ms)" msgstr "Retard: (ms)" -#: src/echo_plugin/gui.c:94 +#: src/echo_plugin/gui.c:92 msgid "Feedback: (%)" msgstr "Retorn: (%)" -#: src/echo_plugin/gui.c:99 +#: src/echo_plugin/gui.c:97 msgid "Volume: (%)" msgstr "Volum: (%)" -#: src/echo_plugin/gui.c:122 +#: src/echo_plugin/gui.c:120 msgid "Surround echo" msgstr "Eco envolvent" -#: src/esd/about.c:34 +#: src/esd/about.c:33 msgid "About ESounD Plugin" msgstr "Quant al plugin ESounD" -#: src/esd/about.c:35 +#: src/esd/about.c:34 msgid "" "Audacious ESounD Plugin\n" "\n" @@ -2063,8 +2077,8 @@ msgid "Server" msgstr "Servidor" -#: src/esd/configure.c:198 src/OSS4/configure.c:259 src/OSS/configure.c:331 -#: src/sun/configure.c:290 +#: src/esd/configure.c:198 src/OSS4/configure.c:257 src/OSS/configure.c:330 +#: src/sun/configure.c:288 msgid "Pre-buffer (percent):" msgstr "Pre-buffer (percentatge):" @@ -2142,93 +2156,93 @@ msgid "Window->JumpToFile" msgstr "" -#: src/evdev-plug/ed_internals.c:94 +#: src/evdev-plug/ed_internals.c:93 #, c-format msgid "" "event-device-plugin: unable to open device file %s , skipping this device; " "check that the file exists and that you have read permission for it\n" msgstr "" -#: src/evdev-plug/ed_internals.c:103 +#: src/evdev-plug/ed_internals.c:102 #, c-format msgid "" "event-device-plugin: unable to create a io_channel for device file %s ," "skipping this device\n" msgstr "" -#: src/evdev-plug/ed_internals.c:342 +#: src/evdev-plug/ed_internals.c:341 msgid "" "event-device-plugin: unable to open /proc/bus/input/devices , automatic " "detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:351 +#: src/evdev-plug/ed_internals.c:350 msgid "" "event-device-plugin: unable to open a io_channel for /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:361 +#: src/evdev-plug/ed_internals.c:360 msgid "" "event-device-plugin: an error occurred while reading /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:424 +#: src/evdev-plug/ed_internals.c:423 #, c-format msgid "event-device-plugin: device %s not found in /dev/input , skipping.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:489 src/evdev-plug/ed_internals.c:583 +#: src/evdev-plug/ed_internals.c:488 src/evdev-plug/ed_internals.c:582 #, c-format msgid "" "event-device-plugin: unable to load config file %s , default settings will " "be used.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:535 +#: src/evdev-plug/ed_internals.c:534 #, c-format msgid "" "event-device-plugin: incomplete information in config file for device \"%s" "\" , skipping.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:604 src/evdev-plug/ed_internals.c:936 +#: src/evdev-plug/ed_internals.c:603 src/evdev-plug/ed_internals.c:935 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_active value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:840 +#: src/evdev-plug/ed_internals.c:839 #, c-format msgid "" "event-device-plugin: unable to access local directory %s , settings will not " "be saved.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:890 +#: src/evdev-plug/ed_internals.c:889 #, c-format msgid "" "event-device-plugin: configuration, unable to get filename value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:906 +#: src/evdev-plug/ed_internals.c:905 #, c-format msgid "" "event-device-plugin: configuration, unable to get phys value for device \"%s" "\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:922 +#: src/evdev-plug/ed_internals.c:921 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_custom value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:946 +#: src/evdev-plug/ed_internals.c:945 #, c-format msgid "" "event-device-plugin: configuration, unexpected value for device \"%s\", " @@ -2247,7 +2261,7 @@ "Ensure that the device has been correctly plugged in." msgstr "" -#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:566 +#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:703 msgid "Error" msgstr "Error" @@ -2305,7 +2319,7 @@ msgid "Active" msgstr "Àcid" -#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:488 +#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:486 msgid "Status" msgstr "Estat" @@ -2427,7 +2441,7 @@ msgid "Output file format:" msgstr "Directori de sortida:" -#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:960 +#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:959 #, fuzzy msgid "Configure" msgstr "Configuració de l'eco" @@ -2667,12 +2681,12 @@ msgid "Quality level (0 - 10):" msgstr "" -#: src/flacng/plugin.c:698 +#: src/flacng/plugin.c:697 #, fuzzy msgid "FLAC Audio Plugin " msgstr "Plugin CD d'àudio" -#: src/flacng/plugin.c:699 +#: src/flacng/plugin.c:698 msgid "" "\n" "\n" @@ -2682,17 +2696,17 @@ "http://www.skytale.net/projects/bmp-flac2/" msgstr "" -#: src/flacng/plugin.c:704 +#: src/flacng/plugin.c:703 #, fuzzy msgid "About FLAC Audio Plugin" msgstr "Quant al plugin per a LIRC de l'Audacious" -#: src/gnomeshortcuts/gnomeshortcuts.c:306 +#: src/gnomeshortcuts/gnomeshortcuts.c:305 #, fuzzy msgid "About Gnome Shortcut Plugin" msgstr "Quant al plugin ESounD" -#: src/gnomeshortcuts/gnomeshortcuts.c:307 +#: src/gnomeshortcuts/gnomeshortcuts.c:306 msgid "" "Gnome Shortcut Plugin\n" "Let's you control the player with Gnome's shortcuts.\n" @@ -2705,7 +2719,7 @@ msgid "Previous Track" msgstr "" -#: src/hotkey/gui.c:69 +#: src/hotkey/gui.c:69 src/skins/ui_manager.c:177 src/skins/ui_manager.c:178 #, fuzzy msgid "Play" msgstr "Mode de reproducció:" @@ -2714,7 +2728,7 @@ msgid "Pause/Resume" msgstr "" -#: src/hotkey/gui.c:71 +#: src/hotkey/gui.c:71 src/skins/ui_manager.c:183 src/skins/ui_manager.c:184 #, fuzzy msgid "Stop" msgstr "Synthpop" @@ -2747,7 +2761,7 @@ msgid "Volume Down" msgstr "Volum: (%)" -#: src/hotkey/gui.c:78 +#: src/hotkey/gui.c:78 src/skins/ui_manager.c:422 src/skins/ui_manager.c:423 msgid "Jump to File" msgstr "" @@ -2802,12 +2816,12 @@ msgid "Key Binding:" msgstr "" -#: src/hotkey/gui.c:660 +#: src/hotkey/gui.c:659 #, fuzzy msgid "About Global Hotkey Plugin" msgstr "Quant al plugin per a Scrobbler" -#: src/hotkey/gui.c:661 +#: src/hotkey/gui.c:660 msgid "" "Global Hotkey Plugin\n" "Control the player with global key combinations or multimedia keys.\n" @@ -2823,37 +2837,37 @@ "\n" msgstr "" -#: src/jack/configure.c:70 +#: src/jack/configure.c:69 msgid "Connect to all available jack ports" msgstr "" -#: src/jack/configure.c:77 +#: src/jack/configure.c:76 msgid "Connect only the output ports" msgstr "" -#: src/jack/configure.c:84 +#: src/jack/configure.c:83 msgid "Connect to no ports" msgstr "" -#: src/jack/configure.c:99 +#: src/jack/configure.c:98 #, fuzzy msgid "jack Plugin configuration" msgstr "Configuració del plugin de sortida ESD" -#: src/jack/configure.c:117 +#: src/jack/configure.c:116 msgid "Connection mode:" msgstr "" -#: src/jack/configure.c:129 +#: src/jack/configure.c:128 msgid "Enable debug printing" msgstr "" -#: src/jack/jack.c:84 +#: src/jack/jack.c:82 #, fuzzy msgid "Sample rate mismatch" msgstr "Freqüència de mostreig:" -#: src/jack/jack.c:87 +#: src/jack/jack.c:85 msgid "" "Xmms is asking for a sample rate that differs from\n" " that of the jack server. Xmms 1.2.8 or later\n" @@ -2867,15 +2881,15 @@ "Chris Morgan \n" msgstr "" -#: src/jack/jack.c:100 src/wma/wma.c:148 +#: src/jack/jack.c:98 src/wma/wma.c:145 msgid " Close " msgstr " Tanca " -#: src/jack/jack.c:452 +#: src/jack/jack.c:450 msgid "About JACK Output Plugin 0.17" msgstr "Quant al plugin de sortida JACK 0.17" -#: src/jack/jack.c:453 +#: src/jack/jack.c:451 msgid "" "XMMS jack Driver 0.17\n" "\n" @@ -2893,41 +2907,41 @@ "Portat a l'Audacious per\n" "Giacomo Lozito de develia.org" -#: src/ladspa/ladspa.c:722 +#: src/ladspa/ladspa.c:721 msgid "This LADSPA plugin has no user controls" msgstr "" -#: src/ladspa/ladspa.c:767 src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:766 src/ladspa/ladspa.c:852 #, fuzzy msgid "Name" msgstr "Nom:" -#: src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:852 msgid "UID" msgstr "" -#: src/ladspa/ladspa.c:928 +#: src/ladspa/ladspa.c:927 msgid "Installed plugins" msgstr "" -#: src/ladspa/ladspa.c:937 +#: src/ladspa/ladspa.c:936 msgid "Running plugins" msgstr "" -#: src/ladspa/ladspa.c:952 +#: src/ladspa/ladspa.c:951 msgid "Add" msgstr "" -#: src/ladspa/ladspa.c:956 +#: src/ladspa/ladspa.c:955 #, fuzzy msgid "Remove" msgstr "Treu un lector" -#: src/ladspa/ladspa.c:969 +#: src/ladspa/ladspa.c:968 msgid "LADSPA Plugin Catalog" msgstr "" -#: src/lastfm/lastfm.c:96 +#: src/lastfm/lastfm.c:94 msgid "" "Couldn't initialize the last.fm radio plugin.\n" "\n" @@ -3026,59 +3040,59 @@ msgid "%s: will try reconnect every %d seconds...\n" msgstr "" -#: src/madplug/configure.c:209 +#: src/madplug/configure.c:208 msgid "MPEG Audio Plugin Configuration" msgstr "Configuració del plugin d'àudio MPEG" -#: src/madplug/configure.c:226 +#: src/madplug/configure.c:225 #, fuzzy msgid "Audio Settings" msgstr "Paràmetres del mesclador:" -#: src/madplug/configure.c:234 +#: src/madplug/configure.c:233 msgid "Force reopen audio when audio type changed" msgstr "" -#: src/madplug/configure.c:243 +#: src/madplug/configure.c:242 #, fuzzy msgid "Metadata Settings" msgstr "Paràmetres del mesclador:" -#: src/madplug/configure.c:252 +#: src/madplug/configure.c:251 msgid "Enable fast play-length calculation" msgstr "" -#: src/madplug/configure.c:259 +#: src/madplug/configure.c:258 msgid "Parse XING headers" msgstr "" -#: src/madplug/configure.c:266 +#: src/madplug/configure.c:265 msgid "Use SJIS to write ID3 tags (not recommended)" msgstr "" -#: src/madplug/configure.c:273 +#: src/madplug/configure.c:272 #, fuzzy msgid "Miscellaneous Settings" msgstr "Paràmetres del mesclador:" -#: src/madplug/configure.c:282 +#: src/madplug/configure.c:281 msgid "Display average bitrate for VBR" msgstr "" -#: src/madplug/configure.c:296 src/vorbis/configure.c:102 +#: src/madplug/configure.c:295 src/vorbis/configure.c:100 msgid "Override generic titles" msgstr "Ignora els títols genèrics" -#: src/madplug/configure.c:308 +#: src/madplug/configure.c:307 msgid "ID3 format:" msgstr "Format ID3:" -#: src/madplug/configure.c:320 src/sid/xmms-sid.glade:2540 -#: src/sid/xs_interface.c:1070 +#: src/madplug/configure.c:319 src/sid/xmms-sid.glade:2610 +#: src/sid/xs_interface.c:1102 msgid "Title" msgstr "Títol" -#: src/madplug/plugin.c:524 +#: src/madplug/plugin.c:661 #, c-format msgid "" "Audacious MPEG Audio Plugin\n" @@ -3096,16 +3110,16 @@ " Samuel Krempp" msgstr "" -#: src/madplug/plugin.c:540 +#: src/madplug/plugin.c:677 msgid "About MPEG Audio Plugin" msgstr "Quant al plugin per a àudio MPEG" -#: src/metronom/metronom.c:87 +#: src/metronom/metronom.c:86 #, fuzzy msgid "About Metronom" msgstr "Quant a " -#: src/metronom/metronom.c:88 +#: src/metronom/metronom.c:87 msgid "" "A Tact Generator by Martin Strauss \n" "\n" @@ -3114,12 +3128,12 @@ "or tact://60*3/4 to play 60 bpm in 3/4 tacts" msgstr "" -#: src/metronom/metronom.c:198 src/metronom/metronom.c:262 +#: src/metronom/metronom.c:197 src/metronom/metronom.c:261 #, fuzzy, c-format msgid "Tact generator: %d bpm" msgstr "Generador de tons:" -#: src/metronom/metronom.c:200 src/metronom/metronom.c:264 +#: src/metronom/metronom.c:199 src/metronom/metronom.c:263 #, c-format msgid "Tact generator: %d bpm %d/%d" msgstr "" @@ -3326,11 +3340,11 @@ msgid "Message" msgstr "" -#: src/modplug/gui/main.cxx:45 +#: src/modplug/gui/main.cxx:48 msgid "Modplug Input Plugin for Audacious ver" msgstr "" -#: src/modplug/gui/main.cxx:46 +#: src/modplug/gui/main.cxx:49 msgid "" "\n" "Modplug sound engine written by Olivier Lapicque.\n" @@ -3340,7 +3354,7 @@ "Ported to BMP by Theofilos Intzoglou." msgstr "" -#: src/modplug/gui/main.cxx:49 +#: src/modplug/gui/main.cxx:52 #, fuzzy msgid "About Modplug" msgstr "Quant al plugin d'eco" @@ -3351,27 +3365,27 @@ msgid "Couldn't find pixmap file: %s" msgstr "No s'ha pogut carregar el fitxer MIDI" -#: src/mtp_up/mtp.c:35 +#: src/mtp_up/mtp.c:33 msgid "Upload selected track(s)" msgstr "" -#: src/mtp_up/mtp.c:296 +#: src/mtp_up/mtp.c:294 msgid "Upload in progress..." msgstr "" -#: src/mtp_up/mtp.c:305 +#: src/mtp_up/mtp.c:303 msgid "MTP device handler" msgstr "" -#: src/mtp_up/mtp.c:309 +#: src/mtp_up/mtp.c:307 msgid "Disconnect the device" msgstr "" -#: src/musepack/libmpc.cxx:146 +#: src/musepack/libmpc.cxx:142 msgid "Musepack Decoder Plugin 1.2" msgstr "" -#: src/musepack/libmpc.cxx:147 +#: src/musepack/libmpc.cxx:143 msgid "" "Plugin code by\n" "Benoit Amiaux\n" @@ -3381,187 +3395,188 @@ "Get latest version at http://musepack.net\n" msgstr "" -#: src/musepack/libmpc.cxx:148 +#: src/musepack/libmpc.cxx:144 msgid "Nevermind" msgstr "" -#: src/musepack/libmpc.cxx:166 +#: src/musepack/libmpc.cxx:162 #, fuzzy msgid "Musepack Decoder Configuration" msgstr "Configuració de l'escriptura al disc" -#: src/musepack/libmpc.cxx:176 +#: src/musepack/libmpc.cxx:172 #, fuzzy msgid "General Settings" msgstr "Paràmetres del mesclador:" -#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:492 +#: src/musepack/libmpc.cxx:179 src/wavpack/ui.cxx:490 msgid "Enable Dynamic Bitrate Display" msgstr "" -#: src/musepack/libmpc.cxx:187 src/wavpack/ui.cxx:498 +#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:496 #, fuzzy msgid "Plugin" msgstr "Plugin LIRC" -#: src/musepack/libmpc.cxx:190 +#: src/musepack/libmpc.cxx:186 #, fuzzy msgid "ReplayGain Settings" msgstr "Paràmetres de ReplayGain:" -#: src/musepack/libmpc.cxx:197 src/wavpack/ui.cxx:510 +#: src/musepack/libmpc.cxx:193 src/wavpack/ui.cxx:508 msgid "Enable Clipping Prevention" msgstr "Prevenció de distorsions" -#: src/musepack/libmpc.cxx:202 src/wavpack/ui.cxx:515 +#: src/musepack/libmpc.cxx:198 src/wavpack/ui.cxx:513 msgid "Enable ReplayGain" msgstr "Habilita el ReplayGain" -#: src/musepack/libmpc.cxx:207 +#: src/musepack/libmpc.cxx:203 #, fuzzy msgid "ReplayGain Type" msgstr "Tipus de ReplayGain:" -#: src/musepack/libmpc.cxx:215 +#: src/musepack/libmpc.cxx:211 #, fuzzy msgid "Use Track Gain" msgstr "usa el guany/pic de la pista" -#: src/musepack/libmpc.cxx:219 +#: src/musepack/libmpc.cxx:215 #, fuzzy msgid "Use Album Gain" msgstr "usa el guany/pic del disc" -#: src/musepack/libmpc.cxx:224 src/wavpack/ui.cxx:547 +#: src/musepack/libmpc.cxx:220 src/wavpack/ui.cxx:545 msgid "ReplayGain" msgstr "ReplayGain" -#: src/musepack/libmpc.cxx:491 src/sid/xmms-sid.glade:3144 -#: src/sid/xs_interface.c:1564 src/tta/libtta.c:304 src/wavpack/ui.cxx:152 +#: src/musepack/libmpc.cxx:487 src/sid/xmms-sid.glade:3338 +#: src/sid/xs_interface.c:1648 src/tta/libtta.c:301 src/wavpack/ui.cxx:150 #, fuzzy msgid "Filename:" msgstr "Nom d'usuari:" -#: src/musepack/libmpc.cxx:506 +#: src/musepack/libmpc.cxx:502 msgid "Musepack Tag" msgstr "" -#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:323 src/wavpack/ui.cxx:172 +#: src/musepack/libmpc.cxx:510 src/tta/libtta.c:320 src/wavpack/ui.cxx:170 msgid "Title:" msgstr "Títol:" -#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:333 src/wavpack/ui.cxx:184 +#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:330 src/wavpack/ui.cxx:182 msgid "Artist:" msgstr "Artista:" -#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:344 src/wavpack/ui.cxx:196 +#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:341 src/wavpack/ui.cxx:194 msgid "Album:" msgstr "Disc:" -#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:355 src/wavpack/ui.cxx:208 +#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:352 src/wavpack/ui.cxx:206 msgid "Comment:" msgstr "Comentari:" -#: src/musepack/libmpc.cxx:530 src/tta/libtta.c:366 src/wavpack/ui.cxx:221 +#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:363 src/wavpack/ui.cxx:219 msgid "Year:" msgstr "Any:" -#: src/musepack/libmpc.cxx:535 +#: src/musepack/libmpc.cxx:531 #, fuzzy msgid "Track:" msgstr "Guany de la pista:" -#: src/musepack/libmpc.cxx:540 src/tta/libtta.c:390 src/wavpack/ui.cxx:248 +#: src/musepack/libmpc.cxx:536 src/tta/libtta.c:387 src/wavpack/ui.cxx:246 msgid "Genre:" msgstr "Gènere:" -#: src/musepack/libmpc.cxx:551 src/sid/xmms-sid.glade:1732 -#: src/sid/xs_interface.c:820 src/wavpack/ui.cxx:267 +#: src/musepack/libmpc.cxx:547 src/sid/xmms-sid.glade:1732 +#: src/sid/xs_interface.c:832 src/skins/ui_manager.c:438 +#: src/wavpack/ui.cxx:265 #, fuzzy msgid "Save" msgstr "Rave" -#: src/musepack/libmpc.cxx:554 src/wavpack/ui.cxx:273 +#: src/musepack/libmpc.cxx:550 src/wavpack/ui.cxx:271 #, fuzzy msgid "Remove Tag" msgstr "Treu un lector" -#: src/musepack/libmpc.cxx:562 +#: src/musepack/libmpc.cxx:558 msgid "Musepack Info" msgstr "" +#: src/musepack/libmpc.cxx:591 +#, fuzzy, c-format +msgid "Streamversion %d" +msgstr "Streaming" + +#: src/musepack/libmpc.cxx:592 +#, c-format +msgid "Encoder: %s" +msgstr "" + +#: src/musepack/libmpc.cxx:593 +#, c-format +msgid "Profile: %s" +msgstr "" + +#: src/musepack/libmpc.cxx:594 +#, c-format +msgid "Average bitrate: %6.1f kbps" +msgstr "" + #: src/musepack/libmpc.cxx:595 #, fuzzy, c-format -msgid "Streamversion %d" -msgstr "Streaming" +msgid "Samplerate: %d Hz" +msgstr "Freqüència de mostreig:" #: src/musepack/libmpc.cxx:596 -#, c-format -msgid "Encoder: %s" -msgstr "" - -#: src/musepack/libmpc.cxx:597 -#, c-format -msgid "Profile: %s" -msgstr "" - -#: src/musepack/libmpc.cxx:598 -#, c-format -msgid "Average bitrate: %6.1f kbps" -msgstr "" - -#: src/musepack/libmpc.cxx:599 -#, fuzzy, c-format -msgid "Samplerate: %d Hz" -msgstr "Freqüència de mostreig:" - -#: src/musepack/libmpc.cxx:600 #, fuzzy, c-format msgid "Channels: %d" msgstr "Canals:" -#: src/musepack/libmpc.cxx:601 +#: src/musepack/libmpc.cxx:597 #, fuzzy, c-format msgid "Length: %d:\\%.2d" msgstr "" "\n" "Durada total: %d:%d\n" -#: src/musepack/libmpc.cxx:602 +#: src/musepack/libmpc.cxx:598 #, fuzzy, c-format msgid "File size: %d Bytes" msgstr "Mida del fitxer:" -#: src/musepack/libmpc.cxx:603 +#: src/musepack/libmpc.cxx:599 #, fuzzy, c-format msgid "Track Peak: %5u" msgstr "Pic de la pista:" -#: src/musepack/libmpc.cxx:604 +#: src/musepack/libmpc.cxx:600 #, fuzzy, c-format msgid "Track Gain: %-+2.2f dB" msgstr "Guany de la pista:" -#: src/musepack/libmpc.cxx:605 +#: src/musepack/libmpc.cxx:601 #, fuzzy, c-format msgid "Album Peak: %5u" msgstr "Pic del disc:" -#: src/musepack/libmpc.cxx:606 +#: src/musepack/libmpc.cxx:602 #, fuzzy, c-format msgid "Album Gain: %-+5.2f dB" msgstr "Guany del disc:" -#: src/musepack/libmpc.cxx:634 src/tta/libtta.c:413 src/wavpack/ui.cxx:409 +#: src/musepack/libmpc.cxx:630 src/tta/libtta.c:410 src/wavpack/ui.cxx:407 #, c-format msgid "File Info - %s" msgstr "Informació del fitxer - %s" -#: src/null/null.c:61 +#: src/null/null.c:58 msgid "Null output plugin " msgstr "Plugin de sortida nul" -#: src/null/null.c:62 +#: src/null/null.c:59 #, fuzzy msgid "" " by Christian Birchinger \n" @@ -3570,25 +3585,54 @@ " per Christian Birchinger \n" " basat el plugin de l'XMMS de Håvard Kvål " -#: src/null/null.c:65 +#: src/null/null.c:62 msgid "About Null Output" msgstr "Quant a la sortida nul·la" -#: src/null/null.c:94 +#: src/null/null.c:91 #, fuzzy msgid "Null output preferences" msgstr "Plugin de sortida nul" -#: src/null/null.c:103 +#: src/null/null.c:100 msgid "Run in real time" msgstr "" -#: src/OSS4/about.c:42 +#: src/OSS4/configure.c:118 src/OSS/configure.c:150 +#, c-format +msgid "Default (%s)" +msgstr "Per defecte (%s)" + +#: src/OSS4/configure.c:168 src/OSS/configure.c:200 +msgid "OSS Driver configuration" +msgstr "Configuració del driver OSS" + +#: src/OSS4/configure.c:206 src/OSS/configure.c:238 src/OSS/configure.c:279 +msgid "Use alternate device:" +msgstr "Una un dispositiu alternatiu:" + +#: src/OSS4/configure.c:228 src/OSS/configure.c:301 src/sun/configure.c:246 +msgid "Devices" +msgstr "Dispositius" + +#: src/OSS4/configure.c:270 src/OSS/configure.c:342 +msgid "Mixer Settings:" +msgstr "Paràmetres del mesclador:" + +#: src/OSS4/configure.c:276 +msgid "Save VMIX volume between sessions" +msgstr "" + +#: src/OSS4/configure.c:282 src/OSS/configure.c:354 src/sun/configure.c:392 +msgid "Mixer" +msgstr "Mesclador" + +#: src/OSS4/OSS4.c:38 #, fuzzy msgid "About OSSv4 Driver" msgstr "Quant al driver OSS" -#: src/OSS4/about.c:43 +#: src/OSS4/OSS4.c:39 #, fuzzy msgid "" "Audacious OSSv4 Driver\n" @@ -3628,40 +3672,15 @@ "Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\n" "Boston, MA 02110-1301, USA." -#: src/OSS4/configure.c:120 src/OSS/configure.c:151 -#, c-format -msgid "Default (%s)" -msgstr "Per defecte (%s)" - -#: src/OSS4/configure.c:170 src/OSS/configure.c:201 -msgid "OSS Driver configuration" -msgstr "Configuració del driver OSS" - -#: src/OSS4/configure.c:208 src/OSS/configure.c:239 src/OSS/configure.c:280 -msgid "Use alternate device:" -msgstr "Una un dispositiu alternatiu:" - -#: src/OSS4/configure.c:230 src/OSS/configure.c:302 src/sun/configure.c:248 -msgid "Devices" -msgstr "Dispositius" - -#: src/OSS4/configure.c:272 src/OSS/configure.c:343 -msgid "Mixer Settings:" -msgstr "Paràmetres del mesclador:" - -#: src/OSS4/configure.c:278 -msgid "Save VMIX volume between sessions" -msgstr "" - -#: src/OSS4/configure.c:284 src/OSS/configure.c:355 src/sun/configure.c:394 -msgid "Mixer" -msgstr "Mesclador" - -#: src/OSS/about.c:39 +#: src/OSS/configure.c:348 +msgid "Volume controls Master not PCM" +msgstr "El volum canvia el Master, no el PCM" + +#: src/OSS/OSS.c:37 msgid "About OSS Driver" msgstr "Quant al driver OSS" -#: src/OSS/about.c:40 +#: src/OSS/OSS.c:38 msgid "" "Audacious OSS Driver\n" "\n" @@ -3697,20 +3716,16 @@ "Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\n" "Boston, MA 02110-1301, USA." -#: src/OSS/configure.c:349 -msgid "Volume controls Master not PCM" -msgstr "El volum canvia el Master, no el PCM" - #: src/projectm-1.0/main.c:70 msgid "_Random" msgstr "" -#: src/pulse_audio/pulse_audio.c:722 +#: src/pulse_audio/pulse_audio.c:720 #, fuzzy msgid "About Audacious PulseAudio Output Plugin" msgstr "Plugin de sortida CoreAudio" -#: src/pulse_audio/pulse_audio.c:723 +#: src/pulse_audio/pulse_audio.c:721 #, fuzzy msgid "" "Audacious PulseAudio Output Plugin\n" @@ -3747,27 +3762,27 @@ "Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\n" "Boston, MA 02110-1301, USA." -#: src/scrobbler/configure.c:138 +#: src/scrobbler/configure.c:134 msgid "Services" msgstr "Serveis" -#: src/scrobbler/configure.c:160 src/scrobbler/configure.c:199 +#: src/scrobbler/configure.c:156 src/scrobbler/configure.c:195 msgid "Username:" msgstr "Nom d'usuari:" -#: src/scrobbler/configure.c:166 src/scrobbler/configure.c:205 +#: src/scrobbler/configure.c:162 src/scrobbler/configure.c:201 msgid "Password:" msgstr "Contrasenya:" -#: src/scrobbler/configure.c:183 +#: src/scrobbler/configure.c:179 msgid "Last.FM" msgstr "Last.FM" -#: src/scrobbler/configure.c:222 +#: src/scrobbler/configure.c:218 msgid "Gerpok" msgstr "Gerpok" -#: src/scrobbler/gtkstuff.c:21 +#: src/scrobbler/gtkstuff.c:18 msgid "" "Audacious AudioScrobbler Plugin\n" "\n" @@ -3775,11 +3790,11 @@ "com>\n" msgstr "" -#: src/scrobbler/gtkstuff.c:23 +#: src/scrobbler/gtkstuff.c:20 msgid "About Scrobbler Plugin" msgstr "Quant al plugin per a Scrobbler" -#: src/scrobbler/gtkstuff.c:36 +#: src/scrobbler/gtkstuff.c:33 #, c-format msgid "" "There has been an error that may require your attention.\n" @@ -3789,113 +3804,113 @@ "%s\n" msgstr "" -#: src/scrobbler/gtkstuff.c:43 +#: src/scrobbler/gtkstuff.c:40 #, fuzzy msgid "Scrobbler Error" msgstr "Plugin per a Scrobbler" -#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:221 +#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:233 #, fuzzy msgid "Audacious-SID configuration" msgstr "Configuració del plugin d'àudio MPEG" -#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:257 +#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:269 #, fuzzy msgid "8-bit" msgstr "8 bits" -#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:264 +#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:276 #, fuzzy msgid "16-bit" msgstr "16 bits" -#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:271 +#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:283 msgid "Resolution:" msgstr "Resolució:" -#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:302 +#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:314 msgid "Autopanning" msgstr "" -#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:309 +#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:321 msgid "Channels:" msgstr "Canals:" -#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:353 +#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:365 #, fuzzy msgid "Samplerate:" msgstr "Freqüència de mostreig:" -#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:370 +#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:382 #, fuzzy msgid "Use oversampling" msgstr "Remostreig" -#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:381 +#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:393 msgid "Factor:" msgstr "" -#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:393 +#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:405 msgid "Large factors require more CPU-power" msgstr "" -#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:399 +#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:411 #, fuzzy msgid "Oversampling:" msgstr "Remostreig" -#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:404 +#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:416 msgid "Audio" msgstr "" -#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:436 +#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:448 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "clock speed/frequency. Otherwise the speed is determined from played file " "itself." msgstr "" -#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:432 +#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:444 msgid "Force speed" msgstr "" -#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:442 +#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:454 msgid "" "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. " "Most of SID-tunes have been made for PAL computers." msgstr "" -#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:438 +#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:450 msgid "PAL (50 Hz)" msgstr "" -#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:450 +#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:462 msgid "" "NTSC is the TV standard with 60Hz vertical refresh rate (and other features " "that differ from PAL). It is mainly used in United States, Japan and certain " "other countries." msgstr "" -#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:446 +#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:458 msgid "NTSC (60 Hz)" msgstr "" -#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:454 +#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:466 msgid "Clock speed:" msgstr "" -#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:475 +#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:487 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "SID-chip model. Otherwise the preferred SID model is determined from the " "file (if PSIDv2NG type) or if not available, this setting is used." msgstr "" -#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:471 +#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:483 msgid "Force model" msgstr "" -#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:481 +#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:493 msgid "" "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 " "in few ways, having much fuller filter (which, due to design error, is never " @@ -3903,91 +3918,91 @@ "which enables playing of digital samples." msgstr "" -#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:477 +#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:489 msgid "MOS 6581" msgstr "" -#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:485 +#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:497 msgid "MOS 8580" msgstr "" -#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:492 +#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:504 #, fuzzy msgid "SID model:" msgstr "Mode de reproducció:" -#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:513 +#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:525 msgid "" "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most " "cases, though." msgstr "" -#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:509 +#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:521 msgid "SIDPlay 1 (frame-based)" msgstr "" -#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:521 +#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:533 msgid "" "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact " "emulation." msgstr "" -#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:517 +#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:529 msgid "SIDPlay 2 (cycle-based)" msgstr "" -#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:525 +#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:537 msgid "Emulation library selection:" msgstr "" -#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:542 +#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:554 msgid "Real C64 (SIDPlay 2 only)" msgstr "" -#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:549 +#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:561 msgid "Bank switching" msgstr "" -#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:556 +#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:568 msgid "Transparent ROM" msgstr "" -#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:563 +#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:575 msgid "PlaySID environment" msgstr "" -#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:570 +#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:582 #, fuzzy msgid "Memory mode:" msgstr "Mode de reproducció:" -#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:575 +#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:587 msgid "Emu#1" msgstr "" -#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:602 +#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:614 msgid "" "This setting can be used to enable libSIDPlay2's \"optimization mode\", " "which in downgrades the emulation from cycle-exact to something similar to " "frame-exact. The result is lower CPU usage, but worse accuracy." msgstr "" -#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:598 +#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:610 msgid "Optimization mode (faster, inaccurate)" msgstr "" -#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:608 +#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:620 msgid "" "reSID is the software SID-chip simulator based on SID reverse-engineering, " "created by Dag Lem. It is probably the closest thing to real SID available " "as software-only emulation." msgstr "" -#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:604 +#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:616 msgid "reSID-emulation" msgstr "" -#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:616 +#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:628 msgid "" "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a " "real SID-chip. Software can be used to control the HardSID and combined with " @@ -3996,49 +4011,49 @@ "http://www.hardsid.com/" msgstr "" -#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:612 +#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:624 msgid "HardSID" msgstr "" -#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:620 +#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:632 msgid "SIDPlay 2 options:" msgstr "" -#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:641 +#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:653 msgid "" "Fastest and also worst sounding sampling method, simply picks nearest " "neighbouring sample." msgstr "" -#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:637 +#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:649 msgid "Fast (nearest neighbour)" msgstr "" -#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:649 +#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:661 msgid "" "Uses linear interpolation between samples, yielding higher audio quality " "with less sampling noise." msgstr "" -#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:645 +#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:657 msgid "Linear interpolation" msgstr "" -#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:660 +#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:672 #, fuzzy msgid "Resampling (FIR)" msgstr "Remostreig" -#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:667 +#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:679 #, fuzzy msgid "reSID sampling options:" msgstr "Taxa de remostreig:" -#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:672 +#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:684 msgid "Emu#2" msgstr "" -#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:688 +#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:700 msgid "" "This option enables emulation of SID filter. The filter is an essential part " "of SID's sound capacity, but accurate emulation of it may require quite much " @@ -4046,304 +4061,315 @@ "authentic at all if they utilize the filter." msgstr "" -#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:684 +#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:696 msgid "Emulate filters" msgstr "" -#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:713 +#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:725 msgid "FS" msgstr "" -#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:730 +#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:742 msgid "FM" msgstr "" -#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:747 +#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:759 msgid "FT" msgstr "" -#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:758 +#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:770 msgid "Reset values" msgstr "" -#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:763 +#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:775 msgid "SIDPlay1" msgstr "" -#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:804 +#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:816 msgid "Export" msgstr "" -#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:812 +#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:824 msgid "Use" msgstr "" -#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:828 +#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:840 +#: src/skins/ui_manager.c:437 msgid "Import" msgstr "" -#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:836 +#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:848 +#: src/skins/ui_manager.c:439 #, fuzzy msgid "Delete" msgstr "Per defecte" -#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:850 +#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:862 #, fuzzy msgid "Filter curve:" msgstr "Mida del fitxer:" -#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:855 +#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:867 msgid "SIDPlay2" msgstr "" -#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:861 +#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:873 msgid "Filters" msgstr "" -#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:888 +#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:900 msgid "" "If enabled, the tune is played at least for the specified time, adding " "silence to the end if necessary." msgstr "" -#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:884 +#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:896 msgid "Play at least for specified time" msgstr "" #: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133 -#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:895 -#: src/sid/xs_interface.c:949 src/sid/xs_interface.c:1109 +#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:907 +#: src/sid/xs_interface.c:961 src/sid/xs_interface.c:1141 #, fuzzy msgid "Playtime:" msgstr "Mode de reproducció:" -#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:915 +#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:927 msgid "Minimum playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:936 +#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:948 msgid "" "If enabled, tune is played until specified duration is reached (aka maximum " "playtime)." msgstr "" -#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:932 +#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:944 msgid "Play for specified time maximum" msgstr "" -#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:942 +#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:954 msgid "" "If enabled, the maximum playtime is applied only if song/tune length is not " "known." msgstr "" -#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:938 +#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:950 msgid "Only when song length is unknown" msgstr "" -#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:969 +#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:981 msgid "Maximum playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:990 +#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:1002 msgid "" "This option enables using of XSIDPLAY compatible song length database. " "(Refer to Audacious-SID documentation for more information)" msgstr "" -#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:986 +#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:998 msgid "Use XSIDPLAY-compatible database" msgstr "" -#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:997 +#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:1009 msgid "DB-file:" msgstr "" -#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1007 +#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1019 msgid "Database path and filename" msgstr "" -#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1014 +#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1026 msgid "Browse for song length-database file" msgstr "" -#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1016 +#: src/sid/xmms-sid.glade:2418 src/sid/xs_interface.c:1048 msgid "Song length database:" msgstr "" -#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1021 +#: src/sid/xmms-sid.glade:2454 src/sid/xs_interface.c:1053 #, fuzzy msgid "Songlength" msgstr "Duració per defecte:" -#: src/sid/xmms-sid.glade:2430 src/sid/xs_interface.c:1043 +#: src/sid/xmms-sid.glade:2492 src/sid/xs_interface.c:1075 msgid "" "By enabling this option you can specify a custom Tuplez formatting string " "for SID-files. The SID-plugin specific Tuplez tags are described shortly " "below." msgstr "" -#: src/sid/xmms-sid.glade:2432 src/sid/xs_interface.c:1039 +#: src/sid/xmms-sid.glade:2494 src/sid/xs_interface.c:1071 #, fuzzy msgid "Override generic Tuplez format string" msgstr "Ignora els títols genèrics" -#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1054 +#: src/sid/xmms-sid.glade:2519 src/sid/xs_interface.c:1086 msgid "Tuplez format string for SID-files" msgstr "" -#: src/sid/xmms-sid.glade:2477 src/sid/xs_interface.c:1057 -msgid "Descriptions of SID-specific Tuplez fields go here. :D" -msgstr "" - -#: src/sid/xmms-sid.glade:2511 src/sid/xs_interface.c:1065 +#: src/sid/xmms-sid.glade:2539 src/sid/xs_interface.c:1089 +msgid "" +"SID-specific Tuplez fields:\n" +"\n" +"sid-format\t\t- Specific fileformat\n" +"sid-model\t\t- 6581 or 8580\n" +"sid-speed\t\t- Timing or speed: PAL/NTSC/etc.\n" +"\n" +"Other \"special\" fields set:\n" +"\n" +"subsong-num, subsong-id" +msgstr "" + +#: src/sid/xmms-sid.glade:2581 src/sid/xs_interface.c:1097 #, fuzzy msgid "Song title format:" msgstr "Format del títol:" -#: src/sid/xmms-sid.glade:2584 src/sid/xs_interface.c:1096 +#: src/sid/xmms-sid.glade:2654 src/sid/xs_interface.c:1128 msgid "" "If enabled, sub-tunes of each file will be added to playlist. If disabled, " "only the default sub-tune will be added." msgstr "" -#: src/sid/xmms-sid.glade:2586 src/sid/xs_interface.c:1092 +#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1124 msgid "Add sub-tunes to playlist" msgstr "" -#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1102 +#: src/sid/xmms-sid.glade:2675 src/sid/xs_interface.c:1134 msgid "Only add sub-tunes that have a duration of at least specified time." msgstr "" -#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1098 +#: src/sid/xmms-sid.glade:2677 src/sid/xs_interface.c:1130 msgid "Only tunes with specified minimum duration" msgstr "" -#: src/sid/xmms-sid.glade:2710 src/sid/xs_interface.c:1129 +#: src/sid/xmms-sid.glade:2780 src/sid/xs_interface.c:1161 #, fuzzy msgid "Sub-tune handling:" msgstr "Control del volum:" -#: src/sid/xmms-sid.glade:2755 src/sid/xs_interface.c:1150 +#: src/sid/xmms-sid.glade:2825 src/sid/xs_interface.c:1182 msgid "" "If this option is enabled (and the database & HVSC settings below are " "correctly set), Audacious-SID will use and display additional information " "from STIL database when HVSC SIDs are played." msgstr "" -#: src/sid/xmms-sid.glade:2757 src/sid/xs_interface.c:1146 +#: src/sid/xmms-sid.glade:2827 src/sid/xs_interface.c:1178 msgid "Use STIL database" msgstr "" -#: src/sid/xmms-sid.glade:2782 src/sid/xs_interface.c:1157 +#: src/sid/xmms-sid.glade:2852 src/sid/xs_interface.c:1189 #, fuzzy msgid "STIL file:" msgstr "Títol:" -#: src/sid/xmms-sid.glade:2819 src/sid/xs_interface.c:1173 +#: src/sid/xmms-sid.glade:2889 src/sid/xs_interface.c:1205 msgid "" "Path and filename of STIL database file (STIL.txt), usually found from " "HVSC's DOCUMENTS-subdirectory." msgstr "" -#: src/sid/xmms-sid.glade:2854 src/sid/xs_interface.c:1186 +#: src/sid/xmms-sid.glade:2924 src/sid/xs_interface.c:1218 msgid "Browse for STIL-database file" msgstr "" -#: src/sid/xmms-sid.glade:2888 src/sid/xs_interface.c:1193 +#: src/sid/xmms-sid.glade:3020 src/sid/xs_interface.c:1245 msgid "HVSC path:" msgstr "" -#: src/sid/xmms-sid.glade:2925 src/sid/xs_interface.c:1209 +#: src/sid/xmms-sid.glade:3057 src/sid/xs_interface.c:1261 msgid "" "Path to base-directory of your High Voltage SID Collection (HVSC), for " "example /media/C64Music/" msgstr "" -#: src/sid/xmms-sid.glade:2960 src/sid/xs_interface.c:1222 +#: src/sid/xmms-sid.glade:3092 src/sid/xs_interface.c:1274 msgid "Browse for HVSC path" msgstr "" -#: src/sid/xmms-sid.glade:2990 src/sid/xs_interface.c:1224 +#: src/sid/xmms-sid.glade:3184 src/sid/xs_interface.c:1296 msgid "SID Tune Information List (STIL) database:" msgstr "" -#: src/sid/xmms-sid.glade:3063 src/sid/xs_interface.c:1248 +#: src/sid/xmms-sid.glade:3257 src/sid/xs_interface.c:1320 msgid "Accept and update changes" msgstr "" -#: src/sid/xmms-sid.glade:3077 src/sid/xs_interface.c:1255 +#: src/sid/xmms-sid.glade:3271 src/sid/xs_interface.c:1327 msgid "Cancel any changes" msgstr "" -#: src/sid/xmms-sid.glade:3102 src/sid/xs_interface.c:1543 +#: src/sid/xmms-sid.glade:3296 src/sid/xs_interface.c:1627 msgid "Audacious-SID Fileinfo" msgstr "" -#: src/sid/xmms-sid.glade:3172 src/sid/xs_interface.c:1572 +#: src/sid/xmms-sid.glade:3366 src/sid/xs_interface.c:1656 msgid "Songname:" msgstr "" -#: src/sid/xmms-sid.glade:3200 src/sid/xs_interface.c:1580 +#: src/sid/xmms-sid.glade:3394 src/sid/xs_interface.c:1664 msgid "Composer:" msgstr "" -#: src/sid/xmms-sid.glade:3228 src/sid/xs_interface.c:1588 +#: src/sid/xmms-sid.glade:3422 src/sid/xs_interface.c:1672 msgid "Copyright:" msgstr "Copyright:" -#: src/sid/xmms-sid.glade:3342 src/sid/xs_interface.c:1632 +#: src/sid/xmms-sid.glade:3536 src/sid/xs_interface.c:1716 msgid "Song Information:" msgstr "" -#: src/sid/xmms-sid.glade:3416 src/sid/xs_interface.c:1667 +#: src/sid/xmms-sid.glade:3610 src/sid/xs_interface.c:1751 msgid "Author:" msgstr "" -#: src/sid/xmms-sid.glade:3514 src/sid/xs_interface.c:1701 +#: src/sid/xmms-sid.glade:3708 src/sid/xs_interface.c:1785 #, fuzzy msgid "Duration:" msgstr "Descripció:" -#: src/sid/xmms-sid.glade:3608 src/sid/xs_interface.c:1735 +#: src/sid/xmms-sid.glade:3802 src/sid/xs_interface.c:1819 msgid "Sub-tune Information:" msgstr "" -#: src/sid/xmms-sid.glade:3662 src/sid/xs_interface.c:1796 +#: src/sid/xmms-sid.glade:3856 src/sid/xs_interface.c:1880 msgid "Select HVSC song length database" msgstr "" -#: src/sid/xmms-sid.glade:3704 src/sid/xs_interface.c:1837 +#: src/sid/xmms-sid.glade:3898 src/sid/xs_interface.c:1921 msgid "Select STIL-database" msgstr "" -#: src/sid/xmms-sid.glade:3746 src/sid/xs_interface.c:1878 +#: src/sid/xmms-sid.glade:3940 src/sid/xs_interface.c:1962 msgid "Select HVSC location prefix" msgstr "" -#: src/sid/xmms-sid.glade:3788 src/sid/xs_interface.c:1919 +#: src/sid/xmms-sid.glade:3982 src/sid/xs_interface.c:2003 msgid "Select SIDPlay2 filters file for importing" msgstr "" -#: src/sid/xmms-sid.glade:3830 src/sid/xs_interface.c:1960 +#: src/sid/xmms-sid.glade:4024 src/sid/xs_interface.c:2044 msgid "Select SIDPlay2 filters file for exporting" msgstr "" -#: src/sid/xmms-sid.glade:3871 src/sid/xmms-sid.glade:3953 -#: src/sid/xs_interface.c:2008 src/sid/xs_interface.c:2021 +#: src/sid/xmms-sid.glade:4065 src/sid/xmms-sid.glade:4147 +#: src/sid/xs_interface.c:2092 src/sid/xs_interface.c:2105 msgid "Confirm selected action" msgstr "" -#: src/sid/xmms-sid.glade:3909 src/sid/xs_interface.c:2038 +#: src/sid/xmms-sid.glade:4103 src/sid/xs_interface.c:2122 #, fuzzy msgid "Yes" msgstr "Sí" -#: src/sid/xmms-sid.glade:3921 src/sid/xs_interface.c:2044 +#: src/sid/xmms-sid.glade:4115 src/sid/xs_interface.c:2128 msgid "No" msgstr "No" -#: src/sid/xs_about.c:84 src/wma/wma.c:121 +#: src/sid/xs_about.c:84 src/wma/wma.c:118 #, c-format msgid "About %s" msgstr "Quant a %s" @@ -4358,12 +4384,1118 @@ msgid "Tune #%i: " msgstr "" -#: src/sndfile/plugin.c:548 +#: src/skins/plugin.c:128 +msgid "About Skinned GUI" +msgstr "" + +#: src/skins/plugin.c:129 +msgid "" +"Copyright (c) 2008, by Tomasz Moń \n" +"\n" +msgstr "" + +#: src/skins/skins_cfg.c:329 +#, fuzzy +msgid "_Fonts" +msgstr "Hatena" + +#: src/skins/skins_cfg.c:330 +#, fuzzy +msgid "_Player:" +msgstr "Mode de reproducció:" + +#: src/skins/skins_cfg.c:330 +msgid "Select main player window font:" +msgstr "" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "_Playlist:" +msgstr "Mode de reproducció:" + +#: src/skins/skins_cfg.c:331 +msgid "Select playlist font:" +msgstr "" + +#: src/skins/skins_cfg.c:332 +#, fuzzy +msgid "Use Bitmap fonts if available" +msgstr "Estèreo (si està disponible)" + +#: src/skins/skins_cfg.c:332 +msgid "" +"Use bitmap fonts if they are available. Bitmap fonts do not support Unicode " +"strings." +msgstr "" + +#: src/skins/skins_cfg.c:333 +#, fuzzy +msgid "_Miscellaneous" +msgstr "Serveis" + +#: src/skins/skins_cfg.c:334 +msgid "Show track numbers in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:336 +msgid "Show separators in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:338 +msgid "Show window manager decoration" +msgstr "" + +#: src/skins/skins_cfg.c:339 +msgid "This enables the window manager to show decorations for windows." +msgstr "" + +#: src/skins/skins_cfg.c:340 +msgid "Use two-way text scroller" +msgstr "" + +#: src/skins/skins_cfg.c:341 +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 "" + +#: src/skins/skins_cfg.c:342 +msgid "Disable inline gtk theme" +msgstr "" + +#: src/skins/skins_cfg.c:343 +msgid "Allow loading incomplete skins" +msgstr "" + +#: src/skins/skins_cfg.c:344 +msgid "" +"If selected, audacious won't refuse loading broken skins. Use only if your " +"favourite skin doesn't work" +msgstr "" + +#: src/skins/skins_cfg.c:410 +msgid "Color Adjustment" +msgstr "" + +#: src/skins/skins_cfg.c:417 +msgid "" +"Audacious allows you to alter the color balance of the skinned UI. The " +"sliders below will allow you to do this." +msgstr "" + +#: src/skins/skins_cfg.c:427 +#, fuzzy +msgid "Blue" +msgstr "Blues" + +#: src/skins/skins_cfg.c:434 +msgid "Green" +msgstr "" + +#: src/skins/skins_cfg.c:441 +msgid "Red" +msgstr "" + +#: src/skins/skins_cfg.c:571 +#, fuzzy +msgid "Audacious Skinned GUI Configuration" +msgstr "Configuració del reproductor de CD" + +#: src/skins/skins_cfg.c:596 +#, fuzzy +msgid "_Skin" +msgstr "Hatena" + +#: src/skins/ui_equalizer.c:494 +msgid "Audacious Equalizer" +msgstr "" + +#: src/skins/ui_equalizer.c:794 +#, c-format +msgid "Error importing Winamp EQF file '%s'" +msgstr "" + +#: src/skins/ui_equalizer.c:1172 +msgid "Presets" +msgstr "" + +#: src/skins/ui_main.c:392 +#, c-format +msgid "%s - Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:394 src/skins/ui_main.c:2397 +#, fuzzy +msgid "Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:641 +msgid "VBR" +msgstr "" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "stereo" +msgstr "Estèreo" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "mono" +msgstr "Mono" + +#: src/skins/ui_main.c:957 +msgid "Can't jump to time when no track is being played.\n" +msgstr "" + +#: src/skins/ui_main.c:972 src/skins/ui_manager.c:425 +#: src/skins/ui_manager.c:426 +msgid "Jump to Time" +msgstr "" + +#: src/skins/ui_main.c:993 +#, fuzzy +msgid "minutes:seconds" +msgstr "segons" + +#: src/skins/ui_main.c:1003 +#, fuzzy +msgid "Track length:" +msgstr "Guany de la pista:" + +#: src/skins/ui_main.c:1149 +msgid "Audacious - visibility warning" +msgstr "" + +#: src/skins/ui_main.c:1152 +#, fuzzy +msgid "Show main player window" +msgstr "Mostra la finestra de xarxa" + +#: src/skins/ui_main.c:1153 +msgid "Ignore" +msgstr "" + +#: src/skins/ui_main.c:1159 +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)." +msgstr "" + +#: src/skins/ui_main.c:1165 +msgid "Always ignore, show/hide is controlled remotely" +msgstr "" + +#: src/skins/ui_main.c:1210 +msgid "Audacious - broken GTK engine usage warning" +msgstr "" + +#: src/skins/ui_main.c:1218 +#, c-format +msgid "" +"Broken GTK engine in use\n" +"\n" +"Audacious has detected that you are using a broken GTK engine.\n" +"\n" +"The theme engine you are using, %s, is incompatible with some of the " +"features used by modern skins. The incompatible features have been disabled " +"for this session.\n" +"\n" +"To use these features, please consider using a different GTK theme engine." +msgstr "" + +#: src/skins/ui_main.c:1229 +msgid "Do not display this warning again" +msgstr "" + +#: src/skins/ui_main.c:1253 +msgid "Enter location to play:" +msgstr "" + +#: src/skins/ui_main.c:1497 +#, c-format +msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" +msgstr "" + +#: src/skins/ui_main.c:1527 +#, fuzzy, c-format +msgid "Volume: %d%%" +msgstr "Volum: (%)" + +#: src/skins/ui_main.c:1555 +#, c-format +msgid "Balance: %d%% left" +msgstr "" + +#: src/skins/ui_main.c:1559 +msgid "Balance: center" +msgstr "" + +#: src/skins/ui_main.c:1563 +#, c-format +msgid "Balance: %d%% right" +msgstr "" + +#: src/skins/ui_main.c:1881 +#, fuzzy +msgid "Options Menu" +msgstr "Opcions:" + +#: src/skins/ui_main.c:1885 +msgid "Disable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1887 +msgid "Enable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1890 +#, fuzzy +msgid "File Info Box" +msgstr "Informació del fitxer - %s" + +#: src/skins/ui_main.c:1894 +#, fuzzy +msgid "Disable 'GUI Scaling'" +msgstr "Deshabilita les etiquetes ID3V2" + +#: src/skins/ui_main.c:1896 +#, fuzzy +msgid "Enable 'GUI Scaling'" +msgstr "Habilita el remostreig d'àudio" + +#: src/skins/ui_main.c:1899 +msgid "Visualization Menu" +msgstr "" + +#: src/skins/ui_main.c:1946 +msgid "" +"Couldn't open audio.\n" +"\n" +"Please check that:\n" +"1. You have the correct output plugin selected.\n" +"2. No other programs is blocking the soundcard.\n" +"3. Your soundcard is configured properly.\n" +msgstr "" + +#: src/skins/ui_manager.c:53 src/skins/ui_manager.c:54 +msgid "Autoscroll Songname" +msgstr "" + +#: src/skins/ui_manager.c:56 src/skins/ui_manager.c:57 +msgid "Stop after Current Song" +msgstr "" + +#: src/skins/ui_manager.c:59 src/skins/ui_manager.c:60 +#, fuzzy +msgid "Peaks" +msgstr "Bromes" + +#: src/skins/ui_manager.c:62 src/skins/ui_manager.c:63 +#, fuzzy +msgid "Repeat" +msgstr "Beat" + +#: src/skins/ui_manager.c:65 src/skins/ui_manager.c:66 +msgid "Shuffle" +msgstr "" + +#: src/skins/ui_manager.c:68 src/skins/ui_manager.c:69 +msgid "No Playlist Advance" +msgstr "" + +#: src/skins/ui_manager.c:71 src/skins/ui_manager.c:72 +msgid "Show Player" +msgstr "" + +#: src/skins/ui_manager.c:74 src/skins/ui_manager.c:75 +msgid "Show Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:77 src/skins/ui_manager.c:78 +msgid "Show Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:80 src/skins/ui_manager.c:81 +msgid "Always on Top" +msgstr "" + +#: src/skins/ui_manager.c:83 src/skins/ui_manager.c:84 +msgid "Put on All Workspaces" +msgstr "" + +#: src/skins/ui_manager.c:86 src/skins/ui_manager.c:87 +msgid "Roll up Player" +msgstr "" + +#: src/skins/ui_manager.c:89 src/skins/ui_manager.c:90 +msgid "Roll up Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:92 src/skins/ui_manager.c:93 +msgid "Roll up Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:95 src/sndstretch/sndstretch_xmms.c:375 +#, fuzzy +msgid "Scale" +msgstr "Vocal" + +#: src/skins/ui_manager.c:96 +msgid "DoubleSize" +msgstr "" + +#: src/skins/ui_manager.c:98 src/skins/ui_manager.c:99 +msgid "Easy Move" +msgstr "" + +#: src/skins/ui_manager.c:107 +msgid "Analyzer" +msgstr "" + +#: src/skins/ui_manager.c:108 +#, fuzzy +msgid "Scope" +msgstr "Synthpop" + +#: src/skins/ui_manager.c:109 +msgid "Voiceprint" +msgstr "" + +#: src/skins/ui_manager.c:110 +msgid "Off" +msgstr "" + +#: src/skins/ui_manager.c:114 src/skins/ui_manager.c:131 +#: src/skins/ui_manager.c:137 +#, fuzzy +msgid "Normal" +msgstr "Port:" + +#: src/skins/ui_manager.c:115 src/skins/ui_manager.c:132 +#, fuzzy +msgid "Fire" +msgstr "Sàtira" + +#: src/skins/ui_manager.c:116 +msgid "Vertical Lines" +msgstr "" + +#: src/skins/ui_manager.c:120 +#, fuzzy +msgid "Lines" +msgstr "Llatina" + +#: src/skins/ui_manager.c:121 +#, fuzzy +msgid "Bars" +msgstr "Bass" + +#: src/skins/ui_manager.c:125 +msgid "Dot Scope" +msgstr "" + +#: src/skins/ui_manager.c:126 +msgid "Line Scope" +msgstr "" + +#: src/skins/ui_manager.c:127 +msgid "Solid Scope" +msgstr "" + +#: src/skins/ui_manager.c:133 +msgid "Ice" +msgstr "" + +#: src/skins/ui_manager.c:138 +msgid "Smooth" +msgstr "" + +#: src/skins/ui_manager.c:142 +msgid "Full (~50 fps)" +msgstr "" + +#: src/skins/ui_manager.c:143 +msgid "Half (~25 fps)" +msgstr "" + +#: src/skins/ui_manager.c:144 +msgid "Quarter (~13 fps)" +msgstr "" + +#: src/skins/ui_manager.c:145 +msgid "Eighth (~6 fps)" +msgstr "" + +#: src/skins/ui_manager.c:149 src/skins/ui_manager.c:157 +#, fuzzy +msgid "Slowest" +msgstr "Showtunes" + +#: src/skins/ui_manager.c:150 src/skins/ui_manager.c:158 +#, fuzzy +msgid "Slow" +msgstr "Slow Jam" + +#: src/skins/ui_manager.c:151 src/skins/ui_manager.c:159 +msgid "Medium" +msgstr "" + +#: src/skins/ui_manager.c:152 src/skins/ui_manager.c:160 +msgid "Fast" +msgstr "" + +#: src/skins/ui_manager.c:153 src/skins/ui_manager.c:161 +msgid "Fastest" +msgstr "" + +#: src/skins/ui_manager.c:165 +msgid "Time Elapsed" +msgstr "" + +#: src/skins/ui_manager.c:166 +msgid "Time Remaining" +msgstr "" + +#: src/skins/ui_manager.c:180 src/skins/ui_manager.c:181 +#, fuzzy +msgid "Pause" +msgstr "Reproducció" + +#: src/skins/ui_manager.c:186 src/skins/ui_manager.c:187 +#, fuzzy +msgid "Previous" +msgstr "Primus" + +#: src/skins/ui_manager.c:189 src/skins/ui_manager.c:190 +msgid "Next" +msgstr "" + +#: src/skins/ui_manager.c:195 +#, fuzzy +msgid "Visualization" +msgstr "Organització:" + +#: src/skins/ui_manager.c:196 +msgid "Visualization Mode" +msgstr "" + +#: src/skins/ui_manager.c:197 +msgid "Analyzer Mode" +msgstr "" + +#: src/skins/ui_manager.c:198 +msgid "Scope Mode" +msgstr "" + +#: src/skins/ui_manager.c:199 +msgid "Voiceprint Mode" +msgstr "" + +#: src/skins/ui_manager.c:200 +msgid "WindowShade VU Mode" +msgstr "" + +#: src/skins/ui_manager.c:201 +msgid "Refresh Rate" +msgstr "" + +#: src/skins/ui_manager.c:202 +msgid "Analyzer Falloff" +msgstr "" + +#: src/skins/ui_manager.c:203 +msgid "Peaks Falloff" +msgstr "" + +#: src/skins/ui_manager.c:208 +#, fuzzy +msgid "Playlist" +msgstr "Mode de reproducció:" + +#: src/skins/ui_manager.c:210 src/skins/ui_manager.c:211 +msgid "New Playlist" +msgstr "" + +#: src/skins/ui_manager.c:213 src/skins/ui_manager.c:214 +msgid "Select Next Playlist" +msgstr "" + +#: src/skins/ui_manager.c:216 src/skins/ui_manager.c:217 +msgid "Select Previous Playlist" +msgstr "" + +#: src/skins/ui_manager.c:219 src/skins/ui_manager.c:220 +msgid "Delete Playlist" +msgstr "" + +#: src/skins/ui_manager.c:222 +msgid "Load List" +msgstr "" + +#: src/skins/ui_manager.c:223 +msgid "Loads a playlist file into the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:225 +#, fuzzy +msgid "Save List" +msgstr "Rave" + +#: src/skins/ui_manager.c:226 +msgid "Saves the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:228 +#, fuzzy +msgid "Save Default List" +msgstr "Per defecte (%s)" + +#: src/skins/ui_manager.c:229 +msgid "Saves the selected playlist to the default location." +msgstr "" + +#: src/skins/ui_manager.c:232 +msgid "Refresh List" +msgstr "" + +#: src/skins/ui_manager.c:233 +msgid "Refreshes metadata associated with a playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:236 +msgid "List Manager" +msgstr "" + +#: src/skins/ui_manager.c:237 +msgid "Opens the playlist manager." +msgstr "" + +#: src/skins/ui_manager.c:243 +msgid "View" +msgstr "" + +#: src/skins/ui_manager.c:247 +msgid "Add Internet Address..." +msgstr "" + +#: src/skins/ui_manager.c:248 +msgid "Adds a remote track to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:251 +msgid "Add Files..." +msgstr "" + +#: src/skins/ui_manager.c:252 +msgid "Adds files to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:257 +msgid "Search and Select" +msgstr "" + +#: src/skins/ui_manager.c:258 +msgid "" +"Searches the playlist and selects playlist entries based on specific " +"criteria." +msgstr "" + +#: src/skins/ui_manager.c:261 +msgid "Invert Selection" +msgstr "" + +#: src/skins/ui_manager.c:262 +msgid "Inverts the selected and unselected entries." +msgstr "" + +#: src/skins/ui_manager.c:265 +msgid "Select All" +msgstr "" + +#: src/skins/ui_manager.c:266 +msgid "Selects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:269 +msgid "Select None" +msgstr "" + +#: src/skins/ui_manager.c:270 +msgid "Deselects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:275 +#, fuzzy +msgid "Remove All" +msgstr "Treu un lector" + +#: src/skins/ui_manager.c:276 +msgid "Removes all entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:279 +msgid "Clear Queue" +msgstr "" + +#: src/skins/ui_manager.c:280 +msgid "Clears the queue associated with this playlist." +msgstr "" + +#: src/skins/ui_manager.c:283 +msgid "Remove Unavailable Files" +msgstr "" + +#: src/skins/ui_manager.c:284 +msgid "Removes unavailable files from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:287 +msgid "Remove Duplicates" +msgstr "" + +#: src/skins/ui_manager.c:289 src/skins/ui_manager.c:321 +#: src/skins/ui_manager.c:351 +#, fuzzy +msgid "By Title" +msgstr "Títol" + +#: src/skins/ui_manager.c:290 +msgid "Removes duplicate entries from the playlist by title." +msgstr "" + +#: src/skins/ui_manager.c:293 src/skins/ui_manager.c:329 +#: src/skins/ui_manager.c:359 +#, fuzzy +msgid "By Filename" +msgstr "Nom d'usuari:" + +#: src/skins/ui_manager.c:294 +msgid "Removes duplicate entries from the playlist by filename." +msgstr "" + +#: src/skins/ui_manager.c:297 src/skins/ui_manager.c:333 +#: src/skins/ui_manager.c:363 +msgid "By Path + Filename" +msgstr "" + +#: src/skins/ui_manager.c:298 +msgid "Removes duplicate entries from the playlist by their full path." +msgstr "" + +#: src/skins/ui_manager.c:301 +msgid "Remove Unselected" +msgstr "" + +#: src/skins/ui_manager.c:302 +msgid "Remove unselected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:305 +msgid "Remove Selected" +msgstr "" + +#: src/skins/ui_manager.c:306 +msgid "Remove selected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:311 +msgid "Randomize List" +msgstr "" + +#: src/skins/ui_manager.c:312 +msgid "Randomizes the playlist." +msgstr "" + +#: src/skins/ui_manager.c:315 +msgid "Reverse List" +msgstr "" + +#: src/skins/ui_manager.c:316 +msgid "Reverses the playlist." +msgstr "" + +#: src/skins/ui_manager.c:319 +#, fuzzy +msgid "Sort List" +msgstr "Artista:" + +#: src/skins/ui_manager.c:322 src/skins/ui_manager.c:352 +msgid "Sorts the list by title." +msgstr "" + +#: src/skins/ui_manager.c:325 src/skins/ui_manager.c:355 +#, fuzzy +msgid "By Artist" +msgstr "Artista:" + +#: src/skins/ui_manager.c:326 src/skins/ui_manager.c:356 +msgid "Sorts the list by artist." +msgstr "" + +#: src/skins/ui_manager.c:330 src/skins/ui_manager.c:360 +msgid "Sorts the list by filename." +msgstr "" + +#: src/skins/ui_manager.c:334 src/skins/ui_manager.c:364 +msgid "Sorts the list by full pathname." +msgstr "" + +#: src/skins/ui_manager.c:337 src/skins/ui_manager.c:367 +#, fuzzy +msgid "By Date" +msgstr "Data:" + +#: src/skins/ui_manager.c:338 src/skins/ui_manager.c:368 +msgid "Sorts the list by modification time." +msgstr "" + +#: src/skins/ui_manager.c:341 src/skins/ui_manager.c:371 +#, fuzzy +msgid "By Track Number" +msgstr "Número de pista:" + +#: src/skins/ui_manager.c:342 src/skins/ui_manager.c:372 +msgid "Sorts the list by track number." +msgstr "" + +#: src/skins/ui_manager.c:345 src/skins/ui_manager.c:375 +msgid "By Playlist Entry" +msgstr "" + +#: src/skins/ui_manager.c:346 src/skins/ui_manager.c:376 +msgid "Sorts the list by playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:349 +msgid "Sort Selected" +msgstr "" + +#: src/skins/ui_manager.c:385 +#, fuzzy +msgid "File" +msgstr "Títol" + +#: src/skins/ui_manager.c:388 +msgid "Plugin Services" +msgstr "" + +#: src/skins/ui_manager.c:390 src/skins/ui_manager.c:393 +#, fuzzy +msgid "View Track Details" +msgstr "usa el guany/pic de la pista" + +#: src/skins/ui_manager.c:391 src/skins/ui_manager.c:394 +msgid "View track details" +msgstr "" + +#: src/skins/ui_manager.c:396 src/skins/ui_manager.c:397 +#, fuzzy +msgid "About Audacious" +msgstr "Quant al plugin per a LIRC de l'Audacious" + +#: src/skins/ui_manager.c:399 +#, fuzzy +msgid "Play File" +msgstr "Mode de reproducció:" + +#: src/skins/ui_manager.c:400 +msgid "Load and play a file" +msgstr "" + +#: src/skins/ui_manager.c:402 +msgid "Play Location" +msgstr "" + +#: src/skins/ui_manager.c:403 +msgid "Play media from the selected location" +msgstr "" + +#: src/skins/ui_manager.c:405 +msgid "Plugin services" +msgstr "" + +#: src/skins/ui_manager.c:407 +msgid "Preferences" +msgstr "" + +#: src/skins/ui_manager.c:408 +msgid "Open preferences window" +msgstr "" + +#: src/skins/ui_manager.c:410 +msgid "_Quit" +msgstr "" + +#: src/skins/ui_manager.c:411 +#, fuzzy +msgid "Quit Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_manager.c:413 src/skins/ui_manager.c:414 +msgid "Set A-B" +msgstr "" + +#: src/skins/ui_manager.c:416 src/skins/ui_manager.c:417 +msgid "Clear A-B" +msgstr "" + +#: src/skins/ui_manager.c:419 src/skins/ui_manager.c:420 +msgid "Jump to Playlist Start" +msgstr "" + +#: src/skins/ui_manager.c:428 +msgid "Queue Toggle" +msgstr "" + +#: src/skins/ui_manager.c:429 +msgid "Enables/disables the entry in the playlist's queue." +msgstr "" + +#: src/skins/ui_manager.c:436 +msgid "Load" +msgstr "" + +#: src/skins/ui_manager.c:441 src/skins/ui_manager.c:462 +#: src/skins/ui_manager.c:477 +#, fuzzy +msgid "Preset" +msgstr "Port:" + +#: src/skins/ui_manager.c:442 +msgid "Load preset" +msgstr "" + +#: src/skins/ui_manager.c:444 src/skins/ui_manager.c:465 +#: src/skins/ui_manager.c:480 +msgid "Auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:445 +msgid "Load auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:448 +msgid "Load default preset into equalizer" +msgstr "" + +#: src/skins/ui_manager.c:450 +#, fuzzy +msgid "Zero" +msgstr "Retrògrada" + +#: src/skins/ui_manager.c:451 +msgid "Set equalizer preset levels to zero" +msgstr "" + +#: src/skins/ui_manager.c:453 +msgid "From file" +msgstr "" + +#: src/skins/ui_manager.c:454 +msgid "Load preset from file" +msgstr "" + +#: src/skins/ui_manager.c:456 +msgid "From WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:457 +msgid "Load preset from WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:459 +msgid "WinAMP Presets" +msgstr "" + +#: src/skins/ui_manager.c:460 +msgid "Import WinAMP presets" +msgstr "" + +#: src/skins/ui_manager.c:463 +msgid "Save preset" +msgstr "" + +#: src/skins/ui_manager.c:466 +msgid "Save auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:469 +#, fuzzy +msgid "Save default preset" +msgstr "Per defecte" + +#: src/skins/ui_manager.c:471 +#, fuzzy +msgid "To file" +msgstr "Títol:" + +#: src/skins/ui_manager.c:472 +#, fuzzy +msgid "Save preset to file" +msgstr "Desa l'stream al disc" + +#: src/skins/ui_manager.c:474 +msgid "To WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:475 +msgid "Save preset to WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:478 +#, fuzzy +msgid "Delete preset" +msgstr "Per defecte" + +#: src/skins/ui_manager.c:481 +msgid "Delete auto-load preset" +msgstr "" + +#: src/skins/ui_playlist.c:454 +msgid "Search entries in active playlist" +msgstr "" + +#: src/skins/ui_playlist.c:462 +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 "" + +#: src/skins/ui_playlist.c:477 +#, fuzzy +msgid "Album: " +msgstr "Disc:" + +#: src/skins/ui_playlist.c:484 +#, fuzzy +msgid "Artist: " +msgstr "Artista:" + +#: src/skins/ui_playlist.c:491 +#, fuzzy +msgid "Filename: " +msgstr "Nom d'usuari:" + +#: src/skins/ui_playlist.c:499 +msgid "Clear previous selection before searching" +msgstr "" + +#: src/skins/ui_playlist.c:502 +msgid "Automatically toggle queue for matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:505 +msgid "Create a new playlist with matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:724 +#, c-format +msgid "Error writing playlist \"%s\": %s" +msgstr "" + +#: src/skins/ui_playlist.c:746 +#, c-format +msgid "%s already exist. Continue?" +msgstr "" + +#: src/skins/ui_playlist.c:761 +#, c-format +msgid "" +"Unable to save playlist.\n" +"\n" +"Unknown file type for '%s'.\n" +msgstr "" + +#: src/skins/ui_playlist.c:887 +msgid "Save as Static Playlist" +msgstr "" + +#: src/skins/ui_playlist.c:894 +msgid "Use Relative Path" +msgstr "" + +#: src/skins/ui_playlist.c:916 +msgid "Load Playlist" +msgstr "" + +#: src/skins/ui_playlist.c:929 +msgid "Save Playlist" +msgstr "" + +#: src/skins/ui_playlist.c:1497 +msgid "Audacious Playlist Editor" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "PREAMP" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "60HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "170HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "310HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +#, fuzzy +msgid "600HZ" +msgstr "11000 Hz" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "1KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "3KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "6KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "12KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "14KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "16KHZ" +msgstr "" + +#: src/skins/ui_skinselector.c:178 +msgid "Archived Winamp 2.x skin" +msgstr "" + +#: src/skins/ui_skinselector.c:183 +msgid "Unarchived Winamp 2.x skin" +msgstr "" + +#: src/skins/util.c:1132 +#, fuzzy, c-format +msgid "Could not create directory (%s): %s\n" +msgstr "" +"Ha fallat la comprovació del directori %s\n" +"Error: %s" + +#: src/sndfile/plugin.c:554 #, fuzzy msgid "About sndfile plugin" msgstr "Plugin WAV sndfile" -#: src/sndfile/plugin.c:549 +#: src/sndfile/plugin.c:555 msgid "" "Adapted for Audacious usage by Tony Vroon \n" "from the xmms_sndfile plugin which is:\n" @@ -4404,69 +5536,64 @@ "Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\n" "Boston, MA 02110-1301, USA." -#: src/sndstretch/sndstretch_xmms.c:159 +#: src/sndstretch/sndstretch_xmms.c:158 #, fuzzy msgid "About SndStretch" msgstr "Quant al driver OSS" -#: src/sndstretch/sndstretch_xmms.c:319 +#: src/sndstretch/sndstretch_xmms.c:318 #, fuzzy msgid "Volume corr." msgstr "Control del volum:" -#: src/sndstretch/sndstretch_xmms.c:320 +#: src/sndstretch/sndstretch_xmms.c:319 msgid "Short Overlap" msgstr "" -#: src/sndstretch/sndstretch_xmms.c:374 +#: src/sndstretch/sndstretch_xmms.c:373 #, fuzzy msgid "Speed" msgstr "Parlat" -#: src/sndstretch/sndstretch_xmms.c:375 +#: src/sndstretch/sndstretch_xmms.c:374 #, fuzzy msgid "Pitch" msgstr "Ubicació:" -#: src/sndstretch/sndstretch_xmms.c:376 -#, fuzzy -msgid "Scale" -msgstr "Vocal" - -#: src/sndstretch/sndstretch_xmms.c:396 +#: src/sndstretch/sndstretch_xmms.c:395 #, fuzzy msgid "SndStretch - Configuration" msgstr "Configuració del driver Sun" -#: src/song_change/song_change.c:312 +#: src/song_change/song_change.c:310 msgid "Commands" msgstr "Ordres" -#: src/song_change/song_change.c:319 +#: src/song_change/song_change.c:317 msgid "Command to run when Audacious starts a new song." msgstr "Ordre a executar quan l'Audacious comença una nova cançó." -#: src/song_change/song_change.c:328 src/song_change/song_change.c:350 -#: src/song_change/song_change.c:371 src/song_change/song_change.c:392 +#: src/song_change/song_change.c:326 src/song_change/song_change.c:348 +#: src/song_change/song_change.c:369 src/song_change/song_change.c:390 msgid "Command:" msgstr "Ordre:" -#: src/song_change/song_change.c:342 +#: src/song_change/song_change.c:340 msgid "Command to run toward the end of a song." msgstr "Ordre a executar cap al final de la cançó." -#: src/song_change/song_change.c:362 +#: src/song_change/song_change.c:360 msgid "Command to run when Audacious reaches the end of the playlist." msgstr "" "Ordre a executar quan l'Audacious arriba al final de la llista de " "reproducció." -#: src/song_change/song_change.c:383 +#: src/song_change/song_change.c:381 msgid "" "Command to run when title changes for a song (i.e. network streams titles)." msgstr "" -#: src/song_change/song_change.c:404 +#: src/song_change/song_change.c:402 #, c-format msgid "" "You can use the following format strings which\n" @@ -4495,7 +5622,7 @@ "%%t: Posició a la llista de reproducció (%%02d)\n" "%%p: Reproducció en curs (1 o 0)" -#: src/song_change/song_change.c:429 +#: src/song_change/song_change.c:427 msgid "" "Parameters passed to the shell should be encapsulated in " "quotes. Doing otherwise is a security risk." @@ -4503,7 +5630,7 @@ "Els paràmetres passats a la shell s'han d'encapsular en\n" "cometes. Altrament és un risc per a la seguretat." -#: src/spectrum/spectrum.c:90 +#: src/spectrum/spectrum.c:89 msgid "Spectrum Analyzer" msgstr "" @@ -4516,12 +5643,12 @@ msgid "The orientation of the tray" msgstr "" -#: src/statusicon/si_ui.c:622 +#: src/statusicon/si_ui.c:620 #, fuzzy msgid "About Status Icon Plugin" msgstr "Quant al plugin ESounD" -#: src/statusicon/si_ui.c:624 +#: src/statusicon/si_ui.c:622 msgid "" "\n" "written by Giacomo Lozito < james@develia.org >\n" @@ -4530,39 +5657,39 @@ "the system tray area of the window manager.\n" msgstr "" -#: src/statusicon/si_ui.c:696 +#: src/statusicon/si_ui.c:694 msgid "Status Icon Plugin - Preferences" msgstr "" -#: src/statusicon/si_ui.c:707 +#: src/statusicon/si_ui.c:705 msgid "Right-Click Menu" msgstr "" -#: src/statusicon/si_ui.c:712 +#: src/statusicon/si_ui.c:710 msgid "Audacious standard menu" msgstr "" -#: src/statusicon/si_ui.c:717 +#: src/statusicon/si_ui.c:715 msgid "Small playback menu #1" msgstr "" -#: src/statusicon/si_ui.c:722 +#: src/statusicon/si_ui.c:720 msgid "Small playback menu #2" msgstr "" -#: src/statusicon/si_ui.c:745 +#: src/statusicon/si_ui.c:743 msgid "Mouse Scroll Action" msgstr "" -#: src/statusicon/si_ui.c:750 +#: src/statusicon/si_ui.c:748 msgid "Change volume" msgstr "" -#: src/statusicon/si_ui.c:755 +#: src/statusicon/si_ui.c:753 msgid "Change playing song" msgstr "" -#: src/stereo_plugin/stereo.c:26 +#: src/stereo_plugin/stereo.c:25 msgid "" "Extra Stereo Plugin\n" "\n" @@ -4572,23 +5699,19 @@ "\n" "Per Johan Levin, 1999." -#: src/stereo_plugin/stereo.c:52 +#: src/stereo_plugin/stereo.c:51 msgid "About Extra Stereo Plugin" msgstr "Quant al plugin d'estèreo extra" -#: src/stereo_plugin/stereo.c:93 +#: src/stereo_plugin/stereo.c:92 msgid "Configure Extra Stereo" msgstr "Configuració de l'estèreo extra" -#: src/stereo_plugin/stereo.c:95 -msgid "Effect intensity:" -msgstr "Intensitat de l'efecte:" +#: src/sun/about.c:33 +msgid "About the Sun Driver" +msgstr "Quant al driver Sun" #: src/sun/about.c:34 -msgid "About the Sun Driver" -msgstr "Quant al driver Sun" - -#: src/sun/about.c:35 msgid "" "XMMS BSD Sun Driver\n" "\n" @@ -4600,19 +5723,19 @@ "Copyright (C) 2001 CubeSoft Communications, Inc.\n" "Mantenidor: .\n" -#: src/sun/configure.c:201 +#: src/sun/configure.c:199 msgid "Audio control device:" msgstr "Dispositiu de control d'àudio:" -#: src/sun/configure.c:350 +#: src/sun/configure.c:348 msgid "Volume controls device:" msgstr "Dispositiu de control del volum:" -#: src/sun/configure.c:363 +#: src/sun/configure.c:361 msgid "XMMS uses mixer exclusively." msgstr "L'XMMS usa exclusivament el mesclador." -#: src/sun/configure.c:538 +#: src/sun/configure.c:536 msgid "Sun driver configuration" msgstr "Configuració del driver Sun" @@ -4640,7 +5763,7 @@ msgid "TiMidity Configuration File" msgstr "Fitxer de configuració del TiMidity" -#: src/timidity/xmms-timidity.c:118 +#: src/timidity/xmms-timidity.c:115 msgid "" "TiMidity Plugin\n" "http://libtimidity.sourceforge.net\n" @@ -4650,20 +5773,20 @@ "http://libtimidity.sourceforge.net\n" "per Konstantin Korikov" -#: src/timidity/xmms-timidity.c:119 +#: src/timidity/xmms-timidity.c:116 #, c-format msgid "TiMidity Plugin %s" msgstr "Plugin TiMidity %s" -#: src/timidity/xmms-timidity.c:336 +#: src/timidity/xmms-timidity.c:333 msgid "Couldn't load MIDI file" msgstr "No s'ha pogut carregar el fitxer MIDI" -#: src/tonegen/tonegen.c:56 +#: src/tonegen/tonegen.c:55 msgid "About Tone Generator" msgstr "Quant al Generador de Tons" -#: src/tonegen/tonegen.c:58 +#: src/tonegen/tonegen.c:57 msgid "" "Sinus tone generator by Haavard Kvaalen \n" "Modified by Daniel J. Peng \n" @@ -4678,90 +5801,90 @@ "e.g. tone://2000;2005 per a generar un to de 2000 Hz i un to\n" "de 2005 Hz." -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 #, c-format msgid "%s %.1f Hz" msgstr "" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 msgid "Tone Generator: " msgstr "Generador de tons:" +#: src/tta/libtta.c:127 +msgid "Can't open file\n" +msgstr "" + #: src/tta/libtta.c:130 -msgid "Can't open file\n" +msgid "Not supported file format\n" msgstr "" #: src/tta/libtta.c:133 -msgid "Not supported file format\n" +msgid "File is corrupted\n" msgstr "" #: src/tta/libtta.c:136 -msgid "File is corrupted\n" +msgid "Can't read from file\n" msgstr "" #: src/tta/libtta.c:139 -msgid "Can't read from file\n" +msgid "Insufficient memory available\n" msgstr "" #: src/tta/libtta.c:142 -msgid "Insufficient memory available\n" -msgstr "" - -#: src/tta/libtta.c:145 #, fuzzy msgid "Output plugin error\n" msgstr "Plugin de sortida nul" -#: src/tta/libtta.c:148 +#: src/tta/libtta.c:145 msgid "Unknown error\n" msgstr "" -#: src/tta/libtta.c:152 +#: src/tta/libtta.c:149 msgid "TTA Decoder Error" msgstr "" -#: src/tta/libtta.c:261 +#: src/tta/libtta.c:258 #, fuzzy msgid "TTA input plugin " msgstr "Plugin de sortida nul" -#: src/tta/libtta.c:262 +#: src/tta/libtta.c:259 msgid "" " for BMP\n" "Copyright (c) 2004 True Audio Software\n" msgstr "" -#: src/tta/libtta.c:265 +#: src/tta/libtta.c:262 #, fuzzy msgid "About True Audio Plugin" msgstr "Quant al plugin per a àudio MPEG" -#: src/tta/libtta.c:316 +#: src/tta/libtta.c:313 #, fuzzy msgid "ID3 Tag:" msgstr "Etiquetes ID3:" -#: src/tta/libtta.c:378 src/wavpack/ui.cxx:234 +#: src/tta/libtta.c:375 src/wavpack/ui.cxx:232 msgid "Track number:" msgstr "Número de pista:" -#: src/vorbis/configure.c:84 +#: src/vorbis/configure.c:82 msgid "Ogg Vorbis Audio Plugin Configuration" msgstr "Configuració del plugin d'àudio Ogg Vorbis" -#: src/vorbis/configure.c:94 +#: src/vorbis/configure.c:92 msgid "Ogg Vorbis Tags:" msgstr "Etiquetes Ogg Vorbis:" -#: src/vorbis/configure.c:115 +#: src/vorbis/configure.c:113 msgid "Title format:" msgstr "Format del títol:" -#: src/vorbis/vorbis.c:681 +#: src/vorbis/vorbis.c:677 msgid "About Ogg Vorbis Audio Plugin" msgstr "Quant al plugin d'àudio Ogg Vorbis" -#: src/vorbis/vorbis.c:687 +#: src/vorbis/vorbis.c:683 #, fuzzy msgid "" "Ogg Vorbis Plugin by the Xiph.org Foundation\n" @@ -4795,11 +5918,11 @@ "\n" "Visiteu la Fundació Xiph.org a http://www.xiph.org/\n" -#: src/vtx/about.c:23 +#: src/vtx/about.c:17 msgid "About Vortex Player" msgstr "" -#: src/vtx/about.c:25 +#: src/vtx/about.c:19 msgid "" "Vortex file format player by Sashnov Alexander \n" "Founded on original source in_vtx.dll by Roman Sherbakov " msgstr "" -#: src/wavpack/ui.cxx:52 +#: src/wavpack/ui.cxx:50 #, fuzzy, c-format msgid "Wavpack Decoder Plugin %s" msgstr "Plugin d'eco %s" -#: src/wavpack/ui.cxx:53 +#: src/wavpack/ui.cxx:51 msgid "" "Copyright (c) 2006 William Pitcock \n" "\n" @@ -4824,98 +5947,98 @@ "Visit the Wavpack site at http://www.wavpack.com/\n" msgstr "" -#: src/wavpack/ui.cxx:165 +#: src/wavpack/ui.cxx:163 msgid "Ape2 Tag" msgstr "" -#: src/wavpack/ui.cxx:288 +#: src/wavpack/ui.cxx:286 msgid "Wavpack Info:" msgstr "" +#: src/wavpack/ui.cxx:379 +#, fuzzy, c-format +msgid "version %d" +msgstr "Versió:" + +#: src/wavpack/ui.cxx:380 +#, c-format +msgid "average bitrate: %6.1f kbps" +msgstr "" + #: src/wavpack/ui.cxx:381 #, fuzzy, c-format -msgid "version %d" -msgstr "Versió:" +msgid "samplerate: %d Hz" +msgstr "Freqüència de mostreig:" #: src/wavpack/ui.cxx:382 #, c-format -msgid "average bitrate: %6.1f kbps" +msgid "bits per sample: %d" msgstr "" #: src/wavpack/ui.cxx:383 #, fuzzy, c-format -msgid "samplerate: %d Hz" -msgstr "Freqüència de mostreig:" +msgid "channels: %d" +msgstr "Canals:" #: src/wavpack/ui.cxx:384 -#, c-format -msgid "bits per sample: %d" -msgstr "" - -#: src/wavpack/ui.cxx:385 -#, fuzzy, c-format -msgid "channels: %d" -msgstr "Canals:" - -#: src/wavpack/ui.cxx:386 #, fuzzy, c-format msgid "length: %d:%.2d" msgstr "" "\n" "Durada total: %d:%d\n" -#: src/wavpack/ui.cxx:387 +#: src/wavpack/ui.cxx:385 #, fuzzy, c-format msgid "file size: %d Bytes" msgstr "Mida del fitxer:" -#: src/wavpack/ui.cxx:394 +#: src/wavpack/ui.cxx:392 #, fuzzy msgid "Title Peak: ?" msgstr "Títol:" +#: src/wavpack/ui.cxx:393 +#, fuzzy +msgid "Album Peak: ?" +msgstr "Pic del disc:" + +#: src/wavpack/ui.cxx:394 +#, fuzzy +msgid "Title Gain: ?" +msgstr "Títol:" + #: src/wavpack/ui.cxx:395 #, fuzzy -msgid "Album Peak: ?" -msgstr "Pic del disc:" - -#: src/wavpack/ui.cxx:396 -#, fuzzy -msgid "Title Gain: ?" -msgstr "Títol:" - -#: src/wavpack/ui.cxx:397 -#, fuzzy msgid "Album Gain: ?" msgstr "Guany del disc:" -#: src/wavpack/ui.cxx:471 +#: src/wavpack/ui.cxx:469 #, fuzzy msgid "Wavpack Configuration" msgstr "Configuració de l'escriptura al disc" -#: src/wavpack/ui.cxx:484 +#: src/wavpack/ui.cxx:482 #, fuzzy msgid "General Plugin Settings:" msgstr "Paràmetres de ReplayGain:" -#: src/wavpack/ui.cxx:502 +#: src/wavpack/ui.cxx:500 msgid "ReplayGain Settings:" msgstr "Paràmetres de ReplayGain:" -#: src/wavpack/ui.cxx:520 +#: src/wavpack/ui.cxx:518 msgid "ReplayGain Type:" msgstr "Tipus de ReplayGain:" -#: src/wavpack/ui.cxx:531 +#: src/wavpack/ui.cxx:529 msgid "use Track Gain/Peak" msgstr "usa el guany/pic de la pista" -#: src/wavpack/ui.cxx:539 +#: src/wavpack/ui.cxx:537 msgid "use Album Gain/Peak" msgstr "usa el guany/pic del disc" -#: src/wma/wma.c:123 +#: src/wma/wma.c:120 msgid "" "Adapted for use in Audacious by Tony Vroon (chainsaw@gentoo.org) from\n" "the BEEP-WMA plugin which is Copyright (C) 2004,2005 Mokrushin I.V. aka " @@ -4972,14 +6095,6 @@ #~ msgstr "Quant al suport per a sndfile WAV" #, fuzzy -#~ msgid "Play/Pause:" -#~ msgstr "Reproducció" - -#, fuzzy -#~ msgid "File Info" -#~ msgstr "Informació del fitxer - %s" - -#, fuzzy #~ msgid "Couldn't open file!" #~ msgstr "No s'ha pogut carregar el fitxer MIDI" @@ -5004,9 +6119,6 @@ #~ msgid "%d Hz" #~ msgstr "%d Hz" -#~ msgid "Blues" -#~ msgstr "Blues" - #~ msgid "Classic Rock" #~ msgstr "Rock clàssic" @@ -5073,9 +6185,6 @@ #~ msgid "Death Metal" #~ msgstr "Death Metal" -#~ msgid "Pranks" -#~ msgstr "Bromes" - #~ msgid "Soundtrack" #~ msgstr "Bandes sonores" @@ -5127,9 +6236,6 @@ #~ msgid "AlternRock" #~ msgstr "Rock alternatiu" -#~ msgid "Bass" -#~ msgstr "Bass" - #~ msgid "Soul" #~ msgstr "Soul" @@ -5211,9 +6317,6 @@ #~ msgid "Rave" #~ msgstr "Rave" -#~ msgid "Showtunes" -#~ msgstr "Showtunes" - #~ msgid "Trailer" #~ msgstr "Tràiler" @@ -5232,9 +6335,6 @@ #~ msgid "Polka" #~ msgstr "Polca" -#~ msgid "Retro" -#~ msgstr "Retrògrada" - #~ msgid "Musical" #~ msgstr "Musical" @@ -5262,9 +6362,6 @@ #~ msgid "Bebob" #~ msgstr "Bebop" -#~ msgid "Latin" -#~ msgstr "Llatina" - #~ msgid "Revival" #~ msgstr "Revival" @@ -5328,18 +6425,9 @@ #~ msgid "Booty Bass" #~ msgstr "Booty Bass" -#~ msgid "Primus" -#~ msgstr "Primus" - #~ msgid "Porn Groove" #~ msgstr "Porn Groove" -#~ msgid "Satire" -#~ msgstr "Sàtira" - -#~ msgid "Slow Jam" -#~ msgstr "Slow Jam" - #~ msgid "Club" #~ msgstr "Club" @@ -5409,9 +6497,6 @@ #~ msgid "Polsk Punk" #~ msgstr "Polsk Punk" -#~ msgid "Beat" -#~ msgstr "Beat" - #~ msgid "Christian Gangsta Rap" #~ msgstr "Rap gàngster cristià" @@ -5470,9 +6555,6 @@ #~ msgid " Ogg Vorbis Tag " #~ msgstr " Etiqueta Ogg Vorbis " -#~ msgid "Date:" -#~ msgstr "Data:" - #~ msgid "Description:" #~ msgstr "Descripció:" @@ -5482,15 +6564,9 @@ #~ msgid "ISRC number:" #~ msgstr "Número ISRC:" -#~ msgid "Organization:" -#~ msgstr "Organització:" - #~ msgid " Ogg Vorbis ReplayGain " #~ msgstr " ReplayGain d'Ogg Vorbis " -#~ msgid "Track gain:" -#~ msgstr "Guany de la pista:" - #~ msgid "Track peak:" #~ msgstr "Pic de la pista:" @@ -5530,9 +6606,6 @@ #~ msgid "%d Bytes" #~ msgstr "%d octets" -#~ msgid "%s - Audacious" -#~ msgstr "%s - Audacious" - #, fuzzy #~ msgid "Use software volume control" #~ msgstr "Control del volum:" @@ -5566,10 +6639,6 @@ #~ msgstr "11000 Hz" #, fuzzy -#~ msgid "16000" -#~ msgstr "11000 Hz" - -#, fuzzy #~ msgid "24000" #~ msgstr "22000 Hz" @@ -5631,13 +6700,6 @@ #~ "El test d'extracció d'àudio digital ha fallat: %s\n" #~ "\n" -#~ msgid "" -#~ "Failed to check directory %s\n" -#~ "Error: %s" -#~ msgstr "" -#~ "Ha fallat la comprovació del directori %s\n" -#~ "Error: %s" - #~ msgid "Error: %s exist, but is not a directory" #~ msgstr "Error: existeix, però no és un directori: %s" @@ -5677,9 +6739,6 @@ #~ msgid "Get server list" #~ msgstr "Actualitza la llista de servidors" -#~ msgid "Show network window" -#~ msgstr "Mostra la finestra de xarxa" - #~ msgid "CDDB server:" #~ msgstr "Servidor CDDB:" @@ -5741,18 +6800,12 @@ #~ msgid "Save stream to disk:" #~ msgstr "Desa l'stream al disc:" -#~ msgid "Save stream to disk" -#~ msgstr "Desa l'stream al disc" - #~ msgid "SHOUT/Icecast:" #~ msgstr "SHOUT/Icecast:" #~ msgid "Enable Icecast Metadata UDP Channel" #~ msgstr "Habilita el canal UDP de l'Icecast per a metadades" -#~ msgid "Disable ID3V2 tags" -#~ msgstr "Deshabilita les etiquetes ID3V2" - #~ msgid "Dual channel" #~ msgstr "Canal dual" diff -r c40585c57877 -r 7fc2c317d190 po/cs.po --- a/po/cs.po Thu Jul 03 17:23:34 2008 +0300 +++ b/po/cs.po Thu Jul 03 17:37:11 2008 +0300 @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: audacious-plugins hg-2287\n" -"Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" -"POT-Creation-Date: 2008-03-30 17:25+0200\n" +"Report-Msgid-Bugs-To: http://bugzilla.atheme.org/\n" +"POT-Creation-Date: 2008-06-21 08:27+0300\n" "PO-Revision-Date: 2008-01-09 18:56+0100\n" "Last-Translator: Petr Písař \n" "Language-Team: Czech \n" @@ -17,11 +17,11 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/aac/libmp4.c:286 +#: src/aac/libmp4.c:283 msgid "Using libfaad2-" msgstr "Používám libfaad2-" -#: src/aac/libmp4.c:287 +#: src/aac/libmp4.c:284 msgid "" " for decoding.\n" "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n" @@ -31,38 +31,38 @@ "FAAD2 AAC/HE-AAC/HE-AACv2/DRM dekodér © Nero AG, www.nero.com\n" "Copyright © 2005–2006 tým Audacious" -#: src/aac/libmp4.c:291 +#: src/aac/libmp4.c:288 msgid "About MP4 AAC player plugin" msgstr "O MP4 AAC modulu" -#: src/aac/libmp4.c:293 src/adplug/adplug-xmms.cc:182 -#: src/adplug/adplug-xmms.cc:265 src/adplug/adplug-xmms.cc:526 -#: src/alac/plugin.c:77 src/arts/arts.c:26 src/arts/configure.c:90 -#: src/audiocompress/audacious-glue.c:102 -#: src/audiocompress/audacious-glue.c:552 src/cdaudio-ng/configure.c:228 -#: src/console/Audacious_Driver.cxx:449 src/demac/plugin.c:393 -#: src/echo_plugin/gui.c:26 src/echo_plugin/gui.c:137 src/esd/about.c:49 -#: src/filewriter/filewriter.c:183 src/jack/configure.c:141 -#: src/jack/jack.c:456 src/madplug/plugin.c:542 src/madplug/plugin.c:566 -#: src/metronom/metronom.c:88 src/modplug/gui/main.cxx:49 -#: src/musepack/libmpc.cxx:232 src/null/null.c:67 src/null/null.c:110 -#: src/OSS4/about.c:59 src/OSS/about.c:54 src/paranormal-ng/plugin.c:283 -#: src/paranormal/plugin.c:291 src/scrobbler/gtkstuff.c:25 -#: src/sndfile/plugin.c:565 src/statusicon/si_ui.c:628 -#: src/stereo_plugin/stereo.c:53 src/stereo_plugin/stereo.c:116 -#: src/sun/about.c:38 src/sun/configure.c:559 src/timidity/interface.c:222 -#: src/timidity/xmms-timidity.c:120 src/tonegen/tonegen.c:62 -#: src/tta/libtta.c:153 src/tta/libtta.c:267 src/tta/libtta.c:402 -#: src/vorbis/vorbis.c:700 src/vtx/about.c:32 src/vtx/info.c:43 -#: src/wavpack/ui.cxx:56 src/wavpack/ui.cxx:556 +#: src/aac/libmp4.c:290 src/adplug/adplug-xmms.cc:180 +#: src/adplug/adplug-xmms.cc:263 src/adplug/adplug-xmms.cc:524 +#: src/alac/plugin.c:74 src/arts/arts.c:25 src/arts/configure.c:90 +#: src/audiocompress/audacious-glue.c:110 +#: src/audiocompress/audacious-glue.c:560 src/cdaudio-ng/configure.c:242 +#: src/console/Audacious_Driver.cxx:447 src/crystalizer/crystalizer.c:113 +#: src/demac/plugin.c:364 src/echo_plugin/gui.c:24 src/echo_plugin/gui.c:135 +#: src/esd/about.c:48 src/filewriter/filewriter.c:183 src/jack/configure.c:140 +#: src/jack/jack.c:454 src/madplug/plugin.c:679 src/madplug/plugin.c:703 +#: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:52 +#: src/musepack/libmpc.cxx:228 src/null/null.c:64 src/null/null.c:107 +#: src/OSS4/OSS4.c:55 src/OSS/OSS.c:52 src/paranormal-ng/plugin.c:282 +#: src/paranormal/plugin.c:290 src/scrobbler/gtkstuff.c:22 +#: src/sndfile/plugin.c:571 src/statusicon/si_ui.c:626 +#: src/stereo_plugin/stereo.c:52 src/stereo_plugin/stereo.c:115 +#: src/sun/about.c:37 src/sun/configure.c:557 src/timidity/interface.c:222 +#: src/timidity/xmms-timidity.c:117 src/tonegen/tonegen.c:61 +#: src/tta/libtta.c:150 src/tta/libtta.c:264 src/tta/libtta.c:399 +#: src/vorbis/vorbis.c:696 src/vtx/about.c:26 src/vtx/info.c:38 +#: src/wavpack/ui.cxx:54 src/wavpack/ui.cxx:554 msgid "Ok" msgstr "OK" -#: src/adplug/adplug-xmms.cc:171 +#: src/adplug/adplug-xmms.cc:169 msgid "About " msgstr "O " -#: src/adplug/adplug-xmms.cc:175 +#: src/adplug/adplug-xmms.cc:173 msgid "" "\n" "Copyright (C) 2002, 2003 Simon Peter \n" @@ -83,65 +83,65 @@ "Tento modul používá knihovnu AdPlug, copyright © Simon Peter aj.\n" "Sestaveno s verzí knihovny AdPlug: " -#: src/adplug/adplug-xmms.cc:256 +#: src/adplug/adplug-xmms.cc:254 msgid "AdPlug :: Configuration" msgstr "AdPlug :: Nastavení" -#: src/adplug/adplug-xmms.cc:275 src/alarm/interface.c:1398 +#: src/adplug/adplug-xmms.cc:273 src/alarm/interface.c:1398 #: src/alsa/configure.c:389 src/arts/configure.c:91 -#: src/audiocompress/audacious-glue.c:557 src/cdaudio-ng/configure.c:232 -#: src/echo_plugin/gui.c:145 src/jack/configure.c:148 -#: src/modplug/gui/interface.cxx:714 src/modplug/gui/modplug.glade:1668 -#: src/musepack/libmpc.cxx:237 src/musepack/libmpc.cxx:557 src/null/null.c:111 -#: src/sid/xmms-sid.glade:3080 src/sid/xs_interface.c:1250 -#: src/stereo_plugin/stereo.c:125 src/sun/configure.c:567 -#: src/timidity/interface.c:230 src/wavpack/ui.cxx:280 src/wavpack/ui.cxx:563 +#: src/audiocompress/audacious-glue.c:565 src/cdaudio-ng/configure.c:246 +#: src/crystalizer/crystalizer.c:122 src/echo_plugin/gui.c:143 +#: src/jack/configure.c:147 src/modplug/gui/interface.cxx:714 +#: src/modplug/gui/modplug.glade:1668 src/musepack/libmpc.cxx:233 +#: src/musepack/libmpc.cxx:553 src/null/null.c:108 +#: src/stereo_plugin/stereo.c:124 src/sun/configure.c:565 +#: src/timidity/interface.c:230 src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561 msgid "Cancel" msgstr "Zrušit" -#: src/adplug/adplug-xmms.cc:291 src/console/Audacious_Config.cxx:145 -#: src/madplug/configure.c:290 src/modplug/gui/interface.cxx:628 +#: src/adplug/adplug-xmms.cc:289 src/console/Audacious_Config.cxx:144 +#: src/madplug/configure.c:289 src/modplug/gui/interface.cxx:628 #: src/modplug/gui/interface.cxx:887 src/modplug/gui/modplug.glade:1404 #: src/modplug/gui/modplug.glade:1804 msgid "General" msgstr "Obecné" -#: src/adplug/adplug-xmms.cc:303 +#: src/adplug/adplug-xmms.cc:301 msgid "Sound quality" msgstr "Kvalita zvuku" -#: src/adplug/adplug-xmms.cc:308 src/modplug/gui/interface.cxx:187 +#: src/adplug/adplug-xmms.cc:306 src/modplug/gui/interface.cxx:187 #: src/modplug/gui/modplug.glade:113 msgid "Resolution" msgstr "Rozlišení" -#: src/adplug/adplug-xmms.cc:310 +#: src/adplug/adplug-xmms.cc:308 msgid "8bit" msgstr "8 bitů" -#: src/adplug/adplug-xmms.cc:315 +#: src/adplug/adplug-xmms.cc:313 msgid "16bit" msgstr "16 bitů" -#: src/adplug/adplug-xmms.cc:323 src/modplug/gui/interface.cxx:218 +#: src/adplug/adplug-xmms.cc:321 src/modplug/gui/interface.cxx:218 #: src/modplug/gui/modplug.glade:199 src/timidity/interface.c:148 msgid "Channels" msgstr "Kanály" -#: src/adplug/adplug-xmms.cc:325 src/filewriter/mp3.c:900 -#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:288 +#: src/adplug/adplug-xmms.cc:323 src/filewriter/mp3.c:900 +#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:300 #: src/timidity/interface.c:165 msgid "Mono" msgstr "Mono" -#: src/adplug/adplug-xmms.cc:330 src/filewriter/mp3.c:895 +#: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:895 #: src/modplug/gui/interface.cxx:204 src/modplug/gui/modplug.glade:159 -#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:295 +#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:307 #: src/timidity/interface.c:173 msgid "Stereo" msgstr "Stereo" -#: src/adplug/adplug-xmms.cc:334 +#: src/adplug/adplug-xmms.cc:332 msgid "" "Setting stereo is not recommended, unless you need to. This won't add any " "stereo effects to the sound - OPL2 is just mono - but eats up more CPU power!" @@ -150,20 +150,20 @@ "volba nepřidává do zvuku žádné stereo efekty – OPL2 je prostě mono – ale " "spotřebovává více výkonu CPU!" -#: src/adplug/adplug-xmms.cc:342 +#: src/adplug/adplug-xmms.cc:340 msgid "Frequency" msgstr "Frekvence" -#: src/adplug/adplug-xmms.cc:378 src/adplug/adplug-xmms.cc:582 -#: src/console/Audacious_Config.cxx:147 +#: src/adplug/adplug-xmms.cc:376 src/adplug/adplug-xmms.cc:580 +#: src/console/Audacious_Config.cxx:146 src/skins/ui_manager.c:175 msgid "Playback" msgstr "Přehrát" -#: src/adplug/adplug-xmms.cc:382 +#: src/adplug/adplug-xmms.cc:380 msgid "Detect songend" msgstr "Rozpoznat konec skladby" -#: src/adplug/adplug-xmms.cc:386 +#: src/adplug/adplug-xmms.cc:384 msgid "" "If enabled, XMMS will detect a song's ending, stop it and advance in the " "playlist. If disabled, XMMS won't take notice of a song's ending and loop it " @@ -173,23 +173,23 @@ "seznamu skladeb. Je-li vypnuto, XMMS nebude reagovat na konec skladby a bude " "ji opakovat stále dokola." -#: src/adplug/adplug-xmms.cc:397 +#: src/adplug/adplug-xmms.cc:395 msgid "Formats" msgstr "Formáty" -#: src/adplug/adplug-xmms.cc:404 +#: src/adplug/adplug-xmms.cc:402 msgid "Format selection" msgstr "Výběr formátu" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Format" msgstr "Formát" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Extension" msgstr "Přípona" -#: src/adplug/adplug-xmms.cc:447 +#: src/adplug/adplug-xmms.cc:445 msgid "" "Selected file types will be recognized and played back by this plugin. " "Deselected types will be ignored to make room for other plugins to play " @@ -198,88 +198,88 @@ "Vybrané druhy souborů budou rozpoznány a hrány tímto modulem. Nevybrané " "druhy budou ignorovány a přenechány ostatním modulům." -#: src/adplug/adplug-xmms.cc:533 +#: src/adplug/adplug-xmms.cc:531 msgid "AdPlug :: File Info" msgstr "AdPlug :: Informace o souboru" -#: src/adplug/adplug-xmms.cc:555 src/amidi-plug/i_configure-fluidsynth.c:448 +#: src/adplug/adplug-xmms.cc:553 src/amidi-plug/i_configure-fluidsynth.c:448 msgid "Filename" msgstr "Jméno souboru" +#: src/adplug/adplug-xmms.cc:557 src/skins/ui_playlist.c:470 +msgid "Title: " +msgstr "Název: " + +#: src/adplug/adplug-xmms.cc:558 +msgid "Author: " +msgstr "Autor: " + #: src/adplug/adplug-xmms.cc:559 -msgid "Title: " -msgstr "Název: " - -#: src/adplug/adplug-xmms.cc:560 -msgid "Author: " -msgstr "Autor: " - -#: src/adplug/adplug-xmms.cc:561 msgid "File Type: " msgstr "Velikost souboru: " -#: src/adplug/adplug-xmms.cc:562 +#: src/adplug/adplug-xmms.cc:560 msgid "Subsongs: " msgstr "Podskladby: " -#: src/adplug/adplug-xmms.cc:563 +#: src/adplug/adplug-xmms.cc:561 msgid "Instruments: " msgstr "Nástroje: " -#: src/adplug/adplug-xmms.cc:568 +#: src/adplug/adplug-xmms.cc:566 msgid "Orders: " msgstr "Pořadí: " -#: src/adplug/adplug-xmms.cc:569 +#: src/adplug/adplug-xmms.cc:567 msgid "Patterns: " msgstr "Vzorky: " -#: src/adplug/adplug-xmms.cc:573 +#: src/adplug/adplug-xmms.cc:571 msgid "Song" msgstr "Skladba" -#: src/adplug/adplug-xmms.cc:599 +#: src/adplug/adplug-xmms.cc:597 msgid "Instrument name" msgstr "Jméno nástroje" -#: src/adplug/adplug-xmms.cc:641 +#: src/adplug/adplug-xmms.cc:639 msgid "Song message" msgstr "Zpráva skladby" -#: src/adplug/adplug-xmms.cc:663 +#: src/adplug/adplug-xmms.cc:661 msgid "Subsong selection" msgstr "Výběr podskladby" -#: src/adplug/adplug-xmms.cc:727 +#: src/adplug/adplug-xmms.cc:725 msgid "Order: " msgstr "Pořadí: " -#: src/adplug/adplug-xmms.cc:728 +#: src/adplug/adplug-xmms.cc:726 msgid "Pattern: " msgstr "Vzorek: " +#: src/adplug/adplug-xmms.cc:728 +msgid "Row: " +msgstr "Řada: " + +#: src/adplug/adplug-xmms.cc:729 +msgid "Speed: " +msgstr "Rychlost: " + #: src/adplug/adplug-xmms.cc:730 -msgid "Row: " -msgstr "Řada: " - -#: src/adplug/adplug-xmms.cc:731 -msgid "Speed: " -msgstr "Rychlost: " - -#: src/adplug/adplug-xmms.cc:732 msgid "Timer: " msgstr "Časovač: " -#: src/adplug/adplug-xmms.cc:733 src/console/Audacious_Config.cxx:225 -#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:341 +#: src/adplug/adplug-xmms.cc:731 src/console/Audacious_Config.cxx:224 +#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:353 msgid "Hz" msgstr "Hz" -#: src/alac/plugin.c:74 +#: src/alac/plugin.c:71 msgid "About Apple Lossless Audio Plugin" msgstr "O modulu Apple Lossless Audio (applovský bezztrátový zvukový formát)" -#: src/alac/plugin.c:75 +#: src/alac/plugin.c:72 msgid "" "Copyright (c) 2006 Audacious team\n" "Portions (c) 2005-2006 David Hammerton " @@ -317,8 +317,8 @@ #: src/alarm/interface.c:71 src/lirc/about.c:115 #: src/modplug/gui/interface.cxx:971 src/modplug/gui/modplug.glade:2030 -#: src/sid/xmms-sid.glade:3643 src/sid/xs_about.c:214 -#: src/sid/xs_interface.c:1740 +#: src/sid/xmms-sid.glade:3837 src/sid/xs_about.c:214 +#: src/sid/xs_interface.c:1824 msgid "Close" msgstr "Zavřít" @@ -330,13 +330,12 @@ msgid "This is your wakeup call." msgstr "Toto je váš budící signál." -#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:46 +#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:45 #: src/alsa/configure.c:383 src/cdaudio-ng/cdaudio-ng.c:247 -#: src/flacng/plugin.c:706 src/gnomeshortcuts/gnomeshortcuts.c:311 -#: src/hotkey/gui.c:671 src/modplug/gui/interface.cxx:702 -#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:738 -#: src/scrobbler/gtkstuff.c:45 src/sid/xmms-sid.glade:3066 -#: src/sid/xs_interface.c:1243 +#: src/flacng/plugin.c:705 src/gnomeshortcuts/gnomeshortcuts.c:310 +#: src/hotkey/gui.c:670 src/modplug/gui/interface.cxx:702 +#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:736 +#: src/scrobbler/gtkstuff.c:42 src/skins/plugin.c:130 msgid "OK" msgstr "Budiž" @@ -414,7 +413,8 @@ #: src/alarm/interface.c:612 src/alarm/interface.c:660 #: src/alarm/interface.c:708 src/alarm/interface.c:756 #: src/alarm/interface.c:804 src/alarm/interface.c:852 -#: src/alarm/interface.c:900 src/OSS4/configure.c:138 src/OSS/configure.c:169 +#: src/alarm/interface.c:900 src/OSS4/configure.c:136 src/OSS/configure.c:168 +#: src/skins/ui_manager.c:447 src/skins/ui_manager.c:468 msgid "Default" msgstr "Standardní" @@ -459,9 +459,9 @@ msgstr "Zesilování" #: src/alarm/interface.c:1087 src/sid/xmms-sid.glade:2007 -#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2676 -#: src/sid/xs_interface.c:908 src/sid/xs_interface.c:962 -#: src/sid/xs_interface.c:1122 +#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2746 +#: src/sid/xs_interface.c:920 src/sid/xs_interface.c:974 +#: src/sid/xs_interface.c:1154 msgid "seconds" msgstr "sekund" @@ -514,7 +514,7 @@ msgid "Use reminder" msgstr "Upomínat" -#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:377 +#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:376 msgid "Options" msgstr "Nastavení" @@ -626,7 +626,7 @@ " Text vzkazu vepište do vstupního pole a zapněte tlačítko,\n" " přejete-li si zobrazovat vzkaz.\n" -#: src/alarm/interface.c:1366 +#: src/alarm/interface.c:1366 src/skins/ui_manager.c:386 msgid "Help" msgstr "Nápověda" @@ -638,11 +638,11 @@ msgid "Thankyou" msgstr "Děkuji" -#: src/alsa/about.c:30 +#: src/alsa/about.c:29 msgid "About ALSA Driver" msgstr "O ovladači ALSA" -#: src/alsa/about.c:31 +#: src/alsa/about.c:30 msgid "" "Audacious ALSA Driver\n" "\n" @@ -692,8 +692,8 @@ msgid "ALSA Driver configuration" msgstr "Nastavení ovladače ALSA" -#: src/alsa/configure.c:274 src/OSS4/configure.c:186 src/OSS/configure.c:217 -#: src/sun/configure.c:183 +#: src/alsa/configure.c:274 src/OSS4/configure.c:184 src/OSS/configure.c:216 +#: src/sun/configure.c:181 msgid "Audio device:" msgstr "Zvukové zařízení:" @@ -705,7 +705,7 @@ msgid "Mixer card:" msgstr "Karta s mixérem:" -#: src/alsa/configure.c:313 src/OSS/configure.c:260 src/sun/configure.c:220 +#: src/alsa/configure.c:313 src/OSS/configure.c:259 src/sun/configure.c:218 msgid "Mixer device:" msgstr "Zařízení mixéru:" @@ -1435,8 +1435,8 @@ "Backend\n" "TiMidity" -#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3465 -#: src/sid/xs_interface.c:1684 +#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3659 +#: src/sid/xs_interface.c:1768 msgid "Name:" msgstr "Jméno:" @@ -1566,19 +1566,19 @@ msgid "None" msgstr "Žádný" -#: src/aosd/aosd_trigger.c:75 +#: src/aosd/aosd_trigger.c:74 msgid "Playback Start" msgstr "Zahájení přehrávání" -#: src/aosd/aosd_trigger.c:76 +#: src/aosd/aosd_trigger.c:75 msgid "Triggers OSD when a playlist entry is played." msgstr "Spustí OSD, když se začne přehrávay skladba." -#: src/aosd/aosd_trigger.c:80 +#: src/aosd/aosd_trigger.c:79 msgid "Title Change" msgstr "Změna názvu" -#: src/aosd/aosd_trigger.c:81 +#: src/aosd/aosd_trigger.c:80 msgid "" "Triggers OSD when, during playback, the song title changes but the filename " "is the same. This is mostly useful to display title changes in internet " @@ -1588,27 +1588,27 @@ "je stále stejné. To se hodí při přehrávání internetových proudů, v nichž se " "střídají skladby." -#: src/aosd/aosd_trigger.c:87 +#: src/aosd/aosd_trigger.c:86 msgid "Volume Change" msgstr "Změna hlasitosti" -#: src/aosd/aosd_trigger.c:88 +#: src/aosd/aosd_trigger.c:87 msgid "Triggers OSD when volume is changed." msgstr "Spustí OSD, když se změní hlasitost." -#: src/aosd/aosd_trigger.c:92 +#: src/aosd/aosd_trigger.c:91 msgid "Pause On" msgstr "Pozastavení" -#: src/aosd/aosd_trigger.c:93 +#: src/aosd/aosd_trigger.c:92 msgid "Triggers OSD when playback is paused." msgstr "Spustí OSD, když je přehrávání pozastaveno." +#: src/aosd/aosd_trigger.c:96 +msgid "Pause Off" +msgstr "Obnovení přehrávání" + #: src/aosd/aosd_trigger.c:97 -msgid "Pause Off" -msgstr "Obnovení přehrávání" - -#: src/aosd/aosd_trigger.c:98 msgid "Triggers OSD when playback is unpaused." msgstr "Spustí OSD, když přehrávání obnoveno." @@ -1707,10 +1707,10 @@ msgid "Skin file:" msgstr "Soubor se skinem:" -#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2331 -#: src/sid/xmms-sid.glade:2856 src/sid/xmms-sid.glade:2962 -#: src/sid/xs_interface.c:1010 src/sid/xs_interface.c:1182 -#: src/sid/xs_interface.c:1218 +#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2373 +#: src/sid/xmms-sid.glade:2968 src/sid/xmms-sid.glade:3136 +#: src/sid/xs_interface.c:1043 src/sid/xs_interface.c:1235 +#: src/sid/xs_interface.c:1291 msgid "Browse" msgstr "Procházet" @@ -1793,9 +1793,9 @@ msgid "Trigger" msgstr "Spouštěč" -#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:167 +#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:175 #: src/modplug/gui/interface.cxx:688 src/modplug/gui/modplug.glade:1603 -#: src/sid/xmms-sid.glade:3026 src/sid/xs_interface.c:1229 +#: src/sid/xmms-sid.glade:3220 src/sid/xs_interface.c:1301 msgid "Misc" msgstr "Různé" @@ -1833,11 +1833,11 @@ "http://neugierig.org/software/ghosd/\n" "\n" -#: src/arts/arts.c:22 +#: src/arts/arts.c:21 msgid "About aRts Output" msgstr "O aRts výstupu" -#: src/arts/arts.c:23 +#: src/arts/arts.c:22 msgid "" "aRts output plugin by Håvard Kvålen \n" "Audacious port by Giacomo Lozito from develia.org" @@ -1849,26 +1849,26 @@ msgid "aRts Driver configuration" msgstr "Nastavení ovladače aRts" -#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:232 -#: src/OSS/configure.c:304 src/sun/configure.c:259 +#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:230 +#: src/OSS/configure.c:303 src/sun/configure.c:257 msgid "Buffering:" msgstr "Vyrovnávání:" -#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:245 -#: src/OSS/configure.c:317 src/sun/configure.c:272 +#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:243 +#: src/OSS/configure.c:316 src/sun/configure.c:270 msgid "Buffer size (ms):" msgstr "Velikost vyrovnávací paměti (ms):" -#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:270 -#: src/OSS/configure.c:342 src/sun/configure.c:304 +#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:268 +#: src/OSS/configure.c:341 src/sun/configure.c:302 msgid "Buffering" msgstr "Vyrovnávání" -#: src/audiocompress/audacious-glue.c:95 +#: src/audiocompress/audacious-glue.c:103 msgid "AudioCompress " msgstr "AudioCompress " -#: src/audiocompress/audacious-glue.c:96 +#: src/audiocompress/audacious-glue.c:104 msgid "" "\n" "(c)2003 trikuare studios(http://trikuare.cx)\n" @@ -1884,11 +1884,11 @@ "Jednoduchý zhušťovač dynamických rozsahů pro snadné\n" "udržení hlasitosti na více méně stejné úrovni." -#: src/audiocompress/audacious-glue.c:101 +#: src/audiocompress/audacious-glue.c:109 msgid "About AudioCompress" msgstr "O AudioCompress" -#: src/audiocompress/audacious-glue.c:320 +#: src/audiocompress/audacious-glue.c:328 msgid "" "If checked, when the sound peaks the volume will be cut instantly; " "otherwise, it will ramp down just in time for the peak (but some minor " @@ -1898,15 +1898,15 @@ "Jinak bude hlasitost klouzavě snižována jen v místě vrcholu (drobné přesahy " "se mohou vyskytnout)." -#: src/audiocompress/audacious-glue.c:324 +#: src/audiocompress/audacious-glue.c:332 msgid "The maximum amount to amplify the audio by" msgstr "Maximální hodnota kolikrát lze zvuk zesílit" -#: src/audiocompress/audacious-glue.c:326 +#: src/audiocompress/audacious-glue.c:334 msgid "Defines how smoothly the volume will ramp up" msgstr "Definuje, jak plynule bude hlasitost navyšována" -#: src/audiocompress/audacious-glue.c:328 +#: src/audiocompress/audacious-glue.c:336 msgid "" "The target audio level for ramping up. Lowering the value gives a bit more " "dynamic range for peaks, but will make the overall sound quieter." @@ -1914,43 +1914,43 @@ "Cílová hladina hlasitosti pro zesílení. Snížením hodnoty získáte " "dynamičtější rozsah pro vrcholky, avšak celková zvuk bude tišší." -#: src/audiocompress/audacious-glue.c:331 +#: src/audiocompress/audacious-glue.c:339 msgid "How long of a window to maintain" msgstr "Jak dlouhé okno udržovat" -#: src/audiocompress/audacious-glue.c:372 +#: src/audiocompress/audacious-glue.c:380 msgid "AudioCompress preferences" msgstr "Nastavení modulu AudioCompress" -#: src/audiocompress/audacious-glue.c:389 +#: src/audiocompress/audacious-glue.c:397 msgid " Quality Options " msgstr " Nastavení kvality" -#: src/audiocompress/audacious-glue.c:394 +#: src/audiocompress/audacious-glue.c:402 msgid " Aggressively prevent clipping" msgstr " Agresivní ořezání přesahu" -#: src/audiocompress/audacious-glue.c:406 +#: src/audiocompress/audacious-glue.c:414 msgid " Target & gain" msgstr " Cíl a zesílení" -#: src/audiocompress/audacious-glue.c:417 +#: src/audiocompress/audacious-glue.c:425 msgid "Target audio level:" msgstr "Cílová hladina hlasitosti:" -#: src/audiocompress/audacious-glue.c:425 -msgid "Maximum gain:" -msgstr "Maximální zesílení:" - #: src/audiocompress/audacious-glue.c:433 +msgid "Maximum gain:" +msgstr "Maximální zesílení:" + +#: src/audiocompress/audacious-glue.c:441 msgid "Gain smooth:" msgstr "Plynulost zesílení:" -#: src/audiocompress/audacious-glue.c:485 +#: src/audiocompress/audacious-glue.c:493 msgid " History " msgstr " Historie " -#: src/audiocompress/audacious-glue.c:517 +#: src/audiocompress/audacious-glue.c:525 msgid "" "How long of a history to maintain. A higher number will make the volume " "changes less responsive." @@ -1958,41 +1958,41 @@ "Jak dlouhou historii udržovat. Vyšší číslo sníží rychlost reakce na změnu " "hlasitosti." -#: src/audiocompress/audacious-glue.c:528 +#: src/audiocompress/audacious-glue.c:536 msgid "Load default values" msgstr "Načíst standardní hodnoty" -#: src/audiocompress/audacious-glue.c:533 +#: src/audiocompress/audacious-glue.c:541 msgid "Audio values" msgstr "Hodnoty zvuku" -#: src/audiocompress/audacious-glue.c:562 src/echo_plugin/gui.c:152 -#: src/modplug/gui/interface.cxx:708 src/modplug/gui/modplug.glade:1655 -#: src/stereo_plugin/stereo.c:132 +#: src/audiocompress/audacious-glue.c:570 src/crystalizer/crystalizer.c:129 +#: src/echo_plugin/gui.c:150 src/modplug/gui/interface.cxx:708 +#: src/modplug/gui/modplug.glade:1655 src/stereo_plugin/stereo.c:131 msgid "Apply" msgstr "Použít" -#: src/blur_scope/blur_scope.c:54 +#: src/blur_scope/blur_scope.c:52 msgid "/Toggle Decorations" msgstr "/Přepnout zobrazení dekorací" -#: src/blur_scope/blur_scope.c:56 +#: src/blur_scope/blur_scope.c:54 msgid "/-" msgstr "/-" -#: src/blur_scope/blur_scope.c:57 +#: src/blur_scope/blur_scope.c:55 msgid "/Close" msgstr "/Zavřít" -#: src/blur_scope/blur_scope.c:181 +#: src/blur_scope/blur_scope.c:179 msgid "Blur scope" msgstr "Blur scope" -#: src/blur_scope/config.c:72 +#: src/blur_scope/config.c:71 msgid "Blur Scope: Color selection" msgstr "Blur scope: výběr barvy" -#: src/blur_scope/config.c:82 src/jack/configure.c:108 +#: src/blur_scope/config.c:81 src/jack/configure.c:107 msgid "Options:" msgstr "Volby:" @@ -2029,7 +2029,7 @@ "\n" "Toto byl projekt z Google Summer of Code 2007." -#: src/cdaudio-ng/cdaudio-ng.c:814 +#: src/cdaudio-ng/cdaudio-ng.c:815 msgid "" "No playable CD found.\n" "\n" @@ -2039,98 +2039,103 @@ "\n" "Není vloženo CD, nebo vložené CD není typu Audio CD.\n" -#: src/cdaudio-ng/configure.c:147 +#: src/cdaudio-ng/configure.c:155 msgid "CD Audio Plugin Configuration" msgstr "Nastavení modulu pro zvuková CD" -#: src/cdaudio-ng/configure.c:157 +#: src/cdaudio-ng/configure.c:165 msgid "Digital audio extraction" msgstr "Digitální získání zvuku" -#: src/cdaudio-ng/configure.c:162 +#: src/cdaudio-ng/configure.c:170 msgid "Title information" msgstr "Informace o titulu" -#: src/cdaudio-ng/configure.c:179 +#: src/cdaudio-ng/configure.c:187 msgid "Limit read speed to: " msgstr "Omezit rychlost čtení na:" -#: src/cdaudio-ng/configure.c:186 +#: src/cdaudio-ng/configure.c:194 msgid "Use cd-text if available" msgstr "Pokud možno, použít cd-text" -#: src/cdaudio-ng/configure.c:190 +#: src/cdaudio-ng/configure.c:198 msgid "Use CDDB if available" msgstr "Pokud možno, použít CDDB" -#: src/cdaudio-ng/configure.c:194 +#: src/cdaudio-ng/configure.c:202 msgid "Server: " msgstr "Server: " -#: src/cdaudio-ng/configure.c:197 +#: src/cdaudio-ng/configure.c:205 +#, fuzzy +msgid "Path: " +msgstr "Vzorek: " + +#: src/cdaudio-ng/configure.c:208 msgid "Port: " msgstr "Port: " -#: src/cdaudio-ng/configure.c:203 +#: src/cdaudio-ng/configure.c:217 msgid "Use HTTP instead of CDDBP" msgstr "Použít HTTP místo CDDBP" -#: src/cdaudio-ng/configure.c:211 +#: src/cdaudio-ng/configure.c:225 msgid "Override default device: " msgstr "Přebít výchozí zařízení: " -#: src/cdaudio-ng/configure.c:218 +#: src/cdaudio-ng/configure.c:232 msgid "Print debug information" msgstr "Zobrazovat ladící informace" -#: src/console/Audacious_Config.cxx:125 +#: src/console/Audacious_Config.cxx:124 msgid "Console Music Decoder" msgstr "Dekodér konzolové hudby" -#: src/console/Audacious_Config.cxx:162 +#: src/console/Audacious_Config.cxx:161 msgid "Bass:" msgstr "Hloubky:" -#: src/console/Audacious_Config.cxx:166 src/console/Audacious_Config.cxx:177 -#: src/console/Audacious_Config.cxx:198 +#: src/console/Audacious_Config.cxx:165 src/console/Audacious_Config.cxx:176 +#: src/console/Audacious_Config.cxx:197 msgid "secs" msgstr "s" -#: src/console/Audacious_Config.cxx:173 +#: src/console/Audacious_Config.cxx:172 msgid "Treble:" msgstr "Výšky:" -#: src/console/Audacious_Config.cxx:194 +#: src/console/Audacious_Config.cxx:193 msgid "Default song length:" msgstr "Implicitní délka skladby:" -#: src/console/Audacious_Config.cxx:200 src/modplug/gui/interface.cxx:268 +#: src/console/Audacious_Config.cxx:199 src/modplug/gui/interface.cxx:268 #: src/modplug/gui/modplug.glade:338 src/sid/xmms-sid.glade:1243 -#: src/sid/xs_interface.c:653 +#: src/sid/xs_interface.c:665 msgid "Resampling" msgstr "Převzorkování" -#: src/console/Audacious_Config.cxx:206 +#: src/console/Audacious_Config.cxx:205 msgid "Enable audio resampling" msgstr "Povolit převzorkování zvuku" -#: src/console/Audacious_Config.cxx:221 +#: src/console/Audacious_Config.cxx:220 msgid "Resampling rate:" msgstr "Převzorkovat na:" -#: src/console/Audacious_Config.cxx:236 +#: src/console/Audacious_Config.cxx:235 msgid "SPC" msgstr "SPC" -#: src/console/Audacious_Config.cxx:237 +#: src/console/Audacious_Config.cxx:236 msgid "Ignore length from SPC tags" msgstr "Ignorovat délku z SPC tagů" -#: src/console/Audacious_Config.cxx:238 +#: src/console/Audacious_Config.cxx:237 msgid "Increase reverb" msgstr "Prodloužit dozvuk" -#: src/console/Audacious_Config.cxx:263 +#: src/console/Audacious_Config.cxx:262 msgid "" "The default song length, expressed in seconds, is used for songs that do not " "provide length information (i.e. looping tracks)." @@ -2138,11 +2143,11 @@ "Implicitní délka, vyjádřená v sekundách, se použije na skladby, které " "neposkytují informace o délce (např. nekonečné smyčky)." -#: src/console/Audacious_Driver.cxx:444 +#: src/console/Audacious_Driver.cxx:442 msgid "About the Console Music Decoder" msgstr "O dekodéru konzolové hudby" -#: src/console/Audacious_Driver.cxx:445 +#: src/console/Audacious_Driver.cxx:443 msgid "" "Console music decoder engine based on Game_Music_Emu 0.5.2.\n" "Supported formats: AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ\n" @@ -2154,11 +2159,20 @@ "Implementace v Audacious: William Pitcock ,\n" " Shay Green " -#: src/demac/plugin.c:388 +#: src/crystalizer/crystalizer.c:90 +#, fuzzy +msgid "Configure Crystalizer" +msgstr "Nastavit Extra sterou" + +#: src/crystalizer/crystalizer.c:92 src/stereo_plugin/stereo.c:94 +msgid "Effect intensity:" +msgstr "Síla efektu:" + +#: src/demac/plugin.c:359 msgid "About Monkey's Audio Plugin" msgstr "O modulu pro Monkey's Audio" -#: src/demac/plugin.c:389 +#: src/demac/plugin.c:360 msgid "" "Copyright (C) 2007 Eugene Zagidullin \n" "Based on ffape decoder, Copyright (C) 2007 Benjamin Zores\n" @@ -2172,7 +2186,7 @@ "\n" "ffape je součástí projektu FFmpeg, http://ffmpeg.mplayerhq.hu/" -#: src/echo_plugin/gui.c:11 +#: src/echo_plugin/gui.c:9 msgid "" "Echo Plugin\n" "By Johan Levin 1999.\n" @@ -2184,35 +2198,35 @@ "\n" "Prostorovou ozvěnu přidal Carl van Schaik, 1999" -#: src/echo_plugin/gui.c:25 +#: src/echo_plugin/gui.c:23 msgid "About Echo Plugin" msgstr "O modulu ozvěny" -#: src/echo_plugin/gui.c:76 +#: src/echo_plugin/gui.c:74 msgid "Configure Echo" msgstr "Nastavit ozvěnu" -#: src/echo_plugin/gui.c:89 +#: src/echo_plugin/gui.c:87 msgid "Delay: (ms)" msgstr "Zpoždění: (ms)" -#: src/echo_plugin/gui.c:94 +#: src/echo_plugin/gui.c:92 msgid "Feedback: (%)" msgstr "Zpětná vazba: (%)" -#: src/echo_plugin/gui.c:99 +#: src/echo_plugin/gui.c:97 msgid "Volume: (%)" msgstr "Hlasitost: (%)" -#: src/echo_plugin/gui.c:122 +#: src/echo_plugin/gui.c:120 msgid "Surround echo" msgstr "Prostorová ozvěna (surround echo)" -#: src/esd/about.c:34 +#: src/esd/about.c:33 msgid "About ESounD Plugin" msgstr "O modulu ESounD" -#: src/esd/about.c:35 +#: src/esd/about.c:34 msgid "" "Audacious ESounD Plugin\n" "\n" @@ -2270,8 +2284,8 @@ msgid "Server" msgstr "Server" -#: src/esd/configure.c:198 src/OSS4/configure.c:259 src/OSS/configure.c:331 -#: src/sun/configure.c:290 +#: src/esd/configure.c:198 src/OSS4/configure.c:257 src/OSS/configure.c:330 +#: src/sun/configure.c:288 msgid "Pre-buffer (percent):" msgstr "Načíst předem (v procentech):" @@ -2343,7 +2357,7 @@ msgid "Window->JumpToFile" msgstr "Okno → Přejít na soubor" -#: src/evdev-plug/ed_internals.c:94 +#: src/evdev-plug/ed_internals.c:93 #, c-format msgid "" "event-device-plugin: unable to open device file %s , skipping this device; " @@ -2352,7 +2366,7 @@ "event-device-plugin: nelze otevřít zařízení %s, přeskakuji toto zařízení; " "zkontrolujte, že soubor existuje a že máte právo jej číst\n" -#: src/evdev-plug/ed_internals.c:103 +#: src/evdev-plug/ed_internals.c:102 #, c-format msgid "" "event-device-plugin: unable to create a io_channel for device file %s ," @@ -2361,7 +2375,7 @@ "event-device-plugin: nelze vytvořit io_channel (vstupně-výstupní kanál) pro " "zařízení %s, přeskakuji toto zařízení\n" -#: src/evdev-plug/ed_internals.c:342 +#: src/evdev-plug/ed_internals.c:341 msgid "" "event-device-plugin: unable to open /proc/bus/input/devices , automatic " "detection of event devices won't work.\n" @@ -2369,7 +2383,7 @@ "event-device-plugin: nelze otevřít /proc/bus/input/devices, samočinné " "vyhledávání událostních zařízení nebude fungovat.\n" -#: src/evdev-plug/ed_internals.c:351 +#: src/evdev-plug/ed_internals.c:350 msgid "" "event-device-plugin: unable to open a io_channel for /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" @@ -2378,7 +2392,7 @@ "proc/bus/input/devices, samočinné vyhledávání událostních zařízení nebude " "fungovat.\n" -#: src/evdev-plug/ed_internals.c:361 +#: src/evdev-plug/ed_internals.c:360 msgid "" "event-device-plugin: an error occurred while reading /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" @@ -2386,13 +2400,13 @@ "event-device-plugin: došlo k chybě při čtení z /proc/bus/input/devices, " "samočinné vyhledávání událostních zařízení nebude fungovat.\n" -#: src/evdev-plug/ed_internals.c:424 +#: src/evdev-plug/ed_internals.c:423 #, c-format msgid "event-device-plugin: device %s not found in /dev/input , skipping.\n" msgstr "" "event-device-plugin: zařízení %s nebylo nalezeno v /dev/input, přeskakuji.\n" -#: src/evdev-plug/ed_internals.c:489 src/evdev-plug/ed_internals.c:583 +#: src/evdev-plug/ed_internals.c:488 src/evdev-plug/ed_internals.c:582 #, c-format msgid "" "event-device-plugin: unable to load config file %s , default settings will " @@ -2401,7 +2415,7 @@ "event-device-plugin: nelze načíst konfigurační soubor %s, bude použito " "implicitní nastavení.\n" -#: src/evdev-plug/ed_internals.c:535 +#: src/evdev-plug/ed_internals.c:534 #, c-format msgid "" "event-device-plugin: incomplete information in config file for device \"%s" @@ -2410,7 +2424,7 @@ "event-device-plugin: neúplné informace v konfiguračním souboru pro zařízení " "„%s“, přeskakuji.\n" -#: src/evdev-plug/ed_internals.c:604 src/evdev-plug/ed_internals.c:936 +#: src/evdev-plug/ed_internals.c:603 src/evdev-plug/ed_internals.c:935 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_active value for device " @@ -2419,7 +2433,7 @@ "event-device-plugin: konfigurace: nelze získat hodnotu is_active pro " "zařízení „%s“, přeskakuji.\n" -#: src/evdev-plug/ed_internals.c:840 +#: src/evdev-plug/ed_internals.c:839 #, c-format msgid "" "event-device-plugin: unable to access local directory %s , settings will not " @@ -2428,7 +2442,7 @@ "event-device-plugin: nelze přistoupit k místnímu adresáři %s, nastavení " "nebude uloženo.\n" -#: src/evdev-plug/ed_internals.c:890 +#: src/evdev-plug/ed_internals.c:889 #, c-format msgid "" "event-device-plugin: configuration, unable to get filename value for device " @@ -2437,7 +2451,7 @@ "event-device-plugin: konfigurace: nelze získat hodnotu filename pro zařízení " "„%s“, přeskakuji.\n" -#: src/evdev-plug/ed_internals.c:906 +#: src/evdev-plug/ed_internals.c:905 #, c-format msgid "" "event-device-plugin: configuration, unable to get phys value for device \"%s" @@ -2446,7 +2460,7 @@ "event-device-plugin: konfigurace: nelze získat hodnotu phys pro zařízení „%" "s“, přeskakuji.\n" -#: src/evdev-plug/ed_internals.c:922 +#: src/evdev-plug/ed_internals.c:921 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_custom value for device " @@ -2455,7 +2469,7 @@ "event-device-plugin: konfigurace: nelze získat hodnotu is_custom pro " "zařízení „%s“, přeskakuji.\n" -#: src/evdev-plug/ed_internals.c:946 +#: src/evdev-plug/ed_internals.c:945 #, c-format msgid "" "event-device-plugin: configuration, unexpected value for device \"%s\", " @@ -2477,7 +2491,7 @@ "Nelze otevřít okno s vazbami pro nerozpoznané zařízení.\n" "Ujistěte se, že zařízení bylo správně zapojeno." -#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:566 +#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:703 msgid "Error" msgstr "Chyba" @@ -2541,7 +2555,7 @@ msgid "Active" msgstr "Aktivní" -#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:488 +#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:486 msgid "Status" msgstr "Stav" @@ -2663,7 +2677,7 @@ msgid "Output file format:" msgstr "Formát výstupního souboru:" -#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:960 +#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:959 msgid "Configure" msgstr "Nastavit" @@ -2898,11 +2912,11 @@ msgid "Quality level (0 - 10):" msgstr "Úroveň kvality (0–10):" -#: src/flacng/plugin.c:698 +#: src/flacng/plugin.c:697 msgid "FLAC Audio Plugin " msgstr "Zvukový modul FLAC" -#: src/flacng/plugin.c:699 +#: src/flacng/plugin.c:698 msgid "" "\n" "\n" @@ -2918,15 +2932,15 @@ "\n" "http://www.skytale.net/projects/bmp-flac2/" -#: src/flacng/plugin.c:704 +#: src/flacng/plugin.c:703 msgid "About FLAC Audio Plugin" msgstr "O zvukovém modulu FLAC" +#: src/gnomeshortcuts/gnomeshortcuts.c:305 +msgid "About Gnome Shortcut Plugin" +msgstr "O modulu pro zkratky Gnome" + #: src/gnomeshortcuts/gnomeshortcuts.c:306 -msgid "About Gnome Shortcut Plugin" -msgstr "O modulu pro zkratky Gnome" - -#: src/gnomeshortcuts/gnomeshortcuts.c:307 #, fuzzy msgid "" "Gnome Shortcut Plugin\n" @@ -2946,7 +2960,7 @@ msgid "Previous Track" msgstr "Předchozí stopa:" -#: src/hotkey/gui.c:69 +#: src/hotkey/gui.c:69 src/skins/ui_manager.c:177 src/skins/ui_manager.c:178 #, fuzzy msgid "Play" msgstr "Hrát:" @@ -2956,7 +2970,7 @@ msgid "Pause/Resume" msgstr "Pozastavit/Pokračovat:" -#: src/hotkey/gui.c:71 +#: src/hotkey/gui.c:71 src/skins/ui_manager.c:183 src/skins/ui_manager.c:184 #, fuzzy msgid "Stop" msgstr "Zastavit:" @@ -2991,7 +3005,7 @@ msgid "Volume Down" msgstr "Ztišit:" -#: src/hotkey/gui.c:78 +#: src/hotkey/gui.c:78 src/skins/ui_manager.c:422 src/skins/ui_manager.c:423 #, fuzzy msgid "Jump to File" msgstr "Přeskočit na soubor:" @@ -3049,11 +3063,11 @@ msgid "Key Binding:" msgstr "" -#: src/hotkey/gui.c:660 +#: src/hotkey/gui.c:659 msgid "About Global Hotkey Plugin" msgstr "O modulu Global Hotkey" -#: src/hotkey/gui.c:661 +#: src/hotkey/gui.c:660 msgid "" "Global Hotkey Plugin\n" "Control the player with global key combinations or multimedia keys.\n" @@ -3082,35 +3096,35 @@ "\t\t\tJeremy Tan \n" "\n" -#: src/jack/configure.c:70 +#: src/jack/configure.c:69 msgid "Connect to all available jack ports" msgstr "Připojit se na všechny dostupné porty jacku" -#: src/jack/configure.c:77 +#: src/jack/configure.c:76 msgid "Connect only the output ports" msgstr "Připojit se pouze na výstupní porty" -#: src/jack/configure.c:84 +#: src/jack/configure.c:83 msgid "Connect to no ports" msgstr "Na žádné porty se nepřipojovat" -#: src/jack/configure.c:99 +#: src/jack/configure.c:98 msgid "jack Plugin configuration" msgstr "Nastavení modulu jack" -#: src/jack/configure.c:117 +#: src/jack/configure.c:116 msgid "Connection mode:" msgstr "Režim připojení:" -#: src/jack/configure.c:129 +#: src/jack/configure.c:128 msgid "Enable debug printing" msgstr "Povolit ladící výpisy" -#: src/jack/jack.c:84 +#: src/jack/jack.c:82 msgid "Sample rate mismatch" msgstr "Vzorkovací kmitočet nesouhlasí" -#: src/jack/jack.c:87 +#: src/jack/jack.c:85 msgid "" "Xmms is asking for a sample rate that differs from\n" " that of the jack server. Xmms 1.2.8 or later\n" @@ -3133,15 +3147,15 @@ "\n" "Chris Morgan \n" -#: src/jack/jack.c:100 src/wma/wma.c:148 +#: src/jack/jack.c:98 src/wma/wma.c:145 msgid " Close " msgstr " Zavřít " -#: src/jack/jack.c:452 +#: src/jack/jack.c:450 msgid "About JACK Output Plugin 0.17" msgstr "O výstupním modulu JACK 0.17" -#: src/jack/jack.c:453 +#: src/jack/jack.c:451 msgid "" "XMMS jack Driver 0.17\n" "\n" @@ -3159,39 +3173,39 @@ "Pro Audacious převedl\n" "Giacomo Lozito z develia.org" -#: src/ladspa/ladspa.c:722 +#: src/ladspa/ladspa.c:721 msgid "This LADSPA plugin has no user controls" msgstr "Tento LADSPA modul nemá žádné možnosti nastavení uživatelem" -#: src/ladspa/ladspa.c:767 src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:766 src/ladspa/ladspa.c:852 msgid "Name" msgstr "Jméno" -#: src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:852 msgid "UID" msgstr "UID" -#: src/ladspa/ladspa.c:928 +#: src/ladspa/ladspa.c:927 msgid "Installed plugins" msgstr "Nainstalované moduly" -#: src/ladspa/ladspa.c:937 +#: src/ladspa/ladspa.c:936 msgid "Running plugins" msgstr "Bežící moduly" -#: src/ladspa/ladspa.c:952 +#: src/ladspa/ladspa.c:951 msgid "Add" msgstr "Přidat" -#: src/ladspa/ladspa.c:956 +#: src/ladspa/ladspa.c:955 msgid "Remove" msgstr "Odebrat" -#: src/ladspa/ladspa.c:969 +#: src/ladspa/ladspa.c:968 msgid "LADSPA Plugin Catalog" msgstr "Katalog LADSPA modulů" -#: src/lastfm/lastfm.c:96 +#: src/lastfm/lastfm.c:94 msgid "" "Couldn't initialize the last.fm radio plugin.\n" "\n" @@ -3292,60 +3306,60 @@ msgid "%s: will try reconnect every %d seconds...\n" msgstr "%s: pokus o připojení budu opakovat každých %d sekund…\n" -#: src/madplug/configure.c:209 +#: src/madplug/configure.c:208 msgid "MPEG Audio Plugin Configuration" msgstr "Nastavení modulu MPEG Audio" -#: src/madplug/configure.c:226 +#: src/madplug/configure.c:225 #, fuzzy msgid "Audio Settings" msgstr "Nastavení budíku" -#: src/madplug/configure.c:234 +#: src/madplug/configure.c:233 msgid "Force reopen audio when audio type changed" msgstr "Vynutit znovuotevření zvuku, když se typ zvuku změní" -#: src/madplug/configure.c:243 +#: src/madplug/configure.c:242 #, fuzzy msgid "Metadata Settings" msgstr "Nastavení mixéru:" -#: src/madplug/configure.c:252 +#: src/madplug/configure.c:251 msgid "Enable fast play-length calculation" msgstr "Povolit rychlý výpočet doby hraní" -#: src/madplug/configure.c:259 +#: src/madplug/configure.c:258 msgid "Parse XING headers" msgstr "Rozebrat hlavičku XING" -#: src/madplug/configure.c:266 +#: src/madplug/configure.c:265 #, fuzzy msgid "Use SJIS to write ID3 tags (not recommended)" msgstr "Pro zápis ID3 tagů použít SJIS na místo UTF-8" -#: src/madplug/configure.c:273 +#: src/madplug/configure.c:272 #, fuzzy msgid "Miscellaneous Settings" msgstr "Nastavení mixéru:" -#: src/madplug/configure.c:282 +#: src/madplug/configure.c:281 msgid "Display average bitrate for VBR" msgstr "U VBR zobrazovat průměrný datový tok" -#: src/madplug/configure.c:296 src/vorbis/configure.c:102 +#: src/madplug/configure.c:295 src/vorbis/configure.c:100 msgid "Override generic titles" msgstr "Přepsat původní názvy" -#: src/madplug/configure.c:308 +#: src/madplug/configure.c:307 msgid "ID3 format:" msgstr "Formát ID3:" -#: src/madplug/configure.c:320 src/sid/xmms-sid.glade:2540 -#: src/sid/xs_interface.c:1070 +#: src/madplug/configure.c:319 src/sid/xmms-sid.glade:2610 +#: src/sid/xs_interface.c:1102 msgid "Title" msgstr "Název" -#: src/madplug/plugin.c:524 +#: src/madplug/plugin.c:661 #, c-format msgid "" "Audacious MPEG Audio Plugin\n" @@ -3376,15 +3390,15 @@ "Podpora zesílení přehrávání od:\n" " Samuel Krempp" -#: src/madplug/plugin.c:540 +#: src/madplug/plugin.c:677 msgid "About MPEG Audio Plugin" msgstr "O modul pro MPEG zvuk" +#: src/metronom/metronom.c:86 +msgid "About Metronom" +msgstr "O metronomu" + #: src/metronom/metronom.c:87 -msgid "About Metronom" -msgstr "O metronomu" - -#: src/metronom/metronom.c:88 msgid "" "A Tact Generator by Martin Strauss \n" "\n" @@ -3398,12 +3412,12 @@ "např. tact://77 hraje 77 úderů za minutu\n" "nebo tact://60*3/4 hraje v tempu 60 úderu za minutu v 3⁄4 taktu" -#: src/metronom/metronom.c:198 src/metronom/metronom.c:262 +#: src/metronom/metronom.c:197 src/metronom/metronom.c:261 #, c-format msgid "Tact generator: %d bpm" msgstr "Generátor taktu: %d dob/min" -#: src/metronom/metronom.c:200 src/metronom/metronom.c:264 +#: src/metronom/metronom.c:199 src/metronom/metronom.c:263 #, c-format msgid "Tact generator: %d bpm %d/%d" msgstr "Generátor taktu: %d dob/min %d⁄%d" @@ -3618,11 +3632,11 @@ msgid "Message" msgstr "Vzkaz" -#: src/modplug/gui/main.cxx:45 +#: src/modplug/gui/main.cxx:48 msgid "Modplug Input Plugin for Audacious ver" msgstr "Vstupní modul pro Audacious Modplug verze " -#: src/modplug/gui/main.cxx:46 +#: src/modplug/gui/main.cxx:49 msgid "" "\n" "Modplug sound engine written by Olivier Lapicque.\n" @@ -3638,7 +3652,7 @@ "Aktualizuje a udržuje Konstanty Bialkowski.\n" "Na BMP převedl Theofilos Intzoglou." -#: src/modplug/gui/main.cxx:49 +#: src/modplug/gui/main.cxx:52 msgid "About Modplug" msgstr "O modulu Modplug" @@ -3648,27 +3662,27 @@ msgid "Couldn't find pixmap file: %s" msgstr "Nebylo možné nalézt soubor s pixmapou: %s" -#: src/mtp_up/mtp.c:35 +#: src/mtp_up/mtp.c:33 msgid "Upload selected track(s)" msgstr "Nahrát vybranou stopu(y)" -#: src/mtp_up/mtp.c:296 +#: src/mtp_up/mtp.c:294 msgid "Upload in progress..." msgstr "Nahrávám…" -#: src/mtp_up/mtp.c:305 +#: src/mtp_up/mtp.c:303 msgid "MTP device handler" msgstr "Deskriptor MTP zařízení" -#: src/mtp_up/mtp.c:309 +#: src/mtp_up/mtp.c:307 msgid "Disconnect the device" msgstr "Odpojit zařízení" -#: src/musepack/libmpc.cxx:146 +#: src/musepack/libmpc.cxx:142 msgid "Musepack Decoder Plugin 1.2" msgstr "Dekodér musepacku 1.2" -#: src/musepack/libmpc.cxx:147 +#: src/musepack/libmpc.cxx:143 msgid "" "Plugin code by\n" "Benoit Amiaux\n" @@ -3684,174 +3698,175 @@ "\n" "Poslední verzi získáte na http://musepack.net/\n" -#: src/musepack/libmpc.cxx:148 +#: src/musepack/libmpc.cxx:144 msgid "Nevermind" msgstr "Nevadí" -#: src/musepack/libmpc.cxx:166 +#: src/musepack/libmpc.cxx:162 msgid "Musepack Decoder Configuration" msgstr "Nastavení dekodéru musepacku" -#: src/musepack/libmpc.cxx:176 +#: src/musepack/libmpc.cxx:172 msgid "General Settings" msgstr "Obecná nastavení" -#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:492 +#: src/musepack/libmpc.cxx:179 src/wavpack/ui.cxx:490 msgid "Enable Dynamic Bitrate Display" msgstr "Zapnout zobrazování dynamického datového toku" -#: src/musepack/libmpc.cxx:187 src/wavpack/ui.cxx:498 +#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:496 msgid "Plugin" msgstr "Modul" -#: src/musepack/libmpc.cxx:190 +#: src/musepack/libmpc.cxx:186 msgid "ReplayGain Settings" msgstr "Nastavení pro zesílení přehrávání" -#: src/musepack/libmpc.cxx:197 src/wavpack/ui.cxx:510 +#: src/musepack/libmpc.cxx:193 src/wavpack/ui.cxx:508 msgid "Enable Clipping Prevention" msgstr "Povolit prevenci před oříznutím" -#: src/musepack/libmpc.cxx:202 src/wavpack/ui.cxx:515 +#: src/musepack/libmpc.cxx:198 src/wavpack/ui.cxx:513 msgid "Enable ReplayGain" msgstr "Zapnout zesílení pro přehrávání" -#: src/musepack/libmpc.cxx:207 +#: src/musepack/libmpc.cxx:203 msgid "ReplayGain Type" msgstr "Typ zesílení pro přehrávání" -#: src/musepack/libmpc.cxx:215 +#: src/musepack/libmpc.cxx:211 msgid "Use Track Gain" msgstr "Použít zesílení stopy" -#: src/musepack/libmpc.cxx:219 +#: src/musepack/libmpc.cxx:215 msgid "Use Album Gain" msgstr "Použít zesílení alba" -#: src/musepack/libmpc.cxx:224 src/wavpack/ui.cxx:547 +#: src/musepack/libmpc.cxx:220 src/wavpack/ui.cxx:545 msgid "ReplayGain" msgstr "Zesílení přehrávání" -#: src/musepack/libmpc.cxx:491 src/sid/xmms-sid.glade:3144 -#: src/sid/xs_interface.c:1564 src/tta/libtta.c:304 src/wavpack/ui.cxx:152 +#: src/musepack/libmpc.cxx:487 src/sid/xmms-sid.glade:3338 +#: src/sid/xs_interface.c:1648 src/tta/libtta.c:301 src/wavpack/ui.cxx:150 msgid "Filename:" msgstr "Jméno souboru:" -#: src/musepack/libmpc.cxx:506 +#: src/musepack/libmpc.cxx:502 msgid "Musepack Tag" msgstr "Popis musepacku" -#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:323 src/wavpack/ui.cxx:172 +#: src/musepack/libmpc.cxx:510 src/tta/libtta.c:320 src/wavpack/ui.cxx:170 msgid "Title:" msgstr "Název:" -#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:333 src/wavpack/ui.cxx:184 +#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:330 src/wavpack/ui.cxx:182 msgid "Artist:" msgstr "Umělec:" -#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:344 src/wavpack/ui.cxx:196 +#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:341 src/wavpack/ui.cxx:194 msgid "Album:" msgstr "Album:" -#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:355 src/wavpack/ui.cxx:208 +#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:352 src/wavpack/ui.cxx:206 msgid "Comment:" msgstr "Komentář:" -#: src/musepack/libmpc.cxx:530 src/tta/libtta.c:366 src/wavpack/ui.cxx:221 +#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:363 src/wavpack/ui.cxx:219 msgid "Year:" msgstr "Rok:" -#: src/musepack/libmpc.cxx:535 +#: src/musepack/libmpc.cxx:531 msgid "Track:" msgstr "Stopa:" -#: src/musepack/libmpc.cxx:540 src/tta/libtta.c:390 src/wavpack/ui.cxx:248 +#: src/musepack/libmpc.cxx:536 src/tta/libtta.c:387 src/wavpack/ui.cxx:246 msgid "Genre:" msgstr "Žánr:" -#: src/musepack/libmpc.cxx:551 src/sid/xmms-sid.glade:1732 -#: src/sid/xs_interface.c:820 src/wavpack/ui.cxx:267 +#: src/musepack/libmpc.cxx:547 src/sid/xmms-sid.glade:1732 +#: src/sid/xs_interface.c:832 src/skins/ui_manager.c:438 +#: src/wavpack/ui.cxx:265 msgid "Save" msgstr "Uložit" -#: src/musepack/libmpc.cxx:554 src/wavpack/ui.cxx:273 +#: src/musepack/libmpc.cxx:550 src/wavpack/ui.cxx:271 msgid "Remove Tag" msgstr "Odstranit tag" -#: src/musepack/libmpc.cxx:562 +#: src/musepack/libmpc.cxx:558 msgid "Musepack Info" msgstr "Informace o musepacku" +#: src/musepack/libmpc.cxx:591 +#, c-format +msgid "Streamversion %d" +msgstr "Streamversion %d" + +#: src/musepack/libmpc.cxx:592 +#, c-format +msgid "Encoder: %s" +msgstr "Kodér: %s" + +#: src/musepack/libmpc.cxx:593 +#, c-format +msgid "Profile: %s" +msgstr "Profil: %s" + +#: src/musepack/libmpc.cxx:594 +#, c-format +msgid "Average bitrate: %6.1f kbps" +msgstr "Průměrný tok: %6.1f kb/s" + #: src/musepack/libmpc.cxx:595 #, c-format -msgid "Streamversion %d" -msgstr "Streamversion %d" +msgid "Samplerate: %d Hz" +msgstr "Vzorkovací kmitočet: %d Hz" #: src/musepack/libmpc.cxx:596 #, c-format -msgid "Encoder: %s" -msgstr "Kodér: %s" +msgid "Channels: %d" +msgstr "Kanálů: %d" #: src/musepack/libmpc.cxx:597 #, c-format -msgid "Profile: %s" -msgstr "Profil: %s" - -#: src/musepack/libmpc.cxx:598 -#, c-format -msgid "Average bitrate: %6.1f kbps" -msgstr "Průměrný tok: %6.1f kb/s" - -#: src/musepack/libmpc.cxx:599 -#, c-format -msgid "Samplerate: %d Hz" -msgstr "Vzorkovací kmitočet: %d Hz" - -#: src/musepack/libmpc.cxx:600 -#, c-format -msgid "Channels: %d" -msgstr "Kanálů: %d" - -#: src/musepack/libmpc.cxx:601 -#, c-format msgid "Length: %d:\\%.2d" msgstr "Délka: %d:\\%.2d" -#: src/musepack/libmpc.cxx:602 +#: src/musepack/libmpc.cxx:598 #, c-format msgid "File size: %d Bytes" msgstr "Velikost souboru: %d bajtů" -#: src/musepack/libmpc.cxx:603 +#: src/musepack/libmpc.cxx:599 #, c-format msgid "Track Peak: %5u" msgstr "Vrchol stopy: %5u" -#: src/musepack/libmpc.cxx:604 +#: src/musepack/libmpc.cxx:600 #, c-format msgid "Track Gain: %-+2.2f dB" msgstr "Zesílení stopy při přehrávání: %-+2.2f dB" -#: src/musepack/libmpc.cxx:605 +#: src/musepack/libmpc.cxx:601 #, c-format msgid "Album Peak: %5u" msgstr "Vrchol alba: %5u" -#: src/musepack/libmpc.cxx:606 +#: src/musepack/libmpc.cxx:602 #, c-format msgid "Album Gain: %-+5.2f dB" msgstr "Zesílení alba při přehrávání: %-+5.2f dB" -#: src/musepack/libmpc.cxx:634 src/tta/libtta.c:413 src/wavpack/ui.cxx:409 +#: src/musepack/libmpc.cxx:630 src/tta/libtta.c:410 src/wavpack/ui.cxx:407 #, c-format msgid "File Info - %s" msgstr "Informace o souboru – %s" -#: src/null/null.c:61 +#: src/null/null.c:58 msgid "Null output plugin " msgstr "Slepý výstupní modul " -#: src/null/null.c:62 +#: src/null/null.c:59 msgid "" " by Christian Birchinger \n" "based on the XMMS plugin by Håvard Kvål " @@ -3859,23 +3874,52 @@ " napsal Christian Birchinger \n" "založeno na modulu pro XMMS, jehož autor je Håvard Kvål " -#: src/null/null.c:65 +#: src/null/null.c:62 msgid "About Null Output" msgstr "O slepém výstupu" -#: src/null/null.c:94 +#: src/null/null.c:91 msgid "Null output preferences" msgstr "Nastavení slepého výstupu" -#: src/null/null.c:103 +#: src/null/null.c:100 msgid "Run in real time" msgstr "Běžet v reálném čase" -#: src/OSS4/about.c:42 +#: src/OSS4/configure.c:118 src/OSS/configure.c:150 +#, c-format +msgid "Default (%s)" +msgstr "Standardně (%s)" + +#: src/OSS4/configure.c:168 src/OSS/configure.c:200 +msgid "OSS Driver configuration" +msgstr "Nastavení ovladače OSS" + +#: src/OSS4/configure.c:206 src/OSS/configure.c:238 src/OSS/configure.c:279 +msgid "Use alternate device:" +msgstr "Použít jiné zařízení:" + +#: src/OSS4/configure.c:228 src/OSS/configure.c:301 src/sun/configure.c:246 +msgid "Devices" +msgstr "Zařízení" + +#: src/OSS4/configure.c:270 src/OSS/configure.c:342 +msgid "Mixer Settings:" +msgstr "Nastavení mixéru:" + +#: src/OSS4/configure.c:276 +msgid "Save VMIX volume between sessions" +msgstr "Mezi relacemi uložit hlasitost VMIXU" + +#: src/OSS4/configure.c:282 src/OSS/configure.c:354 src/sun/configure.c:392 +msgid "Mixer" +msgstr "Mixér" + +#: src/OSS4/OSS4.c:38 msgid "About OSSv4 Driver" msgstr "O OSSv4 ovladači" -#: src/OSS4/about.c:43 +#: src/OSS4/OSS4.c:39 msgid "" "Audacious OSSv4 Driver\n" "\n" @@ -3915,40 +3959,15 @@ "nestalo, obraťte se na Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." -#: src/OSS4/configure.c:120 src/OSS/configure.c:151 -#, c-format -msgid "Default (%s)" -msgstr "Standardně (%s)" - -#: src/OSS4/configure.c:170 src/OSS/configure.c:201 -msgid "OSS Driver configuration" -msgstr "Nastavení ovladače OSS" - -#: src/OSS4/configure.c:208 src/OSS/configure.c:239 src/OSS/configure.c:280 -msgid "Use alternate device:" -msgstr "Použít jiné zařízení:" - -#: src/OSS4/configure.c:230 src/OSS/configure.c:302 src/sun/configure.c:248 -msgid "Devices" -msgstr "Zařízení" - -#: src/OSS4/configure.c:272 src/OSS/configure.c:343 -msgid "Mixer Settings:" -msgstr "Nastavení mixéru:" - -#: src/OSS4/configure.c:278 -msgid "Save VMIX volume between sessions" -msgstr "Mezi relacemi uložit hlasitost VMIXU" - -#: src/OSS4/configure.c:284 src/OSS/configure.c:355 src/sun/configure.c:394 -msgid "Mixer" -msgstr "Mixér" - -#: src/OSS/about.c:39 +#: src/OSS/configure.c:348 +msgid "Volume controls Master not PCM" +msgstr "Hlasitost ovládána Master kanálem místo PCM" + +#: src/OSS/OSS.c:37 msgid "About OSS Driver" msgstr "O modulu OSS" -#: src/OSS/about.c:40 +#: src/OSS/OSS.c:38 msgid "" "Audacious OSS Driver\n" "\n" @@ -3982,19 +4001,15 @@ "nestalo, obraťte se na Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." -#: src/OSS/configure.c:349 -msgid "Volume controls Master not PCM" -msgstr "Hlasitost ovládána Master kanálem místo PCM" - #: src/projectm-1.0/main.c:70 msgid "_Random" msgstr "" -#: src/pulse_audio/pulse_audio.c:722 +#: src/pulse_audio/pulse_audio.c:720 msgid "About Audacious PulseAudio Output Plugin" msgstr "O výstupním modulu PulseAudio pro Audacious" -#: src/pulse_audio/pulse_audio.c:723 +#: src/pulse_audio/pulse_audio.c:721 msgid "" "Audacious PulseAudio Output Plugin\n" "\n" @@ -4028,27 +4043,27 @@ "tak nestalo, obraťte se na Free Software Foundation, Inc.,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." -#: src/scrobbler/configure.c:138 +#: src/scrobbler/configure.c:134 msgid "Services" msgstr "Služby" -#: src/scrobbler/configure.c:160 src/scrobbler/configure.c:199 +#: src/scrobbler/configure.c:156 src/scrobbler/configure.c:195 msgid "Username:" msgstr "Přístupové jméno:" -#: src/scrobbler/configure.c:166 src/scrobbler/configure.c:205 +#: src/scrobbler/configure.c:162 src/scrobbler/configure.c:201 msgid "Password:" msgstr "Heslo:" -#: src/scrobbler/configure.c:183 +#: src/scrobbler/configure.c:179 msgid "Last.FM" msgstr "Last.FM" -#: src/scrobbler/configure.c:222 +#: src/scrobbler/configure.c:218 msgid "Gerpok" msgstr "Gerpok" -#: src/scrobbler/gtkstuff.c:21 +#: src/scrobbler/gtkstuff.c:18 msgid "" "Audacious AudioScrobbler Plugin\n" "\n" @@ -4059,11 +4074,11 @@ "\n" "Původně vytvořil Audun Hove a Pipian \n" -#: src/scrobbler/gtkstuff.c:23 +#: src/scrobbler/gtkstuff.c:20 msgid "About Scrobbler Plugin" msgstr "O modulu Scrobbler" -#: src/scrobbler/gtkstuff.c:36 +#: src/scrobbler/gtkstuff.c:33 #, c-format msgid "" "There has been an error that may require your attention.\n" @@ -4078,59 +4093,59 @@ "\n" "%s\n" -#: src/scrobbler/gtkstuff.c:43 +#: src/scrobbler/gtkstuff.c:40 msgid "Scrobbler Error" msgstr "Chyba Scrobbleru" -#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:221 +#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:233 msgid "Audacious-SID configuration" msgstr "Nastavení Audacious-SID" -#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:257 +#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:269 msgid "8-bit" msgstr "8bitový" -#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:264 +#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:276 msgid "16-bit" msgstr "16bitový" -#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:271 +#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:283 msgid "Resolution:" msgstr "Rozlišení:" -#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:302 +#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:314 msgid "Autopanning" msgstr "Automatický posun" -#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:309 +#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:321 msgid "Channels:" msgstr "Kanály:" -#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:353 +#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:365 msgid "Samplerate:" msgstr "Vzorkovací kmitočet:" -#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:370 +#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:382 msgid "Use oversampling" msgstr "Převzorkovat" -#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:381 +#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:393 msgid "Factor:" msgstr "Násobek:" -#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:393 +#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:405 msgid "Large factors require more CPU-power" msgstr "Větší činitel vyžaduje více výkonu CPU" -#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:399 +#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:411 msgid "Oversampling:" msgstr "Převzorkování:" -#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:404 +#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:416 msgid "Audio" msgstr "Zvuk" -#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:436 +#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:448 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "clock speed/frequency. Otherwise the speed is determined from played file " @@ -4140,11 +4155,11 @@ "frekvence. V opačném případě bude rychlost určena z přehrávaného souboru " "samotného." -#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:432 +#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:444 msgid "Force speed" msgstr "Vnutit rychlost" -#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:442 +#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:454 msgid "" "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. " "Most of SID-tunes have been made for PAL computers." @@ -4152,11 +4167,11 @@ "PAL je evropský televizní standard, který používá 50Hz vertikální obnovovací " "frekvenci. Většina SID skladeb byla určena pro počítače s výstupem PAL." -#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:438 +#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:450 msgid "PAL (50 Hz)" msgstr "PAL (50 Hz)" -#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:450 +#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:462 msgid "" "NTSC is the TV standard with 60Hz vertical refresh rate (and other features " "that differ from PAL). It is mainly used in United States, Japan and certain " @@ -4166,15 +4181,15 @@ "jiných rozdílů od PALU). Používá se především ve Spojených státech, " "Japonsku, několika dalších zemí." -#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:446 +#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:458 msgid "NTSC (60 Hz)" msgstr "NTSC (60 Hz)" -#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:454 +#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:466 msgid "Clock speed:" msgstr "Rychlost hodin:" -#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:475 +#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:487 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "SID-chip model. Otherwise the preferred SID model is determined from the " @@ -4184,11 +4199,11 @@ "V opačném případě bude modul SIDU určen ze souboru (je-li typu PSIDv2NG). " "Vybraný model bude také použit, nebude-li jej možno ze souboru určit." -#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:471 +#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:483 msgid "Force model" msgstr "Vnutit model" -#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:481 +#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:493 msgid "" "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 " "in few ways, having much fuller filter (which, due to design error, is never " @@ -4200,19 +4215,19 @@ "čipy) a „trpí chybou“ při ladění hlasitosti, která umožňuje přehrávání " "digitálních vzorků." -#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:477 +#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:489 msgid "MOS 6581" msgstr "MOS 6581" -#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:485 +#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:497 msgid "MOS 8580" msgstr "MOS 8580" -#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:492 +#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:504 msgid "SID model:" msgstr "Model SIDU:" -#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:513 +#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:525 msgid "" "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most " "cases, though." @@ -4220,11 +4235,11 @@ "K emulaci použije libSIDPlay 1.x. Rychlejší, ale ne tak přesné. Ve většině " "případů postačuje." -#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:509 +#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:521 msgid "SIDPlay 1 (frame-based)" msgstr "SIDPlay 1 (rámcová technika)" -#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:521 +#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:533 msgid "" "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact " "emulation." @@ -4232,39 +4247,39 @@ "K emulaci použijte libSIDPlay 2.x, který kvůli přesnější emulaci vyžaduje " "výkonnější CPU." -#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:517 +#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:529 msgid "SIDPlay 2 (cycle-based)" msgstr "DISPlay 2 (cyklová technika)" -#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:525 +#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:537 msgid "Emulation library selection:" msgstr "Výběr emulační knihovny" -#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:542 +#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:554 msgid "Real C64 (SIDPlay 2 only)" msgstr "Skutečný C64 (pouze SIDPlay 2)" -#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:549 +#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:561 msgid "Bank switching" msgstr "Přepínání bank" -#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:556 +#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:568 msgid "Transparent ROM" msgstr "Transparentní ROM" -#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:563 +#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:575 msgid "PlaySID environment" msgstr "Prostředí PlaySID" -#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:570 +#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:582 msgid "Memory mode:" msgstr "Režim paměti" -#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:575 +#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:587 msgid "Emu#1" msgstr "Emu#1" -#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:602 +#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:614 msgid "" "This setting can be used to enable libSIDPlay2's \"optimization mode\", " "which in downgrades the emulation from cycle-exact to something similar to " @@ -4274,11 +4289,11 @@ "libSIDPlay2, který nezachovává přesnost na cyklus a více se podobá rámcové " "technice. Výsledkem je nižší zatížení CPU, ale větší nepřesnost." -#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:598 +#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:610 msgid "Optimization mode (faster, inaccurate)" msgstr "Optimalizující režim (rychlejší, nepřesný)" -#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:608 +#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:620 msgid "" "reSID is the software SID-chip simulator based on SID reverse-engineering, " "created by Dag Lem. It is probably the closest thing to real SID available " @@ -4288,11 +4303,11 @@ "Autorem je Dag Lem. Jedná se pravděpodobně o nejvěrnější softwarovou emulaci " "skutečného čipu." -#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:604 +#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:616 msgid "reSID-emulation" msgstr "Emulace reSID" -#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:616 +#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:628 msgid "" "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a " "real SID-chip. Software can be used to control the HardSID and combined with " @@ -4305,15 +4320,15 @@ "softwarovou emulací zbytku C64 pomocí libSIDPlay2 lze dosáhnout „téměř 100%“ " "shody se skutečným C64. Podrobnosti naleznete na http://www.hardsid.com/" -#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:612 +#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:624 msgid "HardSID" msgstr "HardSID" -#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:620 +#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:632 msgid "SIDPlay 2 options:" msgstr "Nastavení SIDPlay 2:" -#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:641 +#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:653 msgid "" "Fastest and also worst sounding sampling method, simply picks nearest " "neighbouring sample." @@ -4321,11 +4336,11 @@ "Nejrychlejší a také nejhůře znějící vzorkovací metoda. Jednoduše vybírá " "nejbližší vzorek." -#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:637 +#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:649 msgid "Fast (nearest neighbour)" msgstr "Rychlá (nejbližší sousední)" -#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:649 +#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:661 msgid "" "Uses linear interpolation between samples, yielding higher audio quality " "with less sampling noise." @@ -4333,23 +4348,23 @@ "Používá lineární interpolaci mezi vzorky. Tím dosahuje vyšší kvality zvuku " "s menšími ruchy." -#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:645 +#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:657 msgid "Linear interpolation" msgstr "Lineární interpolace" -#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:660 +#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:672 msgid "Resampling (FIR)" msgstr "Převzorkování (FIR)" -#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:667 +#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:679 msgid "reSID sampling options:" msgstr "Nastavení převzorkování reSIDu:" -#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:672 +#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:684 msgid "Emu#2" msgstr "Emu#2" -#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:688 +#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:700 msgid "" "This option enables emulation of SID filter. The filter is an essential part " "of SID's sound capacity, but accurate emulation of it may require quite much " @@ -4361,59 +4376,61 @@ "CPU. Vypnete-li filtr, sklady které jej používají, nebudou vůbec znít " "věrohodně." -#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:684 +#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:696 msgid "Emulate filters" msgstr "Emulovat filtry" -#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:713 +#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:725 msgid "FS" msgstr "FS" -#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:730 +#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:742 msgid "FM" msgstr "FM" -#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:747 +#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:759 msgid "FT" msgstr "FT" -#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:758 +#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:770 msgid "Reset values" msgstr "Resetovat hodnoty" -#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:763 +#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:775 msgid "SIDPlay1" msgstr "SIDPlay1" -#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:804 +#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:816 msgid "Export" msgstr "Exportovat" -#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:812 +#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:824 msgid "Use" msgstr "Použít" -#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:828 +#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:840 +#: src/skins/ui_manager.c:437 msgid "Import" msgstr "Importovat" -#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:836 +#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:848 +#: src/skins/ui_manager.c:439 msgid "Delete" msgstr "Smazat" -#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:850 +#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:862 msgid "Filter curve:" msgstr "Křivka filtru:" -#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:855 +#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:867 msgid "SIDPlay2" msgstr "SIDPlay2" -#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:861 +#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:873 msgid "Filters" msgstr "Filtry" -#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:888 +#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:900 msgid "" "If enabled, the tune is played at least for the specified time, adding " "silence to the end if necessary." @@ -4421,21 +4438,21 @@ "Je-li zapnuto, skladba bude hrána alespoň po zadanou dobu, případně na konec " "bude přidáno ticho." -#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:884 +#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:896 msgid "Play at least for specified time" msgstr "Hrát alespoň po určenou dobu" #: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133 -#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:895 -#: src/sid/xs_interface.c:949 src/sid/xs_interface.c:1109 +#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:907 +#: src/sid/xs_interface.c:961 src/sid/xs_interface.c:1141 msgid "Playtime:" msgstr "Doba přehrávání:" -#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:915 +#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:927 msgid "Minimum playtime:" msgstr "Minimální doba přehrávání:" -#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:936 +#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:948 msgid "" "If enabled, tune is played until specified duration is reached (aka maximum " "playtime)." @@ -4443,11 +4460,11 @@ "Je-li zapnuto, skladba bude hrána nejvýše po zadanou dobu (tj. maximální " "délku přehrávání)." -#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:932 +#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:944 msgid "Play for specified time maximum" msgstr "Přehrávat do maximální požadované doby" -#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:942 +#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:954 msgid "" "If enabled, the maximum playtime is applied only if song/tune length is not " "known." @@ -4455,15 +4472,15 @@ "Je-li zapnuto, maximální doba přehrávání bude uplatněna jen tehdy, nebude-li " "délka skladby známa." -#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:938 +#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:950 msgid "Only when song length is unknown" msgstr "Jen není-li délka skladby známa" -#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:969 +#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:981 msgid "Maximum playtime:" msgstr "Maximálné doba přehrávání" -#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:990 +#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:1002 msgid "" "This option enables using of XSIDPLAY compatible song length database. " "(Refer to Audacious-SID documentation for more information)" @@ -4471,31 +4488,31 @@ "Tato volba zapíná použití databáze délek skladeb kompatibilní " "s XSIDPLAY. (Podrobnosti nalezenete v dokumentaci k Audacious-SID modulu.)" -#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:986 +#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:998 msgid "Use XSIDPLAY-compatible database" msgstr "Použít databázi kompatibilní s XSIDPLAY" -#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:997 +#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:1009 msgid "DB-file:" msgstr "Databázový soubor:" -#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1007 +#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1019 msgid "Database path and filename" msgstr "Cesta k databázi a jméno souboru" -#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1014 +#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1026 msgid "Browse for song length-database file" msgstr "Ukázat soubor s databází délek" -#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1016 +#: src/sid/xmms-sid.glade:2418 src/sid/xs_interface.c:1048 msgid "Song length database:" msgstr "Databáze s délkou skladeb:" -#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1021 +#: src/sid/xmms-sid.glade:2454 src/sid/xs_interface.c:1053 msgid "Songlength" msgstr "Délka skladby" -#: src/sid/xmms-sid.glade:2430 src/sid/xs_interface.c:1043 +#: src/sid/xmms-sid.glade:2492 src/sid/xs_interface.c:1075 msgid "" "By enabling this option you can specify a custom Tuplez formatting string " "for SID-files. The SID-plugin specific Tuplez tags are described shortly " @@ -4504,23 +4521,32 @@ "Po povolením této volby lze uživatelem určit formátovací řetězec Tuplez pro " "SID soubory. Tuplez značky modulu SID jsou popsány níže." -#: src/sid/xmms-sid.glade:2432 src/sid/xs_interface.c:1039 +#: src/sid/xmms-sid.glade:2494 src/sid/xs_interface.c:1071 msgid "Override generic Tuplez format string" msgstr "Přepsat původní formátovací řetězec Tuplez" -#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1054 +#: src/sid/xmms-sid.glade:2519 src/sid/xs_interface.c:1086 msgid "Tuplez format string for SID-files" msgstr "Formátovací řetězec Tuplez pro soubory SID" -#: src/sid/xmms-sid.glade:2477 src/sid/xs_interface.c:1057 -msgid "Descriptions of SID-specific Tuplez fields go here. :D" -msgstr "Popis pro SID specifických Tuplez položek patří sem. :D" - -#: src/sid/xmms-sid.glade:2511 src/sid/xs_interface.c:1065 +#: src/sid/xmms-sid.glade:2539 src/sid/xs_interface.c:1089 +msgid "" +"SID-specific Tuplez fields:\n" +"\n" +"sid-format\t\t- Specific fileformat\n" +"sid-model\t\t- 6581 or 8580\n" +"sid-speed\t\t- Timing or speed: PAL/NTSC/etc.\n" +"\n" +"Other \"special\" fields set:\n" +"\n" +"subsong-num, subsong-id" +msgstr "" + +#: src/sid/xmms-sid.glade:2581 src/sid/xs_interface.c:1097 msgid "Song title format:" msgstr "Formát názvu skladby:" -#: src/sid/xmms-sid.glade:2584 src/sid/xs_interface.c:1096 +#: src/sid/xmms-sid.glade:2654 src/sid/xs_interface.c:1128 msgid "" "If enabled, sub-tunes of each file will be added to playlist. If disabled, " "only the default sub-tune will be added." @@ -4528,23 +4554,23 @@ "Je-li zapnuto, podskladby každého souboru budou přidány do seznamu skladeb. " "Je-li vypnuto, bude přidána pouze výchozí podskladba." -#: src/sid/xmms-sid.glade:2586 src/sid/xs_interface.c:1092 +#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1124 msgid "Add sub-tunes to playlist" msgstr "Do seznamu skladeb přidat podskladby" -#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1102 +#: src/sid/xmms-sid.glade:2675 src/sid/xs_interface.c:1134 msgid "Only add sub-tunes that have a duration of at least specified time." msgstr "Přidat pouze podskladby, jejichž délka je větší nebo rovna zadané." -#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1098 +#: src/sid/xmms-sid.glade:2677 src/sid/xs_interface.c:1130 msgid "Only tunes with specified minimum duration" msgstr "Jen skladby se zadanou minimální délkou" -#: src/sid/xmms-sid.glade:2710 src/sid/xs_interface.c:1129 +#: src/sid/xmms-sid.glade:2780 src/sid/xs_interface.c:1161 msgid "Sub-tune handling:" msgstr "Zacházení s podskladbami:" -#: src/sid/xmms-sid.glade:2755 src/sid/xs_interface.c:1150 +#: src/sid/xmms-sid.glade:2825 src/sid/xs_interface.c:1182 msgid "" "If this option is enabled (and the database & HVSC settings below are " "correctly set), Audacious-SID will use and display additional information " @@ -4554,15 +4580,15 @@ "nastavena), Audacious-SID použije a zobrazí dodatečné infomrace z databáze " "STIL, je-li hrána skladba z HVSC." -#: src/sid/xmms-sid.glade:2757 src/sid/xs_interface.c:1146 +#: src/sid/xmms-sid.glade:2827 src/sid/xs_interface.c:1178 msgid "Use STIL database" msgstr "Používat databázi STIL" -#: src/sid/xmms-sid.glade:2782 src/sid/xs_interface.c:1157 +#: src/sid/xmms-sid.glade:2852 src/sid/xs_interface.c:1189 msgid "STIL file:" msgstr "Soubor STIL:" -#: src/sid/xmms-sid.glade:2819 src/sid/xs_interface.c:1173 +#: src/sid/xmms-sid.glade:2889 src/sid/xs_interface.c:1205 msgid "" "Path and filename of STIL database file (STIL.txt), usually found from " "HVSC's DOCUMENTS-subdirectory." @@ -4570,15 +4596,15 @@ "Cesta a jméno souboru souboru s databází STIL (STIL.txt). Obvykle se nachází " "v podadresáři DOCUMENTS od HVSC." -#: src/sid/xmms-sid.glade:2854 src/sid/xs_interface.c:1186 +#: src/sid/xmms-sid.glade:2924 src/sid/xs_interface.c:1218 msgid "Browse for STIL-database file" msgstr "Ukázat na soubor s databází STIL" -#: src/sid/xmms-sid.glade:2888 src/sid/xs_interface.c:1193 +#: src/sid/xmms-sid.glade:3020 src/sid/xs_interface.c:1245 msgid "HVSC path:" msgstr "Cesta k HVSC" -#: src/sid/xmms-sid.glade:2925 src/sid/xs_interface.c:1209 +#: src/sid/xmms-sid.glade:3057 src/sid/xs_interface.c:1261 msgid "" "Path to base-directory of your High Voltage SID Collection (HVSC), for " "example /media/C64Music/" @@ -4586,88 +4612,88 @@ "Cesta ke kořenovému adresáři vaší High Voltage SID sbírce (HVSC). Na příklad " "„/media/C64Music/“." -#: src/sid/xmms-sid.glade:2960 src/sid/xs_interface.c:1222 +#: src/sid/xmms-sid.glade:3092 src/sid/xs_interface.c:1274 msgid "Browse for HVSC path" msgstr "Ukázat cestu k HSVC" -#: src/sid/xmms-sid.glade:2990 src/sid/xs_interface.c:1224 +#: src/sid/xmms-sid.glade:3184 src/sid/xs_interface.c:1296 msgid "SID Tune Information List (STIL) database:" msgstr "Databáze SID Tune Information List (STIL):" -#: src/sid/xmms-sid.glade:3063 src/sid/xs_interface.c:1248 +#: src/sid/xmms-sid.glade:3257 src/sid/xs_interface.c:1320 msgid "Accept and update changes" msgstr "Přijmout a provést změny" -#: src/sid/xmms-sid.glade:3077 src/sid/xs_interface.c:1255 +#: src/sid/xmms-sid.glade:3271 src/sid/xs_interface.c:1327 msgid "Cancel any changes" msgstr "Jakékoliv změny zamítnout" -#: src/sid/xmms-sid.glade:3102 src/sid/xs_interface.c:1543 +#: src/sid/xmms-sid.glade:3296 src/sid/xs_interface.c:1627 msgid "Audacious-SID Fileinfo" msgstr "Audacious – Informace o souboru SID" -#: src/sid/xmms-sid.glade:3172 src/sid/xs_interface.c:1572 +#: src/sid/xmms-sid.glade:3366 src/sid/xs_interface.c:1656 msgid "Songname:" msgstr "Název skladby:" -#: src/sid/xmms-sid.glade:3200 src/sid/xs_interface.c:1580 +#: src/sid/xmms-sid.glade:3394 src/sid/xs_interface.c:1664 msgid "Composer:" msgstr "Skladatel:" -#: src/sid/xmms-sid.glade:3228 src/sid/xs_interface.c:1588 +#: src/sid/xmms-sid.glade:3422 src/sid/xs_interface.c:1672 msgid "Copyright:" msgstr "Autorská práva:" -#: src/sid/xmms-sid.glade:3342 src/sid/xs_interface.c:1632 +#: src/sid/xmms-sid.glade:3536 src/sid/xs_interface.c:1716 msgid "Song Information:" msgstr "Informace o skladbě:" -#: src/sid/xmms-sid.glade:3416 src/sid/xs_interface.c:1667 +#: src/sid/xmms-sid.glade:3610 src/sid/xs_interface.c:1751 msgid "Author:" msgstr "Autor:" -#: src/sid/xmms-sid.glade:3514 src/sid/xs_interface.c:1701 +#: src/sid/xmms-sid.glade:3708 src/sid/xs_interface.c:1785 msgid "Duration:" msgstr "Délka:" -#: src/sid/xmms-sid.glade:3608 src/sid/xs_interface.c:1735 +#: src/sid/xmms-sid.glade:3802 src/sid/xs_interface.c:1819 msgid "Sub-tune Information:" msgstr "Informace o podskladbách" -#: src/sid/xmms-sid.glade:3662 src/sid/xs_interface.c:1796 +#: src/sid/xmms-sid.glade:3856 src/sid/xs_interface.c:1880 msgid "Select HVSC song length database" msgstr "Vybrat databázi délek skladeb od HVSC" -#: src/sid/xmms-sid.glade:3704 src/sid/xs_interface.c:1837 +#: src/sid/xmms-sid.glade:3898 src/sid/xs_interface.c:1921 msgid "Select STIL-database" msgstr "Vybrat databázi STIL" -#: src/sid/xmms-sid.glade:3746 src/sid/xs_interface.c:1878 +#: src/sid/xmms-sid.glade:3940 src/sid/xs_interface.c:1962 msgid "Select HVSC location prefix" msgstr "Vybrat cestu k HVSC" -#: src/sid/xmms-sid.glade:3788 src/sid/xs_interface.c:1919 +#: src/sid/xmms-sid.glade:3982 src/sid/xs_interface.c:2003 msgid "Select SIDPlay2 filters file for importing" msgstr "Vybrat soubor se SIDPlay2 filtry pro import" -#: src/sid/xmms-sid.glade:3830 src/sid/xs_interface.c:1960 +#: src/sid/xmms-sid.glade:4024 src/sid/xs_interface.c:2044 msgid "Select SIDPlay2 filters file for exporting" msgstr "Vybrat soubor se SIDPlay2 filtry pro export" -#: src/sid/xmms-sid.glade:3871 src/sid/xmms-sid.glade:3953 -#: src/sid/xs_interface.c:2008 src/sid/xs_interface.c:2021 +#: src/sid/xmms-sid.glade:4065 src/sid/xmms-sid.glade:4147 +#: src/sid/xs_interface.c:2092 src/sid/xs_interface.c:2105 msgid "Confirm selected action" msgstr "Potvrdit vybrané akce" -#: src/sid/xmms-sid.glade:3909 src/sid/xs_interface.c:2038 +#: src/sid/xmms-sid.glade:4103 src/sid/xs_interface.c:2122 msgid "Yes" msgstr "Ano" -#: src/sid/xmms-sid.glade:3921 src/sid/xs_interface.c:2044 +#: src/sid/xmms-sid.glade:4115 src/sid/xs_interface.c:2128 msgid "No" msgstr "Ne" -#: src/sid/xs_about.c:84 src/wma/wma.c:121 +#: src/sid/xs_about.c:84 src/wma/wma.c:118 #, c-format msgid "About %s" msgstr "O %s" @@ -4681,12 +4707,1130 @@ msgid "Tune #%i: " msgstr "Skladba č. %i:" -#: src/sndfile/plugin.c:548 +#: src/skins/plugin.c:128 +msgid "About Skinned GUI" +msgstr "" + +#: src/skins/plugin.c:129 +msgid "" +"Copyright (c) 2008, by Tomasz Moń \n" +"\n" +msgstr "" + +#: src/skins/skins_cfg.c:329 +msgid "_Fonts" +msgstr "_Fonty" + +#: src/skins/skins_cfg.c:330 +#, fuzzy +msgid "_Player:" +msgstr "Doba přehrávání:" + +#: src/skins/skins_cfg.c:330 +msgid "Select main player window font:" +msgstr "Font v hlavním okně přehrávače:" + +#: src/skins/skins_cfg.c:331 +msgid "_Playlist:" +msgstr "V seznamu sklade_b:" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "Select playlist font:" +msgstr "Vybrat seznam skladeb" + +#: src/skins/skins_cfg.c:332 +#, fuzzy +msgid "Use Bitmap fonts if available" +msgstr "Pokud možno, použít CDDB" + +#: src/skins/skins_cfg.c:332 +msgid "" +"Use bitmap fonts if they are available. Bitmap fonts do not support Unicode " +"strings." +msgstr "" +"Pokud to bude možné, použijí se bitmapové fonty. Bitmapové fonty nepodporují " +"unicodové řetězce." + +#: src/skins/skins_cfg.c:333 +msgid "_Miscellaneous" +msgstr "_Různé" + +#: src/skins/skins_cfg.c:334 +msgid "Show track numbers in playlist" +msgstr "Zobrazovat pořadová čísla v seznamu skladeb" + +#: src/skins/skins_cfg.c:336 +msgid "Show separators in playlist" +msgstr "Zobrazovat oddělovače v seznamu skladeb" + +#: src/skins/skins_cfg.c:338 +msgid "Show window manager decoration" +msgstr "Zobrazovat dekoraci podle správce oken" + +#: src/skins/skins_cfg.c:339 +msgid "This enables the window manager to show decorations for windows." +msgstr "" +"Tímto necháte rozhodnutí na správci oken, kdy má zobrazovat dekorace oken." + +#: src/skins/skins_cfg.c:340 +msgid "Use two-way text scroller" +msgstr "" + +#: src/skins/skins_cfg.c:341 +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 "" + +#: src/skins/skins_cfg.c:342 +msgid "Disable inline gtk theme" +msgstr "" + +#: src/skins/skins_cfg.c:343 +msgid "Allow loading incomplete skins" +msgstr "" + +#: src/skins/skins_cfg.c:344 +msgid "" +"If selected, audacious won't refuse loading broken skins. Use only if your " +"favourite skin doesn't work" +msgstr "" + +#: src/skins/skins_cfg.c:410 +msgid "Color Adjustment" +msgstr "Přizpůsobení barvy" + +#: src/skins/skins_cfg.c:417 +msgid "" +"Audacious allows you to alter the color balance of the skinned UI. The " +"sliders below will allow you to do this." +msgstr "" +"Audacious umožňuje změnit zabarvení měnitelného vzhledu uživatelského " +"rozhraní pomocí následujících jezdců." + +#: src/skins/skins_cfg.c:427 +#, fuzzy +msgid "Blue" +msgstr "Blues" + +#: src/skins/skins_cfg.c:434 +msgid "Green" +msgstr "Zelená" + +#: src/skins/skins_cfg.c:441 +msgid "Red" +msgstr "Červená" + +#: src/skins/skins_cfg.c:571 +#, fuzzy +msgid "Audacious Skinned GUI Configuration" +msgstr "OSD pro Audacious – nastavení" + +#: src/skins/skins_cfg.c:596 +#, fuzzy +msgid "_Skin" +msgstr "_Fonty" + +#: src/skins/ui_equalizer.c:494 +msgid "Audacious Equalizer" +msgstr "Ekvalizér" + +#: src/skins/ui_equalizer.c:794 +#, c-format +msgid "Error importing Winamp EQF file '%s'" +msgstr "" + +#: src/skins/ui_equalizer.c:1172 +msgid "Presets" +msgstr "Předvolby" + +#: src/skins/ui_main.c:392 +#, c-format +msgid "%s - Audacious" +msgstr "%s – Audacious" + +#: src/skins/ui_main.c:394 src/skins/ui_main.c:2397 +#, fuzzy +msgid "Audacious" +msgstr "Audacious:" + +#: src/skins/ui_main.c:641 +#, fuzzy +msgid "VBR" +msgstr "VBR/ABR" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +msgid "stereo" +msgstr "stereo" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "mono" +msgstr "Mono" + +#: src/skins/ui_main.c:957 +msgid "Can't jump to time when no track is being played.\n" +msgstr "" + +#: src/skins/ui_main.c:972 src/skins/ui_manager.c:425 +#: src/skins/ui_manager.c:426 +#, fuzzy +msgid "Jump to Time" +msgstr "/Přejít na čas" + +#: src/skins/ui_main.c:993 +msgid "minutes:seconds" +msgstr "minuty:sekundy" + +#: src/skins/ui_main.c:1003 +msgid "Track length:" +msgstr "Délka stopy:" + +#: src/skins/ui_main.c:1149 +msgid "Audacious - visibility warning" +msgstr "" + +#: src/skins/ui_main.c:1152 +#, fuzzy +msgid "Show main player window" +msgstr "Font v hlavním okně přehrávače:" + +#: src/skins/ui_main.c:1153 +msgid "Ignore" +msgstr "" + +#: src/skins/ui_main.c:1159 +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)." +msgstr "" + +#: src/skins/ui_main.c:1165 +msgid "Always ignore, show/hide is controlled remotely" +msgstr "" + +#: src/skins/ui_main.c:1210 +msgid "Audacious - broken GTK engine usage warning" +msgstr "" + +#: src/skins/ui_main.c:1218 +#, c-format +msgid "" +"Broken GTK engine in use\n" +"\n" +"Audacious has detected that you are using a broken GTK engine.\n" +"\n" +"The theme engine you are using, %s, is incompatible with some of the " +"features used by modern skins. The incompatible features have been disabled " +"for this session.\n" +"\n" +"To use these features, please consider using a different GTK theme engine." +msgstr "" + +#: src/skins/ui_main.c:1229 +#, fuzzy +msgid "Do not display this warning again" +msgstr "Příště již nevarovat" + +#: src/skins/ui_main.c:1253 +msgid "Enter location to play:" +msgstr "Zadejte adresu, z které se má hrát:" + +#: src/skins/ui_main.c:1497 +#, fuzzy, c-format +msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" +msgstr "PŘEJÍT NA %d:%-2.2d/%d:%-2.2d (%d%%)" + +#: src/skins/ui_main.c:1527 +#, fuzzy, c-format +msgid "Volume: %d%%" +msgstr "Hlasitost: (%)" + +#: src/skins/ui_main.c:1555 +#, c-format +msgid "Balance: %d%% left" +msgstr "" + +#: src/skins/ui_main.c:1559 +msgid "Balance: center" +msgstr "" + +#: src/skins/ui_main.c:1563 +#, c-format +msgid "Balance: %d%% right" +msgstr "" + +#: src/skins/ui_main.c:1881 +#, fuzzy +msgid "Options Menu" +msgstr "Nastavení" + +#: src/skins/ui_main.c:1885 +#, fuzzy +msgid "Disable 'Always On Top'" +msgstr "Vždy na vrchu" + +#: src/skins/ui_main.c:1887 +#, fuzzy +msgid "Enable 'Always On Top'" +msgstr "Vždy na vrchu" + +#: src/skins/ui_main.c:1890 +#, fuzzy +msgid "File Info Box" +msgstr "Informace o souboru" + +#: src/skins/ui_main.c:1894 +#, fuzzy +msgid "Disable 'GUI Scaling'" +msgstr "Zakázat ID3v2 tagy" + +#: src/skins/ui_main.c:1896 +#, fuzzy +msgid "Enable 'GUI Scaling'" +msgstr "Povolit převzorkování zvuku" + +#: src/skins/ui_main.c:1899 +#, fuzzy +msgid "Visualization Menu" +msgstr "Typ znázornění" + +#: src/skins/ui_main.c:1946 +msgid "" +"Couldn't open audio.\n" +"\n" +"Please check that:\n" +"1. You have the correct output plugin selected.\n" +"2. No other programs is blocking the soundcard.\n" +"3. Your soundcard is configured properly.\n" +msgstr "" +"Nelze přehrávat.\n" +"\n" +"Zkontrolujte, zda:\n" +"1. máte vybrán správný výstupní modul,\n" +"2. žádný jiný program neblokuje zvukovou kartu,\n" +"3. vaše karta je správně nakonfigurována.\n" + +#: src/skins/ui_manager.c:53 src/skins/ui_manager.c:54 +msgid "Autoscroll Songname" +msgstr "Automatický posun názvu skladby" + +#: src/skins/ui_manager.c:56 src/skins/ui_manager.c:57 +msgid "Stop after Current Song" +msgstr "Zastavit po současné skladbě" + +#: src/skins/ui_manager.c:59 src/skins/ui_manager.c:60 +#, fuzzy +msgid "Peaks" +msgstr "Žerty" + +#: src/skins/ui_manager.c:62 src/skins/ui_manager.c:63 +msgid "Repeat" +msgstr "Opakovat" + +#: src/skins/ui_manager.c:65 src/skins/ui_manager.c:66 +msgid "Shuffle" +msgstr "Náhodné přehrávání" + +#: src/skins/ui_manager.c:68 src/skins/ui_manager.c:69 +msgid "No Playlist Advance" +msgstr "Žádné pokračování dle seznamu skladeb" + +#: src/skins/ui_manager.c:71 src/skins/ui_manager.c:72 +msgid "Show Player" +msgstr "Zobrazit přehrávač" + +#: src/skins/ui_manager.c:74 src/skins/ui_manager.c:75 +msgid "Show Playlist Editor" +msgstr "Zobrazit editor seznamu skladeb" + +#: src/skins/ui_manager.c:77 src/skins/ui_manager.c:78 +#, fuzzy +msgid "Show Equalizer" +msgstr "Ekvalizér" + +#: src/skins/ui_manager.c:80 src/skins/ui_manager.c:81 +msgid "Always on Top" +msgstr "Vždy na vrchu" + +#: src/skins/ui_manager.c:83 src/skins/ui_manager.c:84 +msgid "Put on All Workspaces" +msgstr "Zobrazovat na všech plochách" + +#: src/skins/ui_manager.c:86 src/skins/ui_manager.c:87 +msgid "Roll up Player" +msgstr "Sbalit přehrávač" + +#: src/skins/ui_manager.c:89 src/skins/ui_manager.c:90 +msgid "Roll up Playlist Editor" +msgstr "Sbalit editor seznamu skladeb" + +#: src/skins/ui_manager.c:92 src/skins/ui_manager.c:93 +msgid "Roll up Equalizer" +msgstr "Sbalit ekvalizér" + +#: src/skins/ui_manager.c:95 src/sndstretch/sndstretch_xmms.c:375 +msgid "Scale" +msgstr "Natažení" + +#: src/skins/ui_manager.c:96 +msgid "DoubleSize" +msgstr "Dvojitá velikost" + +#: src/skins/ui_manager.c:98 src/skins/ui_manager.c:99 +msgid "Easy Move" +msgstr "Snadný pohyb" + +#: src/skins/ui_manager.c:107 +#, fuzzy +msgid "Analyzer" +msgstr "Typ sloupců" + +#: src/skins/ui_manager.c:108 +msgid "Scope" +msgstr "Vlnovka" + +#: src/skins/ui_manager.c:109 +msgid "Voiceprint" +msgstr "Otisk" + +#: src/skins/ui_manager.c:110 +msgid "Off" +msgstr "Žádný" + +#: src/skins/ui_manager.c:114 src/skins/ui_manager.c:131 +#: src/skins/ui_manager.c:137 +msgid "Normal" +msgstr "Normální" + +#: src/skins/ui_manager.c:115 src/skins/ui_manager.c:132 +msgid "Fire" +msgstr "Oheň" + +#: src/skins/ui_manager.c:116 +msgid "Vertical Lines" +msgstr "Svislé čáry" + +#: src/skins/ui_manager.c:120 +#, fuzzy +msgid "Lines" +msgstr "řádek." + +#: src/skins/ui_manager.c:121 +#, fuzzy +msgid "Bars" +msgstr "Bass" + +#: src/skins/ui_manager.c:125 +#, fuzzy +msgid "Dot Scope" +msgstr "Vlnovka" + +#: src/skins/ui_manager.c:126 +msgid "Line Scope" +msgstr "Čárová vlnovka" + +#: src/skins/ui_manager.c:127 +msgid "Solid Scope" +msgstr "Plná vlnovka" + +#: src/skins/ui_manager.c:133 +msgid "Ice" +msgstr "Led" + +#: src/skins/ui_manager.c:138 +msgid "Smooth" +msgstr "Plynulý" + +#: src/skins/ui_manager.c:142 +msgid "Full (~50 fps)" +msgstr "Plná (~50 Hz)" + +#: src/skins/ui_manager.c:143 +msgid "Half (~25 fps)" +msgstr "Poloviční (~25 Hz)" + +#: src/skins/ui_manager.c:144 +msgid "Quarter (~13 fps)" +msgstr "Čtvrtinová (~13 Hz)" + +#: src/skins/ui_manager.c:145 +msgid "Eighth (~6 fps)" +msgstr "Osminová (~6 Hz)" + +#: src/skins/ui_manager.c:149 src/skins/ui_manager.c:157 +#, fuzzy +msgid "Slowest" +msgstr "Showtunes" + +#: src/skins/ui_manager.c:150 src/skins/ui_manager.c:158 +#, fuzzy +msgid "Slow" +msgstr "nízké" + +#: src/skins/ui_manager.c:151 src/skins/ui_manager.c:159 +#, fuzzy +msgid "Medium" +msgstr "střední" + +#: src/skins/ui_manager.c:152 src/skins/ui_manager.c:160 +msgid "Fast" +msgstr "Rychlé" + +#: src/skins/ui_manager.c:153 src/skins/ui_manager.c:161 +msgid "Fastest" +msgstr "Nejrychlejší" + +#: src/skins/ui_manager.c:165 +msgid "Time Elapsed" +msgstr "Dosažený čas" + +#: src/skins/ui_manager.c:166 +msgid "Time Remaining" +msgstr "Zbývající čas" + +#: src/skins/ui_manager.c:180 src/skins/ui_manager.c:181 +#, fuzzy +msgid "Pause" +msgstr "Pozastavení" + +#: src/skins/ui_manager.c:186 src/skins/ui_manager.c:187 +#, fuzzy +msgid "Previous" +msgstr "Předchozí stopa:" + +#: src/skins/ui_manager.c:189 src/skins/ui_manager.c:190 +#, fuzzy +msgid "Next" +msgstr "Text" + +#: src/skins/ui_manager.c:195 +msgid "Visualization" +msgstr "Znázornění" + +#: src/skins/ui_manager.c:196 +msgid "Visualization Mode" +msgstr "Typ znázornění" + +#: src/skins/ui_manager.c:197 +msgid "Analyzer Mode" +msgstr "Typ sloupců" + +#: src/skins/ui_manager.c:198 +msgid "Scope Mode" +msgstr "Typ vlnovky" + +#: src/skins/ui_manager.c:199 +msgid "Voiceprint Mode" +msgstr "Typ otisku" + +#: src/skins/ui_manager.c:200 +msgid "WindowShade VU Mode" +msgstr "Typ WindowShade VU" + +#: src/skins/ui_manager.c:201 +msgid "Refresh Rate" +msgstr "Rychlost překreslování" + +#: src/skins/ui_manager.c:202 +msgid "Analyzer Falloff" +msgstr "Klesání sloupců" + +#: src/skins/ui_manager.c:203 +msgid "Peaks Falloff" +msgstr "Klesání vrcholků" + +#: src/skins/ui_manager.c:208 +#, fuzzy +msgid "Playlist" +msgstr "V seznamu sklade_b:" + +#: src/skins/ui_manager.c:210 src/skins/ui_manager.c:211 +msgid "New Playlist" +msgstr "Nový seznam skladeb" + +#: src/skins/ui_manager.c:213 src/skins/ui_manager.c:214 +msgid "Select Next Playlist" +msgstr "Vybrat následující seznam skladeb" + +#: src/skins/ui_manager.c:216 src/skins/ui_manager.c:217 +msgid "Select Previous Playlist" +msgstr "Vybrat předchozí seznam skladeb" + +#: src/skins/ui_manager.c:219 src/skins/ui_manager.c:220 +#, fuzzy +msgid "Delete Playlist" +msgstr "Vybrat seznam skladeb" + +#: src/skins/ui_manager.c:222 +msgid "Load List" +msgstr "Načíst seznam skladeb" + +#: src/skins/ui_manager.c:223 +msgid "Loads a playlist file into the selected playlist." +msgstr "Načte soubor se seznamem skladeb do vybraného seznamu." + +#: src/skins/ui_manager.c:225 +msgid "Save List" +msgstr "Uložit seznam" + +#: src/skins/ui_manager.c:226 +msgid "Saves the selected playlist." +msgstr "Uloží vybraný seznam skladeb." + +#: src/skins/ui_manager.c:228 +msgid "Save Default List" +msgstr "Uložit standardní seznam" + +#: src/skins/ui_manager.c:229 +msgid "Saves the selected playlist to the default location." +msgstr "Uloží vybraný seznam skladeb na standardní místo." + +#: src/skins/ui_manager.c:232 +msgid "Refresh List" +msgstr "Obnovit seznam" + +#: src/skins/ui_manager.c:233 +msgid "Refreshes metadata associated with a playlist entry." +msgstr "Obnovuje metadata náležící skladbě ze seznamu." + +#: src/skins/ui_manager.c:236 +msgid "List Manager" +msgstr "Správce seznamů" + +#: src/skins/ui_manager.c:237 +msgid "Opens the playlist manager." +msgstr "Otevře správce seznamu skladeb." + +#: src/skins/ui_manager.c:243 +msgid "View" +msgstr "Zobrazení" + +#: src/skins/ui_manager.c:247 +msgid "Add Internet Address..." +msgstr "Přidat internetovou adresu…" + +#: src/skins/ui_manager.c:248 +msgid "Adds a remote track to the playlist." +msgstr "Do seznamu přidá vzdálenou stopu." + +#: src/skins/ui_manager.c:251 +msgid "Add Files..." +msgstr "Přidat soubory…" + +#: src/skins/ui_manager.c:252 +#, fuzzy +msgid "Adds files to the playlist." +msgstr "Přidá CD do seznamu skladeb" + +#: src/skins/ui_manager.c:257 +msgid "Search and Select" +msgstr "Hledání a výběr" + +#: src/skins/ui_manager.c:258 +msgid "" +"Searches the playlist and selects playlist entries based on specific " +"criteria." +msgstr "" +"Prohledá seznam skladeb a vybere skladby ze seznamu podle zadaných omezení." + +#: src/skins/ui_manager.c:261 +#, fuzzy +msgid "Invert Selection" +msgstr "Výběr formátu" + +#: src/skins/ui_manager.c:262 +msgid "Inverts the selected and unselected entries." +msgstr "Zamění vybrané a nevybrané položky." + +#: src/skins/ui_manager.c:265 +msgid "Select All" +msgstr "Vybrat vše" + +#: src/skins/ui_manager.c:266 +msgid "Selects all of the playlist entries." +msgstr "Vybere všechny skladby v seznamu." + +#: src/skins/ui_manager.c:269 +#, fuzzy +msgid "Select None" +msgstr "Vyberte soubor se skinem" + +#: src/skins/ui_manager.c:270 +msgid "Deselects all of the playlist entries." +msgstr "Žádná skladba v seznamu nebude vybraná." + +#: src/skins/ui_manager.c:275 +msgid "Remove All" +msgstr "Odebrat všechny" + +#: src/skins/ui_manager.c:276 +msgid "Removes all entries from the playlist." +msgstr "Ze seznamu odstraní všechny skladby." + +#: src/skins/ui_manager.c:279 +msgid "Clear Queue" +msgstr "Vyprázdnit frontu" + +#: src/skins/ui_manager.c:280 +msgid "Clears the queue associated with this playlist." +msgstr "Vyprázdní frontu spojenou s tímto seznamem skladeb." + +#: src/skins/ui_manager.c:283 +msgid "Remove Unavailable Files" +msgstr "Odstranit nedostupné soubory" + +#: src/skins/ui_manager.c:284 +msgid "Removes unavailable files from the playlist." +msgstr "Ze seznamu skladeb odstraní nedostupné soubory." + +#: src/skins/ui_manager.c:287 +msgid "Remove Duplicates" +msgstr "Odebrat duplikáty" + +#: src/skins/ui_manager.c:289 src/skins/ui_manager.c:321 +#: src/skins/ui_manager.c:351 +msgid "By Title" +msgstr "Podle názvu" + +#: src/skins/ui_manager.c:290 +msgid "Removes duplicate entries from the playlist by title." +msgstr "Ze seznamu odstraní skladby na základě jejich názvu." + +#: src/skins/ui_manager.c:293 src/skins/ui_manager.c:329 +#: src/skins/ui_manager.c:359 +msgid "By Filename" +msgstr "Podle jména souboru" + +#: src/skins/ui_manager.c:294 +msgid "Removes duplicate entries from the playlist by filename." +msgstr "Ze seznamu odstraní skladby na základě jména souboru." + +#: src/skins/ui_manager.c:297 src/skins/ui_manager.c:333 +#: src/skins/ui_manager.c:363 +msgid "By Path + Filename" +msgstr "Podle cesty a jména souboru" + +#: src/skins/ui_manager.c:298 +msgid "Removes duplicate entries from the playlist by their full path." +msgstr "Ze seznamu odstraní skladby na základě celé cesty." + +#: src/skins/ui_manager.c:301 +msgid "Remove Unselected" +msgstr "Odebrat neoznačené" + +#: src/skins/ui_manager.c:302 +msgid "Remove unselected entries from the playlist." +msgstr "Odebrat neoznačené skladby se seznamu." + +#: src/skins/ui_manager.c:305 +msgid "Remove Selected" +msgstr "Odebrat označené" + +#: src/skins/ui_manager.c:306 +msgid "Remove selected entries from the playlist." +msgstr "Odebrat označené skladby ze seznamu." + +#: src/skins/ui_manager.c:311 +msgid "Randomize List" +msgstr "Zamíchat pořadí" + +#: src/skins/ui_manager.c:312 +msgid "Randomizes the playlist." +msgstr "Sklady v seznamu seřadí náhodně." + +#: src/skins/ui_manager.c:315 +msgid "Reverse List" +msgstr "Otočit seznam" + +#: src/skins/ui_manager.c:316 +msgid "Reverses the playlist." +msgstr "Obrátí pořadí skladeb v seznamu." + +#: src/skins/ui_manager.c:319 +msgid "Sort List" +msgstr "Seřadit seznam" + +#: src/skins/ui_manager.c:322 src/skins/ui_manager.c:352 +msgid "Sorts the list by title." +msgstr "Seřadí seznam podle názvu." + +#: src/skins/ui_manager.c:325 src/skins/ui_manager.c:355 +msgid "By Artist" +msgstr "Podle umělce" + +#: src/skins/ui_manager.c:326 src/skins/ui_manager.c:356 +msgid "Sorts the list by artist." +msgstr "Skladby v seznam seřadí podle jména umělce." + +#: src/skins/ui_manager.c:330 src/skins/ui_manager.c:360 +msgid "Sorts the list by filename." +msgstr "Skladby v seznamu seřadí podle jména souboru" + +#: src/skins/ui_manager.c:334 src/skins/ui_manager.c:364 +msgid "Sorts the list by full pathname." +msgstr "Skladby v seznamu seřadí podle celé cesty." + +#: src/skins/ui_manager.c:337 src/skins/ui_manager.c:367 +msgid "By Date" +msgstr "Podle data" + +#: src/skins/ui_manager.c:338 src/skins/ui_manager.c:368 +msgid "Sorts the list by modification time." +msgstr "Skladby v seznamu seřadí podle času poslední změny v obsahu souboru." + +#: src/skins/ui_manager.c:341 src/skins/ui_manager.c:371 +msgid "By Track Number" +msgstr "Podle čísla stopy" + +#: src/skins/ui_manager.c:342 src/skins/ui_manager.c:372 +msgid "Sorts the list by track number." +msgstr "Skladby v seznamu seřadí podle čísla stopy." + +#: src/skins/ui_manager.c:345 src/skins/ui_manager.c:375 +msgid "By Playlist Entry" +msgstr "Podle položek v seznamu" + +#: src/skins/ui_manager.c:346 src/skins/ui_manager.c:376 +msgid "Sorts the list by playlist entry." +msgstr "Skladby seřadí podle položek seznamu." + +#: src/skins/ui_manager.c:349 +msgid "Sort Selected" +msgstr "Seřadit vybrané" + +#: src/skins/ui_manager.c:385 +#, fuzzy +msgid "File" +msgstr "Oheň" + +#: src/skins/ui_manager.c:388 +msgid "Plugin Services" +msgstr "" + +#: src/skins/ui_manager.c:390 src/skins/ui_manager.c:393 +msgid "View Track Details" +msgstr "Zobrazit inforamce o skladbě" + +#: src/skins/ui_manager.c:391 src/skins/ui_manager.c:394 +msgid "View track details" +msgstr "Zobrazit inforamce o skladbě" + +#: src/skins/ui_manager.c:396 src/skins/ui_manager.c:397 +#, fuzzy +msgid "About Audacious" +msgstr "/O Audacious" + +#: src/skins/ui_manager.c:399 +msgid "Play File" +msgstr "Přehrát soubor" + +#: src/skins/ui_manager.c:400 +#, fuzzy +msgid "Load and play a file" +msgstr "Načíst metadata ze seznamů skladeb a souborů" + +#: src/skins/ui_manager.c:402 +#, fuzzy +msgid "Play Location" +msgstr "Umístění:" + +#: src/skins/ui_manager.c:403 +#, fuzzy +msgid "Play media from the selected location" +msgstr "Potvrdit vybrané akce" + +#: src/skins/ui_manager.c:405 +msgid "Plugin services" +msgstr "" + +#: src/skins/ui_manager.c:407 +msgid "Preferences" +msgstr "Nastavení" + +#: src/skins/ui_manager.c:408 +msgid "Open preferences window" +msgstr "Otevřít okno s nastavením" + +#: src/skins/ui_manager.c:410 +msgid "_Quit" +msgstr "_Konec" + +#: src/skins/ui_manager.c:411 +msgid "Quit Audacious" +msgstr "O Audacious" + +#: src/skins/ui_manager.c:413 src/skins/ui_manager.c:414 +msgid "Set A-B" +msgstr "Nastavit A-B" + +#: src/skins/ui_manager.c:416 src/skins/ui_manager.c:417 +msgid "Clear A-B" +msgstr "Vyprázdnit A-B" + +#: src/skins/ui_manager.c:419 src/skins/ui_manager.c:420 +msgid "Jump to Playlist Start" +msgstr "Přejít na začátek seznamu skladeb" + +#: src/skins/ui_manager.c:428 +msgid "Queue Toggle" +msgstr "Přepnout frontu" + +#: src/skins/ui_manager.c:429 +msgid "Enables/disables the entry in the playlist's queue." +msgstr "Povolí/zakáže položku ve frontě seznamu skladeb." + +#: src/skins/ui_manager.c:436 +msgid "Load" +msgstr "Načíst" + +#: src/skins/ui_manager.c:441 src/skins/ui_manager.c:462 +#: src/skins/ui_manager.c:477 +#, fuzzy +msgid "Preset" +msgstr "Předvolby" + +#: src/skins/ui_manager.c:442 +msgid "Load preset" +msgstr "Načíst předvolbu" + +#: src/skins/ui_manager.c:444 src/skins/ui_manager.c:465 +#: src/skins/ui_manager.c:480 +msgid "Auto-load preset" +msgstr "Souborová předvolba" + +#: src/skins/ui_manager.c:445 +msgid "Load auto-load preset" +msgstr "Načíst souborovou předvolbu" + +#: src/skins/ui_manager.c:448 +msgid "Load default preset into equalizer" +msgstr "Načíst standardní předvolbu do ekvalizéru" + +#: src/skins/ui_manager.c:450 +#, fuzzy +msgid "Zero" +msgstr "Retro" + +#: src/skins/ui_manager.c:451 +msgid "Set equalizer preset levels to zero" +msgstr "Vynulovat předvolby ekvalizéru" + +#: src/skins/ui_manager.c:453 +#, fuzzy +msgid "From file" +msgstr "shodný soubor" + +#: src/skins/ui_manager.c:454 +#, fuzzy +msgid "Load preset from file" +msgstr "Načíst předvolbu ze souboru WinAMP EQF" + +#: src/skins/ui_manager.c:456 +msgid "From WinAMP EQF file" +msgstr "Ze souboru WinAMP EQF" + +#: src/skins/ui_manager.c:457 +msgid "Load preset from WinAMP EQF file" +msgstr "Načíst předvolbu ze souboru WinAMP EQF" + +#: src/skins/ui_manager.c:459 +msgid "WinAMP Presets" +msgstr "Předvolby WinAMPu" + +#: src/skins/ui_manager.c:460 +msgid "Import WinAMP presets" +msgstr "Importovat předvolby WinAMPu" + +#: src/skins/ui_manager.c:463 +msgid "Save preset" +msgstr "Uložit předvolbu" + +#: src/skins/ui_manager.c:466 +msgid "Save auto-load preset" +msgstr "Uložit souborovou předvolbu" + +#: src/skins/ui_manager.c:469 +#, fuzzy +msgid "Save default preset" +msgstr "Uložit standardní seznam" + +#: src/skins/ui_manager.c:471 +#, fuzzy +msgid "To file" +msgstr "Soubor STIL:" + +#: src/skins/ui_manager.c:472 +msgid "Save preset to file" +msgstr "Uložit předvolbu do souboru" + +#: src/skins/ui_manager.c:474 +msgid "To WinAMP EQF file" +msgstr "Do souboru WinAMP EQF" + +#: src/skins/ui_manager.c:475 +msgid "Save preset to WinAMP EQF file" +msgstr "Uložit předvolbu do souboru WinAMP EQF" + +#: src/skins/ui_manager.c:478 +msgid "Delete preset" +msgstr "Smazat předvolbu" + +#: src/skins/ui_manager.c:481 +msgid "Delete auto-load preset" +msgstr "Smazat souborovou předvolbu" + +#: src/skins/ui_playlist.c:454 +msgid "Search entries in active playlist" +msgstr "Vyhledat skladby v současném seznamu skladeb" + +#: src/skins/ui_playlist.c:462 +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 "" +"Položky seznamu skladeb vyberete vyplněním jednoho, nebo více polí. Pole " +"používají regulární výrazy a neberou ohled na velikost písmen. Pokud " +"regulárním výrazům nerozumíte, jednoduše vložte části textu, které chcete " +"vyhledat." + +#: src/skins/ui_playlist.c:477 +#, fuzzy +msgid "Album: " +msgstr "Album:" + +#: src/skins/ui_playlist.c:484 +#, fuzzy +msgid "Artist: " +msgstr "Umělec:" + +#: src/skins/ui_playlist.c:491 +msgid "Filename: " +msgstr "Jméno souboru: " + +#: src/skins/ui_playlist.c:499 +msgid "Clear previous selection before searching" +msgstr "Před hledáním vymazat předchozí výběr" + +#: src/skins/ui_playlist.c:502 +msgid "Automatically toggle queue for matching entries" +msgstr "Shodující se položky automaticky zařadit/vyřadit z fronty" + +#: src/skins/ui_playlist.c:505 +msgid "Create a new playlist with matching entries" +msgstr "Ze shodujících se položek vytvořit nový seznam skladeb" + +#: src/skins/ui_playlist.c:724 +#, c-format +msgid "Error writing playlist \"%s\": %s" +msgstr "Chyba při zapisování seznamu skladeb „%s“: %s" + +#: src/skins/ui_playlist.c:746 +#, c-format +msgid "%s already exist. Continue?" +msgstr "%s už existuje. Pokračovat?" + +#: src/skins/ui_playlist.c:761 +#, c-format +msgid "" +"Unable to save playlist.\n" +"\n" +"Unknown file type for '%s'.\n" +msgstr "" +"Nelze uložit seznam skladeb.\n" +"\n" +"Neznámý typ souboru %s.\n" + +#: src/skins/ui_playlist.c:887 +#, fuzzy +msgid "Save as Static Playlist" +msgstr "Uložit seznam skladeb" + +#: src/skins/ui_playlist.c:894 +msgid "Use Relative Path" +msgstr "" + +#: src/skins/ui_playlist.c:916 +#, fuzzy +msgid "Load Playlist" +msgstr "Uložit seznam skladeb" + +#: src/skins/ui_playlist.c:929 +msgid "Save Playlist" +msgstr "Uložit seznam skladeb" + +#: src/skins/ui_playlist.c:1497 +msgid "Audacious Playlist Editor" +msgstr "Zobrazit editor seznamu skladeb" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "PREAMP" +msgstr "PREAMP" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "60HZ" +msgstr "60 Hz" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "170HZ" +msgstr "170 Hz" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "310HZ" +msgstr "310 Hz" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "600HZ" +msgstr "600 Hz" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "1KHZ" +msgstr "1 kHz" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "3KHZ" +msgstr "3 kHz" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "6KHZ" +msgstr "6 kHz" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "12KHZ" +msgstr "12 kHz" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "14KHZ" +msgstr "14 kHz" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "16KHZ" +msgstr "16 kHz" + +#: src/skins/ui_skinselector.c:178 +msgid "Archived Winamp 2.x skin" +msgstr "Zabalený skin Winapmu 2.x" + +#: src/skins/ui_skinselector.c:183 +msgid "Unarchived Winamp 2.x skin" +msgstr "Nezabalený skin Winampu 2.x" + +#: src/skins/util.c:1132 +#, fuzzy, c-format +msgid "Could not create directory (%s): %s\n" +msgstr "sidFilename („%s“) nelze alokovat\n" + +#: src/sndfile/plugin.c:554 #, fuzzy msgid "About sndfile plugin" msgstr "Modul sndfile WAV" -#: src/sndfile/plugin.c:549 +#: src/sndfile/plugin.c:555 msgid "" "Adapted for Audacious usage by Tony Vroon \n" "from the xmms_sndfile plugin which is:\n" @@ -4727,64 +5871,60 @@ "51 Franklin Street, Fifth Floor, \n" "Boston, MA 02110-1301 USA" -#: src/sndstretch/sndstretch_xmms.c:159 +#: src/sndstretch/sndstretch_xmms.c:158 msgid "About SndStretch" msgstr "O modulu SndStrech" -#: src/sndstretch/sndstretch_xmms.c:319 +#: src/sndstretch/sndstretch_xmms.c:318 msgid "Volume corr." msgstr "Oprava hlasitosti" -#: src/sndstretch/sndstretch_xmms.c:320 +#: src/sndstretch/sndstretch_xmms.c:319 msgid "Short Overlap" msgstr "Krátké přesahy" +#: src/sndstretch/sndstretch_xmms.c:373 +msgid "Speed" +msgstr "Rychlost" + #: src/sndstretch/sndstretch_xmms.c:374 -msgid "Speed" -msgstr "Rychlost" - -#: src/sndstretch/sndstretch_xmms.c:375 msgid "Pitch" msgstr "Výška" -#: src/sndstretch/sndstretch_xmms.c:376 -msgid "Scale" -msgstr "Natažení" - -#: src/sndstretch/sndstretch_xmms.c:396 +#: src/sndstretch/sndstretch_xmms.c:395 msgid "SndStretch - Configuration" msgstr "SndStrech – Nastavení" -#: src/song_change/song_change.c:312 +#: src/song_change/song_change.c:310 msgid "Commands" msgstr "Příkazy" -#: src/song_change/song_change.c:319 +#: src/song_change/song_change.c:317 msgid "Command to run when Audacious starts a new song." msgstr "Příkaz, který se provede, když Audacious začne novou skladbu." -#: src/song_change/song_change.c:328 src/song_change/song_change.c:350 -#: src/song_change/song_change.c:371 src/song_change/song_change.c:392 +#: src/song_change/song_change.c:326 src/song_change/song_change.c:348 +#: src/song_change/song_change.c:369 src/song_change/song_change.c:390 msgid "Command:" msgstr "Příkaz:" -#: src/song_change/song_change.c:342 +#: src/song_change/song_change.c:340 msgid "Command to run toward the end of a song." msgstr "Příkaz, který se provede na konci skladby." -#: src/song_change/song_change.c:362 +#: src/song_change/song_change.c:360 msgid "Command to run when Audacious reaches the end of the playlist." msgstr "" "Příkaz, který se provede, když Audacious dosáhne konce seznamu skladeb." -#: src/song_change/song_change.c:383 +#: src/song_change/song_change.c:381 msgid "" "Command to run when title changes for a song (i.e. network streams titles)." msgstr "" "Příkaz, který se provede při změně názvu skladbu (tj. názvy v síťových " "proudech)." -#: src/song_change/song_change.c:404 +#: src/song_change/song_change.c:402 #, c-format msgid "" "You can use the following format strings which\n" @@ -4813,7 +5953,7 @@ "%%t: pozice v seznamu skladeb (%%02d)\n" "%%p: právě se hraje (1, nebo 0)" -#: src/song_change/song_change.c:429 +#: src/song_change/song_change.c:427 msgid "" "Parameters passed to the shell should be encapsulated in " "quotes. Doing otherwise is a security risk." @@ -4821,7 +5961,7 @@ "Parametry předávané shellu by měly být uzavřeny do " "uvozovek. Nerespektování této rady představuje bezpečnostní riziko." -#: src/spectrum/spectrum.c:90 +#: src/spectrum/spectrum.c:89 msgid "Spectrum Analyzer" msgstr "Analyzátor spektra" @@ -4833,11 +5973,11 @@ msgid "The orientation of the tray" msgstr "Orientace traye" -#: src/statusicon/si_ui.c:622 +#: src/statusicon/si_ui.c:620 msgid "About Status Icon Plugin" msgstr "O modulu Stavová ikona" -#: src/statusicon/si_ui.c:624 +#: src/statusicon/si_ui.c:622 msgid "" "\n" "written by Giacomo Lozito < james@develia.org >\n" @@ -4851,39 +5991,39 @@ "Tento modul poskytuje stavovou ikonu, která\n" "je umístěna v systémové oblasti desktopu.\n" -#: src/statusicon/si_ui.c:696 +#: src/statusicon/si_ui.c:694 msgid "Status Icon Plugin - Preferences" msgstr "Modul stavové ikony – Nastavení" -#: src/statusicon/si_ui.c:707 +#: src/statusicon/si_ui.c:705 msgid "Right-Click Menu" msgstr "Nabídka při stisku pravého tlačítka" -#: src/statusicon/si_ui.c:712 +#: src/statusicon/si_ui.c:710 msgid "Audacious standard menu" msgstr "Standardní nabídka Audacious" -#: src/statusicon/si_ui.c:717 +#: src/statusicon/si_ui.c:715 msgid "Small playback menu #1" msgstr "Drobná nabídka pro přehrávání č. 1" -#: src/statusicon/si_ui.c:722 +#: src/statusicon/si_ui.c:720 msgid "Small playback menu #2" msgstr "Drobná nabídka pro přehrávání č. 2" -#: src/statusicon/si_ui.c:745 +#: src/statusicon/si_ui.c:743 msgid "Mouse Scroll Action" msgstr "Reakce na rolování myší" -#: src/statusicon/si_ui.c:750 +#: src/statusicon/si_ui.c:748 msgid "Change volume" msgstr "Změnit hlasitost" -#: src/statusicon/si_ui.c:755 +#: src/statusicon/si_ui.c:753 msgid "Change playing song" msgstr "Změnit hranou skladbu" -#: src/stereo_plugin/stereo.c:26 +#: src/stereo_plugin/stereo.c:25 msgid "" "Extra Stereo Plugin\n" "\n" @@ -4893,23 +6033,19 @@ "\n" "Napsal Johan Levin, 1999." -#: src/stereo_plugin/stereo.c:52 +#: src/stereo_plugin/stereo.c:51 msgid "About Extra Stereo Plugin" msgstr "O modulu Extra sterou" -#: src/stereo_plugin/stereo.c:93 +#: src/stereo_plugin/stereo.c:92 msgid "Configure Extra Stereo" msgstr "Nastavit Extra sterou" -#: src/stereo_plugin/stereo.c:95 -msgid "Effect intensity:" -msgstr "Síla efektu:" +#: src/sun/about.c:33 +msgid "About the Sun Driver" +msgstr "O ovladači pro Sun" #: src/sun/about.c:34 -msgid "About the Sun Driver" -msgstr "O ovladači pro Sun" - -#: src/sun/about.c:35 msgid "" "XMMS BSD Sun Driver\n" "\n" @@ -4921,19 +6057,19 @@ "Copyright © 2001 CubeSoft Communications, Inc.\n" "Správce: .\n" -#: src/sun/configure.c:201 +#: src/sun/configure.c:199 msgid "Audio control device:" msgstr "Zařízení ovládání zvuku:" -#: src/sun/configure.c:350 +#: src/sun/configure.c:348 msgid "Volume controls device:" msgstr "Zařízení ovládání hlasitosti:" -#: src/sun/configure.c:363 +#: src/sun/configure.c:361 msgid "XMMS uses mixer exclusively." msgstr "XMMS používá výlučný přístup k mixéru" -#: src/sun/configure.c:538 +#: src/sun/configure.c:536 msgid "Sun driver configuration" msgstr "Nastavení ovladače pro Sun" @@ -4961,7 +6097,7 @@ msgid "TiMidity Configuration File" msgstr "Konfigurační souboru Title" -#: src/timidity/xmms-timidity.c:118 +#: src/timidity/xmms-timidity.c:115 msgid "" "TiMidity Plugin\n" "http://libtimidity.sourceforge.net\n" @@ -4971,20 +6107,20 @@ "http://libtimidity.sourceforge.net\n" "napsal Konstantin Korikov" -#: src/timidity/xmms-timidity.c:119 +#: src/timidity/xmms-timidity.c:116 #, c-format msgid "TiMidity Plugin %s" msgstr "Modul TiMidity %s" -#: src/timidity/xmms-timidity.c:336 +#: src/timidity/xmms-timidity.c:333 msgid "Couldn't load MIDI file" msgstr "Nebylo možné nahrát MIDI soubor" -#: src/tonegen/tonegen.c:56 +#: src/tonegen/tonegen.c:55 msgid "About Tone Generator" msgstr "O generátoru tónů" -#: src/tonegen/tonegen.c:58 +#: src/tonegen/tonegen.c:57 msgid "" "Sinus tone generator by Haavard Kvaalen \n" "Modified by Daniel J. Peng \n" @@ -4998,52 +6134,52 @@ "Pro jeho aktivaci zadejte URL: tone://frekvence1;frekvence2;frekvence3;...\n" "např. tone://2000;2005 pro přehrání tónů o frekvenci 2000 a 2005 Hz." -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 #, c-format msgid "%s %.1f Hz" msgstr "%s %.1f Hz" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 msgid "Tone Generator: " msgstr "Generátor tónů:" -#: src/tta/libtta.c:130 +#: src/tta/libtta.c:127 msgid "Can't open file\n" msgstr "Soubor nelze otevřít\n" +#: src/tta/libtta.c:130 +msgid "Not supported file format\n" +msgstr "Nepodporovaný formát souboru\n" + #: src/tta/libtta.c:133 -msgid "Not supported file format\n" -msgstr "Nepodporovaný formát souboru\n" +msgid "File is corrupted\n" +msgstr "Soubor je poškozen\n" #: src/tta/libtta.c:136 -msgid "File is corrupted\n" -msgstr "Soubor je poškozen\n" +msgid "Can't read from file\n" +msgstr "Nelze číst ze souboru\n" #: src/tta/libtta.c:139 -msgid "Can't read from file\n" -msgstr "Nelze číst ze souboru\n" +msgid "Insufficient memory available\n" +msgstr "Nedostatek paměti\n" #: src/tta/libtta.c:142 -msgid "Insufficient memory available\n" -msgstr "Nedostatek paměti\n" +msgid "Output plugin error\n" +msgstr "Chyba výstupního modulu\n" #: src/tta/libtta.c:145 -msgid "Output plugin error\n" -msgstr "Chyba výstupního modulu\n" - -#: src/tta/libtta.c:148 msgid "Unknown error\n" msgstr "Neznámá chyba\n" -#: src/tta/libtta.c:152 +#: src/tta/libtta.c:149 msgid "TTA Decoder Error" msgstr "Chyba TTA dekodéru" -#: src/tta/libtta.c:261 +#: src/tta/libtta.c:258 msgid "TTA input plugin " msgstr "TTA vstupní modul " -#: src/tta/libtta.c:262 +#: src/tta/libtta.c:259 msgid "" " for BMP\n" "Copyright (c) 2004 True Audio Software\n" @@ -5051,35 +6187,35 @@ " pro BMP\n" "Copyright © 2004 True Audio Software\n" -#: src/tta/libtta.c:265 +#: src/tta/libtta.c:262 msgid "About True Audio Plugin" msgstr "O modulu True Audio" -#: src/tta/libtta.c:316 +#: src/tta/libtta.c:313 msgid "ID3 Tag:" msgstr "ID3 popisek:" -#: src/tta/libtta.c:378 src/wavpack/ui.cxx:234 +#: src/tta/libtta.c:375 src/wavpack/ui.cxx:232 msgid "Track number:" msgstr "Číslo stopy:" -#: src/vorbis/configure.c:84 +#: src/vorbis/configure.c:82 msgid "Ogg Vorbis Audio Plugin Configuration" msgstr "Nastavení modulu Ogg Vorbis Audio" -#: src/vorbis/configure.c:94 +#: src/vorbis/configure.c:92 msgid "Ogg Vorbis Tags:" msgstr "Popisky Ogg Vorbis:" -#: src/vorbis/configure.c:115 +#: src/vorbis/configure.c:113 msgid "Title format:" msgstr "Formát názvu:" -#: src/vorbis/vorbis.c:681 +#: src/vorbis/vorbis.c:677 msgid "About Ogg Vorbis Audio Plugin" msgstr "O modulu Ogg Vorbis Audio" -#: src/vorbis/vorbis.c:687 +#: src/vorbis/vorbis.c:683 #, fuzzy msgid "" "Ogg Vorbis Plugin by the Xiph.org Foundation\n" @@ -5113,11 +6249,11 @@ "\n" "Navštivte stránky „Xiph.org Foundation“: http://www.xiph.org/\n" -#: src/vtx/about.c:23 +#: src/vtx/about.c:17 msgid "About Vortex Player" msgstr "O přehrávači vortexu" -#: src/vtx/about.c:25 +#: src/vtx/about.c:19 msgid "" "Vortex file format player by Sashnov Alexander \n" "Founded on original source in_vtx.dll by Roman Sherbakov ." -#: src/wavpack/ui.cxx:52 +#: src/wavpack/ui.cxx:50 #, c-format msgid "Wavpack Decoder Plugin %s" msgstr "Dekódovací modul Wavpack %s" -#: src/wavpack/ui.cxx:53 +#: src/wavpack/ui.cxx:51 msgid "" "Copyright (c) 2006 William Pitcock \n" "\n" @@ -5155,90 +6291,90 @@ "Části kódu modulu napsal Miles Egan\n" "Navštivte stránku Wavpacku na http://www.wavpack.com/\n" -#: src/wavpack/ui.cxx:165 +#: src/wavpack/ui.cxx:163 msgid "Ape2 Tag" msgstr "Popisek Ape2" -#: src/wavpack/ui.cxx:288 +#: src/wavpack/ui.cxx:286 msgid "Wavpack Info:" msgstr "Informace o Wavpacku" +#: src/wavpack/ui.cxx:379 +#, c-format +msgid "version %d" +msgstr "verze %d" + +#: src/wavpack/ui.cxx:380 +#, c-format +msgid "average bitrate: %6.1f kbps" +msgstr "průměrný datový tok: %6.1f kb/s" + #: src/wavpack/ui.cxx:381 #, c-format -msgid "version %d" -msgstr "verze %d" +msgid "samplerate: %d Hz" +msgstr "vzorkovací kmitočet: %d Hz" #: src/wavpack/ui.cxx:382 #, c-format -msgid "average bitrate: %6.1f kbps" -msgstr "průměrný datový tok: %6.1f kb/s" +msgid "bits per sample: %d" +msgstr "bitů na vzorek: %d" #: src/wavpack/ui.cxx:383 #, c-format -msgid "samplerate: %d Hz" -msgstr "vzorkovací kmitočet: %d Hz" +msgid "channels: %d" +msgstr "kanálů: %d" #: src/wavpack/ui.cxx:384 #, c-format -msgid "bits per sample: %d" -msgstr "bitů na vzorek: %d" +msgid "length: %d:%.2d" +msgstr "délka: %d:%.2d" #: src/wavpack/ui.cxx:385 #, c-format -msgid "channels: %d" -msgstr "kanálů: %d" - -#: src/wavpack/ui.cxx:386 -#, c-format -msgid "length: %d:%.2d" -msgstr "délka: %d:%.2d" - -#: src/wavpack/ui.cxx:387 -#, c-format msgid "file size: %d Bytes" msgstr "vlikost souboru: %d bajtů" -#: src/wavpack/ui.cxx:394 +#: src/wavpack/ui.cxx:392 msgid "Title Peak: ?" msgstr "Vrchol titulu: ?" -#: src/wavpack/ui.cxx:395 +#: src/wavpack/ui.cxx:393 msgid "Album Peak: ?" msgstr "Vrchol alba: ?" -#: src/wavpack/ui.cxx:396 +#: src/wavpack/ui.cxx:394 msgid "Title Gain: ?" msgstr "Zesílení titulu: ?" -#: src/wavpack/ui.cxx:397 +#: src/wavpack/ui.cxx:395 msgid "Album Gain: ?" msgstr "Zesílení alba: ?" -#: src/wavpack/ui.cxx:471 +#: src/wavpack/ui.cxx:469 msgid "Wavpack Configuration" msgstr "Nastavení Wavepacku" -#: src/wavpack/ui.cxx:484 +#: src/wavpack/ui.cxx:482 msgid "General Plugin Settings:" msgstr "Obecná nastavení modulu:" -#: src/wavpack/ui.cxx:502 +#: src/wavpack/ui.cxx:500 msgid "ReplayGain Settings:" msgstr "Nastavení pro zesílení přehrávání:" -#: src/wavpack/ui.cxx:520 +#: src/wavpack/ui.cxx:518 msgid "ReplayGain Type:" msgstr "Typ zesílení pro přehrávání:" -#: src/wavpack/ui.cxx:531 +#: src/wavpack/ui.cxx:529 msgid "use Track Gain/Peak" msgstr "použít zesílení/vrchol skladby" -#: src/wavpack/ui.cxx:539 +#: src/wavpack/ui.cxx:537 msgid "use Album Gain/Peak" msgstr "použít zesílení/vrchol alba" -#: src/wma/wma.c:123 +#: src/wma/wma.c:120 msgid "" "Adapted for use in Audacious by Tony Vroon (chainsaw@gentoo.org) from\n" "the BEEP-WMA plugin which is Copyright (C) 2004,2005 Mokrushin I.V. aka " @@ -5254,6 +6390,10 @@ ".\n" "Tento modul je postaven na otevřeném zdrojovém kódu " +#~ msgid "Descriptions of SID-specific Tuplez fields go here. :D" +#~ msgstr "" +#~ "Popis pro SID specifických Tuplez položek patří sem. :D" + #~ msgid "Error initializing song-length database!\n" #~ msgstr "Chyba při inicializaci databáze délek skladeb!\n" @@ -5385,9 +6525,6 @@ #~ msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n" #~ msgstr "Paměť pro t_xs_tuneinfo („%s“) nelze alokovat\n" -#~ msgid "Could not allocate sidFilename ('%s')\n" -#~ msgstr "sidFilename („%s“) nelze alokovat\n" - #~ msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n" #~ msgstr "Paměť pro t_xs_subtuneinfo („%s“, %i) nelze alokovat\n" @@ -5454,9 +6591,6 @@ #~ msgid "Play/Pause:" #~ msgstr "Hrát/Pozastavit" -#~ msgid "File Info" -#~ msgstr "Informace o souboru" - #~ msgid "Couldn't open file!" #~ msgstr "Soubor nebylo možné otevřít!" @@ -5508,9 +6642,6 @@ #~ msgid "mp3gain minmax=%4s (max-min=%+6.3fdB)" #~ msgstr "minmax zesílení MP3%4s (max-min=%+6.3f dB)" -#~ msgid "Blues" -#~ msgstr "Blues" - #~ msgid "Classic Rock" #~ msgstr "Klasický rock" @@ -5577,9 +6708,6 @@ #~ msgid "Death Metal" #~ msgstr "Death Metal" -#~ msgid "Pranks" -#~ msgstr "Žerty" - #~ msgid "Soundtrack" #~ msgstr "Soundtrack" @@ -5631,9 +6759,6 @@ #~ msgid "AlternRock" #~ msgstr "Alternativní rock" -#~ msgid "Bass" -#~ msgstr "Bass" - #~ msgid "Soul" #~ msgstr "Soul" @@ -5715,9 +6840,6 @@ #~ msgid "Rave" #~ msgstr "Rave" -#~ msgid "Showtunes" -#~ msgstr "Showtunes" - #~ msgid "Trailer" #~ msgstr "Trailer" @@ -5736,9 +6858,6 @@ #~ msgid "Polka" #~ msgstr "Polka" -#~ msgid "Retro" -#~ msgstr "Retro" - #~ msgid "Musical" #~ msgstr "Muzikál" @@ -5980,9 +7099,6 @@ #~ msgid "Description:" #~ msgstr "Popis:" -#~ msgid "Location:" -#~ msgstr "Umístění:" - #~ msgid "Version:" #~ msgstr "Verze:" @@ -6037,9 +7153,6 @@ #~ msgid "%d Bytes" #~ msgstr "%d bajtů" -#~ msgid "%s - Audacious" -#~ msgstr "%s – Audacious" - #~ msgid "OSS Output Plugin" #~ msgstr "OSS výstupní modul" @@ -6499,12 +7612,6 @@ #~ msgid "Noise shaping" #~ msgstr "Tvarování šumu" -#~ msgid "low" -#~ msgstr "nízké" - -#~ msgid "medium" -#~ msgstr "střední" - #~ msgid "high" #~ msgstr "vysoké" @@ -6591,9 +7698,6 @@ #~ "1. jsou přístupné,\n" #~ "2. máte povolené příslušné moduly." -#~ msgid "Don't show this warning anymore" -#~ msgstr "Příště již nevarovat" - #~ msgid "Show more _details" #~ msgstr "Ukaž podrobné _informace" @@ -6838,27 +7942,6 @@ #~ msgid "Welsh:" #~ msgstr "Welština:" -#~ msgid "Audacious Equalizer" -#~ msgstr "Ekvalizér" - -#~ msgid "Presets" -#~ msgstr "Předvolby" - -#~ msgid "stereo" -#~ msgstr "stereo" - -#~ msgid "minutes:seconds" -#~ msgstr "minuty:sekundy" - -#~ msgid "Track length:" -#~ msgstr "Délka stopy:" - -#~ msgid "Enter location to play:" -#~ msgstr "Zadejte adresu, z které se má hrát:" - -#~ msgid "SEEK TO: %d:%-2.2d/%d:%-2.2d (%d%%)" -#~ msgstr "PŘEJÍT NA %d:%-2.2d/%d:%-2.2d (%d%%)" - #~ msgid "VOLUME: %d%%" #~ msgstr "Hlasitost: %d%%" @@ -6892,425 +7975,18 @@ #~ msgid "VISUALIZATION MENU" #~ msgstr "NASTAVENÍ ZOBRAZENÍ" -#~ msgid "" -#~ "Couldn't open audio.\n" -#~ "\n" -#~ "Please check that:\n" -#~ "1. You have the correct output plugin selected.\n" -#~ "2. No other programs is blocking the soundcard.\n" -#~ "3. Your soundcard is configured properly.\n" -#~ msgstr "" -#~ "Nelze přehrávat.\n" -#~ "\n" -#~ "Zkontrolujte, zda:\n" -#~ "1. máte vybrán správný výstupní modul,\n" -#~ "2. žádný jiný program neblokuje zvukovou kartu,\n" -#~ "3. vaše karta je správně nakonfigurována.\n" - #~ msgid "Error in Audacious." #~ msgstr "Chyba v Audacious" -#~ msgid "Autoscroll Songname" -#~ msgstr "Automatický posun názvu skladby" - -#~ msgid "Stop after Current Song" -#~ msgstr "Zastavit po současné skladbě" - -#~ msgid "Repeat" -#~ msgstr "Opakovat" - -#~ msgid "Shuffle" -#~ msgstr "Náhodné přehrávání" - -#~ msgid "No Playlist Advance" -#~ msgstr "Žádné pokračování dle seznamu skladeb" - -#~ msgid "Show Player" -#~ msgstr "Zobrazit přehrávač" - -#~ msgid "Show Playlist Editor" -#~ msgstr "Zobrazit editor seznamu skladeb" - -#~ msgid "Always on Top" -#~ msgstr "Vždy na vrchu" - -#~ msgid "Put on All Workspaces" -#~ msgstr "Zobrazovat na všech plochách" - -#~ msgid "Roll up Player" -#~ msgstr "Sbalit přehrávač" - -#~ msgid "Roll up Playlist Editor" -#~ msgstr "Sbalit editor seznamu skladeb" - -#~ msgid "Roll up Equalizer" -#~ msgstr "Sbalit ekvalizér" - -#~ msgid "DoubleSize" -#~ msgstr "Dvojitá velikost" - -#~ msgid "Easy Move" -#~ msgstr "Snadný pohyb" - -#~ msgid "Scope" -#~ msgstr "Vlnovka" - -#~ msgid "Voiceprint" -#~ msgstr "Otisk" - -#~ msgid "Off" -#~ msgstr "Žádný" - -#~ msgid "Normal" -#~ msgstr "Normální" - -#~ msgid "Fire" -#~ msgstr "Oheň" - -#~ msgid "Vertical Lines" -#~ msgstr "Svislé čáry" - -#~ msgid "Line Scope" -#~ msgstr "Čárová vlnovka" - -#~ msgid "Solid Scope" -#~ msgstr "Plná vlnovka" - -#~ msgid "Ice" -#~ msgstr "Led" - -#~ msgid "Smooth" -#~ msgstr "Plynulý" - -#~ msgid "Full (~50 fps)" -#~ msgstr "Plná (~50 Hz)" - -#~ msgid "Half (~25 fps)" -#~ msgstr "Poloviční (~25 Hz)" - -#~ msgid "Quarter (~13 fps)" -#~ msgstr "Čtvrtinová (~13 Hz)" - -#~ msgid "Eighth (~6 fps)" -#~ msgstr "Osminová (~6 Hz)" - -#~ msgid "Fast" -#~ msgstr "Rychlé" - -#~ msgid "Fastest" -#~ msgstr "Nejrychlejší" - -#~ msgid "Time Elapsed" -#~ msgstr "Dosažený čas" - -#~ msgid "Time Remaining" -#~ msgstr "Zbývající čas" - #~ msgid "Play CD" #~ msgstr "Přehrát CD" -#~ msgid "Visualization" -#~ msgstr "Znázornění" - -#~ msgid "Visualization Mode" -#~ msgstr "Typ znázornění" - -#~ msgid "Analyzer Mode" -#~ msgstr "Typ sloupců" - -#~ msgid "Scope Mode" -#~ msgstr "Typ vlnovky" - -#~ msgid "Voiceprint Mode" -#~ msgstr "Typ otisku" - -#~ msgid "WindowShade VU Mode" -#~ msgstr "Typ WindowShade VU" - -#~ msgid "Refresh Rate" -#~ msgstr "Rychlost překreslování" - -#~ msgid "Analyzer Falloff" -#~ msgstr "Klesání sloupců" - -#~ msgid "Peaks Falloff" -#~ msgstr "Klesání vrcholků" - -#~ msgid "New Playlist" -#~ msgstr "Nový seznam skladeb" - -#~ msgid "Select Next Playlist" -#~ msgstr "Vybrat následující seznam skladeb" - -#~ msgid "Select Previous Playlist" -#~ msgstr "Vybrat předchozí seznam skladeb" - -#~ msgid "Load List" -#~ msgstr "Načíst seznam skladeb" - -#~ msgid "Loads a playlist file into the selected playlist." -#~ msgstr "Načte soubor se seznamem skladeb do vybraného seznamu." - -#~ msgid "Save List" -#~ msgstr "Uložit seznam" - -#~ msgid "Saves the selected playlist." -#~ msgstr "Uloží vybraný seznam skladeb." - -#~ msgid "Save Default List" -#~ msgstr "Uložit standardní seznam" - -#~ msgid "Saves the selected playlist to the default location." -#~ msgstr "Uloží vybraný seznam skladeb na standardní místo." - -#~ msgid "Refresh List" -#~ msgstr "Obnovit seznam" - -#~ msgid "Refreshes metadata associated with a playlist entry." -#~ msgstr "Obnovuje metadata náležící skladbě ze seznamu." - -#~ msgid "List Manager" -#~ msgstr "Správce seznamů" - -#~ msgid "Opens the playlist manager." -#~ msgstr "Otevře správce seznamu skladeb." - -#~ msgid "View" -#~ msgstr "Zobrazení" - -#~ msgid "Adds a CD to the playlist." -#~ msgstr "Přidá CD do seznamu skladeb" - -#~ msgid "Add Internet Address..." -#~ msgstr "Přidat internetovou adresu…" - -#~ msgid "Adds a remote track to the playlist." -#~ msgstr "Do seznamu přidá vzdálenou stopu." - -#~ msgid "Add Files..." -#~ msgstr "Přidat soubory…" - -#~ msgid "Search and Select" -#~ msgstr "Hledání a výběr" - -#~ msgid "" -#~ "Searches the playlist and selects playlist entries based on specific " -#~ "criteria." -#~ msgstr "" -#~ "Prohledá seznam skladeb a vybere skladby ze seznamu podle zadaných " -#~ "omezení." - -#~ msgid "Inverts the selected and unselected entries." -#~ msgstr "Zamění vybrané a nevybrané položky." - -#~ msgid "Select All" -#~ msgstr "Vybrat vše" - -#~ msgid "Selects all of the playlist entries." -#~ msgstr "Vybere všechny skladby v seznamu." - -#~ msgid "Deselects all of the playlist entries." -#~ msgstr "Žádná skladba v seznamu nebude vybraná." - -#~ msgid "Clear Queue" -#~ msgstr "Vyprázdnit frontu" - -#~ msgid "Clears the queue associated with this playlist." -#~ msgstr "Vyprázdní frontu spojenou s tímto seznamem skladeb." - -#~ msgid "Remove Unavailable Files" -#~ msgstr "Odstranit nedostupné soubory" - -#~ msgid "Removes unavailable files from the playlist." -#~ msgstr "Ze seznamu skladeb odstraní nedostupné soubory." - -#~ msgid "Remove Duplicates" -#~ msgstr "Odebrat duplikáty" - -#~ msgid "By Title" -#~ msgstr "Podle názvu" - -#~ msgid "Removes duplicate entries from the playlist by title." -#~ msgstr "Ze seznamu odstraní skladby na základě jejich názvu." - -#~ msgid "By Filename" -#~ msgstr "Podle jména souboru" - -#~ msgid "Removes duplicate entries from the playlist by filename." -#~ msgstr "Ze seznamu odstraní skladby na základě jména souboru." - -#~ msgid "By Path + Filename" -#~ msgstr "Podle cesty a jména souboru" - -#~ msgid "Removes duplicate entries from the playlist by their full path." -#~ msgstr "Ze seznamu odstraní skladby na základě celé cesty." - -#~ msgid "Remove All" -#~ msgstr "Odebrat všechny" - -#~ msgid "Removes all entries from the playlist." -#~ msgstr "Ze seznamu odstraní všechny skladby." - -#~ msgid "Remove Unselected" -#~ msgstr "Odebrat neoznačené" - -#~ msgid "Remove unselected entries from the playlist." -#~ msgstr "Odebrat neoznačené skladby se seznamu." - -#~ msgid "Remove Selected" -#~ msgstr "Odebrat označené" - -#~ msgid "Remove selected entries from the playlist." -#~ msgstr "Odebrat označené skladby ze seznamu." - -#~ msgid "Randomize List" -#~ msgstr "Zamíchat pořadí" - -#~ msgid "Randomizes the playlist." -#~ msgstr "Sklady v seznamu seřadí náhodně." - -#~ msgid "Reverse List" -#~ msgstr "Otočit seznam" - -#~ msgid "Reverses the playlist." -#~ msgstr "Obrátí pořadí skladeb v seznamu." - -#~ msgid "Sort List" -#~ msgstr "Seřadit seznam" - -#~ msgid "Sorts the list by title." -#~ msgstr "Seřadí seznam podle názvu." - -#~ msgid "By Artist" -#~ msgstr "Podle umělce" - -#~ msgid "Sorts the list by artist." -#~ msgstr "Skladby v seznam seřadí podle jména umělce." - -#~ msgid "Sorts the list by filename." -#~ msgstr "Skladby v seznamu seřadí podle jména souboru" - -#~ msgid "Sorts the list by full pathname." -#~ msgstr "Skladby v seznamu seřadí podle celé cesty." - -#~ msgid "By Date" -#~ msgstr "Podle data" - -#~ msgid "Sorts the list by modification time." -#~ msgstr "" -#~ "Skladby v seznamu seřadí podle času poslední změny v obsahu souboru." - -#~ msgid "By Track Number" -#~ msgstr "Podle čísla stopy" - -#~ msgid "Sorts the list by track number." -#~ msgstr "Skladby v seznamu seřadí podle čísla stopy." - -#~ msgid "By Playlist Entry" -#~ msgstr "Podle položek v seznamu" - -#~ msgid "Sorts the list by playlist entry." -#~ msgstr "Skladby seřadí podle položek seznamu." - -#~ msgid "Sort Selected" -#~ msgstr "Seřadit vybrané" - -#~ msgid "View Track Details" -#~ msgstr "Zobrazit inforamce o skladbě" - -#~ msgid "View track details" -#~ msgstr "Zobrazit inforamce o skladbě" - -#~ msgid "Play File" -#~ msgstr "Přehrát soubor" - -#~ msgid "Preferences" -#~ msgstr "Nastavení" - -#~ msgid "Open preferences window" -#~ msgstr "Otevřít okno s nastavením" - -#~ msgid "_Quit" -#~ msgstr "_Konec" - -#~ msgid "Quit Audacious" -#~ msgstr "O Audacious" - -#~ msgid "Set A-B" -#~ msgstr "Nastavit A-B" - -#~ msgid "Clear A-B" -#~ msgstr "Vyprázdnit A-B" - -#~ msgid "Jump to Playlist Start" -#~ msgstr "Přejít na začátek seznamu skladeb" - -#~ msgid "Queue Toggle" -#~ msgstr "Přepnout frontu" - -#~ msgid "Enables/disables the entry in the playlist's queue." -#~ msgstr "Povolí/zakáže položku ve frontě seznamu skladeb." - -#~ msgid "Load" -#~ msgstr "Načíst" - -#~ msgid "Load preset" -#~ msgstr "Načíst předvolbu" - -#~ msgid "Auto-load preset" -#~ msgstr "Souborová předvolba" - -#~ msgid "Load auto-load preset" -#~ msgstr "Načíst souborovou předvolbu" - -#~ msgid "Load default preset into equalizer" -#~ msgstr "Načíst standardní předvolbu do ekvalizéru" - -#~ msgid "Set equalizer preset levels to zero" -#~ msgstr "Vynulovat předvolby ekvalizéru" - -#~ msgid "From WinAMP EQF file" -#~ msgstr "Ze souboru WinAMP EQF" - -#~ msgid "Load preset from WinAMP EQF file" -#~ msgstr "Načíst předvolbu ze souboru WinAMP EQF" - -#~ msgid "WinAMP Presets" -#~ msgstr "Předvolby WinAMPu" - -#~ msgid "Import WinAMP presets" -#~ msgstr "Importovat předvolby WinAMPu" - -#~ msgid "Save preset" -#~ msgstr "Uložit předvolbu" - -#~ msgid "Save auto-load preset" -#~ msgstr "Uložit souborovou předvolbu" - -#~ msgid "Save preset to file" -#~ msgstr "Uložit předvolbu do souboru" - -#~ msgid "To WinAMP EQF file" -#~ msgstr "Do souboru WinAMP EQF" - -#~ msgid "Save preset to WinAMP EQF file" -#~ msgstr "Uložit předvolbu do souboru WinAMP EQF" - -#~ msgid "Delete preset" -#~ msgstr "Smazat předvolbu" - -#~ msgid "Delete auto-load preset" -#~ msgstr "Smazat souborovou předvolbu" - #~ msgid "Appearance" #~ msgstr "Vzhled" #~ msgid "Connectivity" #~ msgstr "Připojení" -#~ msgid "Equalizer" -#~ msgstr "Ekvalizér" - #~ msgid "Mouse" #~ msgstr "Myš" @@ -7347,12 +8023,6 @@ #~ msgid "Preferences Window" #~ msgstr "Okno nastavení" -#~ msgid "Archived Winamp 2.x skin" -#~ msgstr "Zabalený skin Winapmu 2.x" - -#~ msgid "Unarchived Winamp 2.x skin" -#~ msgstr "Nezabalený skin Winampu 2.x" - #~ msgid "Track Information Window" #~ msgstr "Okno s podrobnosti o stopě" @@ -7374,53 +8044,6 @@ #~ msgid "Close dialog on Add" #~ msgstr "Zavřít dialog při přidání" -#~ msgid "Search entries in active playlist" -#~ msgstr "Vyhledat skladby v současném seznamu skladeb" - -#~ 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 "" -#~ "Položky seznamu skladeb vyberete vyplněním jednoho, nebo více polí. Pole " -#~ "používají regulární výrazy a neberou ohled na velikost písmen. Pokud " -#~ "regulárním výrazům nerozumíte, jednoduše vložte části textu, které chcete " -#~ "vyhledat." - -#~ msgid "Filename: " -#~ msgstr "Jméno souboru: " - -#~ msgid "Clear previous selection before searching" -#~ msgstr "Před hledáním vymazat předchozí výběr" - -#~ msgid "Automatically toggle queue for matching entries" -#~ msgstr "Shodující se položky automaticky zařadit/vyřadit z fronty" - -#~ msgid "Create a new playlist with matching entries" -#~ msgstr "Ze shodujících se položek vytvořit nový seznam skladeb" - -#~ msgid "Error writing playlist \"%s\": %s" -#~ msgstr "Chyba při zapisování seznamu skladeb „%s“: %s" - -#~ msgid "%s already exist. Continue?" -#~ msgstr "%s už existuje. Pokračovat?" - -#~ msgid "" -#~ "Unable to save playlist.\n" -#~ "\n" -#~ "Unknown file type for '%s'.\n" -#~ msgstr "" -#~ "Nelze uložit seznam skladeb.\n" -#~ "\n" -#~ "Neznámý typ souboru %s.\n" - -#~ msgid "Save Playlist" -#~ msgstr "Uložit seznam skladeb" - -#~ msgid "Audacious Playlist Editor" -#~ msgstr "Zobrazit editor seznamu skladeb" - #~ msgid "Add/Open URL Dialog" #~ msgstr "Dialog Přidat/otevřít URL" @@ -7488,41 +8111,9 @@ #~ msgid "Refresh skin list" #~ msgstr "Obnovit seznam skinů" -#~ msgid "_Fonts" -#~ msgstr "_Fonty" - -#~ msgid "_Playlist:" -#~ msgstr "V seznamu sklade_b:" - -#~ msgid "Select main player window font:" -#~ msgstr "Font v hlavním okně přehrávače:" - -#~ msgid "" -#~ "Use bitmap fonts if they are available. Bitmap fonts do not support " -#~ "Unicode strings." -#~ msgstr "" -#~ "Pokud to bude možné, použijí se bitmapové fonty. Bitmapové fonty " -#~ "nepodporují unicodové řetězce." - -#~ msgid "_Miscellaneous" -#~ msgstr "_Různé" - -#~ msgid "Show track numbers in playlist" -#~ msgstr "Zobrazovat pořadová čísla v seznamu skladeb" - -#~ msgid "Show separators in playlist" -#~ msgstr "Zobrazovat oddělovače v seznamu skladeb" - #~ msgid "Use custom cursors" #~ msgstr "Použít vlastní kurzory" -#~ msgid "This enables the window manager to show decorations for windows." -#~ msgstr "" -#~ "Tímto necháte rozhodnutí na správci oken, kdy má zobrazovat dekorace oken." - -#~ msgid "Show window manager decoration" -#~ msgstr "Zobrazovat dekoraci podle správce oken" - #~ msgid "Show window manager decorations" #~ msgstr "Zobrazovat dekorace podle správce oken" @@ -7547,9 +8138,6 @@ #~ msgid "Scrolls playlist by" #~ msgstr "posune seznam skladeb o" -#~ msgid "lines" -#~ msgstr "řádek." - #~ msgid "Convert underscores to blanks" #~ msgstr "Převést podtržítka na mezery" @@ -7565,9 +8153,6 @@ #~ msgid "Load metadata (tag information) from music files." #~ msgstr "Načíst metadata (tagy) z hudebních souborů." -#~ msgid "Load metadata from playlists and files" -#~ msgstr "Načíst metadata ze seznamů skladeb a souborů" - #~ msgid "Load metadata when adding the file to the playlist or opening it" #~ msgstr "" #~ "Načíst metadata při vložení souboru do seznamu skladeb nebo při otevření" @@ -7776,55 +8361,6 @@ #~ msgid "Delay until filepopup comes up: " #~ msgstr "Čekat na vyskakovací okno o souboru: " -#~ msgid "Color Adjustment" -#~ msgstr "Přizpůsobení barvy" - -#~ msgid "" -#~ "Audacious allows you to alter the color balance of the skinned UI. The " -#~ "sliders below will allow you to do this." -#~ msgstr "" -#~ "Audacious umožňuje změnit zabarvení měnitelného vzhledu uživatelského " -#~ "rozhraní pomocí následujících jezdců." - -#~ msgid "Red" -#~ msgstr "Červená" - -#~ msgid "Green" -#~ msgstr "Zelená" - -#~ msgid "PREAMP" -#~ msgstr "PREAMP" - -#~ msgid "60HZ" -#~ msgstr "60 Hz" - -#~ msgid "170HZ" -#~ msgstr "170 Hz" - -#~ msgid "310HZ" -#~ msgstr "310 Hz" - -#~ msgid "600HZ" -#~ msgstr "600 Hz" - -#~ msgid "1KHZ" -#~ msgstr "1 kHz" - -#~ msgid "3KHZ" -#~ msgstr "3 kHz" - -#~ msgid "6KHZ" -#~ msgstr "6 kHz" - -#~ msgid "12KHZ" -#~ msgstr "12 kHz" - -#~ msgid "14KHZ" -#~ msgstr "14 kHz" - -#~ msgid "16KHZ" -#~ msgstr "16 kHz" - #~ msgid "Chinese:" #~ msgstr "Čínský:" @@ -7989,12 +8525,6 @@ #~ msgid "/Peaks Falloff/Fastest" #~ msgstr "/Klesání vrcholků/Nejrychlejší" -#~ msgid "/Jump to Time" -#~ msgstr "/Přejít na čas" - -#~ msgid "/About Audacious" -#~ msgstr "/O Audacious" - #~ msgid "/Files..." #~ msgstr "/Soubory..." @@ -8165,9 +8695,6 @@ #~ msgid "Decoder" #~ msgstr "Dekodér" -#~ msgid "Disable ID3V2 tags" -#~ msgstr "Zakázat ID3v2 tagy" - #~ msgid "Dual channel" #~ msgstr "Dva kanály" @@ -8227,9 +8754,6 @@ #~ msgid "Vorbis encoding:" #~ msgstr "Vorbis - kódování:" -#~ msgid "Audacious:" -#~ msgstr "Audacious:" - #~ msgid "William Pitcock" #~ msgstr "William Pitcock" @@ -8680,9 +9204,6 @@ #~ msgid "ms" #~ msgstr "ms" -#~ msgid "same file" -#~ msgstr "shodný soubor" - #~ msgid "" #~ "Libvisual Audacious Plugin\n" #~ "\n" diff -r c40585c57877 -r 7fc2c317d190 po/cy.po --- a/po/cy.po Thu Jul 03 17:23:34 2008 +0300 +++ b/po/cy.po Thu Jul 03 17:37:11 2008 +0300 @@ -4,8 +4,8 @@ msgid "" msgstr "" "Project-Id-Version: audacious-plugins 1.3\n" -"Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" -"POT-Creation-Date: 2008-03-30 17:25+0200\n" +"Report-Msgid-Bugs-To: http://bugzilla.atheme.org/\n" +"POT-Creation-Date: 2008-06-21 08:27+0300\n" "PO-Revision-Date: 2007-02-12 03:37-0600\n" "Last-Translator: William Pitcock \n" "Language-Team: Welsh \n" @@ -15,50 +15,50 @@ "X-Poedit-Language: Welsh\n" "X-Poedit-SourceCharset: utf-8\n" -#: src/aac/libmp4.c:286 +#: src/aac/libmp4.c:283 msgid "Using libfaad2-" msgstr "" -#: src/aac/libmp4.c:287 +#: src/aac/libmp4.c:284 msgid "" " for decoding.\n" "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n" "Copyright (c) 2005-2006 Audacious team" msgstr "" -#: src/aac/libmp4.c:291 +#: src/aac/libmp4.c:288 #, fuzzy msgid "About MP4 AAC player plugin" msgstr "Ynghylch Ategyn Sain MPEG" -#: src/aac/libmp4.c:293 src/adplug/adplug-xmms.cc:182 -#: src/adplug/adplug-xmms.cc:265 src/adplug/adplug-xmms.cc:526 -#: src/alac/plugin.c:77 src/arts/arts.c:26 src/arts/configure.c:90 -#: src/audiocompress/audacious-glue.c:102 -#: src/audiocompress/audacious-glue.c:552 src/cdaudio-ng/configure.c:228 -#: src/console/Audacious_Driver.cxx:449 src/demac/plugin.c:393 -#: src/echo_plugin/gui.c:26 src/echo_plugin/gui.c:137 src/esd/about.c:49 -#: src/filewriter/filewriter.c:183 src/jack/configure.c:141 -#: src/jack/jack.c:456 src/madplug/plugin.c:542 src/madplug/plugin.c:566 -#: src/metronom/metronom.c:88 src/modplug/gui/main.cxx:49 -#: src/musepack/libmpc.cxx:232 src/null/null.c:67 src/null/null.c:110 -#: src/OSS4/about.c:59 src/OSS/about.c:54 src/paranormal-ng/plugin.c:283 -#: src/paranormal/plugin.c:291 src/scrobbler/gtkstuff.c:25 -#: src/sndfile/plugin.c:565 src/statusicon/si_ui.c:628 -#: src/stereo_plugin/stereo.c:53 src/stereo_plugin/stereo.c:116 -#: src/sun/about.c:38 src/sun/configure.c:559 src/timidity/interface.c:222 -#: src/timidity/xmms-timidity.c:120 src/tonegen/tonegen.c:62 -#: src/tta/libtta.c:153 src/tta/libtta.c:267 src/tta/libtta.c:402 -#: src/vorbis/vorbis.c:700 src/vtx/about.c:32 src/vtx/info.c:43 -#: src/wavpack/ui.cxx:56 src/wavpack/ui.cxx:556 +#: src/aac/libmp4.c:290 src/adplug/adplug-xmms.cc:180 +#: src/adplug/adplug-xmms.cc:263 src/adplug/adplug-xmms.cc:524 +#: src/alac/plugin.c:74 src/arts/arts.c:25 src/arts/configure.c:90 +#: src/audiocompress/audacious-glue.c:110 +#: src/audiocompress/audacious-glue.c:560 src/cdaudio-ng/configure.c:242 +#: src/console/Audacious_Driver.cxx:447 src/crystalizer/crystalizer.c:113 +#: src/demac/plugin.c:364 src/echo_plugin/gui.c:24 src/echo_plugin/gui.c:135 +#: src/esd/about.c:48 src/filewriter/filewriter.c:183 src/jack/configure.c:140 +#: src/jack/jack.c:454 src/madplug/plugin.c:679 src/madplug/plugin.c:703 +#: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:52 +#: src/musepack/libmpc.cxx:228 src/null/null.c:64 src/null/null.c:107 +#: src/OSS4/OSS4.c:55 src/OSS/OSS.c:52 src/paranormal-ng/plugin.c:282 +#: src/paranormal/plugin.c:290 src/scrobbler/gtkstuff.c:22 +#: src/sndfile/plugin.c:571 src/statusicon/si_ui.c:626 +#: src/stereo_plugin/stereo.c:52 src/stereo_plugin/stereo.c:115 +#: src/sun/about.c:37 src/sun/configure.c:557 src/timidity/interface.c:222 +#: src/timidity/xmms-timidity.c:117 src/tonegen/tonegen.c:61 +#: src/tta/libtta.c:150 src/tta/libtta.c:264 src/tta/libtta.c:399 +#: src/vorbis/vorbis.c:696 src/vtx/about.c:26 src/vtx/info.c:38 +#: src/wavpack/ui.cxx:54 src/wavpack/ui.cxx:554 msgid "Ok" msgstr "Iawn" -#: src/adplug/adplug-xmms.cc:171 +#: src/adplug/adplug-xmms.cc:169 msgid "About " msgstr "Ynghylch" -#: src/adplug/adplug-xmms.cc:175 +#: src/adplug/adplug-xmms.cc:173 msgid "" "\n" "Copyright (C) 2002, 2003 Simon Peter \n" @@ -80,211 +80,211 @@ "Peter, et al.\n" "Fersiwn cynnwys AdPlug llyfrgell:" -#: src/adplug/adplug-xmms.cc:256 +#: src/adplug/adplug-xmms.cc:254 #, fuzzy msgid "AdPlug :: Configuration" msgstr "AMIDI-Plug - ffurfweddu" -#: src/adplug/adplug-xmms.cc:275 src/alarm/interface.c:1398 +#: src/adplug/adplug-xmms.cc:273 src/alarm/interface.c:1398 #: src/alsa/configure.c:389 src/arts/configure.c:91 -#: src/audiocompress/audacious-glue.c:557 src/cdaudio-ng/configure.c:232 -#: src/echo_plugin/gui.c:145 src/jack/configure.c:148 -#: src/modplug/gui/interface.cxx:714 src/modplug/gui/modplug.glade:1668 -#: src/musepack/libmpc.cxx:237 src/musepack/libmpc.cxx:557 src/null/null.c:111 -#: src/sid/xmms-sid.glade:3080 src/sid/xs_interface.c:1250 -#: src/stereo_plugin/stereo.c:125 src/sun/configure.c:567 -#: src/timidity/interface.c:230 src/wavpack/ui.cxx:280 src/wavpack/ui.cxx:563 +#: src/audiocompress/audacious-glue.c:565 src/cdaudio-ng/configure.c:246 +#: src/crystalizer/crystalizer.c:122 src/echo_plugin/gui.c:143 +#: src/jack/configure.c:147 src/modplug/gui/interface.cxx:714 +#: src/modplug/gui/modplug.glade:1668 src/musepack/libmpc.cxx:233 +#: src/musepack/libmpc.cxx:553 src/null/null.c:108 +#: src/stereo_plugin/stereo.c:124 src/sun/configure.c:565 +#: src/timidity/interface.c:230 src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561 msgid "Cancel" msgstr "Dileu" -#: src/adplug/adplug-xmms.cc:291 src/console/Audacious_Config.cxx:145 -#: src/madplug/configure.c:290 src/modplug/gui/interface.cxx:628 +#: src/adplug/adplug-xmms.cc:289 src/console/Audacious_Config.cxx:144 +#: src/madplug/configure.c:289 src/modplug/gui/interface.cxx:628 #: src/modplug/gui/interface.cxx:887 src/modplug/gui/modplug.glade:1404 #: src/modplug/gui/modplug.glade:1804 msgid "General" msgstr "Cyffredinol" -#: src/adplug/adplug-xmms.cc:303 +#: src/adplug/adplug-xmms.cc:301 #, fuzzy msgid "Sound quality" msgstr "Clip Sain" -#: src/adplug/adplug-xmms.cc:308 src/modplug/gui/interface.cxx:187 +#: src/adplug/adplug-xmms.cc:306 src/modplug/gui/interface.cxx:187 #: src/modplug/gui/modplug.glade:113 #, fuzzy msgid "Resolution" msgstr "Cydraniad:" -#: src/adplug/adplug-xmms.cc:310 +#: src/adplug/adplug-xmms.cc:308 #, fuzzy msgid "8bit" msgstr "8 did" -#: src/adplug/adplug-xmms.cc:315 +#: src/adplug/adplug-xmms.cc:313 #, fuzzy msgid "16bit" msgstr "16 did" -#: src/adplug/adplug-xmms.cc:323 src/modplug/gui/interface.cxx:218 +#: src/adplug/adplug-xmms.cc:321 src/modplug/gui/interface.cxx:218 #: src/modplug/gui/modplug.glade:199 src/timidity/interface.c:148 msgid "Channels" msgstr "Sianeli:" -#: src/adplug/adplug-xmms.cc:325 src/filewriter/mp3.c:900 -#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:288 +#: src/adplug/adplug-xmms.cc:323 src/filewriter/mp3.c:900 +#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:300 #: src/timidity/interface.c:165 msgid "Mono" msgstr "Mono" -#: src/adplug/adplug-xmms.cc:330 src/filewriter/mp3.c:895 +#: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:895 #: src/modplug/gui/interface.cxx:204 src/modplug/gui/modplug.glade:159 -#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:295 +#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:307 #: src/timidity/interface.c:173 msgid "Stereo" msgstr "Stereo" -#: src/adplug/adplug-xmms.cc:334 +#: src/adplug/adplug-xmms.cc:332 msgid "" "Setting stereo is not recommended, unless you need to. This won't add any " "stereo effects to the sound - OPL2 is just mono - but eats up more CPU power!" msgstr "" -#: src/adplug/adplug-xmms.cc:342 +#: src/adplug/adplug-xmms.cc:340 msgid "Frequency" msgstr "" -#: src/adplug/adplug-xmms.cc:378 src/adplug/adplug-xmms.cc:582 -#: src/console/Audacious_Config.cxx:147 +#: src/adplug/adplug-xmms.cc:376 src/adplug/adplug-xmms.cc:580 +#: src/console/Audacious_Config.cxx:146 src/skins/ui_manager.c:175 msgid "Playback" msgstr "Chwarae" -#: src/adplug/adplug-xmms.cc:382 +#: src/adplug/adplug-xmms.cc:380 msgid "Detect songend" msgstr "" -#: src/adplug/adplug-xmms.cc:386 +#: src/adplug/adplug-xmms.cc:384 msgid "" "If enabled, XMMS will detect a song's ending, stop it and advance in the " "playlist. If disabled, XMMS won't take notice of a song's ending and loop it " "all over again and again." msgstr "" -#: src/adplug/adplug-xmms.cc:397 +#: src/adplug/adplug-xmms.cc:395 #, fuzzy msgid "Formats" msgstr "Fformat:" -#: src/adplug/adplug-xmms.cc:404 +#: src/adplug/adplug-xmms.cc:402 msgid "Format selection" msgstr "" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 #, fuzzy msgid "Format" msgstr "Fformat:" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Extension" msgstr "" -#: src/adplug/adplug-xmms.cc:447 +#: src/adplug/adplug-xmms.cc:445 msgid "" "Selected file types will be recognized and played back by this plugin. " "Deselected types will be ignored to make room for other plugins to play " "these files." msgstr "" -#: src/adplug/adplug-xmms.cc:533 +#: src/adplug/adplug-xmms.cc:531 msgid "AdPlug :: File Info" msgstr "" -#: src/adplug/adplug-xmms.cc:555 src/amidi-plug/i_configure-fluidsynth.c:448 +#: src/adplug/adplug-xmms.cc:553 src/amidi-plug/i_configure-fluidsynth.c:448 msgid "Filename" msgstr "Enw ffeil" -#: src/adplug/adplug-xmms.cc:559 +#: src/adplug/adplug-xmms.cc:557 src/skins/ui_playlist.c:470 #, fuzzy msgid "Title: " msgstr "Teitl:" +#: src/adplug/adplug-xmms.cc:558 +msgid "Author: " +msgstr "" + +#: src/adplug/adplug-xmms.cc:559 +#, fuzzy +msgid "File Type: " +msgstr "Maint ffeil:" + #: src/adplug/adplug-xmms.cc:560 -msgid "Author: " +msgid "Subsongs: " msgstr "" #: src/adplug/adplug-xmms.cc:561 #, fuzzy -msgid "File Type: " -msgstr "Maint ffeil:" - -#: src/adplug/adplug-xmms.cc:562 -msgid "Subsongs: " -msgstr "" - -#: src/adplug/adplug-xmms.cc:563 -#, fuzzy msgid "Instruments: " msgstr "Offerynnol" -#: src/adplug/adplug-xmms.cc:568 +#: src/adplug/adplug-xmms.cc:566 msgid "Orders: " msgstr "" -#: src/adplug/adplug-xmms.cc:569 +#: src/adplug/adplug-xmms.cc:567 msgid "Patterns: " msgstr "" -#: src/adplug/adplug-xmms.cc:573 +#: src/adplug/adplug-xmms.cc:571 #, fuzzy msgid "Song" msgstr "Swing" -#: src/adplug/adplug-xmms.cc:599 +#: src/adplug/adplug-xmms.cc:597 #, fuzzy msgid "Instrument name" msgstr "Offerynnol" -#: src/adplug/adplug-xmms.cc:641 +#: src/adplug/adplug-xmms.cc:639 #, fuzzy msgid "Song message" msgstr "Newid Cân %s" -#: src/adplug/adplug-xmms.cc:663 +#: src/adplug/adplug-xmms.cc:661 msgid "Subsong selection" msgstr "" -#: src/adplug/adplug-xmms.cc:727 +#: src/adplug/adplug-xmms.cc:725 msgid "Order: " msgstr "" +#: src/adplug/adplug-xmms.cc:726 +msgid "Pattern: " +msgstr "" + #: src/adplug/adplug-xmms.cc:728 -msgid "Pattern: " -msgstr "" - -#: src/adplug/adplug-xmms.cc:730 msgid "Row: " msgstr "" -#: src/adplug/adplug-xmms.cc:731 +#: src/adplug/adplug-xmms.cc:729 #, fuzzy msgid "Speed: " msgstr "Llais" -#: src/adplug/adplug-xmms.cc:732 +#: src/adplug/adplug-xmms.cc:730 #, fuzzy msgid "Timer: " msgstr "Teitl:" -#: src/adplug/adplug-xmms.cc:733 src/console/Audacious_Config.cxx:225 -#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:341 +#: src/adplug/adplug-xmms.cc:731 src/console/Audacious_Config.cxx:224 +#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:353 msgid "Hz" msgstr "Hz" -#: src/alac/plugin.c:74 +#: src/alac/plugin.c:71 #, fuzzy msgid "About Apple Lossless Audio Plugin" msgstr "Ynghylch Ategyn Ogg Vorbis" -#: src/alac/plugin.c:75 +#: src/alac/plugin.c:72 msgid "" "Copyright (c) 2006 Audacious team\n" "Portions (c) 2005-2006 David Hammerton " @@ -312,8 +312,8 @@ #: src/alarm/interface.c:71 src/lirc/about.c:115 #: src/modplug/gui/interface.cxx:971 src/modplug/gui/modplug.glade:2030 -#: src/sid/xmms-sid.glade:3643 src/sid/xs_about.c:214 -#: src/sid/xs_interface.c:1740 +#: src/sid/xmms-sid.glade:3837 src/sid/xs_about.c:214 +#: src/sid/xs_interface.c:1824 msgid "Close" msgstr "Cau" @@ -325,13 +325,12 @@ msgid "This is your wakeup call." msgstr "" -#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:46 +#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:45 #: src/alsa/configure.c:383 src/cdaudio-ng/cdaudio-ng.c:247 -#: src/flacng/plugin.c:706 src/gnomeshortcuts/gnomeshortcuts.c:311 -#: src/hotkey/gui.c:671 src/modplug/gui/interface.cxx:702 -#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:738 -#: src/scrobbler/gtkstuff.c:45 src/sid/xmms-sid.glade:3066 -#: src/sid/xs_interface.c:1243 +#: src/flacng/plugin.c:705 src/gnomeshortcuts/gnomeshortcuts.c:310 +#: src/hotkey/gui.c:670 src/modplug/gui/interface.cxx:702 +#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:736 +#: src/scrobbler/gtkstuff.c:42 src/skins/plugin.c:130 msgid "OK" msgstr "Iawn" @@ -404,7 +403,8 @@ #: src/alarm/interface.c:612 src/alarm/interface.c:660 #: src/alarm/interface.c:708 src/alarm/interface.c:756 #: src/alarm/interface.c:804 src/alarm/interface.c:852 -#: src/alarm/interface.c:900 src/OSS4/configure.c:138 src/OSS/configure.c:169 +#: src/alarm/interface.c:900 src/OSS4/configure.c:136 src/OSS/configure.c:168 +#: src/skins/ui_manager.c:447 src/skins/ui_manager.c:468 msgid "Default" msgstr "Rhagosodedig" @@ -452,9 +452,9 @@ msgstr "cynnydd" #: src/alarm/interface.c:1087 src/sid/xmms-sid.glade:2007 -#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2676 -#: src/sid/xs_interface.c:908 src/sid/xs_interface.c:962 -#: src/sid/xs_interface.c:1122 +#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2746 +#: src/sid/xs_interface.c:920 src/sid/xs_interface.c:974 +#: src/sid/xs_interface.c:1154 #, fuzzy msgid "seconds" msgstr "eiliad" @@ -513,7 +513,7 @@ msgid "Use reminder" msgstr "User Defined" -#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:377 +#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:376 #, fuzzy msgid "Options" msgstr "Dewisiadau:" @@ -577,7 +577,7 @@ " toggle button if you want it to be shown.\n" msgstr "" -#: src/alarm/interface.c:1366 +#: src/alarm/interface.c:1366 src/skins/ui_manager.c:386 msgid "Help" msgstr "" @@ -590,11 +590,11 @@ msgid "Thankyou" msgstr "Tango" -#: src/alsa/about.c:30 +#: src/alsa/about.c:29 msgid "About ALSA Driver" msgstr "Ynghylch Gyrrwr ALSA" -#: src/alsa/about.c:31 +#: src/alsa/about.c:30 msgid "" "Audacious ALSA Driver\n" "\n" @@ -644,8 +644,8 @@ msgid "ALSA Driver configuration" msgstr "Ffurfweddu'r Gyrrwr ALSA" -#: src/alsa/configure.c:274 src/OSS4/configure.c:186 src/OSS/configure.c:217 -#: src/sun/configure.c:183 +#: src/alsa/configure.c:274 src/OSS4/configure.c:184 src/OSS/configure.c:216 +#: src/sun/configure.c:181 msgid "Audio device:" msgstr "Dyfais sain:" @@ -657,7 +657,7 @@ msgid "Mixer card:" msgstr "Cerdyn cymysgu" -#: src/alsa/configure.c:313 src/OSS/configure.c:260 src/sun/configure.c:220 +#: src/alsa/configure.c:313 src/OSS/configure.c:259 src/sun/configure.c:218 msgid "Mixer device:" msgstr "Dyfais cymysgu" @@ -1245,8 +1245,8 @@ "backend" msgstr "" -#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3465 -#: src/sid/xs_interface.c:1684 +#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3659 +#: src/sid/xs_interface.c:1768 msgid "Name:" msgstr "Enw:" @@ -1351,47 +1351,47 @@ msgid "None" msgstr "Dim" -#: src/aosd/aosd_trigger.c:75 +#: src/aosd/aosd_trigger.c:74 msgid "Playback Start" msgstr "Cychwyn Chwarae" -#: src/aosd/aosd_trigger.c:76 +#: src/aosd/aosd_trigger.c:75 msgid "Triggers OSD when a playlist entry is played." msgstr "" +#: src/aosd/aosd_trigger.c:79 +msgid "Title Change" +msgstr "Newid Teitl" + #: src/aosd/aosd_trigger.c:80 -msgid "Title Change" -msgstr "Newid Teitl" - -#: src/aosd/aosd_trigger.c:81 msgid "" "Triggers OSD when, during playback, the song title changes but the filename " "is the same. This is mostly useful to display title changes in internet " "streams." msgstr "" -#: src/aosd/aosd_trigger.c:87 +#: src/aosd/aosd_trigger.c:86 #, fuzzy msgid "Volume Change" msgstr "Newid Teitl" -#: src/aosd/aosd_trigger.c:88 +#: src/aosd/aosd_trigger.c:87 msgid "Triggers OSD when volume is changed." msgstr "" +#: src/aosd/aosd_trigger.c:91 +msgid "Pause On" +msgstr "" + #: src/aosd/aosd_trigger.c:92 -msgid "Pause On" -msgstr "" - -#: src/aosd/aosd_trigger.c:93 msgid "Triggers OSD when playback is paused." msgstr "" +#: src/aosd/aosd_trigger.c:96 +msgid "Pause Off" +msgstr "" + #: src/aosd/aosd_trigger.c:97 -msgid "Pause Off" -msgstr "" - -#: src/aosd/aosd_trigger.c:98 msgid "Triggers OSD when playback is unpaused." msgstr "" @@ -1491,10 +1491,10 @@ msgid "Skin file:" msgstr "" -#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2331 -#: src/sid/xmms-sid.glade:2856 src/sid/xmms-sid.glade:2962 -#: src/sid/xs_interface.c:1010 src/sid/xs_interface.c:1182 -#: src/sid/xs_interface.c:1218 +#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2373 +#: src/sid/xmms-sid.glade:2968 src/sid/xmms-sid.glade:3136 +#: src/sid/xs_interface.c:1043 src/sid/xs_interface.c:1235 +#: src/sid/xs_interface.c:1291 msgid "Browse" msgstr "" @@ -1577,9 +1577,9 @@ msgid "Trigger" msgstr "Trailer" -#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:167 +#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:175 #: src/modplug/gui/interface.cxx:688 src/modplug/gui/modplug.glade:1603 -#: src/sid/xmms-sid.glade:3026 src/sid/xs_interface.c:1229 +#: src/sid/xmms-sid.glade:3220 src/sid/xs_interface.c:1301 #, fuzzy msgid "Misc" msgstr "Disgo" @@ -1619,12 +1619,12 @@ "http://neugierig.org/software/ghosd/\n" "\n" -#: src/arts/arts.c:22 +#: src/arts/arts.c:21 #, fuzzy msgid "About aRts Output" msgstr "Ynghylch Ategyn Allwyn Null" -#: src/arts/arts.c:23 +#: src/arts/arts.c:22 msgid "" "aRts output plugin by Håvard Kvålen \n" "Audacious port by Giacomo Lozito from develia.org" @@ -1634,26 +1634,26 @@ msgid "aRts Driver configuration" msgstr "Ffurfweddu'r Gyrrwr aRts" -#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:232 -#: src/OSS/configure.c:304 src/sun/configure.c:259 +#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:230 +#: src/OSS/configure.c:303 src/sun/configure.c:257 msgid "Buffering:" msgstr "Byffyru:" -#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:245 -#: src/OSS/configure.c:317 src/sun/configure.c:272 +#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:243 +#: src/OSS/configure.c:316 src/sun/configure.c:270 msgid "Buffer size (ms):" msgstr "Maint y byffer (ms):" -#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:270 -#: src/OSS/configure.c:342 src/sun/configure.c:304 +#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:268 +#: src/OSS/configure.c:341 src/sun/configure.c:302 msgid "Buffering" msgstr "Byffyru:" -#: src/audiocompress/audacious-glue.c:95 +#: src/audiocompress/audacious-glue.c:103 msgid "AudioCompress " msgstr "AudioCompress " -#: src/audiocompress/audacious-glue.c:96 +#: src/audiocompress/audacious-glue.c:104 msgid "" "\n" "(c)2003 trikuare studios(http://trikuare.cx)\n" @@ -1669,111 +1669,111 @@ "Seml deinamig amrediad cywasgu am tryloyw\n" "cadw'r yr cyfrol lefel rhyw yr unrhyw" -#: src/audiocompress/audacious-glue.c:101 +#: src/audiocompress/audacious-glue.c:109 msgid "About AudioCompress" msgstr "Ynghylch AudioCompress" -#: src/audiocompress/audacious-glue.c:320 +#: src/audiocompress/audacious-glue.c:328 msgid "" "If checked, when the sound peaks the volume will be cut instantly; " "otherwise, it will ramp down just in time for the peak (but some minor " "clipping may still occur)." msgstr "" -#: src/audiocompress/audacious-glue.c:324 +#: src/audiocompress/audacious-glue.c:332 msgid "The maximum amount to amplify the audio by" msgstr "" -#: src/audiocompress/audacious-glue.c:326 +#: src/audiocompress/audacious-glue.c:334 msgid "Defines how smoothly the volume will ramp up" msgstr "" -#: src/audiocompress/audacious-glue.c:328 +#: src/audiocompress/audacious-glue.c:336 msgid "" "The target audio level for ramping up. Lowering the value gives a bit more " "dynamic range for peaks, but will make the overall sound quieter." msgstr "" -#: src/audiocompress/audacious-glue.c:331 +#: src/audiocompress/audacious-glue.c:339 msgid "How long of a window to maintain" msgstr "" -#: src/audiocompress/audacious-glue.c:372 +#: src/audiocompress/audacious-glue.c:380 #, fuzzy msgid "AudioCompress preferences" msgstr "AudioCompress " -#: src/audiocompress/audacious-glue.c:389 +#: src/audiocompress/audacious-glue.c:397 msgid " Quality Options " msgstr "" -#: src/audiocompress/audacious-glue.c:394 +#: src/audiocompress/audacious-glue.c:402 msgid " Aggressively prevent clipping" msgstr "" -#: src/audiocompress/audacious-glue.c:406 +#: src/audiocompress/audacious-glue.c:414 msgid " Target & gain" msgstr "" -#: src/audiocompress/audacious-glue.c:417 -msgid "Target audio level:" -msgstr "" - #: src/audiocompress/audacious-glue.c:425 +msgid "Target audio level:" +msgstr "" + +#: src/audiocompress/audacious-glue.c:433 #, fuzzy msgid "Maximum gain:" msgstr "Cynydd albwm:" -#: src/audiocompress/audacious-glue.c:433 +#: src/audiocompress/audacious-glue.c:441 msgid "Gain smooth:" msgstr "" -#: src/audiocompress/audacious-glue.c:485 +#: src/audiocompress/audacious-glue.c:493 msgid " History " msgstr "" -#: src/audiocompress/audacious-glue.c:517 +#: src/audiocompress/audacious-glue.c:525 msgid "" "How long of a history to maintain. A higher number will make the volume " "changes less responsive." msgstr "" -#: src/audiocompress/audacious-glue.c:528 +#: src/audiocompress/audacious-glue.c:536 msgid "Load default values" msgstr "" -#: src/audiocompress/audacious-glue.c:533 +#: src/audiocompress/audacious-glue.c:541 #, fuzzy msgid "Audio values" msgstr "Dyfais sain:" -#: src/audiocompress/audacious-glue.c:562 src/echo_plugin/gui.c:152 -#: src/modplug/gui/interface.cxx:708 src/modplug/gui/modplug.glade:1655 -#: src/stereo_plugin/stereo.c:132 +#: src/audiocompress/audacious-glue.c:570 src/crystalizer/crystalizer.c:129 +#: src/echo_plugin/gui.c:150 src/modplug/gui/interface.cxx:708 +#: src/modplug/gui/modplug.glade:1655 src/stereo_plugin/stereo.c:131 msgid "Apply" msgstr "Gosod" -#: src/blur_scope/blur_scope.c:54 +#: src/blur_scope/blur_scope.c:52 msgid "/Toggle Decorations" msgstr "/Toggle Decorations" -#: src/blur_scope/blur_scope.c:56 +#: src/blur_scope/blur_scope.c:54 msgid "/-" msgstr "/-" -#: src/blur_scope/blur_scope.c:57 +#: src/blur_scope/blur_scope.c:55 msgid "/Close" msgstr "/Cau" -#: src/blur_scope/blur_scope.c:181 +#: src/blur_scope/blur_scope.c:179 msgid "Blur scope" msgstr "Blur scope" -#: src/blur_scope/config.c:72 +#: src/blur_scope/config.c:71 msgid "Blur Scope: Color selection" msgstr "Blur Scope: Color selection" -#: src/blur_scope/config.c:82 src/jack/configure.c:108 +#: src/blur_scope/config.c:81 src/jack/configure.c:107 msgid "Options:" msgstr "Dewisiadau:" @@ -1803,111 +1803,116 @@ "This was a Google Summer of Code 2007 project." msgstr "" -#: src/cdaudio-ng/cdaudio-ng.c:814 +#: src/cdaudio-ng/cdaudio-ng.c:815 msgid "" "No playable CD found.\n" "\n" "No CD inserted, or inserted CD is not an audio CD.\n" msgstr "" -#: src/cdaudio-ng/configure.c:147 +#: src/cdaudio-ng/configure.c:155 #, fuzzy msgid "CD Audio Plugin Configuration" msgstr "Ffurfweddiad Chwaraeydd MPEG Sain" -#: src/cdaudio-ng/configure.c:157 +#: src/cdaudio-ng/configure.c:165 msgid "Digital audio extraction" msgstr "Tynnu awdio digidôl" -#: src/cdaudio-ng/configure.c:162 +#: src/cdaudio-ng/configure.c:170 #, fuzzy msgid "Title information" msgstr "Fformat y teitl:" -#: src/cdaudio-ng/configure.c:179 +#: src/cdaudio-ng/configure.c:187 msgid "Limit read speed to: " msgstr "" -#: src/cdaudio-ng/configure.c:186 +#: src/cdaudio-ng/configure.c:194 #, fuzzy msgid "Use cd-text if available" msgstr "Stereo (os ar gael)" -#: src/cdaudio-ng/configure.c:190 +#: src/cdaudio-ng/configure.c:198 #, fuzzy msgid "Use CDDB if available" msgstr "Stereo (os ar gael)" -#: src/cdaudio-ng/configure.c:194 +#: src/cdaudio-ng/configure.c:202 #, fuzzy msgid "Server: " msgstr "Gwasanaethwr" -#: src/cdaudio-ng/configure.c:197 +#: src/cdaudio-ng/configure.c:205 +#, fuzzy +msgid "Path: " +msgstr "Porth:" + +#: src/cdaudio-ng/configure.c:208 #, fuzzy msgid "Port: " msgstr "Porth:" -#: src/cdaudio-ng/configure.c:203 +#: src/cdaudio-ng/configure.c:217 msgid "Use HTTP instead of CDDBP" msgstr "" -#: src/cdaudio-ng/configure.c:211 +#: src/cdaudio-ng/configure.c:225 msgid "Override default device: " msgstr "" -#: src/cdaudio-ng/configure.c:218 +#: src/cdaudio-ng/configure.c:232 msgid "Print debug information" msgstr "" -#: src/console/Audacious_Config.cxx:125 +#: src/console/Audacious_Config.cxx:124 msgid "Console Music Decoder" msgstr "Chwaraeydd Sbort Modiwl" -#: src/console/Audacious_Config.cxx:162 +#: src/console/Audacious_Config.cxx:161 msgid "Bass:" msgstr "Bas" -#: src/console/Audacious_Config.cxx:166 src/console/Audacious_Config.cxx:177 -#: src/console/Audacious_Config.cxx:198 +#: src/console/Audacious_Config.cxx:165 src/console/Audacious_Config.cxx:176 +#: src/console/Audacious_Config.cxx:197 msgid "secs" msgstr "eiliad" -#: src/console/Audacious_Config.cxx:173 +#: src/console/Audacious_Config.cxx:172 msgid "Treble:" msgstr "Trebl:" -#: src/console/Audacious_Config.cxx:194 +#: src/console/Audacious_Config.cxx:193 msgid "Default song length:" msgstr "Hyd cân rhagosodedig:" -#: src/console/Audacious_Config.cxx:200 src/modplug/gui/interface.cxx:268 +#: src/console/Audacious_Config.cxx:199 src/modplug/gui/interface.cxx:268 #: src/modplug/gui/modplug.glade:338 src/sid/xmms-sid.glade:1243 -#: src/sid/xs_interface.c:653 +#: src/sid/xs_interface.c:665 msgid "Resampling" msgstr "Samplo" -#: src/console/Audacious_Config.cxx:206 +#: src/console/Audacious_Config.cxx:205 msgid "Enable audio resampling" msgstr "Gallougi sain dyblusampl" -#: src/console/Audacious_Config.cxx:221 +#: src/console/Audacious_Config.cxx:220 msgid "Resampling rate:" msgstr "Graddfa Samplo" -#: src/console/Audacious_Config.cxx:236 +#: src/console/Audacious_Config.cxx:235 msgid "SPC" msgstr "SPC" +#: src/console/Audacious_Config.cxx:236 +msgid "Ignore length from SPC tags" +msgstr "Diystyru hyd am SPC tagiau" + #: src/console/Audacious_Config.cxx:237 -msgid "Ignore length from SPC tags" -msgstr "Diystyru hyd am SPC tagiau" - -#: src/console/Audacious_Config.cxx:238 msgid "Increase reverb" msgstr "" -#: src/console/Audacious_Config.cxx:263 +#: src/console/Audacious_Config.cxx:262 #, fuzzy msgid "" "The default song length, expressed in seconds, is used for songs that do not " @@ -1917,11 +1922,11 @@ "Rhagosodedig hyd sain, mynegiau yn eiliad, ys gallougi am sain pa arlwyo na " "hyd gwybodaeth (dollenau trac)." -#: src/console/Audacious_Driver.cxx:444 +#: src/console/Audacious_Driver.cxx:442 msgid "About the Console Music Decoder" msgstr "Ynghylch Ategyn Cerdd Console" -#: src/console/Audacious_Driver.cxx:445 +#: src/console/Audacious_Driver.cxx:443 msgid "" "Console music decoder engine based on Game_Music_Emu 0.5.2.\n" "Supported formats: AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ\n" @@ -1933,12 +1938,21 @@ "Audacious fersiwn at: William Pitcock , \n" " Shay Green " -#: src/demac/plugin.c:388 +#: src/crystalizer/crystalizer.c:90 +#, fuzzy +msgid "Configure Crystalizer" +msgstr "Ffurfweddu Extra Stereo" + +#: src/crystalizer/crystalizer.c:92 src/stereo_plugin/stereo.c:94 +msgid "Effect intensity:" +msgstr "Dwyster yr effaith:" + +#: src/demac/plugin.c:359 #, fuzzy msgid "About Monkey's Audio Plugin" msgstr "Ynghylch Ategyn Sain MPEG" -#: src/demac/plugin.c:389 +#: src/demac/plugin.c:360 msgid "" "Copyright (C) 2007 Eugene Zagidullin \n" "Based on ffape decoder, Copyright (C) 2007 Benjamin Zores\n" @@ -1947,7 +1961,7 @@ "ffape is a part of FFmpeg project, http://ffmpeg.mplayerhq.hu/" msgstr "" -#: src/echo_plugin/gui.c:11 +#: src/echo_plugin/gui.c:9 msgid "" "Echo Plugin\n" "By Johan Levin 1999.\n" @@ -1959,35 +1973,35 @@ "\n" "Surround echo gan Carl van Schaik 1999" -#: src/echo_plugin/gui.c:25 +#: src/echo_plugin/gui.c:23 msgid "About Echo Plugin" msgstr "Ynghylch Ategyn Echo" -#: src/echo_plugin/gui.c:76 +#: src/echo_plugin/gui.c:74 msgid "Configure Echo" msgstr "Ffurfweddu Echo" -#: src/echo_plugin/gui.c:89 +#: src/echo_plugin/gui.c:87 msgid "Delay: (ms)" msgstr "Oediad: (ms)" -#: src/echo_plugin/gui.c:94 +#: src/echo_plugin/gui.c:92 msgid "Feedback: (%)" msgstr "Adborth: (%)" -#: src/echo_plugin/gui.c:99 +#: src/echo_plugin/gui.c:97 msgid "Volume: (%)" msgstr "Sain:(%)" -#: src/echo_plugin/gui.c:122 +#: src/echo_plugin/gui.c:120 msgid "Surround echo" msgstr "Adlais o amgylch" -#: src/esd/about.c:34 +#: src/esd/about.c:33 msgid "About ESounD Plugin" msgstr "Ynghylch Ategyn ESounD" -#: src/esd/about.c:35 +#: src/esd/about.c:34 msgid "" "Audacious ESounD Plugin\n" "\n" @@ -2047,8 +2061,8 @@ msgid "Server" msgstr "Gwasanaethwr" -#: src/esd/configure.c:198 src/OSS4/configure.c:259 src/OSS/configure.c:331 -#: src/sun/configure.c:290 +#: src/esd/configure.c:198 src/OSS4/configure.c:257 src/OSS/configure.c:330 +#: src/sun/configure.c:288 msgid "Pre-buffer (percent):" msgstr "Cyn fyffer (y cant):" @@ -2126,93 +2140,93 @@ msgid "Window->JumpToFile" msgstr "" -#: src/evdev-plug/ed_internals.c:94 +#: src/evdev-plug/ed_internals.c:93 #, c-format msgid "" "event-device-plugin: unable to open device file %s , skipping this device; " "check that the file exists and that you have read permission for it\n" msgstr "" -#: src/evdev-plug/ed_internals.c:103 +#: src/evdev-plug/ed_internals.c:102 #, c-format msgid "" "event-device-plugin: unable to create a io_channel for device file %s ," "skipping this device\n" msgstr "" -#: src/evdev-plug/ed_internals.c:342 +#: src/evdev-plug/ed_internals.c:341 msgid "" "event-device-plugin: unable to open /proc/bus/input/devices , automatic " "detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:351 +#: src/evdev-plug/ed_internals.c:350 msgid "" "event-device-plugin: unable to open a io_channel for /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:361 +#: src/evdev-plug/ed_internals.c:360 msgid "" "event-device-plugin: an error occurred while reading /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:424 +#: src/evdev-plug/ed_internals.c:423 #, c-format msgid "event-device-plugin: device %s not found in /dev/input , skipping.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:489 src/evdev-plug/ed_internals.c:583 +#: src/evdev-plug/ed_internals.c:488 src/evdev-plug/ed_internals.c:582 #, c-format msgid "" "event-device-plugin: unable to load config file %s , default settings will " "be used.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:535 +#: src/evdev-plug/ed_internals.c:534 #, c-format msgid "" "event-device-plugin: incomplete information in config file for device \"%s" "\" , skipping.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:604 src/evdev-plug/ed_internals.c:936 +#: src/evdev-plug/ed_internals.c:603 src/evdev-plug/ed_internals.c:935 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_active value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:840 +#: src/evdev-plug/ed_internals.c:839 #, c-format msgid "" "event-device-plugin: unable to access local directory %s , settings will not " "be saved.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:890 +#: src/evdev-plug/ed_internals.c:889 #, c-format msgid "" "event-device-plugin: configuration, unable to get filename value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:906 +#: src/evdev-plug/ed_internals.c:905 #, c-format msgid "" "event-device-plugin: configuration, unable to get phys value for device \"%s" "\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:922 +#: src/evdev-plug/ed_internals.c:921 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_custom value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:946 +#: src/evdev-plug/ed_internals.c:945 #, c-format msgid "" "event-device-plugin: configuration, unexpected value for device \"%s\", " @@ -2231,7 +2245,7 @@ "Ensure that the device has been correctly plugged in." msgstr "" -#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:566 +#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:703 msgid "Error" msgstr "Gwall" @@ -2289,7 +2303,7 @@ msgid "Active" msgstr "Acid" -#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:488 +#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:486 msgid "Status" msgstr "Statws" @@ -2411,7 +2425,7 @@ msgid "Output file format:" msgstr "Ffeil cyfeiriadur allbwn:" -#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:960 +#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:959 #, fuzzy msgid "Configure" msgstr "Ffurfweddu Echo" @@ -2651,12 +2665,12 @@ msgid "Quality level (0 - 10):" msgstr "" -#: src/flacng/plugin.c:698 +#: src/flacng/plugin.c:697 #, fuzzy msgid "FLAC Audio Plugin " msgstr "Ategynnau Sain FLAC" -#: src/flacng/plugin.c:699 +#: src/flacng/plugin.c:698 msgid "" "\n" "\n" @@ -2666,17 +2680,17 @@ "http://www.skytale.net/projects/bmp-flac2/" msgstr "" -#: src/flacng/plugin.c:704 +#: src/flacng/plugin.c:703 #, fuzzy msgid "About FLAC Audio Plugin" msgstr "Ategynnau Sain FLAC" -#: src/gnomeshortcuts/gnomeshortcuts.c:306 +#: src/gnomeshortcuts/gnomeshortcuts.c:305 #, fuzzy msgid "About Gnome Shortcut Plugin" msgstr "Ynghylch Ategyn ESounD" -#: src/gnomeshortcuts/gnomeshortcuts.c:307 +#: src/gnomeshortcuts/gnomeshortcuts.c:306 msgid "" "Gnome Shortcut Plugin\n" "Let's you control the player with Gnome's shortcuts.\n" @@ -2689,7 +2703,7 @@ msgid "Previous Track" msgstr "" -#: src/hotkey/gui.c:69 +#: src/hotkey/gui.c:69 src/skins/ui_manager.c:177 src/skins/ui_manager.c:178 #, fuzzy msgid "Play" msgstr "Modd chwarae:" @@ -2698,7 +2712,7 @@ msgid "Pause/Resume" msgstr "" -#: src/hotkey/gui.c:71 +#: src/hotkey/gui.c:71 src/skins/ui_manager.c:183 src/skins/ui_manager.c:184 #, fuzzy msgid "Stop" msgstr "Synthpop" @@ -2731,7 +2745,7 @@ msgid "Volume Down" msgstr "Sain:(%)" -#: src/hotkey/gui.c:78 +#: src/hotkey/gui.c:78 src/skins/ui_manager.c:422 src/skins/ui_manager.c:423 msgid "Jump to File" msgstr "" @@ -2786,12 +2800,12 @@ msgid "Key Binding:" msgstr "" -#: src/hotkey/gui.c:660 +#: src/hotkey/gui.c:659 #, fuzzy msgid "About Global Hotkey Plugin" msgstr "Ynghylch Ategyn Scrobbler" -#: src/hotkey/gui.c:661 +#: src/hotkey/gui.c:660 msgid "" "Global Hotkey Plugin\n" "Control the player with global key combinations or multimedia keys.\n" @@ -2807,38 +2821,38 @@ "\n" msgstr "" -#: src/jack/configure.c:70 +#: src/jack/configure.c:69 msgid "Connect to all available jack ports" msgstr "" -#: src/jack/configure.c:77 +#: src/jack/configure.c:76 msgid "Connect only the output ports" msgstr "" -#: src/jack/configure.c:84 +#: src/jack/configure.c:83 msgid "Connect to no ports" msgstr "" -#: src/jack/configure.c:99 +#: src/jack/configure.c:98 #, fuzzy msgid "jack Plugin configuration" msgstr "Ffurfweddu Ategyn ESD" -#: src/jack/configure.c:117 +#: src/jack/configure.c:116 msgid "Connection mode:" msgstr "" -#: src/jack/configure.c:129 +#: src/jack/configure.c:128 #, fuzzy msgid "Enable debug printing" msgstr "Galluogi ReplayGain" -#: src/jack/jack.c:84 +#: src/jack/jack.c:82 #, fuzzy msgid "Sample rate mismatch" msgstr "Graddfa samplo:" -#: src/jack/jack.c:87 +#: src/jack/jack.c:85 msgid "" "Xmms is asking for a sample rate that differs from\n" " that of the jack server. Xmms 1.2.8 or later\n" @@ -2852,15 +2866,15 @@ "Chris Morgan \n" msgstr "" -#: src/jack/jack.c:100 src/wma/wma.c:148 +#: src/jack/jack.c:98 src/wma/wma.c:145 msgid " Close " msgstr "Cau" -#: src/jack/jack.c:452 +#: src/jack/jack.c:450 msgid "About JACK Output Plugin 0.17" msgstr "Ynghylch Ategyn Allbwn JACK 0.17" -#: src/jack/jack.c:453 +#: src/jack/jack.c:451 msgid "" "XMMS jack Driver 0.17\n" "\n" @@ -2878,41 +2892,41 @@ "Audacious ategyn gan\n" "Giacomo Lozito o develia.org" -#: src/ladspa/ladspa.c:722 +#: src/ladspa/ladspa.c:721 msgid "This LADSPA plugin has no user controls" msgstr "" -#: src/ladspa/ladspa.c:767 src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:766 src/ladspa/ladspa.c:852 #, fuzzy msgid "Name" msgstr "Enw:" -#: src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:852 msgid "UID" msgstr "" -#: src/ladspa/ladspa.c:928 +#: src/ladspa/ladspa.c:927 msgid "Installed plugins" msgstr "" -#: src/ladspa/ladspa.c:937 +#: src/ladspa/ladspa.c:936 msgid "Running plugins" msgstr "" -#: src/ladspa/ladspa.c:952 +#: src/ladspa/ladspa.c:951 msgid "Add" msgstr "" -#: src/ladspa/ladspa.c:956 +#: src/ladspa/ladspa.c:955 #, fuzzy msgid "Remove" msgstr "Tynnu gyrrwr" -#: src/ladspa/ladspa.c:969 +#: src/ladspa/ladspa.c:968 msgid "LADSPA Plugin Catalog" msgstr "" -#: src/lastfm/lastfm.c:96 +#: src/lastfm/lastfm.c:94 msgid "" "Couldn't initialize the last.fm radio plugin.\n" "\n" @@ -3000,59 +3014,59 @@ msgid "%s: will try reconnect every %d seconds...\n" msgstr "" -#: src/madplug/configure.c:209 +#: src/madplug/configure.c:208 msgid "MPEG Audio Plugin Configuration" msgstr "Ffurfweddiad Chwaraeydd MPEG Sain" -#: src/madplug/configure.c:226 +#: src/madplug/configure.c:225 #, fuzzy msgid "Audio Settings" msgstr "Gosodiadau Cymysgu" -#: src/madplug/configure.c:234 +#: src/madplug/configure.c:233 msgid "Force reopen audio when audio type changed" msgstr "" -#: src/madplug/configure.c:243 +#: src/madplug/configure.c:242 #, fuzzy msgid "Metadata Settings" msgstr "Gosodiadau Cymysgu" -#: src/madplug/configure.c:252 +#: src/madplug/configure.c:251 msgid "Enable fast play-length calculation" msgstr "" -#: src/madplug/configure.c:259 +#: src/madplug/configure.c:258 msgid "Parse XING headers" msgstr "" -#: src/madplug/configure.c:266 +#: src/madplug/configure.c:265 msgid "Use SJIS to write ID3 tags (not recommended)" msgstr "" -#: src/madplug/configure.c:273 +#: src/madplug/configure.c:272 #, fuzzy msgid "Miscellaneous Settings" msgstr "Gosodiadau Cymysgu" -#: src/madplug/configure.c:282 +#: src/madplug/configure.c:281 msgid "Display average bitrate for VBR" msgstr "" -#: src/madplug/configure.c:296 src/vorbis/configure.c:102 +#: src/madplug/configure.c:295 src/vorbis/configure.c:100 msgid "Override generic titles" msgstr "Diystyru'r teitlau cyffredinol" -#: src/madplug/configure.c:308 +#: src/madplug/configure.c:307 msgid "ID3 format:" msgstr "Fformat ID3:" -#: src/madplug/configure.c:320 src/sid/xmms-sid.glade:2540 -#: src/sid/xs_interface.c:1070 +#: src/madplug/configure.c:319 src/sid/xmms-sid.glade:2610 +#: src/sid/xs_interface.c:1102 msgid "Title" msgstr "Teitl" -#: src/madplug/plugin.c:524 +#: src/madplug/plugin.c:661 #, c-format msgid "" "Audacious MPEG Audio Plugin\n" @@ -3070,16 +3084,16 @@ " Samuel Krempp" msgstr "" -#: src/madplug/plugin.c:540 +#: src/madplug/plugin.c:677 msgid "About MPEG Audio Plugin" msgstr "Ynghylch Ategyn Sain MPEG" -#: src/metronom/metronom.c:87 +#: src/metronom/metronom.c:86 #, fuzzy msgid "About Metronom" msgstr "Ynghylch" -#: src/metronom/metronom.c:88 +#: src/metronom/metronom.c:87 msgid "" "A Tact Generator by Martin Strauss \n" "\n" @@ -3088,12 +3102,12 @@ "or tact://60*3/4 to play 60 bpm in 3/4 tacts" msgstr "" -#: src/metronom/metronom.c:198 src/metronom/metronom.c:262 +#: src/metronom/metronom.c:197 src/metronom/metronom.c:261 #, fuzzy, c-format msgid "Tact generator: %d bpm" msgstr "Cynhyrchydd Tôn:" -#: src/metronom/metronom.c:200 src/metronom/metronom.c:264 +#: src/metronom/metronom.c:199 src/metronom/metronom.c:263 #, c-format msgid "Tact generator: %d bpm %d/%d" msgstr "" @@ -3301,11 +3315,11 @@ msgid "Message" msgstr "" -#: src/modplug/gui/main.cxx:45 +#: src/modplug/gui/main.cxx:48 msgid "Modplug Input Plugin for Audacious ver" msgstr "" -#: src/modplug/gui/main.cxx:46 +#: src/modplug/gui/main.cxx:49 msgid "" "\n" "Modplug sound engine written by Olivier Lapicque.\n" @@ -3315,7 +3329,7 @@ "Ported to BMP by Theofilos Intzoglou." msgstr "" -#: src/modplug/gui/main.cxx:49 +#: src/modplug/gui/main.cxx:52 #, fuzzy msgid "About Modplug" msgstr "Ynghylch Ategyn Echo" @@ -3326,27 +3340,27 @@ msgid "Couldn't find pixmap file: %s" msgstr "Meth agor dyfais ffeil MIDI" -#: src/mtp_up/mtp.c:35 +#: src/mtp_up/mtp.c:33 msgid "Upload selected track(s)" msgstr "" -#: src/mtp_up/mtp.c:296 +#: src/mtp_up/mtp.c:294 msgid "Upload in progress..." msgstr "" -#: src/mtp_up/mtp.c:305 +#: src/mtp_up/mtp.c:303 msgid "MTP device handler" msgstr "" -#: src/mtp_up/mtp.c:309 +#: src/mtp_up/mtp.c:307 msgid "Disconnect the device" msgstr "" -#: src/musepack/libmpc.cxx:146 +#: src/musepack/libmpc.cxx:142 msgid "Musepack Decoder Plugin 1.2" msgstr "" -#: src/musepack/libmpc.cxx:147 +#: src/musepack/libmpc.cxx:143 msgid "" "Plugin code by\n" "Benoit Amiaux\n" @@ -3356,187 +3370,188 @@ "Get latest version at http://musepack.net\n" msgstr "" -#: src/musepack/libmpc.cxx:148 +#: src/musepack/libmpc.cxx:144 msgid "Nevermind" msgstr "" -#: src/musepack/libmpc.cxx:166 +#: src/musepack/libmpc.cxx:162 #, fuzzy msgid "Musepack Decoder Configuration" msgstr "Ffurfweddiad Disk Writer" -#: src/musepack/libmpc.cxx:176 +#: src/musepack/libmpc.cxx:172 #, fuzzy msgid "General Settings" msgstr "Gosodiadau Cymysgu" -#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:492 +#: src/musepack/libmpc.cxx:179 src/wavpack/ui.cxx:490 msgid "Enable Dynamic Bitrate Display" msgstr "" -#: src/musepack/libmpc.cxx:187 src/wavpack/ui.cxx:498 +#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:496 #, fuzzy msgid "Plugin" msgstr "Ategyn LIRC" -#: src/musepack/libmpc.cxx:190 +#: src/musepack/libmpc.cxx:186 #, fuzzy msgid "ReplayGain Settings" msgstr "Gosodiadau'r ReplayGain:" -#: src/musepack/libmpc.cxx:197 src/wavpack/ui.cxx:510 +#: src/musepack/libmpc.cxx:193 src/wavpack/ui.cxx:508 msgid "Enable Clipping Prevention" msgstr "Galluogi Atal Clipio" -#: src/musepack/libmpc.cxx:202 src/wavpack/ui.cxx:515 +#: src/musepack/libmpc.cxx:198 src/wavpack/ui.cxx:513 msgid "Enable ReplayGain" msgstr "Galluogi ReplayGain" -#: src/musepack/libmpc.cxx:207 +#: src/musepack/libmpc.cxx:203 #, fuzzy msgid "ReplayGain Type" msgstr "Math ReplayGain:" -#: src/musepack/libmpc.cxx:215 +#: src/musepack/libmpc.cxx:211 #, fuzzy msgid "Use Track Gain" msgstr "defnyddiwch Cynnydd/Brig Trac" -#: src/musepack/libmpc.cxx:219 +#: src/musepack/libmpc.cxx:215 #, fuzzy msgid "Use Album Gain" msgstr "defnyddio Cynnydd/Brig Albwm" -#: src/musepack/libmpc.cxx:224 src/wavpack/ui.cxx:547 +#: src/musepack/libmpc.cxx:220 src/wavpack/ui.cxx:545 msgid "ReplayGain" msgstr "ReplayGain" -#: src/musepack/libmpc.cxx:491 src/sid/xmms-sid.glade:3144 -#: src/sid/xs_interface.c:1564 src/tta/libtta.c:304 src/wavpack/ui.cxx:152 +#: src/musepack/libmpc.cxx:487 src/sid/xmms-sid.glade:3338 +#: src/sid/xs_interface.c:1648 src/tta/libtta.c:301 src/wavpack/ui.cxx:150 #, fuzzy msgid "Filename:" msgstr "Enw Defnyddiwr:" -#: src/musepack/libmpc.cxx:506 +#: src/musepack/libmpc.cxx:502 msgid "Musepack Tag" msgstr "" -#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:323 src/wavpack/ui.cxx:172 +#: src/musepack/libmpc.cxx:510 src/tta/libtta.c:320 src/wavpack/ui.cxx:170 msgid "Title:" msgstr "Teitl:" -#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:333 src/wavpack/ui.cxx:184 +#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:330 src/wavpack/ui.cxx:182 msgid "Artist:" msgstr "Artist:" -#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:344 src/wavpack/ui.cxx:196 +#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:341 src/wavpack/ui.cxx:194 msgid "Album:" msgstr "Albwm:" -#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:355 src/wavpack/ui.cxx:208 +#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:352 src/wavpack/ui.cxx:206 msgid "Comment:" msgstr "Sylw:" -#: src/musepack/libmpc.cxx:530 src/tta/libtta.c:366 src/wavpack/ui.cxx:221 +#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:363 src/wavpack/ui.cxx:219 msgid "Year:" msgstr "Blwyddyn:" -#: src/musepack/libmpc.cxx:535 +#: src/musepack/libmpc.cxx:531 #, fuzzy msgid "Track:" msgstr "Cynnydd trac:" -#: src/musepack/libmpc.cxx:540 src/tta/libtta.c:390 src/wavpack/ui.cxx:248 +#: src/musepack/libmpc.cxx:536 src/tta/libtta.c:387 src/wavpack/ui.cxx:246 msgid "Genre:" msgstr "Math:" -#: src/musepack/libmpc.cxx:551 src/sid/xmms-sid.glade:1732 -#: src/sid/xs_interface.c:820 src/wavpack/ui.cxx:267 +#: src/musepack/libmpc.cxx:547 src/sid/xmms-sid.glade:1732 +#: src/sid/xs_interface.c:832 src/skins/ui_manager.c:438 +#: src/wavpack/ui.cxx:265 #, fuzzy msgid "Save" msgstr "Rave" -#: src/musepack/libmpc.cxx:554 src/wavpack/ui.cxx:273 +#: src/musepack/libmpc.cxx:550 src/wavpack/ui.cxx:271 #, fuzzy msgid "Remove Tag" msgstr "Tynnu gyrrwr" -#: src/musepack/libmpc.cxx:562 +#: src/musepack/libmpc.cxx:558 msgid "Musepack Info" msgstr "" +#: src/musepack/libmpc.cxx:591 +#, fuzzy, c-format +msgid "Streamversion %d" +msgstr "Llifo" + +#: src/musepack/libmpc.cxx:592 +#, c-format +msgid "Encoder: %s" +msgstr "" + +#: src/musepack/libmpc.cxx:593 +#, c-format +msgid "Profile: %s" +msgstr "" + +#: src/musepack/libmpc.cxx:594 +#, c-format +msgid "Average bitrate: %6.1f kbps" +msgstr "" + #: src/musepack/libmpc.cxx:595 #, fuzzy, c-format -msgid "Streamversion %d" -msgstr "Llifo" +msgid "Samplerate: %d Hz" +msgstr "Graddfa samplo:" #: src/musepack/libmpc.cxx:596 -#, c-format -msgid "Encoder: %s" -msgstr "" - -#: src/musepack/libmpc.cxx:597 -#, c-format -msgid "Profile: %s" -msgstr "" - -#: src/musepack/libmpc.cxx:598 -#, c-format -msgid "Average bitrate: %6.1f kbps" -msgstr "" - -#: src/musepack/libmpc.cxx:599 -#, fuzzy, c-format -msgid "Samplerate: %d Hz" -msgstr "Graddfa samplo:" - -#: src/musepack/libmpc.cxx:600 #, fuzzy, c-format msgid "Channels: %d" msgstr "Sianeli:" -#: src/musepack/libmpc.cxx:601 +#: src/musepack/libmpc.cxx:597 #, fuzzy, c-format msgid "Length: %d:\\%.2d" msgstr "" "\n" "Cyfanswm hyd: %d:%.2d\n" -#: src/musepack/libmpc.cxx:602 +#: src/musepack/libmpc.cxx:598 #, fuzzy, c-format msgid "File size: %d Bytes" msgstr "Maint ffeil:" -#: src/musepack/libmpc.cxx:603 +#: src/musepack/libmpc.cxx:599 #, fuzzy, c-format msgid "Track Peak: %5u" msgstr "Brig trac:" -#: src/musepack/libmpc.cxx:604 +#: src/musepack/libmpc.cxx:600 #, fuzzy, c-format msgid "Track Gain: %-+2.2f dB" msgstr "Cynnydd trac:" -#: src/musepack/libmpc.cxx:605 +#: src/musepack/libmpc.cxx:601 #, fuzzy, c-format msgid "Album Peak: %5u" msgstr "Brig albwm:" -#: src/musepack/libmpc.cxx:606 +#: src/musepack/libmpc.cxx:602 #, fuzzy, c-format msgid "Album Gain: %-+5.2f dB" msgstr "Cynydd albwm:" -#: src/musepack/libmpc.cxx:634 src/tta/libtta.c:413 src/wavpack/ui.cxx:409 +#: src/musepack/libmpc.cxx:630 src/tta/libtta.c:410 src/wavpack/ui.cxx:407 #, c-format msgid "File Info - %s" msgstr "Gwybodaeth Ffeil - %s" -#: src/null/null.c:61 +#: src/null/null.c:58 msgid "Null output plugin " msgstr "Null ategyn allbwn" -#: src/null/null.c:62 +#: src/null/null.c:59 #, fuzzy msgid "" " by Christian Birchinger \n" @@ -3545,25 +3560,54 @@ " am Christian Birchinger \n" " tarddu gan yr XMMS modiwl am Håvard Kvål " -#: src/null/null.c:65 +#: src/null/null.c:62 msgid "About Null Output" msgstr "Ynghylch Ategyn Allwyn Null" -#: src/null/null.c:94 +#: src/null/null.c:91 #, fuzzy msgid "Null output preferences" msgstr "Null ategyn allbwn" -#: src/null/null.c:103 +#: src/null/null.c:100 msgid "Run in real time" msgstr "" -#: src/OSS4/about.c:42 +#: src/OSS4/configure.c:118 src/OSS/configure.c:150 +#, c-format +msgid "Default (%s)" +msgstr "Rhagosodedig (%s)" + +#: src/OSS4/configure.c:168 src/OSS/configure.c:200 +msgid "OSS Driver configuration" +msgstr "Ffurfweddu'r Gyrrwr OSS" + +#: src/OSS4/configure.c:206 src/OSS/configure.c:238 src/OSS/configure.c:279 +msgid "Use alternate device:" +msgstr "Defnyddiwr ddyfais arall:" + +#: src/OSS4/configure.c:228 src/OSS/configure.c:301 src/sun/configure.c:246 +msgid "Devices" +msgstr "Dyfeisiau" + +#: src/OSS4/configure.c:270 src/OSS/configure.c:342 +msgid "Mixer Settings:" +msgstr "Gosodiadau Cymysgu" + +#: src/OSS4/configure.c:276 +msgid "Save VMIX volume between sessions" +msgstr "" + +#: src/OSS4/configure.c:282 src/OSS/configure.c:354 src/sun/configure.c:392 +msgid "Mixer" +msgstr "Cymysgwr" + +#: src/OSS4/OSS4.c:38 #, fuzzy msgid "About OSSv4 Driver" msgstr "Ynghylch Gyrrwr OSS" -#: src/OSS4/about.c:43 +#: src/OSS4/OSS4.c:39 #, fuzzy msgid "" "Audacious OSSv4 Driver\n" @@ -3603,40 +3647,15 @@ " MA 02111-1307,\n" "USA." -#: src/OSS4/configure.c:120 src/OSS/configure.c:151 -#, c-format -msgid "Default (%s)" -msgstr "Rhagosodedig (%s)" - -#: src/OSS4/configure.c:170 src/OSS/configure.c:201 -msgid "OSS Driver configuration" -msgstr "Ffurfweddu'r Gyrrwr OSS" - -#: src/OSS4/configure.c:208 src/OSS/configure.c:239 src/OSS/configure.c:280 -msgid "Use alternate device:" -msgstr "Defnyddiwr ddyfais arall:" - -#: src/OSS4/configure.c:230 src/OSS/configure.c:302 src/sun/configure.c:248 -msgid "Devices" -msgstr "Dyfeisiau" - -#: src/OSS4/configure.c:272 src/OSS/configure.c:343 -msgid "Mixer Settings:" -msgstr "Gosodiadau Cymysgu" - -#: src/OSS4/configure.c:278 -msgid "Save VMIX volume between sessions" -msgstr "" - -#: src/OSS4/configure.c:284 src/OSS/configure.c:355 src/sun/configure.c:394 -msgid "Mixer" -msgstr "Cymysgwr" - -#: src/OSS/about.c:39 +#: src/OSS/configure.c:348 +msgid "Volume controls Master not PCM" +msgstr "Nid yw'r Prif reolwr sain yn PCM" + +#: src/OSS/OSS.c:37 msgid "About OSS Driver" msgstr "Ynghylch Gyrrwr OSS" -#: src/OSS/about.c:40 +#: src/OSS/OSS.c:38 msgid "" "Audacious OSS Driver\n" "\n" @@ -3672,20 +3691,16 @@ " MA 02111-1307,\n" "USA." -#: src/OSS/configure.c:349 -msgid "Volume controls Master not PCM" -msgstr "Nid yw'r Prif reolwr sain yn PCM" - #: src/projectm-1.0/main.c:70 msgid "_Random" msgstr "" -#: src/pulse_audio/pulse_audio.c:722 +#: src/pulse_audio/pulse_audio.c:720 #, fuzzy msgid "About Audacious PulseAudio Output Plugin" msgstr "Ategyn Allbwn CoreAudio" -#: src/pulse_audio/pulse_audio.c:723 +#: src/pulse_audio/pulse_audio.c:721 #, fuzzy msgid "" "Audacious PulseAudio Output Plugin\n" @@ -3722,27 +3737,27 @@ " MA 02111-1307,\n" "USA." -#: src/scrobbler/configure.c:138 +#: src/scrobbler/configure.c:134 msgid "Services" msgstr "Gwasanaethau" -#: src/scrobbler/configure.c:160 src/scrobbler/configure.c:199 +#: src/scrobbler/configure.c:156 src/scrobbler/configure.c:195 msgid "Username:" msgstr "Enw Defnyddiwr:" -#: src/scrobbler/configure.c:166 src/scrobbler/configure.c:205 +#: src/scrobbler/configure.c:162 src/scrobbler/configure.c:201 msgid "Password:" msgstr "Cyfrinair:" -#: src/scrobbler/configure.c:183 +#: src/scrobbler/configure.c:179 msgid "Last.FM" msgstr "Last.FM" -#: src/scrobbler/configure.c:222 +#: src/scrobbler/configure.c:218 msgid "Gerpok" msgstr "Gerpok" -#: src/scrobbler/gtkstuff.c:21 +#: src/scrobbler/gtkstuff.c:18 msgid "" "Audacious AudioScrobbler Plugin\n" "\n" @@ -3750,11 +3765,11 @@ "com>\n" msgstr "" -#: src/scrobbler/gtkstuff.c:23 +#: src/scrobbler/gtkstuff.c:20 msgid "About Scrobbler Plugin" msgstr "Ynghylch Ategyn Scrobbler" -#: src/scrobbler/gtkstuff.c:36 +#: src/scrobbler/gtkstuff.c:33 #, c-format msgid "" "There has been an error that may require your attention.\n" @@ -3764,116 +3779,116 @@ "%s\n" msgstr "" -#: src/scrobbler/gtkstuff.c:43 +#: src/scrobbler/gtkstuff.c:40 #, fuzzy msgid "Scrobbler Error" msgstr "Ategyn Scrobbler" -#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:221 +#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:233 #, fuzzy msgid "Audacious-SID configuration" msgstr "Audacious OSD - ffurfweddiad" -#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:257 +#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:269 #, fuzzy msgid "8-bit" msgstr "8 did" -#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:264 +#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:276 #, fuzzy msgid "16-bit" msgstr "16 did" -#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:271 +#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:283 #, fuzzy msgid "Resolution:" msgstr "Cydraniad:" -#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:302 +#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:314 msgid "Autopanning" msgstr "" -#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:309 +#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:321 msgid "Channels:" msgstr "Sianeli:" -#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:353 +#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:365 #, fuzzy msgid "Samplerate:" msgstr "Graddfa samplo:" -#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:370 +#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:382 #, fuzzy msgid "Use oversampling" msgstr "Samplo" -#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:381 +#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:393 msgid "Factor:" msgstr "" -#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:393 +#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:405 msgid "Large factors require more CPU-power" msgstr "" -#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:399 +#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:411 #, fuzzy msgid "Oversampling:" msgstr "Samplo" -#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:404 +#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:416 msgid "Audio" msgstr "" -#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:436 +#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:448 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "clock speed/frequency. Otherwise the speed is determined from played file " "itself." msgstr "" -#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:432 +#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:444 msgid "Force speed" msgstr "" -#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:442 +#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:454 msgid "" "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. " "Most of SID-tunes have been made for PAL computers." msgstr "" -#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:438 +#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:450 msgid "PAL (50 Hz)" msgstr "" -#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:450 +#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:462 msgid "" "NTSC is the TV standard with 60Hz vertical refresh rate (and other features " "that differ from PAL). It is mainly used in United States, Japan and certain " "other countries." msgstr "" -#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:446 +#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:458 msgid "NTSC (60 Hz)" msgstr "" -#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:454 +#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:466 #, fuzzy msgid "Clock speed:" msgstr "Chwarae cyflymedd" -#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:475 +#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:487 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "SID-chip model. Otherwise the preferred SID model is determined from the " "file (if PSIDv2NG type) or if not available, this setting is used." msgstr "" -#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:471 +#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:483 #, fuzzy msgid "Force model" msgstr "Enwau'r Traciau:" -#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:481 +#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:493 msgid "" "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 " "in few ways, having much fuller filter (which, due to design error, is never " @@ -3881,91 +3896,91 @@ "which enables playing of digital samples." msgstr "" -#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:477 +#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:489 msgid "MOS 6581" msgstr "" -#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:485 +#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:497 msgid "MOS 8580" msgstr "" -#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:492 +#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:504 #, fuzzy msgid "SID model:" msgstr "Modd chwarae:" -#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:513 +#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:525 msgid "" "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most " "cases, though." msgstr "" -#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:509 +#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:521 msgid "SIDPlay 1 (frame-based)" msgstr "" -#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:521 +#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:533 msgid "" "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact " "emulation." msgstr "" -#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:517 +#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:529 msgid "SIDPlay 2 (cycle-based)" msgstr "" -#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:525 +#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:537 msgid "Emulation library selection:" msgstr "" -#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:542 +#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:554 msgid "Real C64 (SIDPlay 2 only)" msgstr "" -#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:549 +#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:561 msgid "Bank switching" msgstr "" -#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:556 +#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:568 msgid "Transparent ROM" msgstr "" -#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:563 +#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:575 msgid "PlaySID environment" msgstr "" -#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:570 +#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:582 #, fuzzy msgid "Memory mode:" msgstr "Modd chwarae:" -#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:575 +#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:587 msgid "Emu#1" msgstr "" -#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:602 +#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:614 msgid "" "This setting can be used to enable libSIDPlay2's \"optimization mode\", " "which in downgrades the emulation from cycle-exact to something similar to " "frame-exact. The result is lower CPU usage, but worse accuracy." msgstr "" -#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:598 +#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:610 msgid "Optimization mode (faster, inaccurate)" msgstr "" -#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:608 +#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:620 msgid "" "reSID is the software SID-chip simulator based on SID reverse-engineering, " "created by Dag Lem. It is probably the closest thing to real SID available " "as software-only emulation." msgstr "" -#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:604 +#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:616 msgid "reSID-emulation" msgstr "" -#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:616 +#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:628 msgid "" "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a " "real SID-chip. Software can be used to control the HardSID and combined with " @@ -3974,49 +3989,49 @@ "http://www.hardsid.com/" msgstr "" -#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:612 +#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:624 msgid "HardSID" msgstr "" -#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:620 +#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:632 msgid "SIDPlay 2 options:" msgstr "" -#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:641 +#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:653 msgid "" "Fastest and also worst sounding sampling method, simply picks nearest " "neighbouring sample." msgstr "" -#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:637 +#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:649 msgid "Fast (nearest neighbour)" msgstr "" -#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:649 +#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:661 msgid "" "Uses linear interpolation between samples, yielding higher audio quality " "with less sampling noise." msgstr "" -#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:645 +#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:657 msgid "Linear interpolation" msgstr "" -#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:660 +#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:672 #, fuzzy msgid "Resampling (FIR)" msgstr "Samplo" -#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:667 +#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:679 #, fuzzy msgid "reSID sampling options:" msgstr "Graddfa Samplo" -#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:672 +#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:684 msgid "Emu#2" msgstr "" -#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:688 +#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:700 msgid "" "This option enables emulation of SID filter. The filter is an essential part " "of SID's sound capacity, but accurate emulation of it may require quite much " @@ -4024,312 +4039,323 @@ "authentic at all if they utilize the filter." msgstr "" -#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:684 +#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:696 msgid "Emulate filters" msgstr "" -#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:713 +#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:725 msgid "FS" msgstr "" -#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:730 +#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:742 msgid "FM" msgstr "" -#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:747 +#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:759 msgid "FT" msgstr "" -#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:758 +#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:770 msgid "Reset values" msgstr "" -#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:763 +#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:775 msgid "SIDPlay1" msgstr "" -#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:804 +#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:816 #, fuzzy msgid "Export" msgstr "Porth" -#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:812 +#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:824 msgid "Use" msgstr "" -#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:828 +#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:840 +#: src/skins/ui_manager.c:437 #, fuzzy msgid "Import" msgstr "Porth" -#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:836 +#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:848 +#: src/skins/ui_manager.c:439 #, fuzzy msgid "Delete" msgstr "Rhagosodedig" -#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:850 +#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:862 #, fuzzy msgid "Filter curve:" msgstr "Maint ffeil:" -#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:855 +#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:867 msgid "SIDPlay2" msgstr "" -#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:861 +#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:873 msgid "Filters" msgstr "" -#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:888 +#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:900 msgid "" "If enabled, the tune is played at least for the specified time, adding " "silence to the end if necessary." msgstr "" -#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:884 +#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:896 msgid "Play at least for specified time" msgstr "" #: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133 -#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:895 -#: src/sid/xs_interface.c:949 src/sid/xs_interface.c:1109 +#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:907 +#: src/sid/xs_interface.c:961 src/sid/xs_interface.c:1141 #, fuzzy msgid "Playtime:" msgstr "Modd chwarae:" -#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:915 +#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:927 msgid "Minimum playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:936 +#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:948 msgid "" "If enabled, tune is played until specified duration is reached (aka maximum " "playtime)." msgstr "" -#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:932 +#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:944 msgid "Play for specified time maximum" msgstr "" -#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:942 +#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:954 msgid "" "If enabled, the maximum playtime is applied only if song/tune length is not " "known." msgstr "" -#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:938 +#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:950 msgid "Only when song length is unknown" msgstr "" -#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:969 +#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:981 msgid "Maximum playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:990 +#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:1002 msgid "" "This option enables using of XSIDPLAY compatible song length database. " "(Refer to Audacious-SID documentation for more information)" msgstr "" -#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:986 +#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:998 msgid "Use XSIDPLAY-compatible database" msgstr "" -#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:997 +#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:1009 #, fuzzy msgid "DB-file:" msgstr "Dyfais:" -#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1007 +#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1019 msgid "Database path and filename" msgstr "" -#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1014 +#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1026 msgid "Browse for song length-database file" msgstr "" -#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1016 +#: src/sid/xmms-sid.glade:2418 src/sid/xs_interface.c:1048 msgid "Song length database:" msgstr "" -#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1021 +#: src/sid/xmms-sid.glade:2454 src/sid/xs_interface.c:1053 #, fuzzy msgid "Songlength" msgstr "Hyd cân rhagosodedig:" -#: src/sid/xmms-sid.glade:2430 src/sid/xs_interface.c:1043 +#: src/sid/xmms-sid.glade:2492 src/sid/xs_interface.c:1075 msgid "" "By enabling this option you can specify a custom Tuplez formatting string " "for SID-files. The SID-plugin specific Tuplez tags are described shortly " "below." msgstr "" -#: src/sid/xmms-sid.glade:2432 src/sid/xs_interface.c:1039 +#: src/sid/xmms-sid.glade:2494 src/sid/xs_interface.c:1071 #, fuzzy msgid "Override generic Tuplez format string" msgstr "Diystyru'r teitlau cyffredinol" -#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1054 +#: src/sid/xmms-sid.glade:2519 src/sid/xs_interface.c:1086 msgid "Tuplez format string for SID-files" msgstr "" -#: src/sid/xmms-sid.glade:2477 src/sid/xs_interface.c:1057 -msgid "Descriptions of SID-specific Tuplez fields go here. :D" -msgstr "" - -#: src/sid/xmms-sid.glade:2511 src/sid/xs_interface.c:1065 +#: src/sid/xmms-sid.glade:2539 src/sid/xs_interface.c:1089 +msgid "" +"SID-specific Tuplez fields:\n" +"\n" +"sid-format\t\t- Specific fileformat\n" +"sid-model\t\t- 6581 or 8580\n" +"sid-speed\t\t- Timing or speed: PAL/NTSC/etc.\n" +"\n" +"Other \"special\" fields set:\n" +"\n" +"subsong-num, subsong-id" +msgstr "" + +#: src/sid/xmms-sid.glade:2581 src/sid/xs_interface.c:1097 #, fuzzy msgid "Song title format:" msgstr "Fformat y teitl:" -#: src/sid/xmms-sid.glade:2584 src/sid/xs_interface.c:1096 +#: src/sid/xmms-sid.glade:2654 src/sid/xs_interface.c:1128 msgid "" "If enabled, sub-tunes of each file will be added to playlist. If disabled, " "only the default sub-tune will be added." msgstr "" -#: src/sid/xmms-sid.glade:2586 src/sid/xs_interface.c:1092 +#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1124 msgid "Add sub-tunes to playlist" msgstr "" -#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1102 +#: src/sid/xmms-sid.glade:2675 src/sid/xs_interface.c:1134 msgid "Only add sub-tunes that have a duration of at least specified time." msgstr "" -#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1098 +#: src/sid/xmms-sid.glade:2677 src/sid/xs_interface.c:1130 msgid "Only tunes with specified minimum duration" msgstr "" -#: src/sid/xmms-sid.glade:2710 src/sid/xs_interface.c:1129 +#: src/sid/xmms-sid.glade:2780 src/sid/xs_interface.c:1161 #, fuzzy msgid "Sub-tune handling:" msgstr "Rheolwr sain" -#: src/sid/xmms-sid.glade:2755 src/sid/xs_interface.c:1150 +#: src/sid/xmms-sid.glade:2825 src/sid/xs_interface.c:1182 msgid "" "If this option is enabled (and the database & HVSC settings below are " "correctly set), Audacious-SID will use and display additional information " "from STIL database when HVSC SIDs are played." msgstr "" -#: src/sid/xmms-sid.glade:2757 src/sid/xs_interface.c:1146 +#: src/sid/xmms-sid.glade:2827 src/sid/xs_interface.c:1178 msgid "Use STIL database" msgstr "" -#: src/sid/xmms-sid.glade:2782 src/sid/xs_interface.c:1157 +#: src/sid/xmms-sid.glade:2852 src/sid/xs_interface.c:1189 #, fuzzy msgid "STIL file:" msgstr "Teitl:" -#: src/sid/xmms-sid.glade:2819 src/sid/xs_interface.c:1173 +#: src/sid/xmms-sid.glade:2889 src/sid/xs_interface.c:1205 msgid "" "Path and filename of STIL database file (STIL.txt), usually found from " "HVSC's DOCUMENTS-subdirectory." msgstr "" -#: src/sid/xmms-sid.glade:2854 src/sid/xs_interface.c:1186 +#: src/sid/xmms-sid.glade:2924 src/sid/xs_interface.c:1218 msgid "Browse for STIL-database file" msgstr "" -#: src/sid/xmms-sid.glade:2888 src/sid/xs_interface.c:1193 +#: src/sid/xmms-sid.glade:3020 src/sid/xs_interface.c:1245 msgid "HVSC path:" msgstr "" -#: src/sid/xmms-sid.glade:2925 src/sid/xs_interface.c:1209 +#: src/sid/xmms-sid.glade:3057 src/sid/xs_interface.c:1261 msgid "" "Path to base-directory of your High Voltage SID Collection (HVSC), for " "example /media/C64Music/" msgstr "" -#: src/sid/xmms-sid.glade:2960 src/sid/xs_interface.c:1222 +#: src/sid/xmms-sid.glade:3092 src/sid/xs_interface.c:1274 msgid "Browse for HVSC path" msgstr "" -#: src/sid/xmms-sid.glade:2990 src/sid/xs_interface.c:1224 +#: src/sid/xmms-sid.glade:3184 src/sid/xs_interface.c:1296 msgid "SID Tune Information List (STIL) database:" msgstr "" -#: src/sid/xmms-sid.glade:3063 src/sid/xs_interface.c:1248 +#: src/sid/xmms-sid.glade:3257 src/sid/xs_interface.c:1320 msgid "Accept and update changes" msgstr "" -#: src/sid/xmms-sid.glade:3077 src/sid/xs_interface.c:1255 +#: src/sid/xmms-sid.glade:3271 src/sid/xs_interface.c:1327 msgid "Cancel any changes" msgstr "" -#: src/sid/xmms-sid.glade:3102 src/sid/xs_interface.c:1543 +#: src/sid/xmms-sid.glade:3296 src/sid/xs_interface.c:1627 #, fuzzy msgid "Audacious-SID Fileinfo" msgstr "" "\n" "Audacious OSD" -#: src/sid/xmms-sid.glade:3172 src/sid/xs_interface.c:1572 +#: src/sid/xmms-sid.glade:3366 src/sid/xs_interface.c:1656 msgid "Songname:" msgstr "" -#: src/sid/xmms-sid.glade:3200 src/sid/xs_interface.c:1580 +#: src/sid/xmms-sid.glade:3394 src/sid/xs_interface.c:1664 msgid "Composer:" msgstr "" -#: src/sid/xmms-sid.glade:3228 src/sid/xs_interface.c:1588 +#: src/sid/xmms-sid.glade:3422 src/sid/xs_interface.c:1672 msgid "Copyright:" msgstr "Hawlfraint:" -#: src/sid/xmms-sid.glade:3342 src/sid/xs_interface.c:1632 +#: src/sid/xmms-sid.glade:3536 src/sid/xs_interface.c:1716 #, fuzzy msgid "Song Information:" msgstr "Fformat ID3:" -#: src/sid/xmms-sid.glade:3416 src/sid/xs_interface.c:1667 +#: src/sid/xmms-sid.glade:3610 src/sid/xs_interface.c:1751 msgid "Author:" msgstr "" -#: src/sid/xmms-sid.glade:3514 src/sid/xs_interface.c:1701 +#: src/sid/xmms-sid.glade:3708 src/sid/xs_interface.c:1785 #, fuzzy msgid "Duration:" msgstr "Addurniad" -#: src/sid/xmms-sid.glade:3608 src/sid/xs_interface.c:1735 +#: src/sid/xmms-sid.glade:3802 src/sid/xs_interface.c:1819 #, fuzzy msgid "Sub-tune Information:" msgstr "Fformat ID3:" -#: src/sid/xmms-sid.glade:3662 src/sid/xs_interface.c:1796 +#: src/sid/xmms-sid.glade:3856 src/sid/xs_interface.c:1880 msgid "Select HVSC song length database" msgstr "" -#: src/sid/xmms-sid.glade:3704 src/sid/xs_interface.c:1837 +#: src/sid/xmms-sid.glade:3898 src/sid/xs_interface.c:1921 msgid "Select STIL-database" msgstr "" -#: src/sid/xmms-sid.glade:3746 src/sid/xs_interface.c:1878 +#: src/sid/xmms-sid.glade:3940 src/sid/xs_interface.c:1962 msgid "Select HVSC location prefix" msgstr "" -#: src/sid/xmms-sid.glade:3788 src/sid/xs_interface.c:1919 +#: src/sid/xmms-sid.glade:3982 src/sid/xs_interface.c:2003 msgid "Select SIDPlay2 filters file for importing" msgstr "" -#: src/sid/xmms-sid.glade:3830 src/sid/xs_interface.c:1960 +#: src/sid/xmms-sid.glade:4024 src/sid/xs_interface.c:2044 msgid "Select SIDPlay2 filters file for exporting" msgstr "" -#: src/sid/xmms-sid.glade:3871 src/sid/xmms-sid.glade:3953 -#: src/sid/xs_interface.c:2008 src/sid/xs_interface.c:2021 +#: src/sid/xmms-sid.glade:4065 src/sid/xmms-sid.glade:4147 +#: src/sid/xs_interface.c:2092 src/sid/xs_interface.c:2105 msgid "Confirm selected action" msgstr "" -#: src/sid/xmms-sid.glade:3909 src/sid/xs_interface.c:2038 +#: src/sid/xmms-sid.glade:4103 src/sid/xs_interface.c:2122 #, fuzzy msgid "Yes" msgstr "iawn" -#: src/sid/xmms-sid.glade:3921 src/sid/xs_interface.c:2044 +#: src/sid/xmms-sid.glade:4115 src/sid/xs_interface.c:2128 msgid "No" msgstr "Na" -#: src/sid/xs_about.c:84 src/wma/wma.c:121 +#: src/sid/xs_about.c:84 src/wma/wma.c:118 #, c-format msgid "About %s" msgstr "Ynghylch %s" @@ -4344,12 +4370,1122 @@ msgid "Tune #%i: " msgstr "" -#: src/sndfile/plugin.c:548 +#: src/skins/plugin.c:128 +msgid "About Skinned GUI" +msgstr "" + +#: src/skins/plugin.c:129 +msgid "" +"Copyright (c) 2008, by Tomasz Moń \n" +"\n" +msgstr "" + +#: src/skins/skins_cfg.c:329 +#, fuzzy +msgid "_Fonts" +msgstr "Hatena" + +#: src/skins/skins_cfg.c:330 +#, fuzzy +msgid "_Player:" +msgstr "Modd chwarae:" + +#: src/skins/skins_cfg.c:330 +msgid "Select main player window font:" +msgstr "" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "_Playlist:" +msgstr "Modd chwarae:" + +#: src/skins/skins_cfg.c:331 +msgid "Select playlist font:" +msgstr "" + +#: src/skins/skins_cfg.c:332 +#, fuzzy +msgid "Use Bitmap fonts if available" +msgstr "Stereo (os ar gael)" + +#: src/skins/skins_cfg.c:332 +msgid "" +"Use bitmap fonts if they are available. Bitmap fonts do not support Unicode " +"strings." +msgstr "" + +#: src/skins/skins_cfg.c:333 +#, fuzzy +msgid "_Miscellaneous" +msgstr "Gwasanaethau" + +#: src/skins/skins_cfg.c:334 +msgid "Show track numbers in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:336 +msgid "Show separators in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:338 +msgid "Show window manager decoration" +msgstr "" + +#: src/skins/skins_cfg.c:339 +msgid "This enables the window manager to show decorations for windows." +msgstr "" + +#: src/skins/skins_cfg.c:340 +msgid "Use two-way text scroller" +msgstr "" + +#: src/skins/skins_cfg.c:341 +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 "" + +#: src/skins/skins_cfg.c:342 +msgid "Disable inline gtk theme" +msgstr "" + +#: src/skins/skins_cfg.c:343 +msgid "Allow loading incomplete skins" +msgstr "" + +#: src/skins/skins_cfg.c:344 +msgid "" +"If selected, audacious won't refuse loading broken skins. Use only if your " +"favourite skin doesn't work" +msgstr "" + +#: src/skins/skins_cfg.c:410 +msgid "Color Adjustment" +msgstr "" + +#: src/skins/skins_cfg.c:417 +msgid "" +"Audacious allows you to alter the color balance of the skinned UI. The " +"sliders below will allow you to do this." +msgstr "" + +#: src/skins/skins_cfg.c:427 +#, fuzzy +msgid "Blue" +msgstr "Y Felan" + +#: src/skins/skins_cfg.c:434 +msgid "Green" +msgstr "" + +#: src/skins/skins_cfg.c:441 +msgid "Red" +msgstr "" + +#: src/skins/skins_cfg.c:571 +#, fuzzy +msgid "Audacious Skinned GUI Configuration" +msgstr "Audacious OSD - ffurfweddiad" + +#: src/skins/skins_cfg.c:596 +#, fuzzy +msgid "_Skin" +msgstr "Hatena" + +#: src/skins/ui_equalizer.c:494 +msgid "Audacious Equalizer" +msgstr "" + +#: src/skins/ui_equalizer.c:794 +#, c-format +msgid "Error importing Winamp EQF file '%s'" +msgstr "" + +#: src/skins/ui_equalizer.c:1172 +msgid "Presets" +msgstr "" + +#: src/skins/ui_main.c:392 +#, c-format +msgid "%s - Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:394 src/skins/ui_main.c:2397 +#, fuzzy +msgid "Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:641 +msgid "VBR" +msgstr "" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "stereo" +msgstr "Stereo" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "mono" +msgstr "Mono" + +#: src/skins/ui_main.c:957 +msgid "Can't jump to time when no track is being played.\n" +msgstr "" + +#: src/skins/ui_main.c:972 src/skins/ui_manager.c:425 +#: src/skins/ui_manager.c:426 +msgid "Jump to Time" +msgstr "" + +#: src/skins/ui_main.c:993 +#, fuzzy +msgid "minutes:seconds" +msgstr "eiliad" + +#: src/skins/ui_main.c:1003 +#, fuzzy +msgid "Track length:" +msgstr "Cynnydd trac:" + +#: src/skins/ui_main.c:1149 +msgid "Audacious - visibility warning" +msgstr "" + +#: src/skins/ui_main.c:1152 +#, fuzzy +msgid "Show main player window" +msgstr "Dangos ffenestr rhwydwaith" + +#: src/skins/ui_main.c:1153 +msgid "Ignore" +msgstr "" + +#: src/skins/ui_main.c:1159 +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)." +msgstr "" + +#: src/skins/ui_main.c:1165 +msgid "Always ignore, show/hide is controlled remotely" +msgstr "" + +#: src/skins/ui_main.c:1210 +msgid "Audacious - broken GTK engine usage warning" +msgstr "" + +#: src/skins/ui_main.c:1218 +#, c-format +msgid "" +"Broken GTK engine in use\n" +"\n" +"Audacious has detected that you are using a broken GTK engine.\n" +"\n" +"The theme engine you are using, %s, is incompatible with some of the " +"features used by modern skins. The incompatible features have been disabled " +"for this session.\n" +"\n" +"To use these features, please consider using a different GTK theme engine." +msgstr "" + +#: src/skins/ui_main.c:1229 +msgid "Do not display this warning again" +msgstr "" + +#: src/skins/ui_main.c:1253 +msgid "Enter location to play:" +msgstr "" + +#: src/skins/ui_main.c:1497 +#, c-format +msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" +msgstr "" + +#: src/skins/ui_main.c:1527 +#, fuzzy, c-format +msgid "Volume: %d%%" +msgstr "Sain:(%)" + +#: src/skins/ui_main.c:1555 +#, c-format +msgid "Balance: %d%% left" +msgstr "" + +#: src/skins/ui_main.c:1559 +msgid "Balance: center" +msgstr "" + +#: src/skins/ui_main.c:1563 +#, c-format +msgid "Balance: %d%% right" +msgstr "" + +#: src/skins/ui_main.c:1881 +#, fuzzy +msgid "Options Menu" +msgstr "Dewisiadau:" + +#: src/skins/ui_main.c:1885 +msgid "Disable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1887 +msgid "Enable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1890 +#, fuzzy +msgid "File Info Box" +msgstr "Gwybodaeth Ffeil - %s" + +#: src/skins/ui_main.c:1894 +#, fuzzy +msgid "Disable 'GUI Scaling'" +msgstr "Analluogi tagiau ID3V2" + +#: src/skins/ui_main.c:1896 +#, fuzzy +msgid "Enable 'GUI Scaling'" +msgstr "Gallougi sain dyblusampl" + +#: src/skins/ui_main.c:1899 +msgid "Visualization Menu" +msgstr "" + +#: src/skins/ui_main.c:1946 +msgid "" +"Couldn't open audio.\n" +"\n" +"Please check that:\n" +"1. You have the correct output plugin selected.\n" +"2. No other programs is blocking the soundcard.\n" +"3. Your soundcard is configured properly.\n" +msgstr "" + +#: src/skins/ui_manager.c:53 src/skins/ui_manager.c:54 +msgid "Autoscroll Songname" +msgstr "" + +#: src/skins/ui_manager.c:56 src/skins/ui_manager.c:57 +msgid "Stop after Current Song" +msgstr "" + +#: src/skins/ui_manager.c:59 src/skins/ui_manager.c:60 +#, fuzzy +msgid "Peaks" +msgstr "Pranks" + +#: src/skins/ui_manager.c:62 src/skins/ui_manager.c:63 +#, fuzzy +msgid "Repeat" +msgstr "Beat" + +#: src/skins/ui_manager.c:65 src/skins/ui_manager.c:66 +msgid "Shuffle" +msgstr "" + +#: src/skins/ui_manager.c:68 src/skins/ui_manager.c:69 +msgid "No Playlist Advance" +msgstr "" + +#: src/skins/ui_manager.c:71 src/skins/ui_manager.c:72 +msgid "Show Player" +msgstr "" + +#: src/skins/ui_manager.c:74 src/skins/ui_manager.c:75 +msgid "Show Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:77 src/skins/ui_manager.c:78 +msgid "Show Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:80 src/skins/ui_manager.c:81 +msgid "Always on Top" +msgstr "" + +#: src/skins/ui_manager.c:83 src/skins/ui_manager.c:84 +msgid "Put on All Workspaces" +msgstr "" + +#: src/skins/ui_manager.c:86 src/skins/ui_manager.c:87 +msgid "Roll up Player" +msgstr "" + +#: src/skins/ui_manager.c:89 src/skins/ui_manager.c:90 +msgid "Roll up Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:92 src/skins/ui_manager.c:93 +msgid "Roll up Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:95 src/sndstretch/sndstretch_xmms.c:375 +#, fuzzy +msgid "Scale" +msgstr "Rave" + +#: src/skins/ui_manager.c:96 +msgid "DoubleSize" +msgstr "" + +#: src/skins/ui_manager.c:98 src/skins/ui_manager.c:99 +msgid "Easy Move" +msgstr "" + +#: src/skins/ui_manager.c:107 +msgid "Analyzer" +msgstr "" + +#: src/skins/ui_manager.c:108 +#, fuzzy +msgid "Scope" +msgstr "Synthpop" + +#: src/skins/ui_manager.c:109 +msgid "Voiceprint" +msgstr "" + +#: src/skins/ui_manager.c:110 +msgid "Off" +msgstr "" + +#: src/skins/ui_manager.c:114 src/skins/ui_manager.c:131 +#: src/skins/ui_manager.c:137 +#, fuzzy +msgid "Normal" +msgstr "Fformat:" + +#: src/skins/ui_manager.c:115 src/skins/ui_manager.c:132 +#, fuzzy +msgid "Fire" +msgstr "Satire" + +#: src/skins/ui_manager.c:116 +msgid "Vertical Lines" +msgstr "" + +#: src/skins/ui_manager.c:120 +#, fuzzy +msgid "Lines" +msgstr "Lladin" + +#: src/skins/ui_manager.c:121 +#, fuzzy +msgid "Bars" +msgstr "Bas" + +#: src/skins/ui_manager.c:125 +msgid "Dot Scope" +msgstr "" + +#: src/skins/ui_manager.c:126 +msgid "Line Scope" +msgstr "" + +#: src/skins/ui_manager.c:127 +msgid "Solid Scope" +msgstr "" + +#: src/skins/ui_manager.c:133 +msgid "Ice" +msgstr "" + +#: src/skins/ui_manager.c:138 +msgid "Smooth" +msgstr "" + +#: src/skins/ui_manager.c:142 +msgid "Full (~50 fps)" +msgstr "" + +#: src/skins/ui_manager.c:143 +msgid "Half (~25 fps)" +msgstr "" + +#: src/skins/ui_manager.c:144 +msgid "Quarter (~13 fps)" +msgstr "" + +#: src/skins/ui_manager.c:145 +msgid "Eighth (~6 fps)" +msgstr "" + +#: src/skins/ui_manager.c:149 src/skins/ui_manager.c:157 +#, fuzzy +msgid "Slowest" +msgstr "Showtunes" + +#: src/skins/ui_manager.c:150 src/skins/ui_manager.c:158 +#, fuzzy +msgid "Slow" +msgstr "Slow Jam" + +#: src/skins/ui_manager.c:151 src/skins/ui_manager.c:159 +msgid "Medium" +msgstr "" + +#: src/skins/ui_manager.c:152 src/skins/ui_manager.c:160 +#, fuzzy +msgid "Fast" +msgstr "Fformat:" + +#: src/skins/ui_manager.c:153 src/skins/ui_manager.c:161 +msgid "Fastest" +msgstr "" + +#: src/skins/ui_manager.c:165 +msgid "Time Elapsed" +msgstr "" + +#: src/skins/ui_manager.c:166 +msgid "Time Remaining" +msgstr "" + +#: src/skins/ui_manager.c:180 src/skins/ui_manager.c:181 +#, fuzzy +msgid "Pause" +msgstr "Chwarae" + +#: src/skins/ui_manager.c:186 src/skins/ui_manager.c:187 +#, fuzzy +msgid "Previous" +msgstr "Primus" + +#: src/skins/ui_manager.c:189 src/skins/ui_manager.c:190 +#, fuzzy +msgid "Next" +msgstr "Testun" + +#: src/skins/ui_manager.c:195 +#, fuzzy +msgid "Visualization" +msgstr "Corff:" + +#: src/skins/ui_manager.c:196 +msgid "Visualization Mode" +msgstr "" + +#: src/skins/ui_manager.c:197 +msgid "Analyzer Mode" +msgstr "" + +#: src/skins/ui_manager.c:198 +msgid "Scope Mode" +msgstr "" + +#: src/skins/ui_manager.c:199 +msgid "Voiceprint Mode" +msgstr "" + +#: src/skins/ui_manager.c:200 +msgid "WindowShade VU Mode" +msgstr "" + +#: src/skins/ui_manager.c:201 +msgid "Refresh Rate" +msgstr "" + +#: src/skins/ui_manager.c:202 +msgid "Analyzer Falloff" +msgstr "" + +#: src/skins/ui_manager.c:203 +msgid "Peaks Falloff" +msgstr "" + +#: src/skins/ui_manager.c:208 +#, fuzzy +msgid "Playlist" +msgstr "Modd chwarae:" + +#: src/skins/ui_manager.c:210 src/skins/ui_manager.c:211 +msgid "New Playlist" +msgstr "" + +#: src/skins/ui_manager.c:213 src/skins/ui_manager.c:214 +msgid "Select Next Playlist" +msgstr "" + +#: src/skins/ui_manager.c:216 src/skins/ui_manager.c:217 +msgid "Select Previous Playlist" +msgstr "" + +#: src/skins/ui_manager.c:219 src/skins/ui_manager.c:220 +msgid "Delete Playlist" +msgstr "" + +#: src/skins/ui_manager.c:222 +msgid "Load List" +msgstr "" + +#: src/skins/ui_manager.c:223 +msgid "Loads a playlist file into the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:225 +#, fuzzy +msgid "Save List" +msgstr "Rave" + +#: src/skins/ui_manager.c:226 +msgid "Saves the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:228 +#, fuzzy +msgid "Save Default List" +msgstr "Rhagosodedig (%s)" + +#: src/skins/ui_manager.c:229 +msgid "Saves the selected playlist to the default location." +msgstr "" + +#: src/skins/ui_manager.c:232 +msgid "Refresh List" +msgstr "" + +#: src/skins/ui_manager.c:233 +msgid "Refreshes metadata associated with a playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:236 +msgid "List Manager" +msgstr "" + +#: src/skins/ui_manager.c:237 +msgid "Opens the playlist manager." +msgstr "" + +#: src/skins/ui_manager.c:243 +msgid "View" +msgstr "" + +#: src/skins/ui_manager.c:247 +msgid "Add Internet Address..." +msgstr "" + +#: src/skins/ui_manager.c:248 +msgid "Adds a remote track to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:251 +msgid "Add Files..." +msgstr "" + +#: src/skins/ui_manager.c:252 +msgid "Adds files to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:257 +msgid "Search and Select" +msgstr "" + +#: src/skins/ui_manager.c:258 +msgid "" +"Searches the playlist and selects playlist entries based on specific " +"criteria." +msgstr "" + +#: src/skins/ui_manager.c:261 +msgid "Invert Selection" +msgstr "" + +#: src/skins/ui_manager.c:262 +msgid "Inverts the selected and unselected entries." +msgstr "" + +#: src/skins/ui_manager.c:265 +msgid "Select All" +msgstr "" + +#: src/skins/ui_manager.c:266 +msgid "Selects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:269 +msgid "Select None" +msgstr "" + +#: src/skins/ui_manager.c:270 +msgid "Deselects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:275 +#, fuzzy +msgid "Remove All" +msgstr "Tynnu gyrrwr" + +#: src/skins/ui_manager.c:276 +msgid "Removes all entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:279 +msgid "Clear Queue" +msgstr "" + +#: src/skins/ui_manager.c:280 +msgid "Clears the queue associated with this playlist." +msgstr "" + +#: src/skins/ui_manager.c:283 +msgid "Remove Unavailable Files" +msgstr "" + +#: src/skins/ui_manager.c:284 +msgid "Removes unavailable files from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:287 +#, fuzzy +msgid "Remove Duplicates" +msgstr "Tynnu gyrrwr" + +#: src/skins/ui_manager.c:289 src/skins/ui_manager.c:321 +#: src/skins/ui_manager.c:351 +#, fuzzy +msgid "By Title" +msgstr "Teitl" + +#: src/skins/ui_manager.c:290 +msgid "Removes duplicate entries from the playlist by title." +msgstr "" + +#: src/skins/ui_manager.c:293 src/skins/ui_manager.c:329 +#: src/skins/ui_manager.c:359 +#, fuzzy +msgid "By Filename" +msgstr "Enw ffeil" + +#: src/skins/ui_manager.c:294 +msgid "Removes duplicate entries from the playlist by filename." +msgstr "" + +#: src/skins/ui_manager.c:297 src/skins/ui_manager.c:333 +#: src/skins/ui_manager.c:363 +#, fuzzy +msgid "By Path + Filename" +msgstr "Enw ffeil" + +#: src/skins/ui_manager.c:298 +msgid "Removes duplicate entries from the playlist by their full path." +msgstr "" + +#: src/skins/ui_manager.c:301 +msgid "Remove Unselected" +msgstr "" + +#: src/skins/ui_manager.c:302 +msgid "Remove unselected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:305 +msgid "Remove Selected" +msgstr "" + +#: src/skins/ui_manager.c:306 +msgid "Remove selected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:311 +msgid "Randomize List" +msgstr "" + +#: src/skins/ui_manager.c:312 +msgid "Randomizes the playlist." +msgstr "" + +#: src/skins/ui_manager.c:315 +msgid "Reverse List" +msgstr "" + +#: src/skins/ui_manager.c:316 +msgid "Reverses the playlist." +msgstr "" + +#: src/skins/ui_manager.c:319 +#, fuzzy +msgid "Sort List" +msgstr "Artist:" + +#: src/skins/ui_manager.c:322 src/skins/ui_manager.c:352 +msgid "Sorts the list by title." +msgstr "" + +#: src/skins/ui_manager.c:325 src/skins/ui_manager.c:355 +#, fuzzy +msgid "By Artist" +msgstr "Artist:" + +#: src/skins/ui_manager.c:326 src/skins/ui_manager.c:356 +msgid "Sorts the list by artist." +msgstr "" + +#: src/skins/ui_manager.c:330 src/skins/ui_manager.c:360 +msgid "Sorts the list by filename." +msgstr "" + +#: src/skins/ui_manager.c:334 src/skins/ui_manager.c:364 +msgid "Sorts the list by full pathname." +msgstr "" + +#: src/skins/ui_manager.c:337 src/skins/ui_manager.c:367 +#, fuzzy +msgid "By Date" +msgstr "Dyddiad!" + +#: src/skins/ui_manager.c:338 src/skins/ui_manager.c:368 +msgid "Sorts the list by modification time." +msgstr "" + +#: src/skins/ui_manager.c:341 src/skins/ui_manager.c:371 +#, fuzzy +msgid "By Track Number" +msgstr "Rhif y Trac:" + +#: src/skins/ui_manager.c:342 src/skins/ui_manager.c:372 +msgid "Sorts the list by track number." +msgstr "" + +#: src/skins/ui_manager.c:345 src/skins/ui_manager.c:375 +msgid "By Playlist Entry" +msgstr "" + +#: src/skins/ui_manager.c:346 src/skins/ui_manager.c:376 +msgid "Sorts the list by playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:349 +msgid "Sort Selected" +msgstr "" + +#: src/skins/ui_manager.c:385 +#, fuzzy +msgid "File" +msgstr "Enw ffeil" + +#: src/skins/ui_manager.c:388 +msgid "Plugin Services" +msgstr "" + +#: src/skins/ui_manager.c:390 src/skins/ui_manager.c:393 +#, fuzzy +msgid "View Track Details" +msgstr "defnyddiwch Cynnydd/Brig Trac" + +#: src/skins/ui_manager.c:391 src/skins/ui_manager.c:394 +msgid "View track details" +msgstr "" + +#: src/skins/ui_manager.c:396 src/skins/ui_manager.c:397 +#, fuzzy +msgid "About Audacious" +msgstr "Ynghylch Audacious Ategyn LIRC" + +#: src/skins/ui_manager.c:399 +#, fuzzy +msgid "Play File" +msgstr "Modd chwarae:" + +#: src/skins/ui_manager.c:400 +msgid "Load and play a file" +msgstr "" + +#: src/skins/ui_manager.c:402 +msgid "Play Location" +msgstr "" + +#: src/skins/ui_manager.c:403 +msgid "Play media from the selected location" +msgstr "" + +#: src/skins/ui_manager.c:405 +msgid "Plugin services" +msgstr "" + +#: src/skins/ui_manager.c:407 +msgid "Preferences" +msgstr "" + +#: src/skins/ui_manager.c:408 +msgid "Open preferences window" +msgstr "" + +#: src/skins/ui_manager.c:410 +msgid "_Quit" +msgstr "" + +#: src/skins/ui_manager.c:411 +#, fuzzy +msgid "Quit Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_manager.c:413 src/skins/ui_manager.c:414 +msgid "Set A-B" +msgstr "" + +#: src/skins/ui_manager.c:416 src/skins/ui_manager.c:417 +msgid "Clear A-B" +msgstr "" + +#: src/skins/ui_manager.c:419 src/skins/ui_manager.c:420 +msgid "Jump to Playlist Start" +msgstr "" + +#: src/skins/ui_manager.c:428 +msgid "Queue Toggle" +msgstr "" + +#: src/skins/ui_manager.c:429 +msgid "Enables/disables the entry in the playlist's queue." +msgstr "" + +#: src/skins/ui_manager.c:436 +msgid "Load" +msgstr "" + +#: src/skins/ui_manager.c:441 src/skins/ui_manager.c:462 +#: src/skins/ui_manager.c:477 +#, fuzzy +msgid "Preset" +msgstr "Porth" + +#: src/skins/ui_manager.c:442 +msgid "Load preset" +msgstr "" + +#: src/skins/ui_manager.c:444 src/skins/ui_manager.c:465 +#: src/skins/ui_manager.c:480 +msgid "Auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:445 +msgid "Load auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:448 +msgid "Load default preset into equalizer" +msgstr "" + +#: src/skins/ui_manager.c:450 +#, fuzzy +msgid "Zero" +msgstr "Retro" + +#: src/skins/ui_manager.c:451 +msgid "Set equalizer preset levels to zero" +msgstr "" + +#: src/skins/ui_manager.c:453 +msgid "From file" +msgstr "" + +#: src/skins/ui_manager.c:454 +msgid "Load preset from file" +msgstr "" + +#: src/skins/ui_manager.c:456 +msgid "From WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:457 +msgid "Load preset from WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:459 +msgid "WinAMP Presets" +msgstr "" + +#: src/skins/ui_manager.c:460 +msgid "Import WinAMP presets" +msgstr "" + +#: src/skins/ui_manager.c:463 +msgid "Save preset" +msgstr "" + +#: src/skins/ui_manager.c:466 +msgid "Save auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:469 +#, fuzzy +msgid "Save default preset" +msgstr "rhagosodedig" + +#: src/skins/ui_manager.c:471 +#, fuzzy +msgid "To file" +msgstr "Teitl:" + +#: src/skins/ui_manager.c:472 +#, fuzzy +msgid "Save preset to file" +msgstr "Cadw'r llif i ddisg" + +#: src/skins/ui_manager.c:474 +msgid "To WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:475 +msgid "Save preset to WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:478 +#, fuzzy +msgid "Delete preset" +msgstr "Rhagosodedig" + +#: src/skins/ui_manager.c:481 +msgid "Delete auto-load preset" +msgstr "" + +#: src/skins/ui_playlist.c:454 +msgid "Search entries in active playlist" +msgstr "" + +#: src/skins/ui_playlist.c:462 +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 "" + +#: src/skins/ui_playlist.c:477 +#, fuzzy +msgid "Album: " +msgstr "Albwm:" + +#: src/skins/ui_playlist.c:484 +#, fuzzy +msgid "Artist: " +msgstr "Artist:" + +#: src/skins/ui_playlist.c:491 +#, fuzzy +msgid "Filename: " +msgstr "Enw Defnyddiwr:" + +#: src/skins/ui_playlist.c:499 +msgid "Clear previous selection before searching" +msgstr "" + +#: src/skins/ui_playlist.c:502 +msgid "Automatically toggle queue for matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:505 +msgid "Create a new playlist with matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:724 +#, c-format +msgid "Error writing playlist \"%s\": %s" +msgstr "" + +#: src/skins/ui_playlist.c:746 +#, c-format +msgid "%s already exist. Continue?" +msgstr "" + +#: src/skins/ui_playlist.c:761 +#, c-format +msgid "" +"Unable to save playlist.\n" +"\n" +"Unknown file type for '%s'.\n" +msgstr "" + +#: src/skins/ui_playlist.c:887 +msgid "Save as Static Playlist" +msgstr "" + +#: src/skins/ui_playlist.c:894 +msgid "Use Relative Path" +msgstr "" + +#: src/skins/ui_playlist.c:916 +msgid "Load Playlist" +msgstr "" + +#: src/skins/ui_playlist.c:929 +msgid "Save Playlist" +msgstr "" + +#: src/skins/ui_playlist.c:1497 +msgid "Audacious Playlist Editor" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "PREAMP" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "60HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "170HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "310HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +#, fuzzy +msgid "600HZ" +msgstr "11000 Hz" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "1KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "3KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "6KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "12KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "14KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "16KHZ" +msgstr "" + +#: src/skins/ui_skinselector.c:178 +msgid "Archived Winamp 2.x skin" +msgstr "" + +#: src/skins/ui_skinselector.c:183 +msgid "Unarchived Winamp 2.x skin" +msgstr "" + +#: src/skins/util.c:1132 +#, fuzzy, c-format +msgid "Could not create directory (%s): %s\n" +msgstr "" +"Methu gwirio'r cyfeiradur %s\n" +"Gwall: %s" + +#: src/sndfile/plugin.c:554 #, fuzzy msgid "About sndfile plugin" msgstr "Ategyn Sain WAV (sndfile)" -#: src/sndfile/plugin.c:549 +#: src/sndfile/plugin.c:555 msgid "" "Adapted for Audacious usage by Tony Vroon \n" "from the xmms_sndfile plugin which is:\n" @@ -4390,70 +5526,65 @@ " MA 02111-1307,\n" "USA." -#: src/sndstretch/sndstretch_xmms.c:159 +#: src/sndstretch/sndstretch_xmms.c:158 #, fuzzy msgid "About SndStretch" msgstr "Ynghylch Gyrrwr OSS" -#: src/sndstretch/sndstretch_xmms.c:319 +#: src/sndstretch/sndstretch_xmms.c:318 #, fuzzy msgid "Volume corr." msgstr "Rheolwr sain" -#: src/sndstretch/sndstretch_xmms.c:320 +#: src/sndstretch/sndstretch_xmms.c:319 msgid "Short Overlap" msgstr "" -#: src/sndstretch/sndstretch_xmms.c:374 +#: src/sndstretch/sndstretch_xmms.c:373 #, fuzzy msgid "Speed" msgstr "Llais" -#: src/sndstretch/sndstretch_xmms.c:375 +#: src/sndstretch/sndstretch_xmms.c:374 #, fuzzy msgid "Pitch" msgstr "Llwybr:" -#: src/sndstretch/sndstretch_xmms.c:376 -#, fuzzy -msgid "Scale" -msgstr "Rave" - -#: src/sndstretch/sndstretch_xmms.c:396 +#: src/sndstretch/sndstretch_xmms.c:395 #, fuzzy msgid "SndStretch - Configuration" msgstr "Ffurfweddu'r Gyrrwr Sun" -#: src/song_change/song_change.c:312 +#: src/song_change/song_change.c:310 msgid "Commands" msgstr "Gorchymyn:" -#: src/song_change/song_change.c:319 +#: src/song_change/song_change.c:317 msgid "Command to run when Audacious starts a new song." msgstr "Gorchymyn cragen i'w redeg pan fo Audacious yn newid cân." -#: src/song_change/song_change.c:328 src/song_change/song_change.c:350 -#: src/song_change/song_change.c:371 src/song_change/song_change.c:392 +#: src/song_change/song_change.c:326 src/song_change/song_change.c:348 +#: src/song_change/song_change.c:369 src/song_change/song_change.c:390 msgid "Command:" msgstr "Gorchymyn:" -#: src/song_change/song_change.c:342 +#: src/song_change/song_change.c:340 msgid "Command to run toward the end of a song." msgstr "" "Gorchymyn cragen, i'w redeg pan fo Audacious wedi cyrraedd diwedd chwarae." -#: src/song_change/song_change.c:362 +#: src/song_change/song_change.c:360 msgid "Command to run when Audacious reaches the end of the playlist." msgstr "" "Gorchymyn cragen.i'w redeg pan fo Audacious wedi cyrraedd diwedd rhestr " "chwarae." -#: src/song_change/song_change.c:383 +#: src/song_change/song_change.c:381 msgid "" "Command to run when title changes for a song (i.e. network streams titles)." msgstr "" -#: src/song_change/song_change.c:404 +#: src/song_change/song_change.c:402 #, c-format msgid "" "You can use the following format strings which\n" @@ -4470,7 +5601,7 @@ "%%p: Currently playing (1 or 0)" msgstr "" -#: src/song_change/song_change.c:429 +#: src/song_change/song_change.c:427 msgid "" "Parameters passed to the shell should be encapsulated in " "quotes. Doing otherwise is a security risk." @@ -4478,7 +5609,7 @@ "Dylai enw ffeil a thagiau teitl cân fod o fewn dyfynodau " "dwb (\"). Gall peidio gwneud achosi risg diogelwch." -#: src/spectrum/spectrum.c:90 +#: src/spectrum/spectrum.c:89 msgid "Spectrum Analyzer" msgstr "" @@ -4491,12 +5622,12 @@ msgid "The orientation of the tray" msgstr "" -#: src/statusicon/si_ui.c:622 +#: src/statusicon/si_ui.c:620 #, fuzzy msgid "About Status Icon Plugin" msgstr "Ynghylch Ategyn ESounD" -#: src/statusicon/si_ui.c:624 +#: src/statusicon/si_ui.c:622 msgid "" "\n" "written by Giacomo Lozito < james@develia.org >\n" @@ -4505,40 +5636,40 @@ "the system tray area of the window manager.\n" msgstr "" -#: src/statusicon/si_ui.c:696 +#: src/statusicon/si_ui.c:694 #, fuzzy msgid "Status Icon Plugin - Preferences" msgstr "Ynghylch Ategyn ESounD" -#: src/statusicon/si_ui.c:707 +#: src/statusicon/si_ui.c:705 msgid "Right-Click Menu" msgstr "" -#: src/statusicon/si_ui.c:712 +#: src/statusicon/si_ui.c:710 msgid "Audacious standard menu" msgstr "" -#: src/statusicon/si_ui.c:717 +#: src/statusicon/si_ui.c:715 msgid "Small playback menu #1" msgstr "" -#: src/statusicon/si_ui.c:722 +#: src/statusicon/si_ui.c:720 msgid "Small playback menu #2" msgstr "" -#: src/statusicon/si_ui.c:745 +#: src/statusicon/si_ui.c:743 msgid "Mouse Scroll Action" msgstr "" -#: src/statusicon/si_ui.c:750 +#: src/statusicon/si_ui.c:748 msgid "Change volume" msgstr "" -#: src/statusicon/si_ui.c:755 +#: src/statusicon/si_ui.c:753 msgid "Change playing song" msgstr "" -#: src/stereo_plugin/stereo.c:26 +#: src/stereo_plugin/stereo.c:25 msgid "" "Extra Stereo Plugin\n" "\n" @@ -4548,23 +5679,19 @@ "\n" "Gan Johan Levin 1999." -#: src/stereo_plugin/stereo.c:52 +#: src/stereo_plugin/stereo.c:51 msgid "About Extra Stereo Plugin" msgstr "Ynghylch Ategyn Extra Stereo" -#: src/stereo_plugin/stereo.c:93 +#: src/stereo_plugin/stereo.c:92 msgid "Configure Extra Stereo" msgstr "Ffurfweddu Extra Stereo" -#: src/stereo_plugin/stereo.c:95 -msgid "Effect intensity:" -msgstr "Dwyster yr effaith:" +#: src/sun/about.c:33 +msgid "About the Sun Driver" +msgstr "Ynghylch Gyrrwr Sun" #: src/sun/about.c:34 -msgid "About the Sun Driver" -msgstr "Ynghylch Gyrrwr Sun" - -#: src/sun/about.c:35 msgid "" "XMMS BSD Sun Driver\n" "\n" @@ -4576,19 +5703,19 @@ " Hawlfraint (c) 2001 CubeSoft Communications, Inc.\n" "Cynhaliwr: .\n" -#: src/sun/configure.c:201 +#: src/sun/configure.c:199 msgid "Audio control device:" msgstr "Dyfais rheoli sain:" -#: src/sun/configure.c:350 +#: src/sun/configure.c:348 msgid "Volume controls device:" msgstr "Dyfais rheoli sain:" -#: src/sun/configure.c:363 +#: src/sun/configure.c:361 msgid "XMMS uses mixer exclusively." msgstr " XMMS yn defnyddio'r cymysgydd yn unig" -#: src/sun/configure.c:538 +#: src/sun/configure.c:536 msgid "Sun driver configuration" msgstr "Ffurfweddu'r Gyrrwr Sun" @@ -4616,7 +5743,7 @@ msgid "TiMidity Configuration File" msgstr "Ffeil Ffurfweddiad TiMidity" -#: src/timidity/xmms-timidity.c:118 +#: src/timidity/xmms-timidity.c:115 msgid "" "TiMidity Plugin\n" "http://libtimidity.sourceforge.net\n" @@ -4626,20 +5753,20 @@ "http://libtimidity.sourceforge.net\n" "gan Konstantin Korikov" -#: src/timidity/xmms-timidity.c:119 +#: src/timidity/xmms-timidity.c:116 #, c-format msgid "TiMidity Plugin %s" msgstr "Ategyn TiMidity %s" -#: src/timidity/xmms-timidity.c:336 +#: src/timidity/xmms-timidity.c:333 msgid "Couldn't load MIDI file" msgstr "Meth agor dyfais ffeil MIDI" -#: src/tonegen/tonegen.c:56 +#: src/tonegen/tonegen.c:55 msgid "About Tone Generator" msgstr "Ynghylch Cynhyrchydd Tôn" -#: src/tonegen/tonegen.c:58 +#: src/tonegen/tonegen.c:57 msgid "" "Sinus tone generator by Haavard Kvaalen \n" "Modified by Daniel J. Peng \n" @@ -4654,91 +5781,91 @@ "frequency3;...\n" "e.e. tôn://2000;2005 i chwarae tôn 2000Hz a thôn 2005Hz" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 #, c-format msgid "%s %.1f Hz" msgstr "" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 msgid "Tone Generator: " msgstr "Cynhyrchydd Tôn:" +#: src/tta/libtta.c:127 +msgid "Can't open file\n" +msgstr "" + #: src/tta/libtta.c:130 -msgid "Can't open file\n" +msgid "Not supported file format\n" msgstr "" #: src/tta/libtta.c:133 -msgid "Not supported file format\n" +msgid "File is corrupted\n" msgstr "" #: src/tta/libtta.c:136 -msgid "File is corrupted\n" +msgid "Can't read from file\n" msgstr "" #: src/tta/libtta.c:139 -msgid "Can't read from file\n" +msgid "Insufficient memory available\n" msgstr "" #: src/tta/libtta.c:142 -msgid "Insufficient memory available\n" -msgstr "" - -#: src/tta/libtta.c:145 #, fuzzy msgid "Output plugin error\n" msgstr "Null ategyn allbwn" -#: src/tta/libtta.c:148 +#: src/tta/libtta.c:145 #, fuzzy msgid "Unknown error\n" msgstr "Cerdyn sain anhysbys" -#: src/tta/libtta.c:152 +#: src/tta/libtta.c:149 msgid "TTA Decoder Error" msgstr "" -#: src/tta/libtta.c:261 +#: src/tta/libtta.c:258 #, fuzzy msgid "TTA input plugin " msgstr "Null ategyn allbwn" -#: src/tta/libtta.c:262 +#: src/tta/libtta.c:259 msgid "" " for BMP\n" "Copyright (c) 2004 True Audio Software\n" msgstr "" -#: src/tta/libtta.c:265 +#: src/tta/libtta.c:262 #, fuzzy msgid "About True Audio Plugin" msgstr "Ynghylch Ategyn Sain MPEG" -#: src/tta/libtta.c:316 +#: src/tta/libtta.c:313 #, fuzzy msgid "ID3 Tag:" msgstr "Tagiau ID3:" -#: src/tta/libtta.c:378 src/wavpack/ui.cxx:234 +#: src/tta/libtta.c:375 src/wavpack/ui.cxx:232 msgid "Track number:" msgstr "Rhif y Trac:" -#: src/vorbis/configure.c:84 +#: src/vorbis/configure.c:82 msgid "Ogg Vorbis Audio Plugin Configuration" msgstr "Ffurfweddiad Ogg Vorbis" -#: src/vorbis/configure.c:94 +#: src/vorbis/configure.c:92 msgid "Ogg Vorbis Tags:" msgstr "Tagiau Ogg Vorbis:" -#: src/vorbis/configure.c:115 +#: src/vorbis/configure.c:113 msgid "Title format:" msgstr "Fformat y teitl:" -#: src/vorbis/vorbis.c:681 +#: src/vorbis/vorbis.c:677 msgid "About Ogg Vorbis Audio Plugin" msgstr "Ynghylch Ategyn Ogg Vorbis" -#: src/vorbis/vorbis.c:687 +#: src/vorbis/vorbis.c:683 #, fuzzy msgid "" "Ogg Vorbis Plugin by the Xiph.org Foundation\n" @@ -4772,11 +5899,11 @@ "\n" "Ewch i Xiph.org Founfation yn http://www.xiph.org/\n" -#: src/vtx/about.c:23 +#: src/vtx/about.c:17 msgid "About Vortex Player" msgstr "" -#: src/vtx/about.c:25 +#: src/vtx/about.c:19 msgid "" "Vortex file format player by Sashnov Alexander \n" "Founded on original source in_vtx.dll by Roman Sherbakov " msgstr "" -#: src/wavpack/ui.cxx:52 +#: src/wavpack/ui.cxx:50 #, fuzzy, c-format msgid "Wavpack Decoder Plugin %s" msgstr "Ategyn Echo %s" -#: src/wavpack/ui.cxx:53 +#: src/wavpack/ui.cxx:51 msgid "" "Copyright (c) 2006 William Pitcock \n" "\n" @@ -4801,98 +5928,98 @@ "Visit the Wavpack site at http://www.wavpack.com/\n" msgstr "" -#: src/wavpack/ui.cxx:165 +#: src/wavpack/ui.cxx:163 msgid "Ape2 Tag" msgstr "" -#: src/wavpack/ui.cxx:288 +#: src/wavpack/ui.cxx:286 msgid "Wavpack Info:" msgstr "" +#: src/wavpack/ui.cxx:379 +#, fuzzy, c-format +msgid "version %d" +msgstr "Fersiwn:" + +#: src/wavpack/ui.cxx:380 +#, c-format +msgid "average bitrate: %6.1f kbps" +msgstr "" + #: src/wavpack/ui.cxx:381 #, fuzzy, c-format -msgid "version %d" -msgstr "Fersiwn:" +msgid "samplerate: %d Hz" +msgstr "Graddfa samplo:" #: src/wavpack/ui.cxx:382 #, c-format -msgid "average bitrate: %6.1f kbps" +msgid "bits per sample: %d" msgstr "" #: src/wavpack/ui.cxx:383 #, fuzzy, c-format -msgid "samplerate: %d Hz" -msgstr "Graddfa samplo:" +msgid "channels: %d" +msgstr "Sianeli:" #: src/wavpack/ui.cxx:384 -#, c-format -msgid "bits per sample: %d" -msgstr "" - -#: src/wavpack/ui.cxx:385 -#, fuzzy, c-format -msgid "channels: %d" -msgstr "Sianeli:" - -#: src/wavpack/ui.cxx:386 #, fuzzy, c-format msgid "length: %d:%.2d" msgstr "" "\n" "Cyfanswm hyd: %d:%.2d\n" -#: src/wavpack/ui.cxx:387 +#: src/wavpack/ui.cxx:385 #, fuzzy, c-format msgid "file size: %d Bytes" msgstr "Maint ffeil:" -#: src/wavpack/ui.cxx:394 +#: src/wavpack/ui.cxx:392 #, fuzzy msgid "Title Peak: ?" msgstr "Teitl:" -#: src/wavpack/ui.cxx:395 +#: src/wavpack/ui.cxx:393 #, fuzzy msgid "Album Peak: ?" msgstr "Brig albwm:" -#: src/wavpack/ui.cxx:396 +#: src/wavpack/ui.cxx:394 #, fuzzy msgid "Title Gain: ?" msgstr "Newid Teitl" -#: src/wavpack/ui.cxx:397 +#: src/wavpack/ui.cxx:395 #, fuzzy msgid "Album Gain: ?" msgstr "Cynydd albwm:" -#: src/wavpack/ui.cxx:471 +#: src/wavpack/ui.cxx:469 #, fuzzy msgid "Wavpack Configuration" msgstr "Ffurfweddiad TiMidity" -#: src/wavpack/ui.cxx:484 +#: src/wavpack/ui.cxx:482 #, fuzzy msgid "General Plugin Settings:" msgstr "Gosodiadau'r ReplayGain:" -#: src/wavpack/ui.cxx:502 +#: src/wavpack/ui.cxx:500 msgid "ReplayGain Settings:" msgstr "Gosodiadau'r ReplayGain:" -#: src/wavpack/ui.cxx:520 +#: src/wavpack/ui.cxx:518 msgid "ReplayGain Type:" msgstr "Math ReplayGain:" -#: src/wavpack/ui.cxx:531 +#: src/wavpack/ui.cxx:529 msgid "use Track Gain/Peak" msgstr "defnyddiwch Cynnydd/Brig Trac" -#: src/wavpack/ui.cxx:539 +#: src/wavpack/ui.cxx:537 msgid "use Album Gain/Peak" msgstr "defnyddio Cynnydd/Brig Albwm" -#: src/wma/wma.c:123 +#: src/wma/wma.c:120 msgid "" "Adapted for use in Audacious by Tony Vroon (chainsaw@gentoo.org) from\n" "the BEEP-WMA plugin which is Copyright (C) 2004,2005 Mokrushin I.V. aka " @@ -4949,14 +6076,6 @@ #~ msgstr "Ynghylch ategyn sndfile-WAV" #, fuzzy -#~ msgid "Play/Pause:" -#~ msgstr "Chwarae" - -#, fuzzy -#~ msgid "File Info" -#~ msgstr "Gwybodaeth Ffeil - %s" - -#, fuzzy #~ msgid "Couldn't open file!" #~ msgstr "Meth agor dyfais ffeil MIDI" @@ -4981,9 +6100,6 @@ #~ msgid "%d Hz" #~ msgstr "%d Hz" -#~ msgid "Blues" -#~ msgstr "Y Felan" - #~ msgid "Classic Rock" #~ msgstr "Roc Clasurol" @@ -5050,9 +6166,6 @@ #~ msgid "Death Metal" #~ msgstr "Death Metal" -#~ msgid "Pranks" -#~ msgstr "Pranks" - #~ msgid "Soundtrack" #~ msgstr "Trac Sain" @@ -5104,9 +6217,6 @@ #~ msgid "AlternRock" #~ msgstr "AlternRock" -#~ msgid "Bass" -#~ msgstr "Bas" - #~ msgid "Soul" #~ msgstr "Soul" @@ -5188,9 +6298,6 @@ #~ msgid "Rave" #~ msgstr "Rave" -#~ msgid "Showtunes" -#~ msgstr "Showtunes" - #~ msgid "Trailer" #~ msgstr "Trailer" @@ -5209,9 +6316,6 @@ #~ msgid "Polka" #~ msgstr "Polka" -#~ msgid "Retro" -#~ msgstr "Retro" - #~ msgid "Musical" #~ msgstr "Musical" @@ -5239,9 +6343,6 @@ #~ msgid "Bebob" #~ msgstr "Bebob" -#~ msgid "Latin" -#~ msgstr "Lladin" - #~ msgid "Revival" #~ msgstr "Revival" @@ -5305,18 +6406,9 @@ #~ msgid "Booty Bass" #~ msgstr "Booty Bass" -#~ msgid "Primus" -#~ msgstr "Primus" - #~ msgid "Porn Groove" #~ msgstr "Porn Groove" -#~ msgid "Satire" -#~ msgstr "Satire" - -#~ msgid "Slow Jam" -#~ msgstr "Slow Jam" - #~ msgid "Club" #~ msgstr "Club" @@ -5386,9 +6478,6 @@ #~ msgid "Polsk Punk" #~ msgstr "Polsk Punk" -#~ msgid "Beat" -#~ msgstr "Beat" - #~ msgid "Christian Gangsta Rap" #~ msgstr "Gangsta Rap Cristnogol" @@ -5447,9 +6536,6 @@ #~ msgid " Ogg Vorbis Tag " #~ msgstr "Tag Ogg Vorbis:" -#~ msgid "Date:" -#~ msgstr "Dyddiad!" - #~ msgid "Description:" #~ msgstr "Disgrifiad:" @@ -5459,15 +6545,9 @@ #~ msgid "ISRC number:" #~ msgstr "Rhif ISRC:" -#~ msgid "Organization:" -#~ msgstr "Corff:" - #~ msgid " Ogg Vorbis ReplayGain " #~ msgstr " Ogg Vorbis ReplayGain " -#~ msgid "Track gain:" -#~ msgstr "Cynnydd trac:" - #~ msgid "Track peak:" #~ msgstr "Brig trac:" @@ -5507,9 +6587,6 @@ #~ msgid "%d Bytes" #~ msgstr "%d Bytes" -#~ msgid "%s - Audacious" -#~ msgstr "%s - Audacious" - #~ msgid "Use software volume control" #~ msgstr "Defnyddio rheolwr sain meddalwedd" @@ -5543,10 +6620,6 @@ #~ msgstr "11000 Hz" #, fuzzy -#~ msgid "16000" -#~ msgstr "11000 Hz" - -#, fuzzy #~ msgid "24000" #~ msgstr "22000 Hz" @@ -5607,13 +6680,6 @@ #~ "Methodd prawf tynnu sain digidol: %s\n" #~ "\n" -#~ msgid "" -#~ "Failed to check directory %s\n" -#~ "Error: %s" -#~ msgstr "" -#~ "Methu gwirio'r cyfeiradur %s\n" -#~ "Gwall: %s" - #~ msgid "Error: %s exist, but is not a directory" #~ msgstr "Gwall: %s yn bodoli ond nid yw'n gyfeiriadur" @@ -5644,9 +6710,6 @@ #~ msgid "Check drive..." #~ msgstr "Gwirio'r gyrrwr..." -#~ msgid "Remove drive" -#~ msgstr "Tynnu gyrrwr" - #~ msgid "CD Audio Player Configuration" #~ msgstr "Ffurfweddiad Chwaraeydd CD Sain" @@ -5665,9 +6728,6 @@ #~ msgid "Get server list" #~ msgstr "Estyn rhestr gwasanaethwr" -#~ msgid "Show network window" -#~ msgstr "Dangos ffenestr rhwydwaith" - #~ msgid "CDDB server:" #~ msgstr "Gwasanaethwr CDDB:" @@ -6013,18 +7073,12 @@ #~ msgid "Save stream to disk:" #~ msgstr "Cadw'r llif i ddisg:" -#~ msgid "Save stream to disk" -#~ msgstr "Cadw'r llif i ddisg" - #~ msgid "SHOUT/Icecast:" #~ msgstr "SHOUT/Icecast:" #~ msgid "Enable Icecast Metadata UDP Channel" #~ msgstr "Galluogi Sianel Icecast Metadata UDP" -#~ msgid "Disable ID3V2 tags" -#~ msgstr "Analluogi tagiau ID3V2" - #~ msgid "Dual channel" #~ msgstr "Sianel ddeuol" diff -r c40585c57877 -r 7fc2c317d190 po/de.po --- a/po/de.po Thu Jul 03 17:23:34 2008 +0300 +++ b/po/de.po Thu Jul 03 17:37:11 2008 +0300 @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: de\n" -"Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" -"POT-Creation-Date: 2008-03-30 17:25+0200\n" +"Report-Msgid-Bugs-To: http://bugzilla.atheme.org/\n" +"POT-Creation-Date: 2008-06-21 08:27+0300\n" "PO-Revision-Date: 2008-03-30 17:07+0100\n" "Last-Translator: Michael Färber <0102@gmx.at>\n" "Language-Team: german <0102@gmx.at>\n" @@ -11,11 +11,11 @@ "Content-Transfer-Encoding: 8bit\n" "X-Poedit-Language: German\n" -#: src/aac/libmp4.c:286 +#: src/aac/libmp4.c:283 msgid "Using libfaad2-" msgstr "Benütze libfaad2-" -#: src/aac/libmp4.c:287 +#: src/aac/libmp4.c:284 msgid "" " for decoding.\n" "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n" @@ -25,38 +25,38 @@ "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n" "Copyright (c) 2005-2006 Audacious team" -#: src/aac/libmp4.c:291 +#: src/aac/libmp4.c:288 msgid "About MP4 AAC player plugin" msgstr "Über MP4-AAC-Player-Plugin" -#: src/aac/libmp4.c:293 src/adplug/adplug-xmms.cc:182 -#: src/adplug/adplug-xmms.cc:265 src/adplug/adplug-xmms.cc:526 -#: src/alac/plugin.c:77 src/arts/arts.c:26 src/arts/configure.c:90 -#: src/audiocompress/audacious-glue.c:102 -#: src/audiocompress/audacious-glue.c:552 src/cdaudio-ng/configure.c:228 -#: src/console/Audacious_Driver.cxx:449 src/demac/plugin.c:393 -#: src/echo_plugin/gui.c:26 src/echo_plugin/gui.c:137 src/esd/about.c:49 -#: src/filewriter/filewriter.c:183 src/jack/configure.c:141 -#: src/jack/jack.c:456 src/madplug/plugin.c:542 src/madplug/plugin.c:566 -#: src/metronom/metronom.c:88 src/modplug/gui/main.cxx:49 -#: src/musepack/libmpc.cxx:232 src/null/null.c:67 src/null/null.c:110 -#: src/OSS4/about.c:59 src/OSS/about.c:54 src/paranormal-ng/plugin.c:283 -#: src/paranormal/plugin.c:291 src/scrobbler/gtkstuff.c:25 -#: src/sndfile/plugin.c:565 src/statusicon/si_ui.c:628 -#: src/stereo_plugin/stereo.c:53 src/stereo_plugin/stereo.c:116 -#: src/sun/about.c:38 src/sun/configure.c:559 src/timidity/interface.c:222 -#: src/timidity/xmms-timidity.c:120 src/tonegen/tonegen.c:62 -#: src/tta/libtta.c:153 src/tta/libtta.c:267 src/tta/libtta.c:402 -#: src/vorbis/vorbis.c:700 src/vtx/about.c:32 src/vtx/info.c:43 -#: src/wavpack/ui.cxx:56 src/wavpack/ui.cxx:556 +#: src/aac/libmp4.c:290 src/adplug/adplug-xmms.cc:180 +#: src/adplug/adplug-xmms.cc:263 src/adplug/adplug-xmms.cc:524 +#: src/alac/plugin.c:74 src/arts/arts.c:25 src/arts/configure.c:90 +#: src/audiocompress/audacious-glue.c:110 +#: src/audiocompress/audacious-glue.c:560 src/cdaudio-ng/configure.c:242 +#: src/console/Audacious_Driver.cxx:447 src/crystalizer/crystalizer.c:113 +#: src/demac/plugin.c:364 src/echo_plugin/gui.c:24 src/echo_plugin/gui.c:135 +#: src/esd/about.c:48 src/filewriter/filewriter.c:183 src/jack/configure.c:140 +#: src/jack/jack.c:454 src/madplug/plugin.c:679 src/madplug/plugin.c:703 +#: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:52 +#: src/musepack/libmpc.cxx:228 src/null/null.c:64 src/null/null.c:107 +#: src/OSS4/OSS4.c:55 src/OSS/OSS.c:52 src/paranormal-ng/plugin.c:282 +#: src/paranormal/plugin.c:290 src/scrobbler/gtkstuff.c:22 +#: src/sndfile/plugin.c:571 src/statusicon/si_ui.c:626 +#: src/stereo_plugin/stereo.c:52 src/stereo_plugin/stereo.c:115 +#: src/sun/about.c:37 src/sun/configure.c:557 src/timidity/interface.c:222 +#: src/timidity/xmms-timidity.c:117 src/tonegen/tonegen.c:61 +#: src/tta/libtta.c:150 src/tta/libtta.c:264 src/tta/libtta.c:399 +#: src/vorbis/vorbis.c:696 src/vtx/about.c:26 src/vtx/info.c:38 +#: src/wavpack/ui.cxx:54 src/wavpack/ui.cxx:554 msgid "Ok" msgstr "OK" -#: src/adplug/adplug-xmms.cc:171 +#: src/adplug/adplug-xmms.cc:169 msgid "About " msgstr "Über" -#: src/adplug/adplug-xmms.cc:175 +#: src/adplug/adplug-xmms.cc:173 msgid "" "\n" "Copyright (C) 2002, 2003 Simon Peter \n" @@ -79,65 +79,65 @@ "Peter, et al.\n" "Gelinkte AdPlug-Bibliotheks-Version: " -#: src/adplug/adplug-xmms.cc:256 +#: src/adplug/adplug-xmms.cc:254 msgid "AdPlug :: Configuration" msgstr "AdPlug :: Konfiguration" -#: src/adplug/adplug-xmms.cc:275 src/alarm/interface.c:1398 +#: src/adplug/adplug-xmms.cc:273 src/alarm/interface.c:1398 #: src/alsa/configure.c:389 src/arts/configure.c:91 -#: src/audiocompress/audacious-glue.c:557 src/cdaudio-ng/configure.c:232 -#: src/echo_plugin/gui.c:145 src/jack/configure.c:148 -#: src/modplug/gui/interface.cxx:714 src/modplug/gui/modplug.glade:1668 -#: src/musepack/libmpc.cxx:237 src/musepack/libmpc.cxx:557 src/null/null.c:111 -#: src/sid/xmms-sid.glade:3080 src/sid/xs_interface.c:1250 -#: src/stereo_plugin/stereo.c:125 src/sun/configure.c:567 -#: src/timidity/interface.c:230 src/wavpack/ui.cxx:280 src/wavpack/ui.cxx:563 +#: src/audiocompress/audacious-glue.c:565 src/cdaudio-ng/configure.c:246 +#: src/crystalizer/crystalizer.c:122 src/echo_plugin/gui.c:143 +#: src/jack/configure.c:147 src/modplug/gui/interface.cxx:714 +#: src/modplug/gui/modplug.glade:1668 src/musepack/libmpc.cxx:233 +#: src/musepack/libmpc.cxx:553 src/null/null.c:108 +#: src/stereo_plugin/stereo.c:124 src/sun/configure.c:565 +#: src/timidity/interface.c:230 src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561 msgid "Cancel" msgstr "Abbrechen" -#: src/adplug/adplug-xmms.cc:291 src/console/Audacious_Config.cxx:145 -#: src/madplug/configure.c:290 src/modplug/gui/interface.cxx:628 +#: src/adplug/adplug-xmms.cc:289 src/console/Audacious_Config.cxx:144 +#: src/madplug/configure.c:289 src/modplug/gui/interface.cxx:628 #: src/modplug/gui/interface.cxx:887 src/modplug/gui/modplug.glade:1404 #: src/modplug/gui/modplug.glade:1804 msgid "General" msgstr "Allgemein" -#: src/adplug/adplug-xmms.cc:303 +#: src/adplug/adplug-xmms.cc:301 msgid "Sound quality" msgstr "Sound-Qualität" -#: src/adplug/adplug-xmms.cc:308 src/modplug/gui/interface.cxx:187 +#: src/adplug/adplug-xmms.cc:306 src/modplug/gui/interface.cxx:187 #: src/modplug/gui/modplug.glade:113 msgid "Resolution" msgstr "Auflösung" -#: src/adplug/adplug-xmms.cc:310 +#: src/adplug/adplug-xmms.cc:308 msgid "8bit" msgstr "8 Bit" -#: src/adplug/adplug-xmms.cc:315 +#: src/adplug/adplug-xmms.cc:313 msgid "16bit" msgstr "16 Bit" -#: src/adplug/adplug-xmms.cc:323 src/modplug/gui/interface.cxx:218 +#: src/adplug/adplug-xmms.cc:321 src/modplug/gui/interface.cxx:218 #: src/modplug/gui/modplug.glade:199 src/timidity/interface.c:148 msgid "Channels" msgstr "Kanäle" -#: src/adplug/adplug-xmms.cc:325 src/filewriter/mp3.c:900 -#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:288 +#: src/adplug/adplug-xmms.cc:323 src/filewriter/mp3.c:900 +#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:300 #: src/timidity/interface.c:165 msgid "Mono" msgstr "Mono" -#: src/adplug/adplug-xmms.cc:330 src/filewriter/mp3.c:895 +#: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:895 #: src/modplug/gui/interface.cxx:204 src/modplug/gui/modplug.glade:159 -#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:295 +#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:307 #: src/timidity/interface.c:173 msgid "Stereo" msgstr "Stereo" -#: src/adplug/adplug-xmms.cc:334 +#: src/adplug/adplug-xmms.cc:332 msgid "" "Setting stereo is not recommended, unless you need to. This won't add any " "stereo effects to the sound - OPL2 is just mono - but eats up more CPU power!" @@ -145,43 +145,43 @@ "Vom Gebrauch von Stereo wird abgeraten, da es dem Klang keine Stereo-Effekte " "hinzufügt - OPL2 ist nur Mono - aber mehr Rechenleistung benötigt!" -#: src/adplug/adplug-xmms.cc:342 +#: src/adplug/adplug-xmms.cc:340 msgid "Frequency" msgstr "Frequenz" -#: src/adplug/adplug-xmms.cc:378 src/adplug/adplug-xmms.cc:582 -#: src/console/Audacious_Config.cxx:147 +#: src/adplug/adplug-xmms.cc:376 src/adplug/adplug-xmms.cc:580 +#: src/console/Audacious_Config.cxx:146 src/skins/ui_manager.c:175 msgid "Playback" msgstr "Wiedergabe" -#: src/adplug/adplug-xmms.cc:382 +#: src/adplug/adplug-xmms.cc:380 msgid "Detect songend" msgstr "Liedende ermitteln" -#: src/adplug/adplug-xmms.cc:386 +#: src/adplug/adplug-xmms.cc:384 msgid "" "If enabled, XMMS will detect a song's ending, stop it and advance in the " "playlist. If disabled, XMMS won't take notice of a song's ending and loop it " "all over again and again." msgstr "" -#: src/adplug/adplug-xmms.cc:397 +#: src/adplug/adplug-xmms.cc:395 msgid "Formats" msgstr "Formate" -#: src/adplug/adplug-xmms.cc:404 +#: src/adplug/adplug-xmms.cc:402 msgid "Format selection" msgstr "Format-Auswahl" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Format" msgstr "Formal" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Extension" msgstr "Erweiterung" -#: src/adplug/adplug-xmms.cc:447 +#: src/adplug/adplug-xmms.cc:445 msgid "" "Selected file types will be recognized and played back by this plugin. " "Deselected types will be ignored to make room for other plugins to play " @@ -191,88 +191,88 @@ "Deaktivierte Typen werden ignoriert, dass andere Plugins diese Dateien " "abspielen können." -#: src/adplug/adplug-xmms.cc:533 +#: src/adplug/adplug-xmms.cc:531 msgid "AdPlug :: File Info" msgstr "AdPlug :: Dateiinformation" -#: src/adplug/adplug-xmms.cc:555 src/amidi-plug/i_configure-fluidsynth.c:448 +#: src/adplug/adplug-xmms.cc:553 src/amidi-plug/i_configure-fluidsynth.c:448 msgid "Filename" msgstr "Dateiname" +#: src/adplug/adplug-xmms.cc:557 src/skins/ui_playlist.c:470 +msgid "Title: " +msgstr "Titel: " + +#: src/adplug/adplug-xmms.cc:558 +msgid "Author: " +msgstr "Autor: " + #: src/adplug/adplug-xmms.cc:559 -msgid "Title: " -msgstr "Titel: " - -#: src/adplug/adplug-xmms.cc:560 -msgid "Author: " -msgstr "Autor: " - -#: src/adplug/adplug-xmms.cc:561 msgid "File Type: " msgstr "Dateityp: " -#: src/adplug/adplug-xmms.cc:562 +#: src/adplug/adplug-xmms.cc:560 msgid "Subsongs: " msgstr "" -#: src/adplug/adplug-xmms.cc:563 +#: src/adplug/adplug-xmms.cc:561 msgid "Instruments: " msgstr "Instrumente: " -#: src/adplug/adplug-xmms.cc:568 +#: src/adplug/adplug-xmms.cc:566 msgid "Orders: " msgstr "" -#: src/adplug/adplug-xmms.cc:569 +#: src/adplug/adplug-xmms.cc:567 msgid "Patterns: " msgstr "" -#: src/adplug/adplug-xmms.cc:573 +#: src/adplug/adplug-xmms.cc:571 msgid "Song" msgstr "Titel" -#: src/adplug/adplug-xmms.cc:599 +#: src/adplug/adplug-xmms.cc:597 msgid "Instrument name" msgstr "Instrumentenname" -#: src/adplug/adplug-xmms.cc:641 +#: src/adplug/adplug-xmms.cc:639 msgid "Song message" msgstr "Titel-Meldung" -#: src/adplug/adplug-xmms.cc:663 +#: src/adplug/adplug-xmms.cc:661 msgid "Subsong selection" msgstr "" -#: src/adplug/adplug-xmms.cc:727 +#: src/adplug/adplug-xmms.cc:725 msgid "Order: " msgstr "Reihenfolge: " -#: src/adplug/adplug-xmms.cc:728 +#: src/adplug/adplug-xmms.cc:726 msgid "Pattern: " msgstr "Pattern: " +#: src/adplug/adplug-xmms.cc:728 +msgid "Row: " +msgstr "Row: " + +#: src/adplug/adplug-xmms.cc:729 +msgid "Speed: " +msgstr "Geschwindigkeit: " + #: src/adplug/adplug-xmms.cc:730 -msgid "Row: " -msgstr "Row: " - -#: src/adplug/adplug-xmms.cc:731 -msgid "Speed: " -msgstr "Geschwindigkeit: " - -#: src/adplug/adplug-xmms.cc:732 msgid "Timer: " msgstr "Timer: " -#: src/adplug/adplug-xmms.cc:733 src/console/Audacious_Config.cxx:225 -#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:341 +#: src/adplug/adplug-xmms.cc:731 src/console/Audacious_Config.cxx:224 +#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:353 msgid "Hz" msgstr "Hz" -#: src/alac/plugin.c:74 +#: src/alac/plugin.c:71 msgid "About Apple Lossless Audio Plugin" msgstr "Über Apple-Lossless-Audio-Plugin" -#: src/alac/plugin.c:75 +#: src/alac/plugin.c:72 msgid "" "Copyright (c) 2006 Audacious team\n" "Portions (c) 2005-2006 David Hammerton " @@ -311,8 +311,8 @@ #: src/alarm/interface.c:71 src/lirc/about.c:115 #: src/modplug/gui/interface.cxx:971 src/modplug/gui/modplug.glade:2030 -#: src/sid/xmms-sid.glade:3643 src/sid/xs_about.c:214 -#: src/sid/xs_interface.c:1740 +#: src/sid/xmms-sid.glade:3837 src/sid/xs_about.c:214 +#: src/sid/xs_interface.c:1824 msgid "Close" msgstr "Schließen" @@ -324,13 +324,12 @@ msgid "This is your wakeup call." msgstr "" -#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:46 +#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:45 #: src/alsa/configure.c:383 src/cdaudio-ng/cdaudio-ng.c:247 -#: src/flacng/plugin.c:706 src/gnomeshortcuts/gnomeshortcuts.c:311 -#: src/hotkey/gui.c:671 src/modplug/gui/interface.cxx:702 -#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:738 -#: src/scrobbler/gtkstuff.c:45 src/sid/xmms-sid.glade:3066 -#: src/sid/xs_interface.c:1243 +#: src/flacng/plugin.c:705 src/gnomeshortcuts/gnomeshortcuts.c:310 +#: src/hotkey/gui.c:670 src/modplug/gui/interface.cxx:702 +#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:736 +#: src/scrobbler/gtkstuff.c:42 src/skins/plugin.c:130 msgid "OK" msgstr "OK" @@ -399,7 +398,8 @@ #: src/alarm/interface.c:612 src/alarm/interface.c:660 #: src/alarm/interface.c:708 src/alarm/interface.c:756 #: src/alarm/interface.c:804 src/alarm/interface.c:852 -#: src/alarm/interface.c:900 src/OSS4/configure.c:138 src/OSS/configure.c:169 +#: src/alarm/interface.c:900 src/OSS4/configure.c:136 src/OSS/configure.c:168 +#: src/skins/ui_manager.c:447 src/skins/ui_manager.c:468 msgid "Default" msgstr "Standard" @@ -444,9 +444,9 @@ msgstr "Übergang" #: src/alarm/interface.c:1087 src/sid/xmms-sid.glade:2007 -#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2676 -#: src/sid/xs_interface.c:908 src/sid/xs_interface.c:962 -#: src/sid/xs_interface.c:1122 +#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2746 +#: src/sid/xs_interface.c:920 src/sid/xs_interface.c:974 +#: src/sid/xs_interface.c:1154 msgid "seconds" msgstr "Sekunden" @@ -499,7 +499,7 @@ msgid "Use reminder" msgstr "Erinnerung benützen" -#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:377 +#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:376 msgid "Options" msgstr "Optionen" @@ -610,7 +610,7 @@ " Erinnerung:\n" " Zeige eine Erinnerung an, wenn der Alarm ausgelöst wird.\n" -#: src/alarm/interface.c:1366 +#: src/alarm/interface.c:1366 src/skins/ui_manager.c:386 msgid "Help" msgstr "Hilfe" @@ -622,11 +622,11 @@ msgid "Thankyou" msgstr "Danke" -#: src/alsa/about.c:30 +#: src/alsa/about.c:29 msgid "About ALSA Driver" msgstr "Über den ALSA-Treiber" -#: src/alsa/about.c:31 +#: src/alsa/about.c:30 msgid "" "Audacious ALSA Driver\n" "\n" @@ -660,8 +660,8 @@ msgid "ALSA Driver configuration" msgstr "ALSA-Treiber-Konfiguration" -#: src/alsa/configure.c:274 src/OSS4/configure.c:186 src/OSS/configure.c:217 -#: src/sun/configure.c:183 +#: src/alsa/configure.c:274 src/OSS4/configure.c:184 src/OSS/configure.c:216 +#: src/sun/configure.c:181 msgid "Audio device:" msgstr "Audiogerät:" @@ -673,7 +673,7 @@ msgid "Mixer card:" msgstr "Mixer-Karte:" -#: src/alsa/configure.c:313 src/OSS/configure.c:260 src/sun/configure.c:220 +#: src/alsa/configure.c:313 src/OSS/configure.c:259 src/sun/configure.c:218 msgid "Mixer device:" msgstr "Mixer-Gerät:" @@ -1268,8 +1268,8 @@ "backend" msgstr "" -#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3465 -#: src/sid/xs_interface.c:1684 +#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3659 +#: src/sid/xs_interface.c:1768 msgid "Name:" msgstr "Name:" @@ -1374,19 +1374,19 @@ msgid "None" msgstr "Kein" -#: src/aosd/aosd_trigger.c:75 +#: src/aosd/aosd_trigger.c:74 msgid "Playback Start" msgstr "Wiedergabebeginn" -#: src/aosd/aosd_trigger.c:76 +#: src/aosd/aosd_trigger.c:75 msgid "Triggers OSD when a playlist entry is played." msgstr "Löst OSD beim Abspielen eines Wiedergabelisteneintrags aus" -#: src/aosd/aosd_trigger.c:80 +#: src/aosd/aosd_trigger.c:79 msgid "Title Change" msgstr "Titeländerung" -#: src/aosd/aosd_trigger.c:81 +#: src/aosd/aosd_trigger.c:80 msgid "" "Triggers OSD when, during playback, the song title changes but the filename " "is the same. This is mostly useful to display title changes in internet " @@ -1396,27 +1396,27 @@ "der Dateiname gleich bleibt. Das ist hauptsächlich nützlich, um " "Titeländerungen bei Internetstreams anzuzeigen." -#: src/aosd/aosd_trigger.c:87 +#: src/aosd/aosd_trigger.c:86 msgid "Volume Change" msgstr "Lautstärkeänderung" -#: src/aosd/aosd_trigger.c:88 +#: src/aosd/aosd_trigger.c:87 msgid "Triggers OSD when volume is changed." msgstr "Löst OSD bei Lautstärkeänderung aus" -#: src/aosd/aosd_trigger.c:92 +#: src/aosd/aosd_trigger.c:91 msgid "Pause On" msgstr "Pause An" -#: src/aosd/aosd_trigger.c:93 +#: src/aosd/aosd_trigger.c:92 msgid "Triggers OSD when playback is paused." msgstr "Löst OSD beim Pausieren der Wiedergabe aus" +#: src/aosd/aosd_trigger.c:96 +msgid "Pause Off" +msgstr "Pause Aus" + #: src/aosd/aosd_trigger.c:97 -msgid "Pause Off" -msgstr "Pause Aus" - -#: src/aosd/aosd_trigger.c:98 msgid "Triggers OSD when playback is unpaused." msgstr "Löst OSD beim Fortsetzen der Wiedergabe aus" @@ -1515,10 +1515,10 @@ msgid "Skin file:" msgstr "Skin-Datei:" -#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2331 -#: src/sid/xmms-sid.glade:2856 src/sid/xmms-sid.glade:2962 -#: src/sid/xs_interface.c:1010 src/sid/xs_interface.c:1182 -#: src/sid/xs_interface.c:1218 +#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2373 +#: src/sid/xmms-sid.glade:2968 src/sid/xmms-sid.glade:3136 +#: src/sid/xs_interface.c:1043 src/sid/xs_interface.c:1235 +#: src/sid/xs_interface.c:1291 msgid "Browse" msgstr "Suchen" @@ -1601,9 +1601,9 @@ msgid "Trigger" msgstr "Auslöser" -#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:167 +#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:175 #: src/modplug/gui/interface.cxx:688 src/modplug/gui/modplug.glade:1603 -#: src/sid/xmms-sid.glade:3026 src/sid/xs_interface.c:1229 +#: src/sid/xmms-sid.glade:3220 src/sid/xs_interface.c:1301 msgid "Misc" msgstr "Verschiedenes" @@ -1641,11 +1641,11 @@ "http://neugierig.org/software/ghosd/\n" "\n" -#: src/arts/arts.c:22 +#: src/arts/arts.c:21 msgid "About aRts Output" msgstr "Über aRts-Ausgabe" -#: src/arts/arts.c:23 +#: src/arts/arts.c:22 msgid "" "aRts output plugin by Håvard Kvålen \n" "Audacious port by Giacomo Lozito from develia.org" @@ -1655,26 +1655,26 @@ msgid "aRts Driver configuration" msgstr "aRts-Treiber-Konfiguration" -#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:232 -#: src/OSS/configure.c:304 src/sun/configure.c:259 +#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:230 +#: src/OSS/configure.c:303 src/sun/configure.c:257 msgid "Buffering:" msgstr "Zwischenspeichern:" -#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:245 -#: src/OSS/configure.c:317 src/sun/configure.c:272 +#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:243 +#: src/OSS/configure.c:316 src/sun/configure.c:270 msgid "Buffer size (ms):" msgstr "Puffergrösse (ms):" -#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:270 -#: src/OSS/configure.c:342 src/sun/configure.c:304 +#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:268 +#: src/OSS/configure.c:341 src/sun/configure.c:302 msgid "Buffering" msgstr "Zwischenspeichern" -#: src/audiocompress/audacious-glue.c:95 +#: src/audiocompress/audacious-glue.c:103 msgid "AudioCompress " msgstr "AudioCompress" -#: src/audiocompress/audacious-glue.c:96 +#: src/audiocompress/audacious-glue.c:104 msgid "" "\n" "(c)2003 trikuare studios(http://trikuare.cx)\n" @@ -1684,108 +1684,108 @@ "keeping the volume level more or less consistent" msgstr "" -#: src/audiocompress/audacious-glue.c:101 +#: src/audiocompress/audacious-glue.c:109 msgid "About AudioCompress" msgstr "Über AudioCompress" -#: src/audiocompress/audacious-glue.c:320 +#: src/audiocompress/audacious-glue.c:328 msgid "" "If checked, when the sound peaks the volume will be cut instantly; " "otherwise, it will ramp down just in time for the peak (but some minor " "clipping may still occur)." msgstr "" -#: src/audiocompress/audacious-glue.c:324 +#: src/audiocompress/audacious-glue.c:332 msgid "The maximum amount to amplify the audio by" msgstr "" -#: src/audiocompress/audacious-glue.c:326 +#: src/audiocompress/audacious-glue.c:334 msgid "Defines how smoothly the volume will ramp up" msgstr "" -#: src/audiocompress/audacious-glue.c:328 +#: src/audiocompress/audacious-glue.c:336 msgid "" "The target audio level for ramping up. Lowering the value gives a bit more " "dynamic range for peaks, but will make the overall sound quieter." msgstr "" -#: src/audiocompress/audacious-glue.c:331 +#: src/audiocompress/audacious-glue.c:339 msgid "How long of a window to maintain" msgstr "" -#: src/audiocompress/audacious-glue.c:372 +#: src/audiocompress/audacious-glue.c:380 msgid "AudioCompress preferences" msgstr "AudioCompress-Einstellungen" -#: src/audiocompress/audacious-glue.c:389 +#: src/audiocompress/audacious-glue.c:397 msgid " Quality Options " msgstr "" -#: src/audiocompress/audacious-glue.c:394 +#: src/audiocompress/audacious-glue.c:402 msgid " Aggressively prevent clipping" msgstr "" -#: src/audiocompress/audacious-glue.c:406 +#: src/audiocompress/audacious-glue.c:414 msgid " Target & gain" msgstr "" -#: src/audiocompress/audacious-glue.c:417 -msgid "Target audio level:" -msgstr "" - #: src/audiocompress/audacious-glue.c:425 -msgid "Maximum gain:" +msgid "Target audio level:" msgstr "" #: src/audiocompress/audacious-glue.c:433 +msgid "Maximum gain:" +msgstr "" + +#: src/audiocompress/audacious-glue.c:441 msgid "Gain smooth:" msgstr "" -#: src/audiocompress/audacious-glue.c:485 +#: src/audiocompress/audacious-glue.c:493 msgid " History " msgstr " Chronik " -#: src/audiocompress/audacious-glue.c:517 +#: src/audiocompress/audacious-glue.c:525 msgid "" "How long of a history to maintain. A higher number will make the volume " "changes less responsive." msgstr "" -#: src/audiocompress/audacious-glue.c:528 +#: src/audiocompress/audacious-glue.c:536 msgid "Load default values" msgstr "Standard-Werte laden" -#: src/audiocompress/audacious-glue.c:533 +#: src/audiocompress/audacious-glue.c:541 msgid "Audio values" msgstr "Audiowerte" -#: src/audiocompress/audacious-glue.c:562 src/echo_plugin/gui.c:152 -#: src/modplug/gui/interface.cxx:708 src/modplug/gui/modplug.glade:1655 -#: src/stereo_plugin/stereo.c:132 +#: src/audiocompress/audacious-glue.c:570 src/crystalizer/crystalizer.c:129 +#: src/echo_plugin/gui.c:150 src/modplug/gui/interface.cxx:708 +#: src/modplug/gui/modplug.glade:1655 src/stereo_plugin/stereo.c:131 msgid "Apply" msgstr "Übernehmen" -#: src/blur_scope/blur_scope.c:54 +#: src/blur_scope/blur_scope.c:52 msgid "/Toggle Decorations" msgstr "/Dekorationen umschalten" -#: src/blur_scope/blur_scope.c:56 +#: src/blur_scope/blur_scope.c:54 msgid "/-" msgstr "/-" -#: src/blur_scope/blur_scope.c:57 +#: src/blur_scope/blur_scope.c:55 msgid "/Close" msgstr "/Schliessen" -#: src/blur_scope/blur_scope.c:181 +#: src/blur_scope/blur_scope.c:179 msgid "Blur scope" msgstr "Blur-Scope" -#: src/blur_scope/config.c:72 +#: src/blur_scope/config.c:71 msgid "Blur Scope: Color selection" msgstr "Blur Scope: Farbauswahl" -#: src/blur_scope/config.c:82 src/jack/configure.c:108 +#: src/blur_scope/config.c:81 src/jack/configure.c:107 msgid "Options:" msgstr "Optionen:" @@ -1824,7 +1824,7 @@ "\n" "Das war ein Google Summer of Code 2007 Projektt." -#: src/cdaudio-ng/cdaudio-ng.c:814 +#: src/cdaudio-ng/cdaudio-ng.c:815 msgid "" "No playable CD found.\n" "\n" @@ -1834,98 +1834,103 @@ "\n" "Keine CD eingelegt, oder die eingelegte CD ist keine Audio-CD.\n" -#: src/cdaudio-ng/configure.c:147 +#: src/cdaudio-ng/configure.c:155 msgid "CD Audio Plugin Configuration" msgstr "CD-Audio-Plugin-Konfiguration" -#: src/cdaudio-ng/configure.c:157 +#: src/cdaudio-ng/configure.c:165 msgid "Digital audio extraction" msgstr "Digitale Audioextraktion" -#: src/cdaudio-ng/configure.c:162 +#: src/cdaudio-ng/configure.c:170 msgid "Title information" msgstr "Titelinformation" -#: src/cdaudio-ng/configure.c:179 +#: src/cdaudio-ng/configure.c:187 msgid "Limit read speed to: " msgstr "Lesegeschwindigkeit beschränken auf: " -#: src/cdaudio-ng/configure.c:186 +#: src/cdaudio-ng/configure.c:194 msgid "Use cd-text if available" msgstr "CD-Text benutzen, falls vorhanden" -#: src/cdaudio-ng/configure.c:190 +#: src/cdaudio-ng/configure.c:198 msgid "Use CDDB if available" msgstr "CDDB benutzen, falls vorhanden" -#: src/cdaudio-ng/configure.c:194 +#: src/cdaudio-ng/configure.c:202 msgid "Server: " msgstr "Server: " -#: src/cdaudio-ng/configure.c:197 +#: src/cdaudio-ng/configure.c:205 +#, fuzzy +msgid "Path: " +msgstr "Pattern: " + +#: src/cdaudio-ng/configure.c:208 msgid "Port: " msgstr "Port: " -#: src/cdaudio-ng/configure.c:203 +#: src/cdaudio-ng/configure.c:217 msgid "Use HTTP instead of CDDBP" msgstr "" -#: src/cdaudio-ng/configure.c:211 +#: src/cdaudio-ng/configure.c:225 msgid "Override default device: " msgstr "Anderes Device verwenden: " -#: src/cdaudio-ng/configure.c:218 +#: src/cdaudio-ng/configure.c:232 msgid "Print debug information" msgstr "Debug-Informationen ausgeben" -#: src/console/Audacious_Config.cxx:125 +#: src/console/Audacious_Config.cxx:124 msgid "Console Music Decoder" msgstr "Konsolen-Musik-Dekoder" -#: src/console/Audacious_Config.cxx:162 +#: src/console/Audacious_Config.cxx:161 msgid "Bass:" msgstr "Bass:" -#: src/console/Audacious_Config.cxx:166 src/console/Audacious_Config.cxx:177 -#: src/console/Audacious_Config.cxx:198 +#: src/console/Audacious_Config.cxx:165 src/console/Audacious_Config.cxx:176 +#: src/console/Audacious_Config.cxx:197 msgid "secs" msgstr "sek" -#: src/console/Audacious_Config.cxx:173 +#: src/console/Audacious_Config.cxx:172 msgid "Treble:" msgstr "Höhe:" -#: src/console/Audacious_Config.cxx:194 +#: src/console/Audacious_Config.cxx:193 msgid "Default song length:" msgstr "Standard-Liedlänge:" -#: src/console/Audacious_Config.cxx:200 src/modplug/gui/interface.cxx:268 +#: src/console/Audacious_Config.cxx:199 src/modplug/gui/interface.cxx:268 #: src/modplug/gui/modplug.glade:338 src/sid/xmms-sid.glade:1243 -#: src/sid/xs_interface.c:653 +#: src/sid/xs_interface.c:665 msgid "Resampling" msgstr "Resampling" -#: src/console/Audacious_Config.cxx:206 +#: src/console/Audacious_Config.cxx:205 msgid "Enable audio resampling" msgstr "Audio-Resampling aktivieren" -#: src/console/Audacious_Config.cxx:221 +#: src/console/Audacious_Config.cxx:220 msgid "Resampling rate:" msgstr "Resampling-Frequenz:" -#: src/console/Audacious_Config.cxx:236 +#: src/console/Audacious_Config.cxx:235 msgid "SPC" msgstr "SPC" -#: src/console/Audacious_Config.cxx:237 +#: src/console/Audacious_Config.cxx:236 msgid "Ignore length from SPC tags" msgstr "Länge von SPC-Tags ignorieren" -#: src/console/Audacious_Config.cxx:238 +#: src/console/Audacious_Config.cxx:237 msgid "Increase reverb" msgstr "Hall verstärken" -#: src/console/Audacious_Config.cxx:263 +#: src/console/Audacious_Config.cxx:262 msgid "" "The default song length, expressed in seconds, is used for songs that do not " "provide length information (i.e. looping tracks)." @@ -1933,11 +1938,11 @@ "Die standardmäßige Liedlänge (in Sekunden) wird für Lieder benutzt, die " "keine Längeninformation beinhalten (z.B. Lieder in der Endlosschleife)." -#: src/console/Audacious_Driver.cxx:444 +#: src/console/Audacious_Driver.cxx:442 msgid "About the Console Music Decoder" msgstr "Über den Konsolen-Musik-Dekoder" -#: src/console/Audacious_Driver.cxx:445 +#: src/console/Audacious_Driver.cxx:443 msgid "" "Console music decoder engine based on Game_Music_Emu 0.5.2.\n" "Supported formats: AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ\n" @@ -1949,11 +1954,20 @@ "Implementierung für Audacious von: William Pitcock , \n" " Shay Green " -#: src/demac/plugin.c:388 +#: src/crystalizer/crystalizer.c:90 +#, fuzzy +msgid "Configure Crystalizer" +msgstr "Extra Stereo konfigurieren" + +#: src/crystalizer/crystalizer.c:92 src/stereo_plugin/stereo.c:94 +msgid "Effect intensity:" +msgstr "Effektstärke" + +#: src/demac/plugin.c:359 msgid "About Monkey's Audio Plugin" msgstr "Über Monkey's Audio-Plugin" -#: src/demac/plugin.c:389 +#: src/demac/plugin.c:360 msgid "" "Copyright (C) 2007 Eugene Zagidullin \n" "Based on ffape decoder, Copyright (C) 2007 Benjamin Zores\n" @@ -1962,7 +1976,7 @@ "ffape is a part of FFmpeg project, http://ffmpeg.mplayerhq.hu/" msgstr "" -#: src/echo_plugin/gui.c:11 +#: src/echo_plugin/gui.c:9 msgid "" "Echo Plugin\n" "By Johan Levin 1999.\n" @@ -1970,35 +1984,35 @@ "Surround echo by Carl van Schaik 1999" msgstr "" -#: src/echo_plugin/gui.c:25 +#: src/echo_plugin/gui.c:23 msgid "About Echo Plugin" msgstr "Über Echo-Plugin" -#: src/echo_plugin/gui.c:76 +#: src/echo_plugin/gui.c:74 msgid "Configure Echo" msgstr "Echo-Plugin konfigurieren" -#: src/echo_plugin/gui.c:89 +#: src/echo_plugin/gui.c:87 msgid "Delay: (ms)" msgstr "Verzögerung: (ms)" -#: src/echo_plugin/gui.c:94 +#: src/echo_plugin/gui.c:92 msgid "Feedback: (%)" msgstr "Rückkoppelung: (%)" -#: src/echo_plugin/gui.c:99 +#: src/echo_plugin/gui.c:97 msgid "Volume: (%)" msgstr "Lautstärke: (%)" -#: src/echo_plugin/gui.c:122 +#: src/echo_plugin/gui.c:120 msgid "Surround echo" msgstr "Surround-Echo" -#: src/esd/about.c:34 +#: src/esd/about.c:33 msgid "About ESounD Plugin" msgstr "Über das ESounD-Plugin" -#: src/esd/about.c:35 +#: src/esd/about.c:34 msgid "" "Audacious ESounD Plugin\n" "\n" @@ -2042,8 +2056,8 @@ msgid "Server" msgstr "Server" -#: src/esd/configure.c:198 src/OSS4/configure.c:259 src/OSS/configure.c:331 -#: src/sun/configure.c:290 +#: src/esd/configure.c:198 src/OSS4/configure.c:257 src/OSS/configure.c:330 +#: src/sun/configure.c:288 msgid "Pre-buffer (percent):" msgstr "" @@ -2115,93 +2129,93 @@ msgid "Window->JumpToFile" msgstr "Fenster->Zu Titel springen" -#: src/evdev-plug/ed_internals.c:94 +#: src/evdev-plug/ed_internals.c:93 #, c-format msgid "" "event-device-plugin: unable to open device file %s , skipping this device; " "check that the file exists and that you have read permission for it\n" msgstr "" -#: src/evdev-plug/ed_internals.c:103 +#: src/evdev-plug/ed_internals.c:102 #, c-format msgid "" "event-device-plugin: unable to create a io_channel for device file %s ," "skipping this device\n" msgstr "" -#: src/evdev-plug/ed_internals.c:342 +#: src/evdev-plug/ed_internals.c:341 msgid "" "event-device-plugin: unable to open /proc/bus/input/devices , automatic " "detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:351 +#: src/evdev-plug/ed_internals.c:350 msgid "" "event-device-plugin: unable to open a io_channel for /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:361 +#: src/evdev-plug/ed_internals.c:360 msgid "" "event-device-plugin: an error occurred while reading /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:424 +#: src/evdev-plug/ed_internals.c:423 #, c-format msgid "event-device-plugin: device %s not found in /dev/input , skipping.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:489 src/evdev-plug/ed_internals.c:583 +#: src/evdev-plug/ed_internals.c:488 src/evdev-plug/ed_internals.c:582 #, c-format msgid "" "event-device-plugin: unable to load config file %s , default settings will " "be used.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:535 +#: src/evdev-plug/ed_internals.c:534 #, c-format msgid "" "event-device-plugin: incomplete information in config file for device \"%s" "\" , skipping.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:604 src/evdev-plug/ed_internals.c:936 +#: src/evdev-plug/ed_internals.c:603 src/evdev-plug/ed_internals.c:935 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_active value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:840 +#: src/evdev-plug/ed_internals.c:839 #, c-format msgid "" "event-device-plugin: unable to access local directory %s , settings will not " "be saved.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:890 +#: src/evdev-plug/ed_internals.c:889 #, c-format msgid "" "event-device-plugin: configuration, unable to get filename value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:906 +#: src/evdev-plug/ed_internals.c:905 #, c-format msgid "" "event-device-plugin: configuration, unable to get phys value for device \"%s" "\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:922 +#: src/evdev-plug/ed_internals.c:921 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_custom value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:946 +#: src/evdev-plug/ed_internals.c:945 #, c-format msgid "" "event-device-plugin: configuration, unexpected value for device \"%s\", " @@ -2219,7 +2233,7 @@ "Ensure that the device has been correctly plugged in." msgstr "" -#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:566 +#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:703 msgid "Error" msgstr "Fehler" @@ -2273,7 +2287,7 @@ msgid "Active" msgstr "" -#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:488 +#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:486 msgid "Status" msgstr "Status" @@ -2369,7 +2383,7 @@ msgid "Output file format:" msgstr "Ausgabedatei-Format:" -#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:960 +#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:959 msgid "Configure" msgstr "Konfigurieren" @@ -2604,11 +2618,11 @@ msgid "Quality level (0 - 10):" msgstr "Qualitätsstufe (0 - 10):" -#: src/flacng/plugin.c:698 +#: src/flacng/plugin.c:697 msgid "FLAC Audio Plugin " msgstr "FLAC-Audio-Plugin " -#: src/flacng/plugin.c:699 +#: src/flacng/plugin.c:698 msgid "" "\n" "\n" @@ -2624,15 +2638,15 @@ "\n" "http://www.skytale.net/projects/bmp-flac2/" -#: src/flacng/plugin.c:704 +#: src/flacng/plugin.c:703 msgid "About FLAC Audio Plugin" msgstr "Über FLAC-Audio-Plugin" +#: src/gnomeshortcuts/gnomeshortcuts.c:305 +msgid "About Gnome Shortcut Plugin" +msgstr "Über das Gnome-Shortcut-Plugin" + #: src/gnomeshortcuts/gnomeshortcuts.c:306 -msgid "About Gnome Shortcut Plugin" -msgstr "Über das Gnome-Shortcut-Plugin" - -#: src/gnomeshortcuts/gnomeshortcuts.c:307 msgid "" "Gnome Shortcut Plugin\n" "Let's you control the player with Gnome's shortcuts.\n" @@ -2650,7 +2664,7 @@ msgid "Previous Track" msgstr "Voriger Titel" -#: src/hotkey/gui.c:69 +#: src/hotkey/gui.c:69 src/skins/ui_manager.c:177 src/skins/ui_manager.c:178 msgid "Play" msgstr "Wiedergeben" @@ -2658,7 +2672,7 @@ msgid "Pause/Resume" msgstr "Pause" -#: src/hotkey/gui.c:71 +#: src/hotkey/gui.c:71 src/skins/ui_manager.c:183 src/skins/ui_manager.c:184 msgid "Stop" msgstr "Stop" @@ -2686,7 +2700,7 @@ msgid "Volume Down" msgstr "Lautstärke verringern" -#: src/hotkey/gui.c:78 +#: src/hotkey/gui.c:78 src/skins/ui_manager.c:422 src/skins/ui_manager.c:423 msgid "Jump to File" msgstr "Zu Datei springen" @@ -2740,11 +2754,11 @@ msgid "Key Binding:" msgstr "" -#: src/hotkey/gui.c:660 +#: src/hotkey/gui.c:659 msgid "About Global Hotkey Plugin" msgstr "Über das Global-Hotkeys-Plugin" -#: src/hotkey/gui.c:661 +#: src/hotkey/gui.c:660 #, fuzzy msgid "" "Global Hotkey Plugin\n" @@ -2774,35 +2788,35 @@ "\t\t\tJeremy Tan \n" "\n" -#: src/jack/configure.c:70 +#: src/jack/configure.c:69 msgid "Connect to all available jack ports" msgstr "" -#: src/jack/configure.c:77 +#: src/jack/configure.c:76 msgid "Connect only the output ports" msgstr "" -#: src/jack/configure.c:84 +#: src/jack/configure.c:83 msgid "Connect to no ports" msgstr "" -#: src/jack/configure.c:99 +#: src/jack/configure.c:98 msgid "jack Plugin configuration" msgstr "jack-Plugin-Konfiguration" -#: src/jack/configure.c:117 +#: src/jack/configure.c:116 msgid "Connection mode:" msgstr "" -#: src/jack/configure.c:129 +#: src/jack/configure.c:128 msgid "Enable debug printing" msgstr "" -#: src/jack/jack.c:84 +#: src/jack/jack.c:82 msgid "Sample rate mismatch" msgstr "" -#: src/jack/jack.c:87 +#: src/jack/jack.c:85 msgid "" "Xmms is asking for a sample rate that differs from\n" " that of the jack server. Xmms 1.2.8 or later\n" @@ -2816,15 +2830,15 @@ "Chris Morgan \n" msgstr "" -#: src/jack/jack.c:100 src/wma/wma.c:148 +#: src/jack/jack.c:98 src/wma/wma.c:145 msgid " Close " msgstr " Schliessen" -#: src/jack/jack.c:452 +#: src/jack/jack.c:450 msgid "About JACK Output Plugin 0.17" msgstr "" -#: src/jack/jack.c:453 +#: src/jack/jack.c:451 msgid "" "XMMS jack Driver 0.17\n" "\n" @@ -2835,39 +2849,39 @@ "Giacomo Lozito from develia.org" msgstr "" -#: src/ladspa/ladspa.c:722 +#: src/ladspa/ladspa.c:721 msgid "This LADSPA plugin has no user controls" msgstr "Dieses LADSPA-Plugin hat keine Benutzeroberfläche." -#: src/ladspa/ladspa.c:767 src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:766 src/ladspa/ladspa.c:852 msgid "Name" msgstr "Name" -#: src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:852 msgid "UID" msgstr "UID" -#: src/ladspa/ladspa.c:928 +#: src/ladspa/ladspa.c:927 msgid "Installed plugins" msgstr "Installierte Plugins" -#: src/ladspa/ladspa.c:937 +#: src/ladspa/ladspa.c:936 msgid "Running plugins" msgstr "Aktive Plugins" -#: src/ladspa/ladspa.c:952 +#: src/ladspa/ladspa.c:951 msgid "Add" msgstr "Hinzufügen" -#: src/ladspa/ladspa.c:956 +#: src/ladspa/ladspa.c:955 msgid "Remove" msgstr "Entfernen" -#: src/ladspa/ladspa.c:969 +#: src/ladspa/ladspa.c:968 msgid "LADSPA Plugin Catalog" msgstr "LADSPA-Plugin-Liste" -#: src/lastfm/lastfm.c:96 +#: src/lastfm/lastfm.c:94 msgid "" "Couldn't initialize the last.fm radio plugin.\n" "\n" @@ -2961,58 +2975,58 @@ msgid "%s: will try reconnect every %d seconds...\n" msgstr "" -#: src/madplug/configure.c:209 +#: src/madplug/configure.c:208 msgid "MPEG Audio Plugin Configuration" msgstr "MPEG-Audio-Plugin-Konfiguration" -#: src/madplug/configure.c:226 +#: src/madplug/configure.c:225 msgid "Audio Settings" msgstr "Audio-Einstellungen" -#: src/madplug/configure.c:234 +#: src/madplug/configure.c:233 msgid "Force reopen audio when audio type changed" msgstr "Neuöffnen von Audio bei Änderung des Audiotyps erzwingen" -#: src/madplug/configure.c:243 +#: src/madplug/configure.c:242 #, fuzzy msgid "Metadata Settings" msgstr "Mixer-Einstellungen:" -#: src/madplug/configure.c:252 +#: src/madplug/configure.c:251 msgid "Enable fast play-length calculation" msgstr "Schnelle Spieldauer-Berechnung aktivieren" -#: src/madplug/configure.c:259 +#: src/madplug/configure.c:258 msgid "Parse XING headers" msgstr "XING-Header parsen" -#: src/madplug/configure.c:266 +#: src/madplug/configure.c:265 #, fuzzy msgid "Use SJIS to write ID3 tags (not recommended)" msgstr "SJIS anstatt UTF-8 zum Schreiben von ID3-Tags benutzen" -#: src/madplug/configure.c:273 +#: src/madplug/configure.c:272 msgid "Miscellaneous Settings" msgstr "Verschiedene Einstellungen" -#: src/madplug/configure.c:282 +#: src/madplug/configure.c:281 msgid "Display average bitrate for VBR" msgstr "Durchschnittliche Bitrate für VBR anzeigen" -#: src/madplug/configure.c:296 src/vorbis/configure.c:102 +#: src/madplug/configure.c:295 src/vorbis/configure.c:100 msgid "Override generic titles" msgstr "Allgemeine Titel überschreiben" -#: src/madplug/configure.c:308 +#: src/madplug/configure.c:307 msgid "ID3 format:" msgstr "ID3-Format:" -#: src/madplug/configure.c:320 src/sid/xmms-sid.glade:2540 -#: src/sid/xs_interface.c:1070 +#: src/madplug/configure.c:319 src/sid/xmms-sid.glade:2610 +#: src/sid/xs_interface.c:1102 msgid "Title" msgstr "Titel" -#: src/madplug/plugin.c:524 +#: src/madplug/plugin.c:661 #, c-format msgid "" "Audacious MPEG Audio Plugin\n" @@ -3043,15 +3057,15 @@ "ReplayGain-Unterstützung von:\n" " Samuel Krempp" -#: src/madplug/plugin.c:540 +#: src/madplug/plugin.c:677 msgid "About MPEG Audio Plugin" msgstr "Über MPEG-Audio-Plugin" +#: src/metronom/metronom.c:86 +msgid "About Metronom" +msgstr "Über Metronom" + #: src/metronom/metronom.c:87 -msgid "About Metronom" -msgstr "Über Metronom" - -#: src/metronom/metronom.c:88 msgid "" "A Tact Generator by Martin Strauss \n" "\n" @@ -3065,12 +3079,12 @@ "z.B. tact://77 zum Spielen von 77 Schlägen pro Minute\n" "oder tact://60*3/4 zum Spielen von 60 bpm im 3/4-Takt" -#: src/metronom/metronom.c:198 src/metronom/metronom.c:262 +#: src/metronom/metronom.c:197 src/metronom/metronom.c:261 #, c-format msgid "Tact generator: %d bpm" msgstr "Takt-Generator: %d bpm" -#: src/metronom/metronom.c:200 src/metronom/metronom.c:264 +#: src/metronom/metronom.c:199 src/metronom/metronom.c:263 #, c-format msgid "Tact generator: %d bpm %d/%d" msgstr "Takt-Generator: %d bpm %d/%d" @@ -3274,11 +3288,11 @@ msgid "Message" msgstr "Meldung" -#: src/modplug/gui/main.cxx:45 +#: src/modplug/gui/main.cxx:48 msgid "Modplug Input Plugin for Audacious ver" msgstr "Modplug-Input-Plugin für Audacious Version" -#: src/modplug/gui/main.cxx:46 +#: src/modplug/gui/main.cxx:49 msgid "" "\n" "Modplug sound engine written by Olivier Lapicque.\n" @@ -3294,7 +3308,7 @@ "Updates und Betreunung von Konstanty Bialkowski.\n" "Portiert für BMP von Theofilos Intzoglou." -#: src/modplug/gui/main.cxx:49 +#: src/modplug/gui/main.cxx:52 msgid "About Modplug" msgstr "Über Modplug" @@ -3304,27 +3318,27 @@ msgid "Couldn't find pixmap file: %s" msgstr "Konnte Pixmap-Datei nicht finden: %s" -#: src/mtp_up/mtp.c:35 +#: src/mtp_up/mtp.c:33 msgid "Upload selected track(s)" msgstr "" -#: src/mtp_up/mtp.c:296 +#: src/mtp_up/mtp.c:294 msgid "Upload in progress..." msgstr "" -#: src/mtp_up/mtp.c:305 +#: src/mtp_up/mtp.c:303 msgid "MTP device handler" msgstr "" -#: src/mtp_up/mtp.c:309 +#: src/mtp_up/mtp.c:307 msgid "Disconnect the device" msgstr "" -#: src/musepack/libmpc.cxx:146 +#: src/musepack/libmpc.cxx:142 msgid "Musepack Decoder Plugin 1.2" msgstr "Musepack-Dekoder-Plugin 1.2" -#: src/musepack/libmpc.cxx:147 +#: src/musepack/libmpc.cxx:143 msgid "" "Plugin code by\n" "Benoit Amiaux\n" @@ -3340,174 +3354,175 @@ "\n" "Die neueste Version ist erhältlich auf http://musepack.net\n" -#: src/musepack/libmpc.cxx:148 +#: src/musepack/libmpc.cxx:144 msgid "Nevermind" msgstr "Vergiss es" -#: src/musepack/libmpc.cxx:166 +#: src/musepack/libmpc.cxx:162 msgid "Musepack Decoder Configuration" msgstr "Musepack-DekoderKonfiguration" -#: src/musepack/libmpc.cxx:176 +#: src/musepack/libmpc.cxx:172 msgid "General Settings" msgstr "Allgemeine Einstellungen" -#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:492 +#: src/musepack/libmpc.cxx:179 src/wavpack/ui.cxx:490 msgid "Enable Dynamic Bitrate Display" msgstr "Dynamische-Bitraten-Anzeige aktivieren" -#: src/musepack/libmpc.cxx:187 src/wavpack/ui.cxx:498 +#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:496 msgid "Plugin" msgstr "Plugin" -#: src/musepack/libmpc.cxx:190 +#: src/musepack/libmpc.cxx:186 msgid "ReplayGain Settings" msgstr "ReplayGain-Einstellungen" -#: src/musepack/libmpc.cxx:197 src/wavpack/ui.cxx:510 +#: src/musepack/libmpc.cxx:193 src/wavpack/ui.cxx:508 msgid "Enable Clipping Prevention" msgstr "Clipping-Verhinderung aktivieren" -#: src/musepack/libmpc.cxx:202 src/wavpack/ui.cxx:515 +#: src/musepack/libmpc.cxx:198 src/wavpack/ui.cxx:513 msgid "Enable ReplayGain" msgstr "ReplayGain aktivieren" -#: src/musepack/libmpc.cxx:207 +#: src/musepack/libmpc.cxx:203 msgid "ReplayGain Type" msgstr "ReplayGain-Typ" -#: src/musepack/libmpc.cxx:215 +#: src/musepack/libmpc.cxx:211 msgid "Use Track Gain" msgstr "Track Gain benutzen" -#: src/musepack/libmpc.cxx:219 +#: src/musepack/libmpc.cxx:215 msgid "Use Album Gain" msgstr "Album Gain benutzen" -#: src/musepack/libmpc.cxx:224 src/wavpack/ui.cxx:547 +#: src/musepack/libmpc.cxx:220 src/wavpack/ui.cxx:545 msgid "ReplayGain" msgstr "ReplayGain" -#: src/musepack/libmpc.cxx:491 src/sid/xmms-sid.glade:3144 -#: src/sid/xs_interface.c:1564 src/tta/libtta.c:304 src/wavpack/ui.cxx:152 +#: src/musepack/libmpc.cxx:487 src/sid/xmms-sid.glade:3338 +#: src/sid/xs_interface.c:1648 src/tta/libtta.c:301 src/wavpack/ui.cxx:150 msgid "Filename:" msgstr "Dateiname:" -#: src/musepack/libmpc.cxx:506 +#: src/musepack/libmpc.cxx:502 msgid "Musepack Tag" msgstr "" -#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:323 src/wavpack/ui.cxx:172 +#: src/musepack/libmpc.cxx:510 src/tta/libtta.c:320 src/wavpack/ui.cxx:170 msgid "Title:" msgstr "Titel:" -#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:333 src/wavpack/ui.cxx:184 +#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:330 src/wavpack/ui.cxx:182 msgid "Artist:" msgstr "Künstler:" -#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:344 src/wavpack/ui.cxx:196 +#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:341 src/wavpack/ui.cxx:194 msgid "Album:" msgstr "Album:" -#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:355 src/wavpack/ui.cxx:208 +#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:352 src/wavpack/ui.cxx:206 msgid "Comment:" msgstr "Kommentar:" -#: src/musepack/libmpc.cxx:530 src/tta/libtta.c:366 src/wavpack/ui.cxx:221 +#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:363 src/wavpack/ui.cxx:219 msgid "Year:" msgstr "Jahr:" -#: src/musepack/libmpc.cxx:535 +#: src/musepack/libmpc.cxx:531 msgid "Track:" msgstr "Titel:" -#: src/musepack/libmpc.cxx:540 src/tta/libtta.c:390 src/wavpack/ui.cxx:248 +#: src/musepack/libmpc.cxx:536 src/tta/libtta.c:387 src/wavpack/ui.cxx:246 msgid "Genre:" msgstr "Genre:" -#: src/musepack/libmpc.cxx:551 src/sid/xmms-sid.glade:1732 -#: src/sid/xs_interface.c:820 src/wavpack/ui.cxx:267 +#: src/musepack/libmpc.cxx:547 src/sid/xmms-sid.glade:1732 +#: src/sid/xs_interface.c:832 src/skins/ui_manager.c:438 +#: src/wavpack/ui.cxx:265 msgid "Save" msgstr "Speichern" -#: src/musepack/libmpc.cxx:554 src/wavpack/ui.cxx:273 +#: src/musepack/libmpc.cxx:550 src/wavpack/ui.cxx:271 msgid "Remove Tag" msgstr "Tag entfernen" -#: src/musepack/libmpc.cxx:562 +#: src/musepack/libmpc.cxx:558 msgid "Musepack Info" msgstr "" +#: src/musepack/libmpc.cxx:591 +#, c-format +msgid "Streamversion %d" +msgstr "Streamversion %d" + +#: src/musepack/libmpc.cxx:592 +#, c-format +msgid "Encoder: %s" +msgstr "Enkoder: %s" + +#: src/musepack/libmpc.cxx:593 +#, c-format +msgid "Profile: %s" +msgstr "Profil: %s" + +#: src/musepack/libmpc.cxx:594 +#, c-format +msgid "Average bitrate: %6.1f kbps" +msgstr "Durchschnittliche bitrate: %6.1f kbps" + #: src/musepack/libmpc.cxx:595 #, c-format -msgid "Streamversion %d" -msgstr "Streamversion %d" +msgid "Samplerate: %d Hz" +msgstr "Abtastfrequenz: %d Hz" #: src/musepack/libmpc.cxx:596 #, c-format -msgid "Encoder: %s" -msgstr "Enkoder: %s" +msgid "Channels: %d" +msgstr "Kanäle: %d" #: src/musepack/libmpc.cxx:597 #, c-format -msgid "Profile: %s" -msgstr "Profil: %s" - -#: src/musepack/libmpc.cxx:598 -#, c-format -msgid "Average bitrate: %6.1f kbps" -msgstr "Durchschnittliche bitrate: %6.1f kbps" - -#: src/musepack/libmpc.cxx:599 -#, c-format -msgid "Samplerate: %d Hz" -msgstr "Abtastfrequenz: %d Hz" - -#: src/musepack/libmpc.cxx:600 -#, c-format -msgid "Channels: %d" -msgstr "Kanäle: %d" - -#: src/musepack/libmpc.cxx:601 -#, c-format msgid "Length: %d:\\%.2d" msgstr "Länge: %d:\\%.2d" -#: src/musepack/libmpc.cxx:602 +#: src/musepack/libmpc.cxx:598 #, c-format msgid "File size: %d Bytes" msgstr "Dateigröße: %d Byte" -#: src/musepack/libmpc.cxx:603 +#: src/musepack/libmpc.cxx:599 #, c-format msgid "Track Peak: %5u" msgstr "Track Peak: %5u" -#: src/musepack/libmpc.cxx:604 +#: src/musepack/libmpc.cxx:600 #, c-format msgid "Track Gain: %-+2.2f dB" msgstr "Track Gain: %-+2.2f dB" -#: src/musepack/libmpc.cxx:605 +#: src/musepack/libmpc.cxx:601 #, c-format msgid "Album Peak: %5u" msgstr "Album Peak: %5u" -#: src/musepack/libmpc.cxx:606 +#: src/musepack/libmpc.cxx:602 #, c-format msgid "Album Gain: %-+5.2f dB" msgstr "Album Gain: %-+5.2f dB" -#: src/musepack/libmpc.cxx:634 src/tta/libtta.c:413 src/wavpack/ui.cxx:409 +#: src/musepack/libmpc.cxx:630 src/tta/libtta.c:410 src/wavpack/ui.cxx:407 #, c-format msgid "File Info - %s" msgstr "Dateiinformationen - %s" -#: src/null/null.c:61 +#: src/null/null.c:58 msgid "Null output plugin " msgstr "Null-Ausgabe-Plugin" -#: src/null/null.c:62 +#: src/null/null.c:59 msgid "" " by Christian Birchinger \n" "based on the XMMS plugin by Håvard Kvål " @@ -3515,23 +3530,52 @@ " von Christian Birchinger \n" "basierend auf dem XMMS-Plugin von Håvard Kvål " -#: src/null/null.c:65 +#: src/null/null.c:62 msgid "About Null Output" msgstr "Über Null-Ausgabe-Plugin" -#: src/null/null.c:94 +#: src/null/null.c:91 msgid "Null output preferences" msgstr "Null-Ausgabe-Einstellungen" -#: src/null/null.c:103 +#: src/null/null.c:100 msgid "Run in real time" msgstr "In Echtzeit ablaufen lassen" -#: src/OSS4/about.c:42 +#: src/OSS4/configure.c:118 src/OSS/configure.c:150 +#, c-format +msgid "Default (%s)" +msgstr "Standard (%s)" + +#: src/OSS4/configure.c:168 src/OSS/configure.c:200 +msgid "OSS Driver configuration" +msgstr "OSS-Treiber-Konfiguration" + +#: src/OSS4/configure.c:206 src/OSS/configure.c:238 src/OSS/configure.c:279 +msgid "Use alternate device:" +msgstr "Alternatives Gerät benutzen:" + +#: src/OSS4/configure.c:228 src/OSS/configure.c:301 src/sun/configure.c:246 +msgid "Devices" +msgstr "Geräte" + +#: src/OSS4/configure.c:270 src/OSS/configure.c:342 +msgid "Mixer Settings:" +msgstr "Mixer-Einstellungen:" + +#: src/OSS4/configure.c:276 +msgid "Save VMIX volume between sessions" +msgstr "" + +#: src/OSS4/configure.c:282 src/OSS/configure.c:354 src/sun/configure.c:392 +msgid "Mixer" +msgstr "Mixer" + +#: src/OSS4/OSS4.c:38 msgid "About OSSv4 Driver" msgstr "Über den OSSv4-Treiber" -#: src/OSS4/about.c:43 +#: src/OSS4/OSS4.c:39 msgid "" "Audacious OSSv4 Driver\n" "\n" @@ -3554,40 +3598,15 @@ "USA." msgstr "" -#: src/OSS4/configure.c:120 src/OSS/configure.c:151 -#, c-format -msgid "Default (%s)" -msgstr "Standard (%s)" - -#: src/OSS4/configure.c:170 src/OSS/configure.c:201 -msgid "OSS Driver configuration" -msgstr "OSS-Treiber-Konfiguration" - -#: src/OSS4/configure.c:208 src/OSS/configure.c:239 src/OSS/configure.c:280 -msgid "Use alternate device:" -msgstr "Alternatives Gerät benutzen:" - -#: src/OSS4/configure.c:230 src/OSS/configure.c:302 src/sun/configure.c:248 -msgid "Devices" -msgstr "Geräte" - -#: src/OSS4/configure.c:272 src/OSS/configure.c:343 -msgid "Mixer Settings:" -msgstr "Mixer-Einstellungen:" - -#: src/OSS4/configure.c:278 -msgid "Save VMIX volume between sessions" -msgstr "" - -#: src/OSS4/configure.c:284 src/OSS/configure.c:355 src/sun/configure.c:394 -msgid "Mixer" -msgstr "Mixer" - -#: src/OSS/about.c:39 +#: src/OSS/configure.c:348 +msgid "Volume controls Master not PCM" +msgstr "" + +#: src/OSS/OSS.c:37 msgid "About OSS Driver" msgstr "Über OSS-Treiber" -#: src/OSS/about.c:40 +#: src/OSS/OSS.c:38 msgid "" "Audacious OSS Driver\n" "\n" @@ -3607,19 +3626,15 @@ "USA." msgstr "" -#: src/OSS/configure.c:349 -msgid "Volume controls Master not PCM" -msgstr "" - #: src/projectm-1.0/main.c:70 msgid "_Random" msgstr "" -#: src/pulse_audio/pulse_audio.c:722 +#: src/pulse_audio/pulse_audio.c:720 msgid "About Audacious PulseAudio Output Plugin" msgstr "Über Audacious-PulseAudio-Ausgabe-Plugin" -#: src/pulse_audio/pulse_audio.c:723 +#: src/pulse_audio/pulse_audio.c:721 msgid "" "Audacious PulseAudio Output Plugin\n" "\n" @@ -3639,27 +3654,27 @@ "USA." msgstr "" -#: src/scrobbler/configure.c:138 +#: src/scrobbler/configure.c:134 msgid "Services" msgstr "Dienste" -#: src/scrobbler/configure.c:160 src/scrobbler/configure.c:199 +#: src/scrobbler/configure.c:156 src/scrobbler/configure.c:195 msgid "Username:" msgstr "Benutzername:" -#: src/scrobbler/configure.c:166 src/scrobbler/configure.c:205 +#: src/scrobbler/configure.c:162 src/scrobbler/configure.c:201 msgid "Password:" msgstr "Passwort:" -#: src/scrobbler/configure.c:183 +#: src/scrobbler/configure.c:179 msgid "Last.FM" msgstr "Last.FM" -#: src/scrobbler/configure.c:222 +#: src/scrobbler/configure.c:218 msgid "Gerpok" msgstr "" -#: src/scrobbler/gtkstuff.c:21 +#: src/scrobbler/gtkstuff.c:18 msgid "" "Audacious AudioScrobbler Plugin\n" "\n" @@ -3671,11 +3686,11 @@ "Ursprünglich erstellt von Audun Hove und Pipian " "\n" -#: src/scrobbler/gtkstuff.c:23 +#: src/scrobbler/gtkstuff.c:20 msgid "About Scrobbler Plugin" msgstr "Über Scrobbler-Plugin" -#: src/scrobbler/gtkstuff.c:36 +#: src/scrobbler/gtkstuff.c:33 #, c-format msgid "" "There has been an error that may require your attention.\n" @@ -3685,106 +3700,106 @@ "%s\n" msgstr "" -#: src/scrobbler/gtkstuff.c:43 +#: src/scrobbler/gtkstuff.c:40 msgid "Scrobbler Error" msgstr "Scrobbler-Fehler" -#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:221 +#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:233 msgid "Audacious-SID configuration" msgstr "Audacious-SID-Konfiguration" -#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:257 +#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:269 msgid "8-bit" msgstr "8 Bit" -#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:264 +#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:276 msgid "16-bit" msgstr "16 Bit" -#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:271 +#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:283 msgid "Resolution:" msgstr "Auflösung:" -#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:302 +#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:314 msgid "Autopanning" msgstr "" -#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:309 +#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:321 msgid "Channels:" msgstr "Kanäle:" -#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:353 +#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:365 msgid "Samplerate:" msgstr "Abtastfrequenz:" -#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:370 +#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:382 msgid "Use oversampling" msgstr "Oversampling benützen" -#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:381 +#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:393 msgid "Factor:" msgstr "Faktor:" -#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:393 +#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:405 msgid "Large factors require more CPU-power" msgstr "Große Faktoren benötigen mehr Rechenleistung" -#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:399 +#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:411 msgid "Oversampling:" msgstr "Oversampling:" -#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:404 +#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:416 msgid "Audio" msgstr "Audio" -#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:436 +#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:448 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "clock speed/frequency. Otherwise the speed is determined from played file " "itself." msgstr "" -#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:432 +#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:444 msgid "Force speed" msgstr "Geschwindigkeit erzwingen" -#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:442 +#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:454 msgid "" "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. " "Most of SID-tunes have been made for PAL computers." msgstr "" -#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:438 +#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:450 msgid "PAL (50 Hz)" msgstr "PAL (50 Hz)" -#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:450 +#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:462 msgid "" "NTSC is the TV standard with 60Hz vertical refresh rate (and other features " "that differ from PAL). It is mainly used in United States, Japan and certain " "other countries." msgstr "" -#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:446 +#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:458 msgid "NTSC (60 Hz)" msgstr "NTSC (60 Hz)" -#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:454 +#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:466 msgid "Clock speed:" msgstr "" -#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:475 +#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:487 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "SID-chip model. Otherwise the preferred SID model is determined from the " "file (if PSIDv2NG type) or if not available, this setting is used." msgstr "" -#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:471 +#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:483 msgid "Force model" msgstr "Modell erzwingen" -#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:481 +#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:493 msgid "" "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 " "in few ways, having much fuller filter (which, due to design error, is never " @@ -3792,89 +3807,89 @@ "which enables playing of digital samples." msgstr "" -#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:477 +#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:489 msgid "MOS 6581" msgstr "MOS 6581" -#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:485 +#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:497 msgid "MOS 8580" msgstr "MOS 8580" -#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:492 +#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:504 msgid "SID model:" msgstr "SID-Modell:" -#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:513 +#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:525 msgid "" "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most " "cases, though." msgstr "" -#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:509 +#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:521 msgid "SIDPlay 1 (frame-based)" msgstr "" -#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:521 +#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:533 msgid "" "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact " "emulation." msgstr "" -#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:517 +#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:529 msgid "SIDPlay 2 (cycle-based)" msgstr "SIDPlay 2 (zyklus-basiert)" -#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:525 +#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:537 msgid "Emulation library selection:" msgstr "Auswahl der Emulations-Bibliothek:" -#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:542 +#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:554 msgid "Real C64 (SIDPlay 2 only)" msgstr "Echter C64 (nur SIDPlay 2)" -#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:549 +#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:561 msgid "Bank switching" msgstr "" -#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:556 +#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:568 msgid "Transparent ROM" msgstr "" -#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:563 +#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:575 msgid "PlaySID environment" msgstr "PlaySID-Umgebung" -#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:570 +#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:582 msgid "Memory mode:" msgstr "Speichermodus:" -#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:575 +#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:587 msgid "Emu#1" msgstr "" -#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:602 +#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:614 msgid "" "This setting can be used to enable libSIDPlay2's \"optimization mode\", " "which in downgrades the emulation from cycle-exact to something similar to " "frame-exact. The result is lower CPU usage, but worse accuracy." msgstr "" -#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:598 +#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:610 msgid "Optimization mode (faster, inaccurate)" msgstr "Optimierungs-Modus (schneller, ungenau)" -#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:608 +#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:620 msgid "" "reSID is the software SID-chip simulator based on SID reverse-engineering, " "created by Dag Lem. It is probably the closest thing to real SID available " "as software-only emulation." msgstr "" -#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:604 +#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:616 msgid "reSID-emulation" msgstr "reSID-Emulation" -#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:616 +#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:628 msgid "" "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a " "real SID-chip. Software can be used to control the HardSID and combined with " @@ -3883,47 +3898,47 @@ "http://www.hardsid.com/" msgstr "" -#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:612 +#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:624 msgid "HardSID" msgstr "HardSID" -#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:620 +#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:632 msgid "SIDPlay 2 options:" msgstr "SIDPlay 2-Optionen:" -#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:641 +#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:653 msgid "" "Fastest and also worst sounding sampling method, simply picks nearest " "neighbouring sample." msgstr "" -#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:637 +#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:649 msgid "Fast (nearest neighbour)" msgstr "" -#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:649 +#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:661 msgid "" "Uses linear interpolation between samples, yielding higher audio quality " "with less sampling noise." msgstr "" -#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:645 +#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:657 msgid "Linear interpolation" msgstr "Lineare Interpolation" -#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:660 +#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:672 msgid "Resampling (FIR)" msgstr "Resampling (FIR)" -#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:667 +#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:679 msgid "reSID sampling options:" msgstr "reSID-Sampling-Optionen:" -#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:672 +#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:684 msgid "Emu#2" msgstr "" -#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:688 +#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:700 msgid "" "This option enables emulation of SID filter. The filter is an essential part " "of SID's sound capacity, but accurate emulation of it may require quite much " @@ -3931,59 +3946,61 @@ "authentic at all if they utilize the filter." msgstr "" -#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:684 +#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:696 msgid "Emulate filters" msgstr "Filter emulieren" -#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:713 +#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:725 msgid "FS" msgstr "" -#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:730 +#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:742 msgid "FM" msgstr "" -#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:747 +#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:759 msgid "FT" msgstr "" -#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:758 +#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:770 msgid "Reset values" msgstr "Werte zurücksetzen" -#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:763 +#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:775 msgid "SIDPlay1" msgstr "SIDPlay1" -#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:804 +#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:816 msgid "Export" msgstr "Exportieren" -#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:812 +#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:824 msgid "Use" msgstr "" -#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:828 +#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:840 +#: src/skins/ui_manager.c:437 msgid "Import" msgstr "Importieren" -#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:836 +#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:848 +#: src/skins/ui_manager.c:439 msgid "Delete" msgstr "Löschen" -#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:850 +#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:862 msgid "Filter curve:" msgstr "Filterkurve:" -#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:855 +#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:867 msgid "SIDPlay2" msgstr "SIDPlay2" -#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:861 +#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:873 msgid "Filters" msgstr "Filter" -#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:888 +#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:900 msgid "" "If enabled, the tune is played at least for the specified time, adding " "silence to the end if necessary." @@ -3991,137 +4008,146 @@ "Wenn aktiviert, wird das Stück mindestens für die angegebene Zeit " "abgespielt, wobei nötigenfalls Stille zum Ende hinzugefügt wird." -#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:884 +#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:896 msgid "Play at least for specified time" msgstr "Mindestens für die angegebene Zeit spielen" #: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133 -#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:895 -#: src/sid/xs_interface.c:949 src/sid/xs_interface.c:1109 +#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:907 +#: src/sid/xs_interface.c:961 src/sid/xs_interface.c:1141 msgid "Playtime:" msgstr "Spielzeit:" -#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:915 +#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:927 msgid "Minimum playtime:" msgstr "Minimale Spielzeit:" -#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:936 +#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:948 msgid "" "If enabled, tune is played until specified duration is reached (aka maximum " "playtime)." msgstr "" -#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:932 +#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:944 msgid "Play for specified time maximum" msgstr "" -#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:942 +#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:954 msgid "" "If enabled, the maximum playtime is applied only if song/tune length is not " "known." msgstr "" -#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:938 +#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:950 msgid "Only when song length is unknown" msgstr "" -#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:969 +#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:981 msgid "Maximum playtime:" msgstr "Maximale Spielzeit:" -#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:990 +#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:1002 msgid "" "This option enables using of XSIDPLAY compatible song length database. " "(Refer to Audacious-SID documentation for more information)" msgstr "" -#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:986 +#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:998 msgid "Use XSIDPLAY-compatible database" msgstr "XSIDPLAY-kompatible Datenbank benützen" -#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:997 +#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:1009 msgid "DB-file:" msgstr "DB-Datei:" -#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1007 +#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1019 msgid "Database path and filename" msgstr "Datenbankpfad und -dateiname" -#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1014 +#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1026 msgid "Browse for song length-database file" msgstr "" -#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1016 +#: src/sid/xmms-sid.glade:2418 src/sid/xs_interface.c:1048 msgid "Song length database:" msgstr "" -#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1021 +#: src/sid/xmms-sid.glade:2454 src/sid/xs_interface.c:1053 msgid "Songlength" msgstr "" -#: src/sid/xmms-sid.glade:2430 src/sid/xs_interface.c:1043 +#: src/sid/xmms-sid.glade:2492 src/sid/xs_interface.c:1075 msgid "" "By enabling this option you can specify a custom Tuplez formatting string " "for SID-files. The SID-plugin specific Tuplez tags are described shortly " "below." msgstr "" -#: src/sid/xmms-sid.glade:2432 src/sid/xs_interface.c:1039 +#: src/sid/xmms-sid.glade:2494 src/sid/xs_interface.c:1071 #, fuzzy msgid "Override generic Tuplez format string" msgstr "Allgemeine Titel überschreiben" -#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1054 +#: src/sid/xmms-sid.glade:2519 src/sid/xs_interface.c:1086 msgid "Tuplez format string for SID-files" msgstr "" -#: src/sid/xmms-sid.glade:2477 src/sid/xs_interface.c:1057 -msgid "Descriptions of SID-specific Tuplez fields go here. :D" -msgstr "" - -#: src/sid/xmms-sid.glade:2511 src/sid/xs_interface.c:1065 +#: src/sid/xmms-sid.glade:2539 src/sid/xs_interface.c:1089 +msgid "" +"SID-specific Tuplez fields:\n" +"\n" +"sid-format\t\t- Specific fileformat\n" +"sid-model\t\t- 6581 or 8580\n" +"sid-speed\t\t- Timing or speed: PAL/NTSC/etc.\n" +"\n" +"Other \"special\" fields set:\n" +"\n" +"subsong-num, subsong-id" +msgstr "" + +#: src/sid/xmms-sid.glade:2581 src/sid/xs_interface.c:1097 msgid "Song title format:" msgstr "Titelformat:" -#: src/sid/xmms-sid.glade:2584 src/sid/xs_interface.c:1096 +#: src/sid/xmms-sid.glade:2654 src/sid/xs_interface.c:1128 msgid "" "If enabled, sub-tunes of each file will be added to playlist. If disabled, " "only the default sub-tune will be added." msgstr "" -#: src/sid/xmms-sid.glade:2586 src/sid/xs_interface.c:1092 +#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1124 msgid "Add sub-tunes to playlist" msgstr "" -#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1102 +#: src/sid/xmms-sid.glade:2675 src/sid/xs_interface.c:1134 msgid "Only add sub-tunes that have a duration of at least specified time." msgstr "" -#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1098 +#: src/sid/xmms-sid.glade:2677 src/sid/xs_interface.c:1130 msgid "Only tunes with specified minimum duration" msgstr "" -#: src/sid/xmms-sid.glade:2710 src/sid/xs_interface.c:1129 +#: src/sid/xmms-sid.glade:2780 src/sid/xs_interface.c:1161 #, fuzzy msgid "Sub-tune handling:" msgstr "Lautstärkesteuerung:" -#: src/sid/xmms-sid.glade:2755 src/sid/xs_interface.c:1150 +#: src/sid/xmms-sid.glade:2825 src/sid/xs_interface.c:1182 msgid "" "If this option is enabled (and the database & HVSC settings below are " "correctly set), Audacious-SID will use and display additional information " "from STIL database when HVSC SIDs are played." msgstr "" -#: src/sid/xmms-sid.glade:2757 src/sid/xs_interface.c:1146 +#: src/sid/xmms-sid.glade:2827 src/sid/xs_interface.c:1178 msgid "Use STIL database" msgstr "STIL-Datenbank verwenden" -#: src/sid/xmms-sid.glade:2782 src/sid/xs_interface.c:1157 +#: src/sid/xmms-sid.glade:2852 src/sid/xs_interface.c:1189 msgid "STIL file:" msgstr "STIL-Datei:" -#: src/sid/xmms-sid.glade:2819 src/sid/xs_interface.c:1173 +#: src/sid/xmms-sid.glade:2889 src/sid/xs_interface.c:1205 msgid "" "Path and filename of STIL database file (STIL.txt), usually found from " "HVSC's DOCUMENTS-subdirectory." @@ -4129,15 +4155,15 @@ "Pfad und Dateiname der STIL-Datenbank-Datei (STIL.txt), üblicherweise im " "HVSC-DOCUMENTS-Unterverzeichnis." -#: src/sid/xmms-sid.glade:2854 src/sid/xs_interface.c:1186 +#: src/sid/xmms-sid.glade:2924 src/sid/xs_interface.c:1218 msgid "Browse for STIL-database file" msgstr "Nach STIL-Datenbank-Datei suchen" -#: src/sid/xmms-sid.glade:2888 src/sid/xs_interface.c:1193 +#: src/sid/xmms-sid.glade:3020 src/sid/xs_interface.c:1245 msgid "HVSC path:" msgstr "HVSC-Pfad:" -#: src/sid/xmms-sid.glade:2925 src/sid/xs_interface.c:1209 +#: src/sid/xmms-sid.glade:3057 src/sid/xs_interface.c:1261 msgid "" "Path to base-directory of your High Voltage SID Collection (HVSC), for " "example /media/C64Music/" @@ -4145,89 +4171,89 @@ "Pfad zum Basis-Verzeichnis der High Voltage SID Collection (HVSC), zum " "Beispiel /media/C64Music/" -#: src/sid/xmms-sid.glade:2960 src/sid/xs_interface.c:1222 +#: src/sid/xmms-sid.glade:3092 src/sid/xs_interface.c:1274 msgid "Browse for HVSC path" msgstr "Nach HVSC-Pfad suchen" -#: src/sid/xmms-sid.glade:2990 src/sid/xs_interface.c:1224 +#: src/sid/xmms-sid.glade:3184 src/sid/xs_interface.c:1296 msgid "SID Tune Information List (STIL) database:" msgstr "SID Tune Information List (STIL)-Datenbank:" -#: src/sid/xmms-sid.glade:3063 src/sid/xs_interface.c:1248 +#: src/sid/xmms-sid.glade:3257 src/sid/xs_interface.c:1320 msgid "Accept and update changes" msgstr "" -#: src/sid/xmms-sid.glade:3077 src/sid/xs_interface.c:1255 +#: src/sid/xmms-sid.glade:3271 src/sid/xs_interface.c:1327 msgid "Cancel any changes" msgstr "Alle Änderungen verwerfen" -#: src/sid/xmms-sid.glade:3102 src/sid/xs_interface.c:1543 +#: src/sid/xmms-sid.glade:3296 src/sid/xs_interface.c:1627 msgid "Audacious-SID Fileinfo" msgstr "Audacious-SID-Dateiinformation" -#: src/sid/xmms-sid.glade:3172 src/sid/xs_interface.c:1572 +#: src/sid/xmms-sid.glade:3366 src/sid/xs_interface.c:1656 msgid "Songname:" msgstr "Titel:" -#: src/sid/xmms-sid.glade:3200 src/sid/xs_interface.c:1580 +#: src/sid/xmms-sid.glade:3394 src/sid/xs_interface.c:1664 msgid "Composer:" msgstr "Komponist:" -#: src/sid/xmms-sid.glade:3228 src/sid/xs_interface.c:1588 +#: src/sid/xmms-sid.glade:3422 src/sid/xs_interface.c:1672 msgid "Copyright:" msgstr "Copyright:" -#: src/sid/xmms-sid.glade:3342 src/sid/xs_interface.c:1632 +#: src/sid/xmms-sid.glade:3536 src/sid/xs_interface.c:1716 msgid "Song Information:" msgstr "Titel-Information:" -#: src/sid/xmms-sid.glade:3416 src/sid/xs_interface.c:1667 +#: src/sid/xmms-sid.glade:3610 src/sid/xs_interface.c:1751 msgid "Author:" msgstr "Autor:" -#: src/sid/xmms-sid.glade:3514 src/sid/xs_interface.c:1701 +#: src/sid/xmms-sid.glade:3708 src/sid/xs_interface.c:1785 msgid "Duration:" msgstr "Länge:" -#: src/sid/xmms-sid.glade:3608 src/sid/xs_interface.c:1735 +#: src/sid/xmms-sid.glade:3802 src/sid/xs_interface.c:1819 #, fuzzy msgid "Sub-tune Information:" msgstr "Ort:" -#: src/sid/xmms-sid.glade:3662 src/sid/xs_interface.c:1796 +#: src/sid/xmms-sid.glade:3856 src/sid/xs_interface.c:1880 msgid "Select HVSC song length database" msgstr "HVSC-Titellängendatenbank auswählen" -#: src/sid/xmms-sid.glade:3704 src/sid/xs_interface.c:1837 +#: src/sid/xmms-sid.glade:3898 src/sid/xs_interface.c:1921 msgid "Select STIL-database" msgstr "STIL-Datenbank auswählen" -#: src/sid/xmms-sid.glade:3746 src/sid/xs_interface.c:1878 +#: src/sid/xmms-sid.glade:3940 src/sid/xs_interface.c:1962 msgid "Select HVSC location prefix" msgstr "" -#: src/sid/xmms-sid.glade:3788 src/sid/xs_interface.c:1919 +#: src/sid/xmms-sid.glade:3982 src/sid/xs_interface.c:2003 msgid "Select SIDPlay2 filters file for importing" msgstr "" -#: src/sid/xmms-sid.glade:3830 src/sid/xs_interface.c:1960 +#: src/sid/xmms-sid.glade:4024 src/sid/xs_interface.c:2044 msgid "Select SIDPlay2 filters file for exporting" msgstr "" -#: src/sid/xmms-sid.glade:3871 src/sid/xmms-sid.glade:3953 -#: src/sid/xs_interface.c:2008 src/sid/xs_interface.c:2021 +#: src/sid/xmms-sid.glade:4065 src/sid/xmms-sid.glade:4147 +#: src/sid/xs_interface.c:2092 src/sid/xs_interface.c:2105 msgid "Confirm selected action" msgstr "Gewählte Aktion bestätigen" -#: src/sid/xmms-sid.glade:3909 src/sid/xs_interface.c:2038 +#: src/sid/xmms-sid.glade:4103 src/sid/xs_interface.c:2122 msgid "Yes" msgstr "Ja" -#: src/sid/xmms-sid.glade:3921 src/sid/xs_interface.c:2044 +#: src/sid/xmms-sid.glade:4115 src/sid/xs_interface.c:2128 msgid "No" msgstr "Nein" -#: src/sid/xs_about.c:84 src/wma/wma.c:121 +#: src/sid/xs_about.c:84 src/wma/wma.c:118 #, c-format msgid "About %s" msgstr "Über %s" @@ -4241,11 +4267,1142 @@ msgid "Tune #%i: " msgstr "" -#: src/sndfile/plugin.c:548 +#: src/skins/plugin.c:128 +msgid "About Skinned GUI" +msgstr "" + +#: src/skins/plugin.c:129 +msgid "" +"Copyright (c) 2008, by Tomasz Moń \n" +"\n" +msgstr "" + +#: src/skins/skins_cfg.c:329 +#, fuzzy +msgid "_Fonts" +msgstr "Dateiname: " + +#: src/skins/skins_cfg.c:330 +#, fuzzy +msgid "_Player:" +msgstr "Spielzeit:" + +#: src/skins/skins_cfg.c:330 +msgid "Select main player window font:" +msgstr "" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "_Playlist:" +msgstr "Wiedergabeliste wählen" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "Select playlist font:" +msgstr "Wiedergabeliste wählen" + +#: src/skins/skins_cfg.c:332 +#, fuzzy +msgid "Use Bitmap fonts if available" +msgstr "CDDB benutzen, falls vorhanden" + +#: src/skins/skins_cfg.c:332 +msgid "" +"Use bitmap fonts if they are available. Bitmap fonts do not support Unicode " +"strings." +msgstr "" + +#: src/skins/skins_cfg.c:333 +#, fuzzy +msgid "_Miscellaneous" +msgstr "Dienste" + +#: src/skins/skins_cfg.c:334 +msgid "Show track numbers in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:336 +msgid "Show separators in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:338 +msgid "Show window manager decoration" +msgstr "" + +#: src/skins/skins_cfg.c:339 +msgid "This enables the window manager to show decorations for windows." +msgstr "" + +#: src/skins/skins_cfg.c:340 +msgid "Use two-way text scroller" +msgstr "" + +#: src/skins/skins_cfg.c:341 +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 "" + +#: src/skins/skins_cfg.c:342 +msgid "Disable inline gtk theme" +msgstr "" + +#: src/skins/skins_cfg.c:343 +msgid "Allow loading incomplete skins" +msgstr "" + +#: src/skins/skins_cfg.c:344 +msgid "" +"If selected, audacious won't refuse loading broken skins. Use only if your " +"favourite skin doesn't work" +msgstr "" + +#: src/skins/skins_cfg.c:410 +msgid "Color Adjustment" +msgstr "" + +#: src/skins/skins_cfg.c:417 +msgid "" +"Audacious allows you to alter the color balance of the skinned UI. The " +"sliders below will allow you to do this." +msgstr "" + +#: src/skins/skins_cfg.c:427 +#, fuzzy +msgid "Blue" +msgstr "Lautstärke" + +#: src/skins/skins_cfg.c:434 +msgid "Green" +msgstr "" + +#: src/skins/skins_cfg.c:441 +msgid "Red" +msgstr "" + +#: src/skins/skins_cfg.c:571 +#, fuzzy +msgid "Audacious Skinned GUI Configuration" +msgstr "Audacious-OSD - Konfiguration" + +#: src/skins/skins_cfg.c:596 +#, fuzzy +msgid "_Skin" +msgstr "Dateiname: " + +#: src/skins/ui_equalizer.c:494 +#, fuzzy +msgid "Audacious Equalizer" +msgstr "Fenster->Equalizer" + +#: src/skins/ui_equalizer.c:794 +#, c-format +msgid "Error importing Winamp EQF file '%s'" +msgstr "" + +#: src/skins/ui_equalizer.c:1172 +msgid "Presets" +msgstr "" + +#: src/skins/ui_main.c:392 +#, fuzzy, c-format +msgid "%s - Audacious" +msgstr "" +"\n" +"Audacious-OSD " + +#: src/skins/ui_main.c:394 src/skins/ui_main.c:2397 +#, fuzzy +msgid "Audacious" +msgstr "" +"\n" +"Audacious-OSD " + +#: src/skins/ui_main.c:641 +#, fuzzy +msgid "VBR" +msgstr "VBR/ABR" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "stereo" +msgstr "Stereo" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "mono" +msgstr "Mono" + +#: src/skins/ui_main.c:957 +msgid "Can't jump to time when no track is being played.\n" +msgstr "" + +#: src/skins/ui_main.c:972 src/skins/ui_manager.c:425 +#: src/skins/ui_manager.c:426 +#, fuzzy +msgid "Jump to Time" +msgstr "Zu Datei springen" + +#: src/skins/ui_main.c:993 +#, fuzzy +msgid "minutes:seconds" +msgstr "Minuten" + +#: src/skins/ui_main.c:1003 +#, fuzzy +msgid "Track length:" +msgstr "Titel:" + +#: src/skins/ui_main.c:1149 +msgid "Audacious - visibility warning" +msgstr "" + +#: src/skins/ui_main.c:1152 +msgid "Show main player window" +msgstr "" + +#: src/skins/ui_main.c:1153 +msgid "Ignore" +msgstr "" + +#: src/skins/ui_main.c:1159 +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)." +msgstr "" + +#: src/skins/ui_main.c:1165 +msgid "Always ignore, show/hide is controlled remotely" +msgstr "" + +#: src/skins/ui_main.c:1210 +msgid "Audacious - broken GTK engine usage warning" +msgstr "" + +#: src/skins/ui_main.c:1218 +#, c-format +msgid "" +"Broken GTK engine in use\n" +"\n" +"Audacious has detected that you are using a broken GTK engine.\n" +"\n" +"The theme engine you are using, %s, is incompatible with some of the " +"features used by modern skins. The incompatible features have been disabled " +"for this session.\n" +"\n" +"To use these features, please consider using a different GTK theme engine." +msgstr "" + +#: src/skins/ui_main.c:1229 +msgid "Do not display this warning again" +msgstr "" + +#: src/skins/ui_main.c:1253 +msgid "Enter location to play:" +msgstr "" + +#: src/skins/ui_main.c:1497 +#, c-format +msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" +msgstr "" + +#: src/skins/ui_main.c:1527 +#, fuzzy, c-format +msgid "Volume: %d%%" +msgstr "Lautstärke: (%)" + +#: src/skins/ui_main.c:1555 +#, c-format +msgid "Balance: %d%% left" +msgstr "" + +#: src/skins/ui_main.c:1559 +msgid "Balance: center" +msgstr "" + +#: src/skins/ui_main.c:1563 +#, c-format +msgid "Balance: %d%% right" +msgstr "" + +#: src/skins/ui_main.c:1881 +#, fuzzy +msgid "Options Menu" +msgstr "Optionen" + +#: src/skins/ui_main.c:1885 +msgid "Disable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1887 +msgid "Enable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1890 +#, fuzzy +msgid "File Info Box" +msgstr "Dateiinformationen" + +#: src/skins/ui_main.c:1894 +msgid "Disable 'GUI Scaling'" +msgstr "" + +#: src/skins/ui_main.c:1896 +#, fuzzy +msgid "Enable 'GUI Scaling'" +msgstr "Audio-Resampling aktivieren" + +#: src/skins/ui_main.c:1899 +msgid "Visualization Menu" +msgstr "" + +#: src/skins/ui_main.c:1946 +msgid "" +"Couldn't open audio.\n" +"\n" +"Please check that:\n" +"1. You have the correct output plugin selected.\n" +"2. No other programs is blocking the soundcard.\n" +"3. Your soundcard is configured properly.\n" +msgstr "" + +#: src/skins/ui_manager.c:53 src/skins/ui_manager.c:54 +msgid "Autoscroll Songname" +msgstr "" + +#: src/skins/ui_manager.c:56 src/skins/ui_manager.c:57 +msgid "Stop after Current Song" +msgstr "" + +#: src/skins/ui_manager.c:59 src/skins/ui_manager.c:60 +msgid "Peaks" +msgstr "" + +#: src/skins/ui_manager.c:62 src/skins/ui_manager.c:63 +msgid "Repeat" +msgstr "" + +#: src/skins/ui_manager.c:65 src/skins/ui_manager.c:66 +msgid "Shuffle" +msgstr "" + +#: src/skins/ui_manager.c:68 src/skins/ui_manager.c:69 +msgid "No Playlist Advance" +msgstr "" + +#: src/skins/ui_manager.c:71 src/skins/ui_manager.c:72 +msgid "Show Player" +msgstr "" + +#: src/skins/ui_manager.c:74 src/skins/ui_manager.c:75 +msgid "Show Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:77 src/skins/ui_manager.c:78 +#, fuzzy +msgid "Show Equalizer" +msgstr "Fenster->Equalizer" + +#: src/skins/ui_manager.c:80 src/skins/ui_manager.c:81 +msgid "Always on Top" +msgstr "" + +#: src/skins/ui_manager.c:83 src/skins/ui_manager.c:84 +msgid "Put on All Workspaces" +msgstr "" + +#: src/skins/ui_manager.c:86 src/skins/ui_manager.c:87 +msgid "Roll up Player" +msgstr "" + +#: src/skins/ui_manager.c:89 src/skins/ui_manager.c:90 +msgid "Roll up Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:92 src/skins/ui_manager.c:93 +msgid "Roll up Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:95 src/sndstretch/sndstretch_xmms.c:375 +msgid "Scale" +msgstr "Skalierung" + +#: src/skins/ui_manager.c:96 +msgid "DoubleSize" +msgstr "" + +#: src/skins/ui_manager.c:98 src/skins/ui_manager.c:99 +msgid "Easy Move" +msgstr "" + +#: src/skins/ui_manager.c:107 +msgid "Analyzer" +msgstr "" + +#: src/skins/ui_manager.c:108 +#, fuzzy +msgid "Scope" +msgstr "Stop" + +#: src/skins/ui_manager.c:109 +msgid "Voiceprint" +msgstr "" + +#: src/skins/ui_manager.c:110 +msgid "Off" +msgstr "" + +#: src/skins/ui_manager.c:114 src/skins/ui_manager.c:131 +#: src/skins/ui_manager.c:137 +#, fuzzy +msgid "Normal" +msgstr "Formal" + +#: src/skins/ui_manager.c:115 src/skins/ui_manager.c:132 +msgid "Fire" +msgstr "" + +#: src/skins/ui_manager.c:116 +msgid "Vertical Lines" +msgstr "" + +#: src/skins/ui_manager.c:120 +#, fuzzy +msgid "Lines" +msgstr "Minuten" + +#: src/skins/ui_manager.c:121 +#, fuzzy +msgid "Bars" +msgstr "Bass:" + +#: src/skins/ui_manager.c:125 +#, fuzzy +msgid "Dot Scope" +msgstr "Nicht loopen" + +#: src/skins/ui_manager.c:126 +msgid "Line Scope" +msgstr "" + +#: src/skins/ui_manager.c:127 +msgid "Solid Scope" +msgstr "" + +#: src/skins/ui_manager.c:133 +msgid "Ice" +msgstr "" + +#: src/skins/ui_manager.c:138 +msgid "Smooth" +msgstr "" + +#: src/skins/ui_manager.c:142 +msgid "Full (~50 fps)" +msgstr "" + +#: src/skins/ui_manager.c:143 +msgid "Half (~25 fps)" +msgstr "" + +#: src/skins/ui_manager.c:144 +msgid "Quarter (~13 fps)" +msgstr "" + +#: src/skins/ui_manager.c:145 +msgid "Eighth (~6 fps)" +msgstr "" + +#: src/skins/ui_manager.c:149 src/skins/ui_manager.c:157 +msgid "Slowest" +msgstr "" + +#: src/skins/ui_manager.c:150 src/skins/ui_manager.c:158 +#, fuzzy +msgid "Slow" +msgstr "Schatten" + +#: src/skins/ui_manager.c:151 src/skins/ui_manager.c:159 +msgid "Medium" +msgstr "" + +#: src/skins/ui_manager.c:152 src/skins/ui_manager.c:160 +#, fuzzy +msgid "Fast" +msgstr "Formal" + +#: src/skins/ui_manager.c:153 src/skins/ui_manager.c:161 +msgid "Fastest" +msgstr "" + +#: src/skins/ui_manager.c:165 +msgid "Time Elapsed" +msgstr "" + +#: src/skins/ui_manager.c:166 +msgid "Time Remaining" +msgstr "" + +#: src/skins/ui_manager.c:180 src/skins/ui_manager.c:181 +#, fuzzy +msgid "Pause" +msgstr "Pause An" + +#: src/skins/ui_manager.c:186 src/skins/ui_manager.c:187 +#, fuzzy +msgid "Previous" +msgstr "Voriger Titel" + +#: src/skins/ui_manager.c:189 src/skins/ui_manager.c:190 +#, fuzzy +msgid "Next" +msgstr "Text" + +#: src/skins/ui_manager.c:195 +#, fuzzy +msgid "Visualization" +msgstr "Organisation:" + +#: src/skins/ui_manager.c:196 +msgid "Visualization Mode" +msgstr "" + +#: src/skins/ui_manager.c:197 +msgid "Analyzer Mode" +msgstr "" + +#: src/skins/ui_manager.c:198 +msgid "Scope Mode" +msgstr "" + +#: src/skins/ui_manager.c:199 +msgid "Voiceprint Mode" +msgstr "" + +#: src/skins/ui_manager.c:200 +msgid "WindowShade VU Mode" +msgstr "" + +#: src/skins/ui_manager.c:201 +msgid "Refresh Rate" +msgstr "" + +#: src/skins/ui_manager.c:202 +msgid "Analyzer Falloff" +msgstr "" + +#: src/skins/ui_manager.c:203 +msgid "Peaks Falloff" +msgstr "" + +#: src/skins/ui_manager.c:208 +#, fuzzy +msgid "Playlist" +msgstr "Wiedergabeliste wählen" + +#: src/skins/ui_manager.c:210 src/skins/ui_manager.c:211 +#, fuzzy +msgid "New Playlist" +msgstr "Wiedergabeliste wählen" + +#: src/skins/ui_manager.c:213 src/skins/ui_manager.c:214 +#, fuzzy +msgid "Select Next Playlist" +msgstr "Wiedergabeliste wählen" + +#: src/skins/ui_manager.c:216 src/skins/ui_manager.c:217 +#, fuzzy +msgid "Select Previous Playlist" +msgstr "Wiedergabeliste wählen" + +#: src/skins/ui_manager.c:219 src/skins/ui_manager.c:220 +#, fuzzy +msgid "Delete Playlist" +msgstr "Wiedergabeliste wählen" + +#: src/skins/ui_manager.c:222 +msgid "Load List" +msgstr "" + +#: src/skins/ui_manager.c:223 +msgid "Loads a playlist file into the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:225 +#, fuzzy +msgid "Save List" +msgstr "Speichern" + +#: src/skins/ui_manager.c:226 +#, fuzzy +msgid "Saves the selected playlist." +msgstr "Wiedergabeliste wählen" + +#: src/skins/ui_manager.c:228 +#, fuzzy +msgid "Save Default List" +msgstr "Standard (%s)" + +#: src/skins/ui_manager.c:229 +msgid "Saves the selected playlist to the default location." +msgstr "" + +#: src/skins/ui_manager.c:232 +msgid "Refresh List" +msgstr "" + +#: src/skins/ui_manager.c:233 +msgid "Refreshes metadata associated with a playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:236 +msgid "List Manager" +msgstr "" + +#: src/skins/ui_manager.c:237 +msgid "Opens the playlist manager." +msgstr "" + +#: src/skins/ui_manager.c:243 +msgid "View" +msgstr "" + +#: src/skins/ui_manager.c:247 +msgid "Add Internet Address..." +msgstr "" + +#: src/skins/ui_manager.c:248 +msgid "Adds a remote track to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:251 +msgid "Add Files..." +msgstr "" + +#: src/skins/ui_manager.c:252 +msgid "Adds files to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:257 +msgid "Search and Select" +msgstr "" + +#: src/skins/ui_manager.c:258 +msgid "" +"Searches the playlist and selects playlist entries based on specific " +"criteria." +msgstr "" + +#: src/skins/ui_manager.c:261 +#, fuzzy +msgid "Invert Selection" +msgstr "Format-Auswahl" + +#: src/skins/ui_manager.c:262 +msgid "Inverts the selected and unselected entries." +msgstr "" + +#: src/skins/ui_manager.c:265 +#, fuzzy +msgid "Select All" +msgstr "Wiedergabeliste wählen" + +#: src/skins/ui_manager.c:266 +msgid "Selects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:269 +#, fuzzy +msgid "Select None" +msgstr "Skin-Datei auswählen" + +#: src/skins/ui_manager.c:270 +msgid "Deselects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:275 +#, fuzzy +msgid "Remove All" +msgstr "Entfernen" + +#: src/skins/ui_manager.c:276 +msgid "Removes all entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:279 +msgid "Clear Queue" +msgstr "" + +#: src/skins/ui_manager.c:280 +msgid "Clears the queue associated with this playlist." +msgstr "" + +#: src/skins/ui_manager.c:283 +msgid "Remove Unavailable Files" +msgstr "" + +#: src/skins/ui_manager.c:284 +msgid "Removes unavailable files from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:287 +msgid "Remove Duplicates" +msgstr "" + +#: src/skins/ui_manager.c:289 src/skins/ui_manager.c:321 +#: src/skins/ui_manager.c:351 +#, fuzzy +msgid "By Title" +msgstr "Titel" + +#: src/skins/ui_manager.c:290 +msgid "Removes duplicate entries from the playlist by title." +msgstr "" + +#: src/skins/ui_manager.c:293 src/skins/ui_manager.c:329 +#: src/skins/ui_manager.c:359 +#, fuzzy +msgid "By Filename" +msgstr "Dateiname" + +#: src/skins/ui_manager.c:294 +msgid "Removes duplicate entries from the playlist by filename." +msgstr "" + +#: src/skins/ui_manager.c:297 src/skins/ui_manager.c:333 +#: src/skins/ui_manager.c:363 +#, fuzzy +msgid "By Path + Filename" +msgstr "Dateiname" + +#: src/skins/ui_manager.c:298 +msgid "Removes duplicate entries from the playlist by their full path." +msgstr "" + +#: src/skins/ui_manager.c:301 +msgid "Remove Unselected" +msgstr "" + +#: src/skins/ui_manager.c:302 +msgid "Remove unselected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:305 +msgid "Remove Selected" +msgstr "" + +#: src/skins/ui_manager.c:306 +msgid "Remove selected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:311 +msgid "Randomize List" +msgstr "" + +#: src/skins/ui_manager.c:312 +msgid "Randomizes the playlist." +msgstr "" + +#: src/skins/ui_manager.c:315 +msgid "Reverse List" +msgstr "" + +#: src/skins/ui_manager.c:316 +msgid "Reverses the playlist." +msgstr "" + +#: src/skins/ui_manager.c:319 +#, fuzzy +msgid "Sort List" +msgstr "Künstler:" + +#: src/skins/ui_manager.c:322 src/skins/ui_manager.c:352 +msgid "Sorts the list by title." +msgstr "" + +#: src/skins/ui_manager.c:325 src/skins/ui_manager.c:355 +#, fuzzy +msgid "By Artist" +msgstr "Künstler:" + +#: src/skins/ui_manager.c:326 src/skins/ui_manager.c:356 +msgid "Sorts the list by artist." +msgstr "" + +#: src/skins/ui_manager.c:330 src/skins/ui_manager.c:360 +msgid "Sorts the list by filename." +msgstr "" + +#: src/skins/ui_manager.c:334 src/skins/ui_manager.c:364 +msgid "Sorts the list by full pathname." +msgstr "" + +#: src/skins/ui_manager.c:337 src/skins/ui_manager.c:367 +#, fuzzy +msgid "By Date" +msgstr "Datum:" + +#: src/skins/ui_manager.c:338 src/skins/ui_manager.c:368 +msgid "Sorts the list by modification time." +msgstr "" + +#: src/skins/ui_manager.c:341 src/skins/ui_manager.c:371 +#, fuzzy +msgid "By Track Number" +msgstr "Titelnummer:" + +#: src/skins/ui_manager.c:342 src/skins/ui_manager.c:372 +msgid "Sorts the list by track number." +msgstr "" + +#: src/skins/ui_manager.c:345 src/skins/ui_manager.c:375 +#, fuzzy +msgid "By Playlist Entry" +msgstr "Schnelle Wiedergabenliste-Information" + +#: src/skins/ui_manager.c:346 src/skins/ui_manager.c:376 +msgid "Sorts the list by playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:349 +#, fuzzy +msgid "Sort Selected" +msgstr "Format-Auswahl" + +#: src/skins/ui_manager.c:385 +#, fuzzy +msgid "File" +msgstr "Filter" + +#: src/skins/ui_manager.c:388 +msgid "Plugin Services" +msgstr "" + +#: src/skins/ui_manager.c:390 src/skins/ui_manager.c:393 +#, fuzzy +msgid "View Track Details" +msgstr "Track Gain benutzen" + +#: src/skins/ui_manager.c:391 src/skins/ui_manager.c:394 +msgid "View track details" +msgstr "" + +#: src/skins/ui_manager.c:396 src/skins/ui_manager.c:397 +#, fuzzy +msgid "About Audacious" +msgstr "Über das LIRC-Audacious-Plugin" + +#: src/skins/ui_manager.c:399 +#, fuzzy +msgid "Play File" +msgstr "Spielzeit:" + +#: src/skins/ui_manager.c:400 +#, fuzzy +msgid "Load and play a file" +msgstr "SF beim Player-Start laden" + +#: src/skins/ui_manager.c:402 +#, fuzzy +msgid "Play Location" +msgstr "SIDPlay 2-Optionen:" + +#: src/skins/ui_manager.c:403 +#, fuzzy +msgid "Play media from the selected location" +msgstr "Gewählte Aktion bestätigen" + +#: src/skins/ui_manager.c:405 +msgid "Plugin services" +msgstr "" + +#: src/skins/ui_manager.c:407 +msgid "Preferences" +msgstr "" + +#: src/skins/ui_manager.c:408 +msgid "Open preferences window" +msgstr "" + +#: src/skins/ui_manager.c:410 +#, fuzzy +msgid "_Quit" +msgstr "Qualität" + +#: src/skins/ui_manager.c:411 +#, fuzzy +msgid "Quit Audacious" +msgstr "" +"\n" +"Audacious-OSD " + +#: src/skins/ui_manager.c:413 src/skins/ui_manager.c:414 +msgid "Set A-B" +msgstr "" + +#: src/skins/ui_manager.c:416 src/skins/ui_manager.c:417 +msgid "Clear A-B" +msgstr "" + +#: src/skins/ui_manager.c:419 src/skins/ui_manager.c:420 +msgid "Jump to Playlist Start" +msgstr "" + +#: src/skins/ui_manager.c:428 +msgid "Queue Toggle" +msgstr "" + +#: src/skins/ui_manager.c:429 +msgid "Enables/disables the entry in the playlist's queue." +msgstr "" + +#: src/skins/ui_manager.c:436 +msgid "Load" +msgstr "" + +#: src/skins/ui_manager.c:441 src/skins/ui_manager.c:462 +#: src/skins/ui_manager.c:477 +#, fuzzy +msgid "Preset" +msgstr "Port" + +#: src/skins/ui_manager.c:442 +msgid "Load preset" +msgstr "" + +#: src/skins/ui_manager.c:444 src/skins/ui_manager.c:465 +#: src/skins/ui_manager.c:480 +msgid "Auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:445 +msgid "Load auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:448 +#, fuzzy +msgid "Load default preset into equalizer" +msgstr "Standard-Werte laden" + +#: src/skins/ui_manager.c:450 +#, fuzzy +msgid "Zero" +msgstr "Stereo" + +#: src/skins/ui_manager.c:451 +msgid "Set equalizer preset levels to zero" +msgstr "" + +#: src/skins/ui_manager.c:453 +#, fuzzy +msgid "From file" +msgstr "Profil: %s" + +#: src/skins/ui_manager.c:454 +#, fuzzy +msgid "Load preset from file" +msgstr "Kann nicht von Datei lesen\n" + +#: src/skins/ui_manager.c:456 +msgid "From WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:457 +msgid "Load preset from WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:459 +msgid "WinAMP Presets" +msgstr "" + +#: src/skins/ui_manager.c:460 +msgid "Import WinAMP presets" +msgstr "" + +#: src/skins/ui_manager.c:463 +msgid "Save preset" +msgstr "" + +#: src/skins/ui_manager.c:466 +msgid "Save auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:469 +#, fuzzy +msgid "Save default preset" +msgstr "Standard-Werte laden" + +#: src/skins/ui_manager.c:471 +#, fuzzy +msgid "To file" +msgstr "STIL-Datei:" + +#: src/skins/ui_manager.c:472 +msgid "Save preset to file" +msgstr "" + +#: src/skins/ui_manager.c:474 +msgid "To WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:475 +msgid "Save preset to WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:478 +#, fuzzy +msgid "Delete preset" +msgstr "Löschen" + +#: src/skins/ui_manager.c:481 +msgid "Delete auto-load preset" +msgstr "" + +#: src/skins/ui_playlist.c:454 +msgid "Search entries in active playlist" +msgstr "" + +#: src/skins/ui_playlist.c:462 +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 "" + +#: src/skins/ui_playlist.c:477 +#, fuzzy +msgid "Album: " +msgstr "Album:" + +#: src/skins/ui_playlist.c:484 +#, fuzzy +msgid "Artist: " +msgstr "Künstler:" + +#: src/skins/ui_playlist.c:491 +#, fuzzy +msgid "Filename: " +msgstr "Dateiname:" + +#: src/skins/ui_playlist.c:499 +msgid "Clear previous selection before searching" +msgstr "" + +#: src/skins/ui_playlist.c:502 +msgid "Automatically toggle queue for matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:505 +msgid "Create a new playlist with matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:724 +#, c-format +msgid "Error writing playlist \"%s\": %s" +msgstr "" + +#: src/skins/ui_playlist.c:746 +#, c-format +msgid "%s already exist. Continue?" +msgstr "" + +#: src/skins/ui_playlist.c:761 +#, c-format +msgid "" +"Unable to save playlist.\n" +"\n" +"Unknown file type for '%s'.\n" +msgstr "" + +#: src/skins/ui_playlist.c:887 +#, fuzzy +msgid "Save as Static Playlist" +msgstr "Wiedergabeliste wählen" + +#: src/skins/ui_playlist.c:894 +msgid "Use Relative Path" +msgstr "" + +#: src/skins/ui_playlist.c:916 +#, fuzzy +msgid "Load Playlist" +msgstr "Schnelle Wiedergabenliste-Information" + +#: src/skins/ui_playlist.c:929 +#, fuzzy +msgid "Save Playlist" +msgstr "Wiedergabeliste wählen" + +#: src/skins/ui_playlist.c:1497 +#, fuzzy +msgid "Audacious Playlist Editor" +msgstr "Schnelle Wiedergabenliste-Information" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "PREAMP" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "60HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "170HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "310HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "600HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "1KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "3KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "6KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "12KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "14KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "16KHZ" +msgstr "" + +#: src/skins/ui_skinselector.c:178 +msgid "Archived Winamp 2.x skin" +msgstr "" + +#: src/skins/ui_skinselector.c:183 +msgid "Unarchived Winamp 2.x skin" +msgstr "" + +#: src/skins/util.c:1132 +#, c-format +msgid "Could not create directory (%s): %s\n" +msgstr "" + +#: src/sndfile/plugin.c:554 msgid "About sndfile plugin" msgstr "Über das sndfile-Plugin" -#: src/sndfile/plugin.c:549 +#: src/sndfile/plugin.c:555 msgid "" "Adapted for Audacious usage by Tony Vroon \n" "from the xmms_sndfile plugin which is:\n" @@ -4287,63 +5444,59 @@ "51 Franklin Street, Fifth Floor, \n" "Boston, MA 02110-1301 USA" -#: src/sndstretch/sndstretch_xmms.c:159 +#: src/sndstretch/sndstretch_xmms.c:158 msgid "About SndStretch" msgstr "Über SndStretch" -#: src/sndstretch/sndstretch_xmms.c:319 +#: src/sndstretch/sndstretch_xmms.c:318 msgid "Volume corr." msgstr "Lautstärkekorrektur" -#: src/sndstretch/sndstretch_xmms.c:320 +#: src/sndstretch/sndstretch_xmms.c:319 msgid "Short Overlap" msgstr "Kurzes Überlappen" +#: src/sndstretch/sndstretch_xmms.c:373 +msgid "Speed" +msgstr "Geschwindigkeit" + #: src/sndstretch/sndstretch_xmms.c:374 -msgid "Speed" -msgstr "Geschwindigkeit" - -#: src/sndstretch/sndstretch_xmms.c:375 msgid "Pitch" msgstr "Tonhöhe" -#: src/sndstretch/sndstretch_xmms.c:376 -msgid "Scale" -msgstr "Skalierung" - -#: src/sndstretch/sndstretch_xmms.c:396 +#: src/sndstretch/sndstretch_xmms.c:395 msgid "SndStretch - Configuration" msgstr "SndStretch - Konfiguration" -#: src/song_change/song_change.c:312 +#: src/song_change/song_change.c:310 msgid "Commands" msgstr "Befehle" -#: src/song_change/song_change.c:319 +#: src/song_change/song_change.c:317 msgid "Command to run when Audacious starts a new song." msgstr "Auszuführender Befehl, wenn Audacious ein neues Lied startet" -#: src/song_change/song_change.c:328 src/song_change/song_change.c:350 -#: src/song_change/song_change.c:371 src/song_change/song_change.c:392 +#: src/song_change/song_change.c:326 src/song_change/song_change.c:348 +#: src/song_change/song_change.c:369 src/song_change/song_change.c:390 msgid "Command:" msgstr "Befehl:" -#: src/song_change/song_change.c:342 +#: src/song_change/song_change.c:340 msgid "Command to run toward the end of a song." msgstr "Auszuführender Befehl am Ende eines Lieds" -#: src/song_change/song_change.c:362 +#: src/song_change/song_change.c:360 msgid "Command to run when Audacious reaches the end of the playlist." msgstr "Auszuführender Befehl am Ende der Wiedergabeliste" -#: src/song_change/song_change.c:383 +#: src/song_change/song_change.c:381 msgid "" "Command to run when title changes for a song (i.e. network streams titles)." msgstr "" "Auszuführender Befehl, wenn sich der Titel eines Lieds ändert (z.B. bei " "Netzwerk-Streams)" -#: src/song_change/song_change.c:404 +#: src/song_change/song_change.c:402 #, c-format msgid "" "You can use the following format strings which\n" @@ -4373,13 +5526,13 @@ "%%t: Wiedergabelisten-Position (%%02d)\n" "%%p: Ist die Wiedergabe momentan aktiv? (1 oder 0)" -#: src/song_change/song_change.c:429 +#: src/song_change/song_change.c:427 msgid "" "Parameters passed to the shell should be encapsulated in " "quotes. Doing otherwise is a security risk." msgstr "" -#: src/spectrum/spectrum.c:90 +#: src/spectrum/spectrum.c:89 msgid "Spectrum Analyzer" msgstr "" @@ -4391,11 +5544,11 @@ msgid "The orientation of the tray" msgstr "Die Ausrichtung des Trays" -#: src/statusicon/si_ui.c:622 +#: src/statusicon/si_ui.c:620 msgid "About Status Icon Plugin" msgstr "About Status-Icon-Plugin" -#: src/statusicon/si_ui.c:624 +#: src/statusicon/si_ui.c:622 msgid "" "\n" "written by Giacomo Lozito < james@develia.org >\n" @@ -4409,39 +5562,39 @@ "Dieses Plugin stellt ein Status-Icon bereit, im\n" "System-Tray des Fenstermanagers.\n" -#: src/statusicon/si_ui.c:696 +#: src/statusicon/si_ui.c:694 msgid "Status Icon Plugin - Preferences" msgstr "Status-Icon-Plugin - Einstellungen" -#: src/statusicon/si_ui.c:707 +#: src/statusicon/si_ui.c:705 msgid "Right-Click Menu" msgstr "Rechtsklick-Menü" -#: src/statusicon/si_ui.c:712 +#: src/statusicon/si_ui.c:710 msgid "Audacious standard menu" msgstr "Audacious-Standard-Menü" -#: src/statusicon/si_ui.c:717 +#: src/statusicon/si_ui.c:715 msgid "Small playback menu #1" msgstr "Kleines Wiedergabe-Menü #1" -#: src/statusicon/si_ui.c:722 +#: src/statusicon/si_ui.c:720 msgid "Small playback menu #2" msgstr "Kleines Wiedergabe-Menü #2" -#: src/statusicon/si_ui.c:745 +#: src/statusicon/si_ui.c:743 msgid "Mouse Scroll Action" msgstr "Maus-Scroll-Aktion" -#: src/statusicon/si_ui.c:750 +#: src/statusicon/si_ui.c:748 msgid "Change volume" msgstr "Lautstärke ändern" -#: src/statusicon/si_ui.c:755 +#: src/statusicon/si_ui.c:753 msgid "Change playing song" msgstr "Aktiven Titel ändern" -#: src/stereo_plugin/stereo.c:26 +#: src/stereo_plugin/stereo.c:25 msgid "" "Extra Stereo Plugin\n" "\n" @@ -4451,23 +5604,19 @@ "\n" "Von Johan Levin 1999." -#: src/stereo_plugin/stereo.c:52 +#: src/stereo_plugin/stereo.c:51 msgid "About Extra Stereo Plugin" msgstr "Über das Extra Stereo Plugin" -#: src/stereo_plugin/stereo.c:93 +#: src/stereo_plugin/stereo.c:92 msgid "Configure Extra Stereo" msgstr "Extra Stereo konfigurieren" -#: src/stereo_plugin/stereo.c:95 -msgid "Effect intensity:" -msgstr "Effektstärke" +#: src/sun/about.c:33 +msgid "About the Sun Driver" +msgstr "Über den Sun-Treiber" #: src/sun/about.c:34 -msgid "About the Sun Driver" -msgstr "Über den Sun-Treiber" - -#: src/sun/about.c:35 msgid "" "XMMS BSD Sun Driver\n" "\n" @@ -4479,19 +5628,19 @@ "Copyright (c) 2001 CubeSoft Communications, Inc.\n" "Betreuer: .\n" -#: src/sun/configure.c:201 +#: src/sun/configure.c:199 msgid "Audio control device:" msgstr "Audio-Kontroll-Gerät:" -#: src/sun/configure.c:350 +#: src/sun/configure.c:348 msgid "Volume controls device:" msgstr "Lautstärke-Kontroll-Gerät:" -#: src/sun/configure.c:363 +#: src/sun/configure.c:361 msgid "XMMS uses mixer exclusively." msgstr "XMMS benützt den Mixer exklusiv." -#: src/sun/configure.c:538 +#: src/sun/configure.c:536 msgid "Sun driver configuration" msgstr "Sun-Treiber-Konfiguration" @@ -4519,27 +5668,27 @@ msgid "TiMidity Configuration File" msgstr "" -#: src/timidity/xmms-timidity.c:118 +#: src/timidity/xmms-timidity.c:115 msgid "" "TiMidity Plugin\n" "http://libtimidity.sourceforge.net\n" "by Konstantin Korikov" msgstr "" -#: src/timidity/xmms-timidity.c:119 +#: src/timidity/xmms-timidity.c:116 #, c-format msgid "TiMidity Plugin %s" msgstr "" -#: src/timidity/xmms-timidity.c:336 +#: src/timidity/xmms-timidity.c:333 msgid "Couldn't load MIDI file" msgstr "" -#: src/tonegen/tonegen.c:56 +#: src/tonegen/tonegen.c:55 msgid "About Tone Generator" msgstr "Über Ton-Generator" -#: src/tonegen/tonegen.c:58 +#: src/tonegen/tonegen.c:57 msgid "" "Sinus tone generator by Haavard Kvaalen \n" "Modified by Daniel J. Peng \n" @@ -4554,52 +5703,52 @@ "frequency3;...\n" "z.B. tone://2000;2005 für einen Ton mit 2000Hz und einen mit 2005Hz" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 #, c-format msgid "%s %.1f Hz" msgstr "%s %.1f Hz" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 msgid "Tone Generator: " msgstr "Ton-Generator: " -#: src/tta/libtta.c:130 +#: src/tta/libtta.c:127 msgid "Can't open file\n" msgstr "Kann Datei nicht öffnen\n" +#: src/tta/libtta.c:130 +msgid "Not supported file format\n" +msgstr "Kein unterstütztes Dateiformat\n" + #: src/tta/libtta.c:133 -msgid "Not supported file format\n" -msgstr "Kein unterstütztes Dateiformat\n" +msgid "File is corrupted\n" +msgstr "Datei ist beschädigt\n" #: src/tta/libtta.c:136 -msgid "File is corrupted\n" -msgstr "Datei ist beschädigt\n" +msgid "Can't read from file\n" +msgstr "Kann nicht von Datei lesen\n" #: src/tta/libtta.c:139 -msgid "Can't read from file\n" -msgstr "Kann nicht von Datei lesen\n" +msgid "Insufficient memory available\n" +msgstr "Zu wenig Speicher verfügbar\n" #: src/tta/libtta.c:142 -msgid "Insufficient memory available\n" -msgstr "Zu wenig Speicher verfügbar\n" +msgid "Output plugin error\n" +msgstr "Ausgabe-Plugin-Fehler\n" #: src/tta/libtta.c:145 -msgid "Output plugin error\n" -msgstr "Ausgabe-Plugin-Fehler\n" - -#: src/tta/libtta.c:148 msgid "Unknown error\n" msgstr "Unbekannter Fehler\n" -#: src/tta/libtta.c:152 +#: src/tta/libtta.c:149 msgid "TTA Decoder Error" msgstr "TTA-Dekoder-Fehler" -#: src/tta/libtta.c:261 +#: src/tta/libtta.c:258 msgid "TTA input plugin " msgstr "TTA-Eingabe-Plugin " -#: src/tta/libtta.c:262 +#: src/tta/libtta.c:259 msgid "" " for BMP\n" "Copyright (c) 2004 True Audio Software\n" @@ -4607,35 +5756,35 @@ " für BMP\n" "Copyright (c) 2004 True Audio Software\n" -#: src/tta/libtta.c:265 +#: src/tta/libtta.c:262 msgid "About True Audio Plugin" msgstr "Über True-Audio-Plugin" -#: src/tta/libtta.c:316 +#: src/tta/libtta.c:313 msgid "ID3 Tag:" msgstr "ID3-Tag:" -#: src/tta/libtta.c:378 src/wavpack/ui.cxx:234 +#: src/tta/libtta.c:375 src/wavpack/ui.cxx:232 msgid "Track number:" msgstr "Titelnummer:" -#: src/vorbis/configure.c:84 +#: src/vorbis/configure.c:82 msgid "Ogg Vorbis Audio Plugin Configuration" msgstr "Ogg-Vorbis-Audio-Plugin-Konfiguration" -#: src/vorbis/configure.c:94 +#: src/vorbis/configure.c:92 msgid "Ogg Vorbis Tags:" msgstr "Ogg-Vorbis-Tags:" -#: src/vorbis/configure.c:115 +#: src/vorbis/configure.c:113 msgid "Title format:" msgstr "Titelformat:" -#: src/vorbis/vorbis.c:681 +#: src/vorbis/vorbis.c:677 msgid "About Ogg Vorbis Audio Plugin" msgstr "Über Ogg-Vorbis-Audio-Plugin" -#: src/vorbis/vorbis.c:687 +#: src/vorbis/vorbis.c:683 msgid "" "Ogg Vorbis Plugin by the Xiph.org Foundation\n" "\n" @@ -4669,11 +5818,11 @@ "\n" "Xiph.org Foundation, http://www.xiph.org/\n" -#: src/vtx/about.c:23 +#: src/vtx/about.c:17 msgid "About Vortex Player" msgstr "Über den Vortex-Player" -#: src/vtx/about.c:25 +#: src/vtx/about.c:19 msgid "" "Vortex file format player by Sashnov Alexander \n" "Founded on original source in_vtx.dll by Roman Sherbakov " -#: src/wavpack/ui.cxx:52 +#: src/wavpack/ui.cxx:50 #, c-format msgid "Wavpack Decoder Plugin %s" msgstr "Wavpack-Dekoder-Plugin %s" -#: src/wavpack/ui.cxx:53 +#: src/wavpack/ui.cxx:51 msgid "" "Copyright (c) 2006 William Pitcock \n" "\n" @@ -4711,90 +5860,90 @@ "Ein Teil des Plugin-Codes war von Miles Egan\n" "Die Wavpack-Seite befindet sich auf http://www.wavpack.com/\n" -#: src/wavpack/ui.cxx:165 +#: src/wavpack/ui.cxx:163 msgid "Ape2 Tag" msgstr "Ape2-Tag" -#: src/wavpack/ui.cxx:288 +#: src/wavpack/ui.cxx:286 msgid "Wavpack Info:" msgstr "Wavpack-Information:" +#: src/wavpack/ui.cxx:379 +#, c-format +msgid "version %d" +msgstr "Version %d" + +#: src/wavpack/ui.cxx:380 +#, c-format +msgid "average bitrate: %6.1f kbps" +msgstr "durchschnittliche Bitrate: %6.1f kbps" + #: src/wavpack/ui.cxx:381 #, c-format -msgid "version %d" -msgstr "Version %d" +msgid "samplerate: %d Hz" +msgstr "Abtastfrequenz: %d Hz" #: src/wavpack/ui.cxx:382 #, c-format -msgid "average bitrate: %6.1f kbps" -msgstr "durchschnittliche Bitrate: %6.1f kbps" +msgid "bits per sample: %d" +msgstr "Bits pro Sample: %d" #: src/wavpack/ui.cxx:383 #, c-format -msgid "samplerate: %d Hz" -msgstr "Abtastfrequenz: %d Hz" +msgid "channels: %d" +msgstr "Kanäle: %d" #: src/wavpack/ui.cxx:384 #, c-format -msgid "bits per sample: %d" -msgstr "Bits pro Sample: %d" +msgid "length: %d:%.2d" +msgstr "Länge: %d:%.2d" #: src/wavpack/ui.cxx:385 #, c-format -msgid "channels: %d" -msgstr "Kanäle: %d" - -#: src/wavpack/ui.cxx:386 -#, c-format -msgid "length: %d:%.2d" -msgstr "Länge: %d:%.2d" - -#: src/wavpack/ui.cxx:387 -#, c-format msgid "file size: %d Bytes" msgstr "Dateigrösse: %d Byte" -#: src/wavpack/ui.cxx:394 +#: src/wavpack/ui.cxx:392 msgid "Title Peak: ?" msgstr "Titel-Höchstwert: ?" -#: src/wavpack/ui.cxx:395 +#: src/wavpack/ui.cxx:393 msgid "Album Peak: ?" msgstr "Album-Höchstwert: ?" -#: src/wavpack/ui.cxx:396 +#: src/wavpack/ui.cxx:394 msgid "Title Gain: ?" msgstr "Titel-Verstärkung: ?" -#: src/wavpack/ui.cxx:397 +#: src/wavpack/ui.cxx:395 msgid "Album Gain: ?" msgstr "Album-Verstärkung: ?" -#: src/wavpack/ui.cxx:471 +#: src/wavpack/ui.cxx:469 msgid "Wavpack Configuration" msgstr "Wavpack-Konfiguration" -#: src/wavpack/ui.cxx:484 +#: src/wavpack/ui.cxx:482 msgid "General Plugin Settings:" msgstr "Allgemeine Plugin-Einstellungen:" -#: src/wavpack/ui.cxx:502 +#: src/wavpack/ui.cxx:500 msgid "ReplayGain Settings:" msgstr "ReplayGain-Einstellungen:" -#: src/wavpack/ui.cxx:520 +#: src/wavpack/ui.cxx:518 msgid "ReplayGain Type:" msgstr "ReplayGain-Typ:" -#: src/wavpack/ui.cxx:531 +#: src/wavpack/ui.cxx:529 msgid "use Track Gain/Peak" msgstr "Benutze Track Gain/Peak" -#: src/wavpack/ui.cxx:539 +#: src/wavpack/ui.cxx:537 msgid "use Album Gain/Peak" msgstr "Benutze Album Gain/Peak" -#: src/wma/wma.c:123 +#: src/wma/wma.c:120 msgid "" "Adapted for use in Audacious by Tony Vroon (chainsaw@gentoo.org) from\n" "the BEEP-WMA plugin which is Copyright (C) 2004,2005 Mokrushin I.V. aka " @@ -4878,9 +6027,6 @@ #~ msgid "Play/Pause:" #~ msgstr "Wiedergabe starten/pausieren" -#~ msgid "File Info" -#~ msgstr "Dateiinformationen" - #~ msgid "Couldn't open file!" #~ msgstr "Konnte Datei nicht öffnen!" @@ -4927,9 +6073,6 @@ #~ msgid "Failed to modify tag" #~ msgstr "Verändern des Tags fehlgeschlagen" -#~ msgid "Date:" -#~ msgstr "Datum:" - #~ msgid "Description:" #~ msgstr "Beschreibung:" @@ -4939,9 +6082,6 @@ #~ msgid "ISRC number:" #~ msgstr "ISRC-Nummer:" -#~ msgid "Organization:" -#~ msgstr "Organisation:" - #~ msgid " Ogg Vorbis Info " #~ msgstr " Ogg-Vorbis-Informationen " diff -r c40585c57877 -r 7fc2c317d190 po/et.po --- a/po/et.po Thu Jul 03 17:23:34 2008 +0300 +++ b/po/et.po Thu Jul 03 17:37:11 2008 +0300 @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: audacious-plugins 1.4.2\n" -"Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" -"POT-Creation-Date: 2008-03-30 17:25+0200\n" +"Report-Msgid-Bugs-To: http://bugzilla.atheme.org/\n" +"POT-Creation-Date: 2008-06-21 08:27+0300\n" "PO-Revision-Date: 2007-12-30 17:49+0200\n" "Last-Translator: Ivar Smolin \n" "Language-Team: Estonian \n" @@ -16,49 +16,49 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/aac/libmp4.c:286 +#: src/aac/libmp4.c:283 msgid "Using libfaad2-" msgstr "" -#: src/aac/libmp4.c:287 +#: src/aac/libmp4.c:284 msgid "" " for decoding.\n" "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n" "Copyright (c) 2005-2006 Audacious team" msgstr "" -#: src/aac/libmp4.c:291 +#: src/aac/libmp4.c:288 msgid "About MP4 AAC player plugin" msgstr "MP4 AAC esituspluginast lähemalt" -#: src/aac/libmp4.c:293 src/adplug/adplug-xmms.cc:182 -#: src/adplug/adplug-xmms.cc:265 src/adplug/adplug-xmms.cc:526 -#: src/alac/plugin.c:77 src/arts/arts.c:26 src/arts/configure.c:90 -#: src/audiocompress/audacious-glue.c:102 -#: src/audiocompress/audacious-glue.c:552 src/cdaudio-ng/configure.c:228 -#: src/console/Audacious_Driver.cxx:449 src/demac/plugin.c:393 -#: src/echo_plugin/gui.c:26 src/echo_plugin/gui.c:137 src/esd/about.c:49 -#: src/filewriter/filewriter.c:183 src/jack/configure.c:141 -#: src/jack/jack.c:456 src/madplug/plugin.c:542 src/madplug/plugin.c:566 -#: src/metronom/metronom.c:88 src/modplug/gui/main.cxx:49 -#: src/musepack/libmpc.cxx:232 src/null/null.c:67 src/null/null.c:110 -#: src/OSS4/about.c:59 src/OSS/about.c:54 src/paranormal-ng/plugin.c:283 -#: src/paranormal/plugin.c:291 src/scrobbler/gtkstuff.c:25 -#: src/sndfile/plugin.c:565 src/statusicon/si_ui.c:628 -#: src/stereo_plugin/stereo.c:53 src/stereo_plugin/stereo.c:116 -#: src/sun/about.c:38 src/sun/configure.c:559 src/timidity/interface.c:222 -#: src/timidity/xmms-timidity.c:120 src/tonegen/tonegen.c:62 -#: src/tta/libtta.c:153 src/tta/libtta.c:267 src/tta/libtta.c:402 -#: src/vorbis/vorbis.c:700 src/vtx/about.c:32 src/vtx/info.c:43 -#: src/wavpack/ui.cxx:56 src/wavpack/ui.cxx:556 +#: src/aac/libmp4.c:290 src/adplug/adplug-xmms.cc:180 +#: src/adplug/adplug-xmms.cc:263 src/adplug/adplug-xmms.cc:524 +#: src/alac/plugin.c:74 src/arts/arts.c:25 src/arts/configure.c:90 +#: src/audiocompress/audacious-glue.c:110 +#: src/audiocompress/audacious-glue.c:560 src/cdaudio-ng/configure.c:242 +#: src/console/Audacious_Driver.cxx:447 src/crystalizer/crystalizer.c:113 +#: src/demac/plugin.c:364 src/echo_plugin/gui.c:24 src/echo_plugin/gui.c:135 +#: src/esd/about.c:48 src/filewriter/filewriter.c:183 src/jack/configure.c:140 +#: src/jack/jack.c:454 src/madplug/plugin.c:679 src/madplug/plugin.c:703 +#: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:52 +#: src/musepack/libmpc.cxx:228 src/null/null.c:64 src/null/null.c:107 +#: src/OSS4/OSS4.c:55 src/OSS/OSS.c:52 src/paranormal-ng/plugin.c:282 +#: src/paranormal/plugin.c:290 src/scrobbler/gtkstuff.c:22 +#: src/sndfile/plugin.c:571 src/statusicon/si_ui.c:626 +#: src/stereo_plugin/stereo.c:52 src/stereo_plugin/stereo.c:115 +#: src/sun/about.c:37 src/sun/configure.c:557 src/timidity/interface.c:222 +#: src/timidity/xmms-timidity.c:117 src/tonegen/tonegen.c:61 +#: src/tta/libtta.c:150 src/tta/libtta.c:264 src/tta/libtta.c:399 +#: src/vorbis/vorbis.c:696 src/vtx/about.c:26 src/vtx/info.c:38 +#: src/wavpack/ui.cxx:54 src/wavpack/ui.cxx:554 msgid "Ok" msgstr "Olgu" -#: src/adplug/adplug-xmms.cc:171 +#: src/adplug/adplug-xmms.cc:169 msgid "About " msgstr "" -#: src/adplug/adplug-xmms.cc:175 +#: src/adplug/adplug-xmms.cc:173 msgid "" "\n" "Copyright (C) 2002, 2003 Simon Peter \n" @@ -71,195 +71,195 @@ "Linked AdPlug library version: " msgstr "" -#: src/adplug/adplug-xmms.cc:256 +#: src/adplug/adplug-xmms.cc:254 msgid "AdPlug :: Configuration" msgstr "AdPlug'i sätted" -#: src/adplug/adplug-xmms.cc:275 src/alarm/interface.c:1398 +#: src/adplug/adplug-xmms.cc:273 src/alarm/interface.c:1398 #: src/alsa/configure.c:389 src/arts/configure.c:91 -#: src/audiocompress/audacious-glue.c:557 src/cdaudio-ng/configure.c:232 -#: src/echo_plugin/gui.c:145 src/jack/configure.c:148 -#: src/modplug/gui/interface.cxx:714 src/modplug/gui/modplug.glade:1668 -#: src/musepack/libmpc.cxx:237 src/musepack/libmpc.cxx:557 src/null/null.c:111 -#: src/sid/xmms-sid.glade:3080 src/sid/xs_interface.c:1250 -#: src/stereo_plugin/stereo.c:125 src/sun/configure.c:567 -#: src/timidity/interface.c:230 src/wavpack/ui.cxx:280 src/wavpack/ui.cxx:563 +#: src/audiocompress/audacious-glue.c:565 src/cdaudio-ng/configure.c:246 +#: src/crystalizer/crystalizer.c:122 src/echo_plugin/gui.c:143 +#: src/jack/configure.c:147 src/modplug/gui/interface.cxx:714 +#: src/modplug/gui/modplug.glade:1668 src/musepack/libmpc.cxx:233 +#: src/musepack/libmpc.cxx:553 src/null/null.c:108 +#: src/stereo_plugin/stereo.c:124 src/sun/configure.c:565 +#: src/timidity/interface.c:230 src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561 msgid "Cancel" msgstr "Loobu" -#: src/adplug/adplug-xmms.cc:291 src/console/Audacious_Config.cxx:145 -#: src/madplug/configure.c:290 src/modplug/gui/interface.cxx:628 +#: src/adplug/adplug-xmms.cc:289 src/console/Audacious_Config.cxx:144 +#: src/madplug/configure.c:289 src/modplug/gui/interface.cxx:628 #: src/modplug/gui/interface.cxx:887 src/modplug/gui/modplug.glade:1404 #: src/modplug/gui/modplug.glade:1804 msgid "General" msgstr "Üldine" -#: src/adplug/adplug-xmms.cc:303 +#: src/adplug/adplug-xmms.cc:301 msgid "Sound quality" msgstr "Helikvaliteet" -#: src/adplug/adplug-xmms.cc:308 src/modplug/gui/interface.cxx:187 +#: src/adplug/adplug-xmms.cc:306 src/modplug/gui/interface.cxx:187 #: src/modplug/gui/modplug.glade:113 msgid "Resolution" msgstr "" -#: src/adplug/adplug-xmms.cc:310 +#: src/adplug/adplug-xmms.cc:308 msgid "8bit" msgstr "8-bitine" -#: src/adplug/adplug-xmms.cc:315 +#: src/adplug/adplug-xmms.cc:313 msgid "16bit" msgstr "16-bitine" -#: src/adplug/adplug-xmms.cc:323 src/modplug/gui/interface.cxx:218 +#: src/adplug/adplug-xmms.cc:321 src/modplug/gui/interface.cxx:218 #: src/modplug/gui/modplug.glade:199 src/timidity/interface.c:148 msgid "Channels" msgstr "Kanaleid" -#: src/adplug/adplug-xmms.cc:325 src/filewriter/mp3.c:900 -#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:288 +#: src/adplug/adplug-xmms.cc:323 src/filewriter/mp3.c:900 +#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:300 #: src/timidity/interface.c:165 msgid "Mono" msgstr "Mono" -#: src/adplug/adplug-xmms.cc:330 src/filewriter/mp3.c:895 +#: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:895 #: src/modplug/gui/interface.cxx:204 src/modplug/gui/modplug.glade:159 -#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:295 +#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:307 #: src/timidity/interface.c:173 msgid "Stereo" msgstr "Stereo" -#: src/adplug/adplug-xmms.cc:334 +#: src/adplug/adplug-xmms.cc:332 msgid "" "Setting stereo is not recommended, unless you need to. This won't add any " "stereo effects to the sound - OPL2 is just mono - but eats up more CPU power!" msgstr "" -#: src/adplug/adplug-xmms.cc:342 +#: src/adplug/adplug-xmms.cc:340 msgid "Frequency" msgstr "Sagedus" -#: src/adplug/adplug-xmms.cc:378 src/adplug/adplug-xmms.cc:582 -#: src/console/Audacious_Config.cxx:147 +#: src/adplug/adplug-xmms.cc:376 src/adplug/adplug-xmms.cc:580 +#: src/console/Audacious_Config.cxx:146 src/skins/ui_manager.c:175 msgid "Playback" msgstr "Esitamine" -#: src/adplug/adplug-xmms.cc:382 +#: src/adplug/adplug-xmms.cc:380 msgid "Detect songend" msgstr "Loo lõpp tuvastatakse" -#: src/adplug/adplug-xmms.cc:386 +#: src/adplug/adplug-xmms.cc:384 msgid "" "If enabled, XMMS will detect a song's ending, stop it and advance in the " "playlist. If disabled, XMMS won't take notice of a song's ending and loop it " "all over again and again." msgstr "" -#: src/adplug/adplug-xmms.cc:397 +#: src/adplug/adplug-xmms.cc:395 msgid "Formats" msgstr "Vormingud" -#: src/adplug/adplug-xmms.cc:404 +#: src/adplug/adplug-xmms.cc:402 msgid "Format selection" msgstr "Vormingute valimine" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Format" msgstr "Vorming" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Extension" msgstr "Laiend" -#: src/adplug/adplug-xmms.cc:447 +#: src/adplug/adplug-xmms.cc:445 msgid "" "Selected file types will be recognized and played back by this plugin. " "Deselected types will be ignored to make room for other plugins to play " "these files." msgstr "" -#: src/adplug/adplug-xmms.cc:533 +#: src/adplug/adplug-xmms.cc:531 msgid "AdPlug :: File Info" msgstr "" -#: src/adplug/adplug-xmms.cc:555 src/amidi-plug/i_configure-fluidsynth.c:448 +#: src/adplug/adplug-xmms.cc:553 src/amidi-plug/i_configure-fluidsynth.c:448 msgid "Filename" msgstr "Failinimi" -#: src/adplug/adplug-xmms.cc:559 +#: src/adplug/adplug-xmms.cc:557 src/skins/ui_playlist.c:470 msgid "Title: " msgstr "Pealkiri: " -#: src/adplug/adplug-xmms.cc:560 +#: src/adplug/adplug-xmms.cc:558 msgid "Author: " msgstr "Autor: " +#: src/adplug/adplug-xmms.cc:559 +msgid "File Type: " +msgstr "Faili tüüp: " + +#: src/adplug/adplug-xmms.cc:560 +msgid "Subsongs: " +msgstr "" + #: src/adplug/adplug-xmms.cc:561 -msgid "File Type: " -msgstr "Faili tüüp: " - -#: src/adplug/adplug-xmms.cc:562 -msgid "Subsongs: " -msgstr "" - -#: src/adplug/adplug-xmms.cc:563 msgid "Instruments: " msgstr "Instrumendid: " -#: src/adplug/adplug-xmms.cc:568 +#: src/adplug/adplug-xmms.cc:566 msgid "Orders: " msgstr "" -#: src/adplug/adplug-xmms.cc:569 +#: src/adplug/adplug-xmms.cc:567 msgid "Patterns: " msgstr "Mustrid: " -#: src/adplug/adplug-xmms.cc:573 +#: src/adplug/adplug-xmms.cc:571 msgid "Song" msgstr "" -#: src/adplug/adplug-xmms.cc:599 +#: src/adplug/adplug-xmms.cc:597 msgid "Instrument name" msgstr "Instrumendi nimi" -#: src/adplug/adplug-xmms.cc:641 +#: src/adplug/adplug-xmms.cc:639 msgid "Song message" msgstr "Loo sõnum" -#: src/adplug/adplug-xmms.cc:663 +#: src/adplug/adplug-xmms.cc:661 msgid "Subsong selection" msgstr "" -#: src/adplug/adplug-xmms.cc:727 +#: src/adplug/adplug-xmms.cc:725 msgid "Order: " msgstr "" -#: src/adplug/adplug-xmms.cc:728 +#: src/adplug/adplug-xmms.cc:726 msgid "Pattern: " msgstr "Muster: " -#: src/adplug/adplug-xmms.cc:730 +#: src/adplug/adplug-xmms.cc:728 msgid "Row: " msgstr "" -#: src/adplug/adplug-xmms.cc:731 +#: src/adplug/adplug-xmms.cc:729 msgid "Speed: " msgstr "Kiirus: " -#: src/adplug/adplug-xmms.cc:732 +#: src/adplug/adplug-xmms.cc:730 msgid "Timer: " msgstr "" -#: src/adplug/adplug-xmms.cc:733 src/console/Audacious_Config.cxx:225 -#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:341 +#: src/adplug/adplug-xmms.cc:731 src/console/Audacious_Config.cxx:224 +#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:353 msgid "Hz" msgstr "Hz" -#: src/alac/plugin.c:74 +#: src/alac/plugin.c:71 msgid "About Apple Lossless Audio Plugin" msgstr "Apple Lossless Audio pluginast lähemalt" -#: src/alac/plugin.c:75 +#: src/alac/plugin.c:72 msgid "" "Copyright (c) 2006 Audacious team\n" "Portions (c) 2005-2006 David Hammerton " @@ -297,8 +297,8 @@ #: src/alarm/interface.c:71 src/lirc/about.c:115 #: src/modplug/gui/interface.cxx:971 src/modplug/gui/modplug.glade:2030 -#: src/sid/xmms-sid.glade:3643 src/sid/xs_about.c:214 -#: src/sid/xs_interface.c:1740 +#: src/sid/xmms-sid.glade:3837 src/sid/xs_about.c:214 +#: src/sid/xs_interface.c:1824 msgid "Close" msgstr "Sulge" @@ -310,13 +310,12 @@ msgid "This is your wakeup call." msgstr "See on sinu äratus." -#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:46 +#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:45 #: src/alsa/configure.c:383 src/cdaudio-ng/cdaudio-ng.c:247 -#: src/flacng/plugin.c:706 src/gnomeshortcuts/gnomeshortcuts.c:311 -#: src/hotkey/gui.c:671 src/modplug/gui/interface.cxx:702 -#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:738 -#: src/scrobbler/gtkstuff.c:45 src/sid/xmms-sid.glade:3066 -#: src/sid/xs_interface.c:1243 +#: src/flacng/plugin.c:705 src/gnomeshortcuts/gnomeshortcuts.c:310 +#: src/hotkey/gui.c:670 src/modplug/gui/interface.cxx:702 +#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:736 +#: src/scrobbler/gtkstuff.c:42 src/skins/plugin.c:130 msgid "OK" msgstr "Olgu" @@ -385,7 +384,8 @@ #: src/alarm/interface.c:612 src/alarm/interface.c:660 #: src/alarm/interface.c:708 src/alarm/interface.c:756 #: src/alarm/interface.c:804 src/alarm/interface.c:852 -#: src/alarm/interface.c:900 src/OSS4/configure.c:138 src/OSS/configure.c:169 +#: src/alarm/interface.c:900 src/OSS4/configure.c:136 src/OSS/configure.c:168 +#: src/skins/ui_manager.c:447 src/skins/ui_manager.c:468 msgid "Default" msgstr "Vaikimisi" @@ -430,9 +430,9 @@ msgstr "Kahanemine" #: src/alarm/interface.c:1087 src/sid/xmms-sid.glade:2007 -#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2676 -#: src/sid/xs_interface.c:908 src/sid/xs_interface.c:962 -#: src/sid/xs_interface.c:1122 +#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2746 +#: src/sid/xs_interface.c:920 src/sid/xs_interface.c:974 +#: src/sid/xs_interface.c:1154 msgid "seconds" msgstr "sekundit" @@ -485,7 +485,7 @@ msgid "Use reminder" msgstr "Meeldetuletaja on kasutusel" -#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:377 +#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:376 msgid "Options" msgstr "Valikud" @@ -548,7 +548,7 @@ " toggle button if you want it to be shown.\n" msgstr "" -#: src/alarm/interface.c:1366 +#: src/alarm/interface.c:1366 src/skins/ui_manager.c:386 msgid "Help" msgstr "Abi" @@ -560,11 +560,11 @@ msgid "Thankyou" msgstr "" -#: src/alsa/about.c:30 +#: src/alsa/about.c:29 msgid "About ALSA Driver" msgstr "ALSA draiverist lähemalt" -#: src/alsa/about.c:31 +#: src/alsa/about.c:30 msgid "" "Audacious ALSA Driver\n" "\n" @@ -614,8 +614,8 @@ msgid "ALSA Driver configuration" msgstr "ALSA draiveri sätted" -#: src/alsa/configure.c:274 src/OSS4/configure.c:186 src/OSS/configure.c:217 -#: src/sun/configure.c:183 +#: src/alsa/configure.c:274 src/OSS4/configure.c:184 src/OSS/configure.c:216 +#: src/sun/configure.c:181 msgid "Audio device:" msgstr "Audioseade:" @@ -627,7 +627,7 @@ msgid "Mixer card:" msgstr "Miksimiskaart:" -#: src/alsa/configure.c:313 src/OSS/configure.c:260 src/sun/configure.c:220 +#: src/alsa/configure.c:313 src/OSS/configure.c:259 src/sun/configure.c:218 msgid "Mixer device:" msgstr "Miksimisseade:" @@ -1212,8 +1212,8 @@ "TiMidity\n" "taustaprogramm" -#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3465 -#: src/sid/xs_interface.c:1684 +#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3659 +#: src/sid/xs_interface.c:1768 msgid "Name:" msgstr "Nimi:" @@ -1316,46 +1316,46 @@ msgid "None" msgstr "" -#: src/aosd/aosd_trigger.c:75 +#: src/aosd/aosd_trigger.c:74 msgid "Playback Start" msgstr "Esitamise alustamine" -#: src/aosd/aosd_trigger.c:76 +#: src/aosd/aosd_trigger.c:75 msgid "Triggers OSD when a playlist entry is played." msgstr "" +#: src/aosd/aosd_trigger.c:79 +msgid "Title Change" +msgstr "Pealkirja muutumine" + #: src/aosd/aosd_trigger.c:80 -msgid "Title Change" -msgstr "Pealkirja muutumine" - -#: src/aosd/aosd_trigger.c:81 msgid "" "Triggers OSD when, during playback, the song title changes but the filename " "is the same. This is mostly useful to display title changes in internet " "streams." msgstr "" -#: src/aosd/aosd_trigger.c:87 +#: src/aosd/aosd_trigger.c:86 msgid "Volume Change" msgstr "Valjuse muutumine" -#: src/aosd/aosd_trigger.c:88 +#: src/aosd/aosd_trigger.c:87 msgid "Triggers OSD when volume is changed." msgstr "" -#: src/aosd/aosd_trigger.c:92 +#: src/aosd/aosd_trigger.c:91 msgid "Pause On" msgstr "Pausimine" -#: src/aosd/aosd_trigger.c:93 +#: src/aosd/aosd_trigger.c:92 msgid "Triggers OSD when playback is paused." msgstr "" +#: src/aosd/aosd_trigger.c:96 +msgid "Pause Off" +msgstr "Pausi lõpetamine" + #: src/aosd/aosd_trigger.c:97 -msgid "Pause Off" -msgstr "Pausi lõpetamine" - -#: src/aosd/aosd_trigger.c:98 msgid "Triggers OSD when playback is unpaused." msgstr "" @@ -1454,10 +1454,10 @@ msgid "Skin file:" msgstr "" -#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2331 -#: src/sid/xmms-sid.glade:2856 src/sid/xmms-sid.glade:2962 -#: src/sid/xs_interface.c:1010 src/sid/xs_interface.c:1182 -#: src/sid/xs_interface.c:1218 +#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2373 +#: src/sid/xmms-sid.glade:2968 src/sid/xmms-sid.glade:3136 +#: src/sid/xs_interface.c:1043 src/sid/xs_interface.c:1235 +#: src/sid/xs_interface.c:1291 msgid "Browse" msgstr "" @@ -1537,9 +1537,9 @@ msgid "Trigger" msgstr "Päästikud" -#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:167 +#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:175 #: src/modplug/gui/interface.cxx:688 src/modplug/gui/modplug.glade:1603 -#: src/sid/xmms-sid.glade:3026 src/sid/xs_interface.c:1229 +#: src/sid/xmms-sid.glade:3220 src/sid/xs_interface.c:1301 msgid "Misc" msgstr "Muu" @@ -1566,11 +1566,11 @@ "\n" msgstr "" -#: src/arts/arts.c:22 +#: src/arts/arts.c:21 msgid "About aRts Output" msgstr "aRts väljundist lähemalt" -#: src/arts/arts.c:23 +#: src/arts/arts.c:22 msgid "" "aRts output plugin by Håvard Kvålen \n" "Audacious port by Giacomo Lozito from develia.org" @@ -1580,26 +1580,26 @@ msgid "aRts Driver configuration" msgstr "" -#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:232 -#: src/OSS/configure.c:304 src/sun/configure.c:259 +#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:230 +#: src/OSS/configure.c:303 src/sun/configure.c:257 msgid "Buffering:" msgstr "Puhverdamine:" -#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:245 -#: src/OSS/configure.c:317 src/sun/configure.c:272 +#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:243 +#: src/OSS/configure.c:316 src/sun/configure.c:270 msgid "Buffer size (ms):" msgstr "Puhvri suurus (ms):" -#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:270 -#: src/OSS/configure.c:342 src/sun/configure.c:304 +#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:268 +#: src/OSS/configure.c:341 src/sun/configure.c:302 msgid "Buffering" msgstr "Puhverdamine" -#: src/audiocompress/audacious-glue.c:95 +#: src/audiocompress/audacious-glue.c:103 msgid "AudioCompress " msgstr "" -#: src/audiocompress/audacious-glue.c:96 +#: src/audiocompress/audacious-glue.c:104 msgid "" "\n" "(c)2003 trikuare studios(http://trikuare.cx)\n" @@ -1609,108 +1609,108 @@ "keeping the volume level more or less consistent" msgstr "" -#: src/audiocompress/audacious-glue.c:101 +#: src/audiocompress/audacious-glue.c:109 msgid "About AudioCompress" msgstr "AudioCompress pluginast lähemalt" -#: src/audiocompress/audacious-glue.c:320 +#: src/audiocompress/audacious-glue.c:328 msgid "" "If checked, when the sound peaks the volume will be cut instantly; " "otherwise, it will ramp down just in time for the peak (but some minor " "clipping may still occur)." msgstr "" -#: src/audiocompress/audacious-glue.c:324 +#: src/audiocompress/audacious-glue.c:332 msgid "The maximum amount to amplify the audio by" msgstr "" -#: src/audiocompress/audacious-glue.c:326 +#: src/audiocompress/audacious-glue.c:334 msgid "Defines how smoothly the volume will ramp up" msgstr "" -#: src/audiocompress/audacious-glue.c:328 +#: src/audiocompress/audacious-glue.c:336 msgid "" "The target audio level for ramping up. Lowering the value gives a bit more " "dynamic range for peaks, but will make the overall sound quieter." msgstr "" -#: src/audiocompress/audacious-glue.c:331 +#: src/audiocompress/audacious-glue.c:339 msgid "How long of a window to maintain" msgstr "" -#: src/audiocompress/audacious-glue.c:372 +#: src/audiocompress/audacious-glue.c:380 msgid "AudioCompress preferences" msgstr "" -#: src/audiocompress/audacious-glue.c:389 +#: src/audiocompress/audacious-glue.c:397 msgid " Quality Options " msgstr "" -#: src/audiocompress/audacious-glue.c:394 +#: src/audiocompress/audacious-glue.c:402 msgid " Aggressively prevent clipping" msgstr "" -#: src/audiocompress/audacious-glue.c:406 +#: src/audiocompress/audacious-glue.c:414 msgid " Target & gain" msgstr "" -#: src/audiocompress/audacious-glue.c:417 -msgid "Target audio level:" -msgstr "" - #: src/audiocompress/audacious-glue.c:425 -msgid "Maximum gain:" +msgid "Target audio level:" msgstr "" #: src/audiocompress/audacious-glue.c:433 +msgid "Maximum gain:" +msgstr "" + +#: src/audiocompress/audacious-glue.c:441 msgid "Gain smooth:" msgstr "" -#: src/audiocompress/audacious-glue.c:485 +#: src/audiocompress/audacious-glue.c:493 msgid " History " msgstr " Ajalugu " -#: src/audiocompress/audacious-glue.c:517 +#: src/audiocompress/audacious-glue.c:525 msgid "" "How long of a history to maintain. A higher number will make the volume " "changes less responsive." msgstr "" -#: src/audiocompress/audacious-glue.c:528 +#: src/audiocompress/audacious-glue.c:536 msgid "Load default values" msgstr "Laadi vaikeväärtused" -#: src/audiocompress/audacious-glue.c:533 +#: src/audiocompress/audacious-glue.c:541 msgid "Audio values" msgstr "" -#: src/audiocompress/audacious-glue.c:562 src/echo_plugin/gui.c:152 -#: src/modplug/gui/interface.cxx:708 src/modplug/gui/modplug.glade:1655 -#: src/stereo_plugin/stereo.c:132 +#: src/audiocompress/audacious-glue.c:570 src/crystalizer/crystalizer.c:129 +#: src/echo_plugin/gui.c:150 src/modplug/gui/interface.cxx:708 +#: src/modplug/gui/modplug.glade:1655 src/stereo_plugin/stereo.c:131 msgid "Apply" msgstr "Rakenda" +#: src/blur_scope/blur_scope.c:52 +msgid "/Toggle Decorations" +msgstr "" + #: src/blur_scope/blur_scope.c:54 -msgid "/Toggle Decorations" -msgstr "" - -#: src/blur_scope/blur_scope.c:56 msgid "/-" msgstr "" -#: src/blur_scope/blur_scope.c:57 +#: src/blur_scope/blur_scope.c:55 msgid "/Close" msgstr "" -#: src/blur_scope/blur_scope.c:181 +#: src/blur_scope/blur_scope.c:179 msgid "Blur scope" msgstr "" -#: src/blur_scope/config.c:72 +#: src/blur_scope/config.c:71 msgid "Blur Scope: Color selection" msgstr "" -#: src/blur_scope/config.c:82 src/jack/configure.c:108 +#: src/blur_scope/config.c:81 src/jack/configure.c:107 msgid "Options:" msgstr "Valikud:" @@ -1748,7 +1748,7 @@ "\n" "See projekt loodi Google Summer of Code 2007 raames." -#: src/cdaudio-ng/cdaudio-ng.c:814 +#: src/cdaudio-ng/cdaudio-ng.c:815 msgid "" "No playable CD found.\n" "\n" @@ -1758,108 +1758,113 @@ "\n" "CD-plaati pole sisestatud või pole see audioplaat.\n" -#: src/cdaudio-ng/configure.c:147 +#: src/cdaudio-ng/configure.c:155 msgid "CD Audio Plugin Configuration" msgstr "Audioplaatide plugina sätted" -#: src/cdaudio-ng/configure.c:157 +#: src/cdaudio-ng/configure.c:165 msgid "Digital audio extraction" msgstr "Digitaalne audiolugemine" -#: src/cdaudio-ng/configure.c:162 +#: src/cdaudio-ng/configure.c:170 msgid "Title information" msgstr "Pealkirja andmed" -#: src/cdaudio-ng/configure.c:179 +#: src/cdaudio-ng/configure.c:187 msgid "Limit read speed to: " msgstr "Lugemiskiiruse piirang:" -#: src/cdaudio-ng/configure.c:186 +#: src/cdaudio-ng/configure.c:194 msgid "Use cd-text if available" msgstr "Võimaluse korral kasutatakse cd-teksti" -#: src/cdaudio-ng/configure.c:190 +#: src/cdaudio-ng/configure.c:198 msgid "Use CDDB if available" msgstr "Võimaluse korral kasutatakse CDDB-d" -#: src/cdaudio-ng/configure.c:194 +#: src/cdaudio-ng/configure.c:202 msgid "Server: " msgstr "Server: " -#: src/cdaudio-ng/configure.c:197 +#: src/cdaudio-ng/configure.c:205 +#, fuzzy +msgid "Path: " +msgstr "Muster: " + +#: src/cdaudio-ng/configure.c:208 msgid "Port: " msgstr "Port: " -#: src/cdaudio-ng/configure.c:203 +#: src/cdaudio-ng/configure.c:217 msgid "Use HTTP instead of CDDBP" msgstr "" -#: src/cdaudio-ng/configure.c:211 +#: src/cdaudio-ng/configure.c:225 msgid "Override default device: " msgstr "Vaikimisi seadme asemel kasutatakse: " -#: src/cdaudio-ng/configure.c:218 +#: src/cdaudio-ng/configure.c:232 msgid "Print debug information" msgstr "Silumisandmeid prinditakse" -#: src/console/Audacious_Config.cxx:125 +#: src/console/Audacious_Config.cxx:124 msgid "Console Music Decoder" msgstr "" -#: src/console/Audacious_Config.cxx:162 +#: src/console/Audacious_Config.cxx:161 msgid "Bass:" msgstr "" -#: src/console/Audacious_Config.cxx:166 src/console/Audacious_Config.cxx:177 -#: src/console/Audacious_Config.cxx:198 +#: src/console/Audacious_Config.cxx:165 src/console/Audacious_Config.cxx:176 +#: src/console/Audacious_Config.cxx:197 msgid "secs" msgstr "" -#: src/console/Audacious_Config.cxx:173 +#: src/console/Audacious_Config.cxx:172 msgid "Treble:" msgstr "" -#: src/console/Audacious_Config.cxx:194 +#: src/console/Audacious_Config.cxx:193 msgid "Default song length:" msgstr "" -#: src/console/Audacious_Config.cxx:200 src/modplug/gui/interface.cxx:268 +#: src/console/Audacious_Config.cxx:199 src/modplug/gui/interface.cxx:268 #: src/modplug/gui/modplug.glade:338 src/sid/xmms-sid.glade:1243 -#: src/sid/xs_interface.c:653 +#: src/sid/xs_interface.c:665 msgid "Resampling" msgstr "" -#: src/console/Audacious_Config.cxx:206 +#: src/console/Audacious_Config.cxx:205 msgid "Enable audio resampling" msgstr "" -#: src/console/Audacious_Config.cxx:221 +#: src/console/Audacious_Config.cxx:220 msgid "Resampling rate:" msgstr "" +#: src/console/Audacious_Config.cxx:235 +msgid "SPC" +msgstr "" + #: src/console/Audacious_Config.cxx:236 -msgid "SPC" +msgid "Ignore length from SPC tags" msgstr "" #: src/console/Audacious_Config.cxx:237 -msgid "Ignore length from SPC tags" -msgstr "" - -#: src/console/Audacious_Config.cxx:238 msgid "Increase reverb" msgstr "" -#: src/console/Audacious_Config.cxx:263 +#: src/console/Audacious_Config.cxx:262 msgid "" "The default song length, expressed in seconds, is used for songs that do not " "provide length information (i.e. looping tracks)." msgstr "" -#: src/console/Audacious_Driver.cxx:444 +#: src/console/Audacious_Driver.cxx:442 msgid "About the Console Music Decoder" msgstr "Console Music Decoder pluginast lähemalt" -#: src/console/Audacious_Driver.cxx:445 +#: src/console/Audacious_Driver.cxx:443 msgid "" "Console music decoder engine based on Game_Music_Emu 0.5.2.\n" "Supported formats: AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ\n" @@ -1867,12 +1872,21 @@ " Shay Green " msgstr "" -#: src/demac/plugin.c:388 +#: src/crystalizer/crystalizer.c:90 +#, fuzzy +msgid "Configure Crystalizer" +msgstr "Seadista..." + +#: src/crystalizer/crystalizer.c:92 src/stereo_plugin/stereo.c:94 +msgid "Effect intensity:" +msgstr "" + +#: src/demac/plugin.c:359 #, fuzzy msgid "About Monkey's Audio Plugin" msgstr "MPEG audiopluginast lähemalt" -#: src/demac/plugin.c:389 +#: src/demac/plugin.c:360 msgid "" "Copyright (C) 2007 Eugene Zagidullin \n" "Based on ffape decoder, Copyright (C) 2007 Benjamin Zores\n" @@ -1881,7 +1895,7 @@ "ffape is a part of FFmpeg project, http://ffmpeg.mplayerhq.hu/" msgstr "" -#: src/echo_plugin/gui.c:11 +#: src/echo_plugin/gui.c:9 msgid "" "Echo Plugin\n" "By Johan Levin 1999.\n" @@ -1893,35 +1907,35 @@ "\n" "Surround-kaja autor: Carl van Schaik 1999" -#: src/echo_plugin/gui.c:25 +#: src/echo_plugin/gui.c:23 msgid "About Echo Plugin" msgstr "Kajapluginast lähemalt" -#: src/echo_plugin/gui.c:76 +#: src/echo_plugin/gui.c:74 msgid "Configure Echo" msgstr "Kaja seadistamine" -#: src/echo_plugin/gui.c:89 +#: src/echo_plugin/gui.c:87 msgid "Delay: (ms)" msgstr "Viivitus (ms)" -#: src/echo_plugin/gui.c:94 +#: src/echo_plugin/gui.c:92 msgid "Feedback: (%)" msgstr "" -#: src/echo_plugin/gui.c:99 +#: src/echo_plugin/gui.c:97 msgid "Volume: (%)" msgstr "Valjus: (%)" -#: src/echo_plugin/gui.c:122 +#: src/echo_plugin/gui.c:120 msgid "Surround echo" msgstr "Surround-kaja" +#: src/esd/about.c:33 +msgid "About ESounD Plugin" +msgstr "ESounD'i pluginast lähemalt" + #: src/esd/about.c:34 -msgid "About ESounD Plugin" -msgstr "ESounD'i pluginast lähemalt" - -#: src/esd/about.c:35 msgid "" "Audacious ESounD Plugin\n" "\n" @@ -1980,8 +1994,8 @@ msgid "Server" msgstr "Server" -#: src/esd/configure.c:198 src/OSS4/configure.c:259 src/OSS/configure.c:331 -#: src/sun/configure.c:290 +#: src/esd/configure.c:198 src/OSS4/configure.c:257 src/OSS/configure.c:330 +#: src/sun/configure.c:288 msgid "Pre-buffer (percent):" msgstr "Eelpuhver (protsentides):" @@ -2053,93 +2067,93 @@ msgid "Window->JumpToFile" msgstr "" -#: src/evdev-plug/ed_internals.c:94 +#: src/evdev-plug/ed_internals.c:93 #, c-format msgid "" "event-device-plugin: unable to open device file %s , skipping this device; " "check that the file exists and that you have read permission for it\n" msgstr "" -#: src/evdev-plug/ed_internals.c:103 +#: src/evdev-plug/ed_internals.c:102 #, c-format msgid "" "event-device-plugin: unable to create a io_channel for device file %s ," "skipping this device\n" msgstr "" -#: src/evdev-plug/ed_internals.c:342 +#: src/evdev-plug/ed_internals.c:341 msgid "" "event-device-plugin: unable to open /proc/bus/input/devices , automatic " "detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:351 +#: src/evdev-plug/ed_internals.c:350 msgid "" "event-device-plugin: unable to open a io_channel for /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:361 +#: src/evdev-plug/ed_internals.c:360 msgid "" "event-device-plugin: an error occurred while reading /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:424 +#: src/evdev-plug/ed_internals.c:423 #, c-format msgid "event-device-plugin: device %s not found in /dev/input , skipping.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:489 src/evdev-plug/ed_internals.c:583 +#: src/evdev-plug/ed_internals.c:488 src/evdev-plug/ed_internals.c:582 #, c-format msgid "" "event-device-plugin: unable to load config file %s , default settings will " "be used.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:535 +#: src/evdev-plug/ed_internals.c:534 #, c-format msgid "" "event-device-plugin: incomplete information in config file for device \"%s" "\" , skipping.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:604 src/evdev-plug/ed_internals.c:936 +#: src/evdev-plug/ed_internals.c:603 src/evdev-plug/ed_internals.c:935 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_active value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:840 +#: src/evdev-plug/ed_internals.c:839 #, c-format msgid "" "event-device-plugin: unable to access local directory %s , settings will not " "be saved.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:890 +#: src/evdev-plug/ed_internals.c:889 #, c-format msgid "" "event-device-plugin: configuration, unable to get filename value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:906 +#: src/evdev-plug/ed_internals.c:905 #, c-format msgid "" "event-device-plugin: configuration, unable to get phys value for device \"%s" "\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:922 +#: src/evdev-plug/ed_internals.c:921 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_custom value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:946 +#: src/evdev-plug/ed_internals.c:945 #, c-format msgid "" "event-device-plugin: configuration, unexpected value for device \"%s\", " @@ -2157,7 +2171,7 @@ "Ensure that the device has been correctly plugged in." msgstr "" -#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:566 +#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:703 msgid "Error" msgstr "" @@ -2211,7 +2225,7 @@ msgid "Active" msgstr "Aktiivne" -#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:488 +#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:486 msgid "Status" msgstr "Olek" @@ -2322,7 +2336,7 @@ msgid "Output file format:" msgstr "Väljundfaili vorming:" -#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:960 +#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:959 msgid "Configure" msgstr "Seadista..." @@ -2550,11 +2564,11 @@ msgid "Quality level (0 - 10):" msgstr "Kvaliteedi tase (0-10):" -#: src/flacng/plugin.c:698 +#: src/flacng/plugin.c:697 msgid "FLAC Audio Plugin " msgstr "FLAC audioplugin " -#: src/flacng/plugin.c:699 +#: src/flacng/plugin.c:698 msgid "" "\n" "\n" @@ -2570,15 +2584,15 @@ "\n" "http://www.skytale.net/projects/bmp-flac2/" -#: src/flacng/plugin.c:704 +#: src/flacng/plugin.c:703 msgid "About FLAC Audio Plugin" msgstr "FLAC audiopluginast lähemalt" +#: src/gnomeshortcuts/gnomeshortcuts.c:305 +msgid "About Gnome Shortcut Plugin" +msgstr "Gnome kiirklahvide pluginast lähemalt" + #: src/gnomeshortcuts/gnomeshortcuts.c:306 -msgid "About Gnome Shortcut Plugin" -msgstr "Gnome kiirklahvide pluginast lähemalt" - -#: src/gnomeshortcuts/gnomeshortcuts.c:307 #, fuzzy msgid "" "Gnome Shortcut Plugin\n" @@ -2597,7 +2611,7 @@ msgid "Previous Track" msgstr "" -#: src/hotkey/gui.c:69 +#: src/hotkey/gui.c:69 src/skins/ui_manager.c:177 src/skins/ui_manager.c:178 #, fuzzy msgid "Play" msgstr "Esitamine" @@ -2606,7 +2620,7 @@ msgid "Pause/Resume" msgstr "" -#: src/hotkey/gui.c:71 +#: src/hotkey/gui.c:71 src/skins/ui_manager.c:183 src/skins/ui_manager.c:184 #, fuzzy msgid "Stop" msgstr "Stereo" @@ -2637,7 +2651,7 @@ msgid "Volume Down" msgstr "Valjus" -#: src/hotkey/gui.c:78 +#: src/hotkey/gui.c:78 src/skins/ui_manager.c:422 src/skins/ui_manager.c:423 msgid "Jump to File" msgstr "" @@ -2689,11 +2703,11 @@ msgid "Key Binding:" msgstr "" -#: src/hotkey/gui.c:660 +#: src/hotkey/gui.c:659 msgid "About Global Hotkey Plugin" msgstr "" -#: src/hotkey/gui.c:661 +#: src/hotkey/gui.c:660 msgid "" "Global Hotkey Plugin\n" "Control the player with global key combinations or multimedia keys.\n" @@ -2709,35 +2723,35 @@ "\n" msgstr "" -#: src/jack/configure.c:70 +#: src/jack/configure.c:69 msgid "Connect to all available jack ports" msgstr "" -#: src/jack/configure.c:77 +#: src/jack/configure.c:76 msgid "Connect only the output ports" msgstr "" -#: src/jack/configure.c:84 +#: src/jack/configure.c:83 msgid "Connect to no ports" msgstr "" -#: src/jack/configure.c:99 +#: src/jack/configure.c:98 msgid "jack Plugin configuration" msgstr "" -#: src/jack/configure.c:117 +#: src/jack/configure.c:116 msgid "Connection mode:" msgstr "" -#: src/jack/configure.c:129 +#: src/jack/configure.c:128 msgid "Enable debug printing" msgstr "" -#: src/jack/jack.c:84 +#: src/jack/jack.c:82 msgid "Sample rate mismatch" msgstr "" -#: src/jack/jack.c:87 +#: src/jack/jack.c:85 msgid "" "Xmms is asking for a sample rate that differs from\n" " that of the jack server. Xmms 1.2.8 or later\n" @@ -2751,15 +2765,15 @@ "Chris Morgan \n" msgstr "" -#: src/jack/jack.c:100 src/wma/wma.c:148 +#: src/jack/jack.c:98 src/wma/wma.c:145 msgid " Close " msgstr " Sulge " -#: src/jack/jack.c:452 +#: src/jack/jack.c:450 msgid "About JACK Output Plugin 0.17" msgstr "JACK väljundplugina versioonist 0.17 lähemalt" -#: src/jack/jack.c:453 +#: src/jack/jack.c:451 msgid "" "XMMS jack Driver 0.17\n" "\n" @@ -2770,39 +2784,39 @@ "Giacomo Lozito from develia.org" msgstr "" -#: src/ladspa/ladspa.c:722 +#: src/ladspa/ladspa.c:721 msgid "This LADSPA plugin has no user controls" msgstr "" -#: src/ladspa/ladspa.c:767 src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:766 src/ladspa/ladspa.c:852 msgid "Name" msgstr "Nimi" -#: src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:852 msgid "UID" msgstr "UID" -#: src/ladspa/ladspa.c:928 +#: src/ladspa/ladspa.c:927 msgid "Installed plugins" msgstr "Paigaldatud pluginad" -#: src/ladspa/ladspa.c:937 +#: src/ladspa/ladspa.c:936 msgid "Running plugins" msgstr "Töötavad pluginad" -#: src/ladspa/ladspa.c:952 +#: src/ladspa/ladspa.c:951 msgid "Add" msgstr "Lisa" -#: src/ladspa/ladspa.c:956 +#: src/ladspa/ladspa.c:955 msgid "Remove" msgstr "Eemalda" -#: src/ladspa/ladspa.c:969 +#: src/ladspa/ladspa.c:968 msgid "LADSPA Plugin Catalog" msgstr "LADSPA pluginate kataloog" -#: src/lastfm/lastfm.c:96 +#: src/lastfm/lastfm.c:94 msgid "" "Couldn't initialize the last.fm radio plugin.\n" "\n" @@ -2886,59 +2900,59 @@ msgid "%s: will try reconnect every %d seconds...\n" msgstr "" -#: src/madplug/configure.c:209 +#: src/madplug/configure.c:208 msgid "MPEG Audio Plugin Configuration" msgstr "MPEG audioplugina sätted" -#: src/madplug/configure.c:226 +#: src/madplug/configure.c:225 #, fuzzy msgid "Audio Settings" msgstr "Alarmi sätted" -#: src/madplug/configure.c:234 +#: src/madplug/configure.c:233 msgid "Force reopen audio when audio type changed" msgstr "" -#: src/madplug/configure.c:243 +#: src/madplug/configure.c:242 #, fuzzy msgid "Metadata Settings" msgstr "Mikseri sätted" -#: src/madplug/configure.c:252 +#: src/madplug/configure.c:251 msgid "Enable fast play-length calculation" msgstr "" -#: src/madplug/configure.c:259 +#: src/madplug/configure.c:258 msgid "Parse XING headers" msgstr "" -#: src/madplug/configure.c:266 +#: src/madplug/configure.c:265 msgid "Use SJIS to write ID3 tags (not recommended)" msgstr "" -#: src/madplug/configure.c:273 +#: src/madplug/configure.c:272 #, fuzzy msgid "Miscellaneous Settings" msgstr "Mikseri sätted" -#: src/madplug/configure.c:282 +#: src/madplug/configure.c:281 msgid "Display average bitrate for VBR" msgstr "" -#: src/madplug/configure.c:296 src/vorbis/configure.c:102 +#: src/madplug/configure.c:295 src/vorbis/configure.c:100 msgid "Override generic titles" msgstr "Kasutatakse oma pealkirjavormingut" -#: src/madplug/configure.c:308 +#: src/madplug/configure.c:307 msgid "ID3 format:" msgstr "ID3 vorming:" -#: src/madplug/configure.c:320 src/sid/xmms-sid.glade:2540 -#: src/sid/xs_interface.c:1070 +#: src/madplug/configure.c:319 src/sid/xmms-sid.glade:2610 +#: src/sid/xs_interface.c:1102 msgid "Title" msgstr "Pealkiri" -#: src/madplug/plugin.c:524 +#: src/madplug/plugin.c:661 #, c-format msgid "" "Audacious MPEG Audio Plugin\n" @@ -2969,15 +2983,15 @@ "ReplayGain tugi:\n" " Samuel Krempp" -#: src/madplug/plugin.c:540 +#: src/madplug/plugin.c:677 msgid "About MPEG Audio Plugin" msgstr "MPEG audiopluginast lähemalt" +#: src/metronom/metronom.c:86 +msgid "About Metronom" +msgstr "Metronoomist lähemalt" + #: src/metronom/metronom.c:87 -msgid "About Metronom" -msgstr "Metronoomist lähemalt" - -#: src/metronom/metronom.c:88 msgid "" "A Tact Generator by Martin Strauss \n" "\n" @@ -2986,12 +3000,12 @@ "or tact://60*3/4 to play 60 bpm in 3/4 tacts" msgstr "" -#: src/metronom/metronom.c:198 src/metronom/metronom.c:262 +#: src/metronom/metronom.c:197 src/metronom/metronom.c:261 #, c-format msgid "Tact generator: %d bpm" msgstr "Taktigeneraator: %d bpm" -#: src/metronom/metronom.c:200 src/metronom/metronom.c:264 +#: src/metronom/metronom.c:199 src/metronom/metronom.c:263 #, c-format msgid "Tact generator: %d bpm %d/%d" msgstr "Taktigeneraator: %d bpm %d/%d" @@ -3204,11 +3218,11 @@ msgid "Message" msgstr "Sõnum" -#: src/modplug/gui/main.cxx:45 +#: src/modplug/gui/main.cxx:48 msgid "Modplug Input Plugin for Audacious ver" msgstr "" -#: src/modplug/gui/main.cxx:46 +#: src/modplug/gui/main.cxx:49 msgid "" "\n" "Modplug sound engine written by Olivier Lapicque.\n" @@ -3224,7 +3238,7 @@ "Uuendused ja hooldus: Konstanty Bialkowski.\n" "BMP jaoks portinud Theofilos Intzoglou." -#: src/modplug/gui/main.cxx:49 +#: src/modplug/gui/main.cxx:52 msgid "About Modplug" msgstr "Modplug'ist lähemalt" @@ -3234,27 +3248,27 @@ msgid "Couldn't find pixmap file: %s" msgstr "" -#: src/mtp_up/mtp.c:35 +#: src/mtp_up/mtp.c:33 msgid "Upload selected track(s)" msgstr "" -#: src/mtp_up/mtp.c:296 +#: src/mtp_up/mtp.c:294 msgid "Upload in progress..." msgstr "" -#: src/mtp_up/mtp.c:305 +#: src/mtp_up/mtp.c:303 msgid "MTP device handler" msgstr "" -#: src/mtp_up/mtp.c:309 +#: src/mtp_up/mtp.c:307 msgid "Disconnect the device" msgstr "" -#: src/musepack/libmpc.cxx:146 +#: src/musepack/libmpc.cxx:142 msgid "Musepack Decoder Plugin 1.2" msgstr "" -#: src/musepack/libmpc.cxx:147 +#: src/musepack/libmpc.cxx:143 msgid "" "Plugin code by\n" "Benoit Amiaux\n" @@ -3264,196 +3278,226 @@ "Get latest version at http://musepack.net\n" msgstr "" -#: src/musepack/libmpc.cxx:148 +#: src/musepack/libmpc.cxx:144 msgid "Nevermind" msgstr "" -#: src/musepack/libmpc.cxx:166 +#: src/musepack/libmpc.cxx:162 msgid "Musepack Decoder Configuration" msgstr "" -#: src/musepack/libmpc.cxx:176 +#: src/musepack/libmpc.cxx:172 msgid "General Settings" msgstr "" -#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:492 +#: src/musepack/libmpc.cxx:179 src/wavpack/ui.cxx:490 msgid "Enable Dynamic Bitrate Display" msgstr "" -#: src/musepack/libmpc.cxx:187 src/wavpack/ui.cxx:498 +#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:496 msgid "Plugin" msgstr "" -#: src/musepack/libmpc.cxx:190 +#: src/musepack/libmpc.cxx:186 msgid "ReplayGain Settings" msgstr "" -#: src/musepack/libmpc.cxx:197 src/wavpack/ui.cxx:510 +#: src/musepack/libmpc.cxx:193 src/wavpack/ui.cxx:508 msgid "Enable Clipping Prevention" msgstr "" -#: src/musepack/libmpc.cxx:202 src/wavpack/ui.cxx:515 +#: src/musepack/libmpc.cxx:198 src/wavpack/ui.cxx:513 msgid "Enable ReplayGain" msgstr "" -#: src/musepack/libmpc.cxx:207 +#: src/musepack/libmpc.cxx:203 msgid "ReplayGain Type" msgstr "" +#: src/musepack/libmpc.cxx:211 +msgid "Use Track Gain" +msgstr "" + #: src/musepack/libmpc.cxx:215 -msgid "Use Track Gain" -msgstr "" - -#: src/musepack/libmpc.cxx:219 msgid "Use Album Gain" msgstr "" -#: src/musepack/libmpc.cxx:224 src/wavpack/ui.cxx:547 +#: src/musepack/libmpc.cxx:220 src/wavpack/ui.cxx:545 msgid "ReplayGain" msgstr "" -#: src/musepack/libmpc.cxx:491 src/sid/xmms-sid.glade:3144 -#: src/sid/xs_interface.c:1564 src/tta/libtta.c:304 src/wavpack/ui.cxx:152 +#: src/musepack/libmpc.cxx:487 src/sid/xmms-sid.glade:3338 +#: src/sid/xs_interface.c:1648 src/tta/libtta.c:301 src/wavpack/ui.cxx:150 msgid "Filename:" msgstr "Failinimi:" -#: src/musepack/libmpc.cxx:506 +#: src/musepack/libmpc.cxx:502 msgid "Musepack Tag" msgstr "" -#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:323 src/wavpack/ui.cxx:172 +#: src/musepack/libmpc.cxx:510 src/tta/libtta.c:320 src/wavpack/ui.cxx:170 msgid "Title:" msgstr "Pealkiri:" -#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:333 src/wavpack/ui.cxx:184 +#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:330 src/wavpack/ui.cxx:182 msgid "Artist:" msgstr "Esitaja:" -#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:344 src/wavpack/ui.cxx:196 +#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:341 src/wavpack/ui.cxx:194 msgid "Album:" msgstr "Album:" -#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:355 src/wavpack/ui.cxx:208 +#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:352 src/wavpack/ui.cxx:206 msgid "Comment:" msgstr "Kommentaar:" -#: src/musepack/libmpc.cxx:530 src/tta/libtta.c:366 src/wavpack/ui.cxx:221 +#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:363 src/wavpack/ui.cxx:219 msgid "Year:" msgstr "Aasta:" -#: src/musepack/libmpc.cxx:535 +#: src/musepack/libmpc.cxx:531 msgid "Track:" msgstr "" -#: src/musepack/libmpc.cxx:540 src/tta/libtta.c:390 src/wavpack/ui.cxx:248 +#: src/musepack/libmpc.cxx:536 src/tta/libtta.c:387 src/wavpack/ui.cxx:246 msgid "Genre:" msgstr "Žanr:" -#: src/musepack/libmpc.cxx:551 src/sid/xmms-sid.glade:1732 -#: src/sid/xs_interface.c:820 src/wavpack/ui.cxx:267 +#: src/musepack/libmpc.cxx:547 src/sid/xmms-sid.glade:1732 +#: src/sid/xs_interface.c:832 src/skins/ui_manager.c:438 +#: src/wavpack/ui.cxx:265 msgid "Save" msgstr "" -#: src/musepack/libmpc.cxx:554 src/wavpack/ui.cxx:273 +#: src/musepack/libmpc.cxx:550 src/wavpack/ui.cxx:271 msgid "Remove Tag" msgstr "" -#: src/musepack/libmpc.cxx:562 +#: src/musepack/libmpc.cxx:558 msgid "Musepack Info" msgstr "" +#: src/musepack/libmpc.cxx:591 +#, c-format +msgid "Streamversion %d" +msgstr "" + +#: src/musepack/libmpc.cxx:592 +#, c-format +msgid "Encoder: %s" +msgstr "" + +#: src/musepack/libmpc.cxx:593 +#, c-format +msgid "Profile: %s" +msgstr "" + +#: src/musepack/libmpc.cxx:594 +#, c-format +msgid "Average bitrate: %6.1f kbps" +msgstr "Keskmine bitikiirus: %6.1f kbps" + #: src/musepack/libmpc.cxx:595 #, c-format -msgid "Streamversion %d" +msgid "Samplerate: %d Hz" msgstr "" #: src/musepack/libmpc.cxx:596 #, c-format -msgid "Encoder: %s" -msgstr "" +msgid "Channels: %d" +msgstr "Kanaleid: %d" #: src/musepack/libmpc.cxx:597 #, c-format -msgid "Profile: %s" -msgstr "" +msgid "Length: %d:\\%.2d" +msgstr "Kestus: %d:\\%.2d" #: src/musepack/libmpc.cxx:598 #, c-format -msgid "Average bitrate: %6.1f kbps" -msgstr "Keskmine bitikiirus: %6.1f kbps" +msgid "File size: %d Bytes" +msgstr "" #: src/musepack/libmpc.cxx:599 #, c-format -msgid "Samplerate: %d Hz" +msgid "Track Peak: %5u" msgstr "" #: src/musepack/libmpc.cxx:600 #, c-format -msgid "Channels: %d" -msgstr "Kanaleid: %d" +msgid "Track Gain: %-+2.2f dB" +msgstr "" #: src/musepack/libmpc.cxx:601 #, c-format -msgid "Length: %d:\\%.2d" -msgstr "Kestus: %d:\\%.2d" +msgid "Album Peak: %5u" +msgstr "" #: src/musepack/libmpc.cxx:602 #, c-format -msgid "File size: %d Bytes" -msgstr "" - -#: src/musepack/libmpc.cxx:603 -#, c-format -msgid "Track Peak: %5u" -msgstr "" - -#: src/musepack/libmpc.cxx:604 -#, c-format -msgid "Track Gain: %-+2.2f dB" -msgstr "" - -#: src/musepack/libmpc.cxx:605 -#, c-format -msgid "Album Peak: %5u" -msgstr "" - -#: src/musepack/libmpc.cxx:606 -#, c-format msgid "Album Gain: %-+5.2f dB" msgstr "" -#: src/musepack/libmpc.cxx:634 src/tta/libtta.c:413 src/wavpack/ui.cxx:409 +#: src/musepack/libmpc.cxx:630 src/tta/libtta.c:410 src/wavpack/ui.cxx:407 #, c-format msgid "File Info - %s" msgstr "Faili andmed: %s" -#: src/null/null.c:61 +#: src/null/null.c:58 msgid "Null output plugin " msgstr "" -#: src/null/null.c:62 +#: src/null/null.c:59 msgid "" " by Christian Birchinger \n" "based on the XMMS plugin by Håvard Kvål " msgstr "" -#: src/null/null.c:65 +#: src/null/null.c:62 msgid "About Null Output" msgstr "Nullväljundist lähemalt" -#: src/null/null.c:94 +#: src/null/null.c:91 msgid "Null output preferences" msgstr "Nullväljundi eelistused" -#: src/null/null.c:103 +#: src/null/null.c:100 msgid "Run in real time" msgstr "" -#: src/OSS4/about.c:42 +#: src/OSS4/configure.c:118 src/OSS/configure.c:150 +#, c-format +msgid "Default (%s)" +msgstr "Vaikimisi (%s)" + +#: src/OSS4/configure.c:168 src/OSS/configure.c:200 +msgid "OSS Driver configuration" +msgstr "OSS draiveri sätted" + +#: src/OSS4/configure.c:206 src/OSS/configure.c:238 src/OSS/configure.c:279 +msgid "Use alternate device:" +msgstr "Kasutatakse alternatiivseadet:" + +#: src/OSS4/configure.c:228 src/OSS/configure.c:301 src/sun/configure.c:246 +msgid "Devices" +msgstr "Seadmed" + +#: src/OSS4/configure.c:270 src/OSS/configure.c:342 +msgid "Mixer Settings:" +msgstr "Mikseri sätted" + +#: src/OSS4/configure.c:276 +msgid "Save VMIX volume between sessions" +msgstr "" + +#: src/OSS4/configure.c:282 src/OSS/configure.c:354 src/sun/configure.c:392 +msgid "Mixer" +msgstr "Mikser" + +#: src/OSS4/OSS4.c:38 msgid "About OSSv4 Driver" msgstr "OSSv4 draiverist lähemalt" -#: src/OSS4/about.c:43 +#: src/OSS4/OSS4.c:39 msgid "" "Audacious OSSv4 Driver\n" "\n" @@ -3491,40 +3535,15 @@ "programmiga; kui ei, siis võtke ühendust Free Software Foundation'iga,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." -#: src/OSS4/configure.c:120 src/OSS/configure.c:151 -#, c-format -msgid "Default (%s)" -msgstr "Vaikimisi (%s)" - -#: src/OSS4/configure.c:170 src/OSS/configure.c:201 -msgid "OSS Driver configuration" -msgstr "OSS draiveri sätted" - -#: src/OSS4/configure.c:208 src/OSS/configure.c:239 src/OSS/configure.c:280 -msgid "Use alternate device:" -msgstr "Kasutatakse alternatiivseadet:" - -#: src/OSS4/configure.c:230 src/OSS/configure.c:302 src/sun/configure.c:248 -msgid "Devices" -msgstr "Seadmed" - -#: src/OSS4/configure.c:272 src/OSS/configure.c:343 -msgid "Mixer Settings:" -msgstr "Mikseri sätted" - -#: src/OSS4/configure.c:278 -msgid "Save VMIX volume between sessions" -msgstr "" - -#: src/OSS4/configure.c:284 src/OSS/configure.c:355 src/sun/configure.c:394 -msgid "Mixer" -msgstr "Mikser" - -#: src/OSS/about.c:39 +#: src/OSS/configure.c:348 +msgid "Volume controls Master not PCM" +msgstr "" + +#: src/OSS/OSS.c:37 msgid "About OSS Driver" msgstr "OSS draiverist lähemalt" -#: src/OSS/about.c:40 +#: src/OSS/OSS.c:38 msgid "" "Audacious OSS Driver\n" "\n" @@ -3559,19 +3578,15 @@ "programmiga; kui ei, siis võtke ühendust Free Software Foundation'iga,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." -#: src/OSS/configure.c:349 -msgid "Volume controls Master not PCM" -msgstr "" - #: src/projectm-1.0/main.c:70 msgid "_Random" msgstr "" -#: src/pulse_audio/pulse_audio.c:722 +#: src/pulse_audio/pulse_audio.c:720 msgid "About Audacious PulseAudio Output Plugin" msgstr "Audacious'e PulseAudio väljundpluginast lähemalt" -#: src/pulse_audio/pulse_audio.c:723 +#: src/pulse_audio/pulse_audio.c:721 msgid "" "Audacious PulseAudio Output Plugin\n" "\n" @@ -3606,27 +3621,27 @@ "programmiga; kui ei, siis võtke ühendust Free Software Foundation'iga,\n" "51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA." -#: src/scrobbler/configure.c:138 +#: src/scrobbler/configure.c:134 msgid "Services" msgstr "Teenused" -#: src/scrobbler/configure.c:160 src/scrobbler/configure.c:199 +#: src/scrobbler/configure.c:156 src/scrobbler/configure.c:195 msgid "Username:" msgstr "Kasutajanimi:" -#: src/scrobbler/configure.c:166 src/scrobbler/configure.c:205 +#: src/scrobbler/configure.c:162 src/scrobbler/configure.c:201 msgid "Password:" msgstr "Parool:" -#: src/scrobbler/configure.c:183 +#: src/scrobbler/configure.c:179 msgid "Last.FM" msgstr "Last.FM" -#: src/scrobbler/configure.c:222 +#: src/scrobbler/configure.c:218 msgid "Gerpok" msgstr "Gerpok" -#: src/scrobbler/gtkstuff.c:21 +#: src/scrobbler/gtkstuff.c:18 msgid "" "Audacious AudioScrobbler Plugin\n" "\n" @@ -3634,11 +3649,11 @@ "com>\n" msgstr "" -#: src/scrobbler/gtkstuff.c:23 +#: src/scrobbler/gtkstuff.c:20 msgid "About Scrobbler Plugin" msgstr "" -#: src/scrobbler/gtkstuff.c:36 +#: src/scrobbler/gtkstuff.c:33 #, c-format msgid "" "There has been an error that may require your attention.\n" @@ -3648,106 +3663,106 @@ "%s\n" msgstr "" -#: src/scrobbler/gtkstuff.c:43 +#: src/scrobbler/gtkstuff.c:40 msgid "Scrobbler Error" msgstr "" -#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:221 +#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:233 msgid "Audacious-SID configuration" msgstr "" -#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:257 +#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:269 msgid "8-bit" msgstr "" -#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:264 +#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:276 msgid "16-bit" msgstr "" -#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:271 +#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:283 msgid "Resolution:" msgstr "" -#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:302 +#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:314 msgid "Autopanning" msgstr "" -#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:309 +#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:321 msgid "Channels:" msgstr "Kanaleid:" -#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:353 +#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:365 msgid "Samplerate:" msgstr "" -#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:370 +#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:382 msgid "Use oversampling" msgstr "" -#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:381 +#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:393 msgid "Factor:" msgstr "" -#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:393 +#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:405 msgid "Large factors require more CPU-power" msgstr "" -#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:399 +#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:411 msgid "Oversampling:" msgstr "" -#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:404 +#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:416 msgid "Audio" msgstr "" -#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:436 +#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:448 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "clock speed/frequency. Otherwise the speed is determined from played file " "itself." msgstr "" -#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:432 +#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:444 msgid "Force speed" msgstr "" -#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:442 +#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:454 msgid "" "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. " "Most of SID-tunes have been made for PAL computers." msgstr "" -#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:438 +#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:450 msgid "PAL (50 Hz)" msgstr "" -#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:450 +#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:462 msgid "" "NTSC is the TV standard with 60Hz vertical refresh rate (and other features " "that differ from PAL). It is mainly used in United States, Japan and certain " "other countries." msgstr "" -#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:446 +#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:458 msgid "NTSC (60 Hz)" msgstr "" -#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:454 +#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:466 msgid "Clock speed:" msgstr "" -#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:475 +#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:487 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "SID-chip model. Otherwise the preferred SID model is determined from the " "file (if PSIDv2NG type) or if not available, this setting is used." msgstr "" -#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:471 +#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:483 msgid "Force model" msgstr "" -#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:481 +#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:493 msgid "" "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 " "in few ways, having much fuller filter (which, due to design error, is never " @@ -3755,89 +3770,89 @@ "which enables playing of digital samples." msgstr "" -#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:477 +#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:489 msgid "MOS 6581" msgstr "" -#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:485 +#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:497 msgid "MOS 8580" msgstr "" -#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:492 +#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:504 msgid "SID model:" msgstr "" -#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:513 +#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:525 msgid "" "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most " "cases, though." msgstr "" -#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:509 +#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:521 msgid "SIDPlay 1 (frame-based)" msgstr "" -#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:521 +#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:533 msgid "" "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact " "emulation." msgstr "" -#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:517 +#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:529 msgid "SIDPlay 2 (cycle-based)" msgstr "" -#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:525 +#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:537 msgid "Emulation library selection:" msgstr "" -#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:542 +#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:554 msgid "Real C64 (SIDPlay 2 only)" msgstr "" -#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:549 +#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:561 msgid "Bank switching" msgstr "" -#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:556 +#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:568 msgid "Transparent ROM" msgstr "" -#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:563 +#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:575 msgid "PlaySID environment" msgstr "" -#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:570 +#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:582 msgid "Memory mode:" msgstr "" -#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:575 +#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:587 msgid "Emu#1" msgstr "" -#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:602 +#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:614 msgid "" "This setting can be used to enable libSIDPlay2's \"optimization mode\", " "which in downgrades the emulation from cycle-exact to something similar to " "frame-exact. The result is lower CPU usage, but worse accuracy." msgstr "" -#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:598 +#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:610 msgid "Optimization mode (faster, inaccurate)" msgstr "" -#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:608 +#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:620 msgid "" "reSID is the software SID-chip simulator based on SID reverse-engineering, " "created by Dag Lem. It is probably the closest thing to real SID available " "as software-only emulation." msgstr "" -#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:604 +#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:616 msgid "reSID-emulation" msgstr "" -#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:616 +#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:628 msgid "" "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a " "real SID-chip. Software can be used to control the HardSID and combined with " @@ -3846,47 +3861,47 @@ "http://www.hardsid.com/" msgstr "" -#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:612 +#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:624 msgid "HardSID" msgstr "" -#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:620 +#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:632 msgid "SIDPlay 2 options:" msgstr "" -#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:641 +#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:653 msgid "" "Fastest and also worst sounding sampling method, simply picks nearest " "neighbouring sample." msgstr "" -#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:637 +#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:649 msgid "Fast (nearest neighbour)" msgstr "" -#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:649 +#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:661 msgid "" "Uses linear interpolation between samples, yielding higher audio quality " "with less sampling noise." msgstr "" -#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:645 +#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:657 msgid "Linear interpolation" msgstr "" -#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:660 +#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:672 msgid "Resampling (FIR)" msgstr "" -#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:667 +#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:679 msgid "reSID sampling options:" msgstr "" -#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:672 +#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:684 msgid "Emu#2" msgstr "" -#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:688 +#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:700 msgid "" "This option enables emulation of SID filter. The filter is an essential part " "of SID's sound capacity, but accurate emulation of it may require quite much " @@ -3894,294 +3909,305 @@ "authentic at all if they utilize the filter." msgstr "" -#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:684 +#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:696 msgid "Emulate filters" msgstr "" -#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:713 +#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:725 msgid "FS" msgstr "" -#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:730 +#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:742 msgid "FM" msgstr "" -#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:747 +#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:759 msgid "FT" msgstr "" -#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:758 +#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:770 msgid "Reset values" msgstr "" -#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:763 +#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:775 msgid "SIDPlay1" msgstr "" -#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:804 +#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:816 msgid "Export" msgstr "" -#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:812 +#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:824 msgid "Use" msgstr "" -#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:828 +#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:840 +#: src/skins/ui_manager.c:437 msgid "Import" msgstr "" -#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:836 +#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:848 +#: src/skins/ui_manager.c:439 msgid "Delete" msgstr "" -#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:850 +#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:862 msgid "Filter curve:" msgstr "" -#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:855 +#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:867 msgid "SIDPlay2" msgstr "" -#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:861 +#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:873 msgid "Filters" msgstr "" -#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:888 +#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:900 msgid "" "If enabled, the tune is played at least for the specified time, adding " "silence to the end if necessary." msgstr "" -#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:884 +#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:896 msgid "Play at least for specified time" msgstr "" #: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133 -#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:895 -#: src/sid/xs_interface.c:949 src/sid/xs_interface.c:1109 +#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:907 +#: src/sid/xs_interface.c:961 src/sid/xs_interface.c:1141 msgid "Playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:915 +#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:927 msgid "Minimum playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:936 +#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:948 msgid "" "If enabled, tune is played until specified duration is reached (aka maximum " "playtime)." msgstr "" -#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:932 +#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:944 msgid "Play for specified time maximum" msgstr "" -#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:942 +#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:954 msgid "" "If enabled, the maximum playtime is applied only if song/tune length is not " "known." msgstr "" -#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:938 +#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:950 msgid "Only when song length is unknown" msgstr "" -#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:969 +#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:981 msgid "Maximum playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:990 +#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:1002 msgid "" "This option enables using of XSIDPLAY compatible song length database. " "(Refer to Audacious-SID documentation for more information)" msgstr "" -#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:986 +#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:998 msgid "Use XSIDPLAY-compatible database" msgstr "" -#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:997 +#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:1009 msgid "DB-file:" msgstr "" -#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1007 +#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1019 msgid "Database path and filename" msgstr "" -#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1014 +#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1026 msgid "Browse for song length-database file" msgstr "" -#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1016 +#: src/sid/xmms-sid.glade:2418 src/sid/xs_interface.c:1048 msgid "Song length database:" msgstr "" -#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1021 +#: src/sid/xmms-sid.glade:2454 src/sid/xs_interface.c:1053 msgid "Songlength" msgstr "" -#: src/sid/xmms-sid.glade:2430 src/sid/xs_interface.c:1043 +#: src/sid/xmms-sid.glade:2492 src/sid/xs_interface.c:1075 msgid "" "By enabling this option you can specify a custom Tuplez formatting string " "for SID-files. The SID-plugin specific Tuplez tags are described shortly " "below." msgstr "" -#: src/sid/xmms-sid.glade:2432 src/sid/xs_interface.c:1039 +#: src/sid/xmms-sid.glade:2494 src/sid/xs_interface.c:1071 msgid "Override generic Tuplez format string" msgstr "" -#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1054 +#: src/sid/xmms-sid.glade:2519 src/sid/xs_interface.c:1086 msgid "Tuplez format string for SID-files" msgstr "" -#: src/sid/xmms-sid.glade:2477 src/sid/xs_interface.c:1057 -msgid "Descriptions of SID-specific Tuplez fields go here. :D" -msgstr "" - -#: src/sid/xmms-sid.glade:2511 src/sid/xs_interface.c:1065 +#: src/sid/xmms-sid.glade:2539 src/sid/xs_interface.c:1089 +msgid "" +"SID-specific Tuplez fields:\n" +"\n" +"sid-format\t\t- Specific fileformat\n" +"sid-model\t\t- 6581 or 8580\n" +"sid-speed\t\t- Timing or speed: PAL/NTSC/etc.\n" +"\n" +"Other \"special\" fields set:\n" +"\n" +"subsong-num, subsong-id" +msgstr "" + +#: src/sid/xmms-sid.glade:2581 src/sid/xs_interface.c:1097 msgid "Song title format:" msgstr "" -#: src/sid/xmms-sid.glade:2584 src/sid/xs_interface.c:1096 +#: src/sid/xmms-sid.glade:2654 src/sid/xs_interface.c:1128 msgid "" "If enabled, sub-tunes of each file will be added to playlist. If disabled, " "only the default sub-tune will be added." msgstr "" -#: src/sid/xmms-sid.glade:2586 src/sid/xs_interface.c:1092 +#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1124 msgid "Add sub-tunes to playlist" msgstr "" -#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1102 +#: src/sid/xmms-sid.glade:2675 src/sid/xs_interface.c:1134 msgid "Only add sub-tunes that have a duration of at least specified time." msgstr "" -#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1098 +#: src/sid/xmms-sid.glade:2677 src/sid/xs_interface.c:1130 msgid "Only tunes with specified minimum duration" msgstr "" -#: src/sid/xmms-sid.glade:2710 src/sid/xs_interface.c:1129 +#: src/sid/xmms-sid.glade:2780 src/sid/xs_interface.c:1161 msgid "Sub-tune handling:" msgstr "" -#: src/sid/xmms-sid.glade:2755 src/sid/xs_interface.c:1150 +#: src/sid/xmms-sid.glade:2825 src/sid/xs_interface.c:1182 msgid "" "If this option is enabled (and the database & HVSC settings below are " "correctly set), Audacious-SID will use and display additional information " "from STIL database when HVSC SIDs are played." msgstr "" -#: src/sid/xmms-sid.glade:2757 src/sid/xs_interface.c:1146 +#: src/sid/xmms-sid.glade:2827 src/sid/xs_interface.c:1178 msgid "Use STIL database" msgstr "" -#: src/sid/xmms-sid.glade:2782 src/sid/xs_interface.c:1157 +#: src/sid/xmms-sid.glade:2852 src/sid/xs_interface.c:1189 msgid "STIL file:" msgstr "" -#: src/sid/xmms-sid.glade:2819 src/sid/xs_interface.c:1173 +#: src/sid/xmms-sid.glade:2889 src/sid/xs_interface.c:1205 msgid "" "Path and filename of STIL database file (STIL.txt), usually found from " "HVSC's DOCUMENTS-subdirectory." msgstr "" -#: src/sid/xmms-sid.glade:2854 src/sid/xs_interface.c:1186 +#: src/sid/xmms-sid.glade:2924 src/sid/xs_interface.c:1218 msgid "Browse for STIL-database file" msgstr "" -#: src/sid/xmms-sid.glade:2888 src/sid/xs_interface.c:1193 +#: src/sid/xmms-sid.glade:3020 src/sid/xs_interface.c:1245 msgid "HVSC path:" msgstr "" -#: src/sid/xmms-sid.glade:2925 src/sid/xs_interface.c:1209 +#: src/sid/xmms-sid.glade:3057 src/sid/xs_interface.c:1261 msgid "" "Path to base-directory of your High Voltage SID Collection (HVSC), for " "example /media/C64Music/" msgstr "" -#: src/sid/xmms-sid.glade:2960 src/sid/xs_interface.c:1222 +#: src/sid/xmms-sid.glade:3092 src/sid/xs_interface.c:1274 msgid "Browse for HVSC path" msgstr "" -#: src/sid/xmms-sid.glade:2990 src/sid/xs_interface.c:1224 +#: src/sid/xmms-sid.glade:3184 src/sid/xs_interface.c:1296 msgid "SID Tune Information List (STIL) database:" msgstr "" -#: src/sid/xmms-sid.glade:3063 src/sid/xs_interface.c:1248 +#: src/sid/xmms-sid.glade:3257 src/sid/xs_interface.c:1320 msgid "Accept and update changes" msgstr "" -#: src/sid/xmms-sid.glade:3077 src/sid/xs_interface.c:1255 +#: src/sid/xmms-sid.glade:3271 src/sid/xs_interface.c:1327 msgid "Cancel any changes" msgstr "" -#: src/sid/xmms-sid.glade:3102 src/sid/xs_interface.c:1543 +#: src/sid/xmms-sid.glade:3296 src/sid/xs_interface.c:1627 msgid "Audacious-SID Fileinfo" msgstr "" -#: src/sid/xmms-sid.glade:3172 src/sid/xs_interface.c:1572 +#: src/sid/xmms-sid.glade:3366 src/sid/xs_interface.c:1656 msgid "Songname:" msgstr "" -#: src/sid/xmms-sid.glade:3200 src/sid/xs_interface.c:1580 +#: src/sid/xmms-sid.glade:3394 src/sid/xs_interface.c:1664 msgid "Composer:" msgstr "" -#: src/sid/xmms-sid.glade:3228 src/sid/xs_interface.c:1588 +#: src/sid/xmms-sid.glade:3422 src/sid/xs_interface.c:1672 msgid "Copyright:" msgstr "Autoriõigused:" -#: src/sid/xmms-sid.glade:3342 src/sid/xs_interface.c:1632 +#: src/sid/xmms-sid.glade:3536 src/sid/xs_interface.c:1716 msgid "Song Information:" msgstr "" -#: src/sid/xmms-sid.glade:3416 src/sid/xs_interface.c:1667 +#: src/sid/xmms-sid.glade:3610 src/sid/xs_interface.c:1751 msgid "Author:" msgstr "" -#: src/sid/xmms-sid.glade:3514 src/sid/xs_interface.c:1701 +#: src/sid/xmms-sid.glade:3708 src/sid/xs_interface.c:1785 msgid "Duration:" msgstr "" -#: src/sid/xmms-sid.glade:3608 src/sid/xs_interface.c:1735 +#: src/sid/xmms-sid.glade:3802 src/sid/xs_interface.c:1819 msgid "Sub-tune Information:" msgstr "" -#: src/sid/xmms-sid.glade:3662 src/sid/xs_interface.c:1796 +#: src/sid/xmms-sid.glade:3856 src/sid/xs_interface.c:1880 msgid "Select HVSC song length database" msgstr "" -#: src/sid/xmms-sid.glade:3704 src/sid/xs_interface.c:1837 +#: src/sid/xmms-sid.glade:3898 src/sid/xs_interface.c:1921 msgid "Select STIL-database" msgstr "" -#: src/sid/xmms-sid.glade:3746 src/sid/xs_interface.c:1878 +#: src/sid/xmms-sid.glade:3940 src/sid/xs_interface.c:1962 msgid "Select HVSC location prefix" msgstr "" -#: src/sid/xmms-sid.glade:3788 src/sid/xs_interface.c:1919 +#: src/sid/xmms-sid.glade:3982 src/sid/xs_interface.c:2003 msgid "Select SIDPlay2 filters file for importing" msgstr "" -#: src/sid/xmms-sid.glade:3830 src/sid/xs_interface.c:1960 +#: src/sid/xmms-sid.glade:4024 src/sid/xs_interface.c:2044 msgid "Select SIDPlay2 filters file for exporting" msgstr "" -#: src/sid/xmms-sid.glade:3871 src/sid/xmms-sid.glade:3953 -#: src/sid/xs_interface.c:2008 src/sid/xs_interface.c:2021 +#: src/sid/xmms-sid.glade:4065 src/sid/xmms-sid.glade:4147 +#: src/sid/xs_interface.c:2092 src/sid/xs_interface.c:2105 msgid "Confirm selected action" msgstr "" -#: src/sid/xmms-sid.glade:3909 src/sid/xs_interface.c:2038 +#: src/sid/xmms-sid.glade:4103 src/sid/xs_interface.c:2122 msgid "Yes" msgstr "" -#: src/sid/xmms-sid.glade:3921 src/sid/xs_interface.c:2044 +#: src/sid/xmms-sid.glade:4115 src/sid/xs_interface.c:2128 msgid "No" msgstr "" -#: src/sid/xs_about.c:84 src/wma/wma.c:121 +#: src/sid/xs_about.c:84 src/wma/wma.c:118 #, c-format msgid "About %s" msgstr "\"%s\" pluginast lähemalt" @@ -4195,12 +4221,1122 @@ msgid "Tune #%i: " msgstr "" -#: src/sndfile/plugin.c:548 +#: src/skins/plugin.c:128 +msgid "About Skinned GUI" +msgstr "" + +#: src/skins/plugin.c:129 +msgid "" +"Copyright (c) 2008, by Tomasz Moń \n" +"\n" +msgstr "" + +#: src/skins/skins_cfg.c:329 +#, fuzzy +msgid "_Fonts" +msgstr "Failinimi: " + +#: src/skins/skins_cfg.c:330 +#, fuzzy +msgid "_Player:" +msgstr "Esitamine" + +#: src/skins/skins_cfg.c:330 +msgid "Select main player window font:" +msgstr "" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "_Playlist:" +msgstr "Esitusnimekirja valimine" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "Select playlist font:" +msgstr "Esitusnimekirja valimine" + +#: src/skins/skins_cfg.c:332 +#, fuzzy +msgid "Use Bitmap fonts if available" +msgstr "Võimaluse korral kasutatakse CDDB-d" + +#: src/skins/skins_cfg.c:332 +msgid "" +"Use bitmap fonts if they are available. Bitmap fonts do not support Unicode " +"strings." +msgstr "" + +#: src/skins/skins_cfg.c:333 +#, fuzzy +msgid "_Miscellaneous" +msgstr "Teenused" + +#: src/skins/skins_cfg.c:334 +msgid "Show track numbers in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:336 +msgid "Show separators in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:338 +msgid "Show window manager decoration" +msgstr "" + +#: src/skins/skins_cfg.c:339 +msgid "This enables the window manager to show decorations for windows." +msgstr "" + +#: src/skins/skins_cfg.c:340 +msgid "Use two-way text scroller" +msgstr "" + +#: src/skins/skins_cfg.c:341 +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 "" + +#: src/skins/skins_cfg.c:342 +msgid "Disable inline gtk theme" +msgstr "" + +#: src/skins/skins_cfg.c:343 +msgid "Allow loading incomplete skins" +msgstr "" + +#: src/skins/skins_cfg.c:344 +msgid "" +"If selected, audacious won't refuse loading broken skins. Use only if your " +"favourite skin doesn't work" +msgstr "" + +#: src/skins/skins_cfg.c:410 +msgid "Color Adjustment" +msgstr "" + +#: src/skins/skins_cfg.c:417 +msgid "" +"Audacious allows you to alter the color balance of the skinned UI. The " +"sliders below will allow you to do this." +msgstr "" + +#: src/skins/skins_cfg.c:427 +#, fuzzy +msgid "Blue" +msgstr "Valjus" + +#: src/skins/skins_cfg.c:434 +msgid "Green" +msgstr "" + +#: src/skins/skins_cfg.c:441 +msgid "Red" +msgstr "" + +#: src/skins/skins_cfg.c:571 +#, fuzzy +msgid "Audacious Skinned GUI Configuration" +msgstr "Audioplaatide plugina sätted" + +#: src/skins/skins_cfg.c:596 +#, fuzzy +msgid "_Skin" +msgstr "Failinimi: " + +#: src/skins/ui_equalizer.c:494 +msgid "Audacious Equalizer" +msgstr "" + +#: src/skins/ui_equalizer.c:794 +#, c-format +msgid "Error importing Winamp EQF file '%s'" +msgstr "" + +#: src/skins/ui_equalizer.c:1172 +msgid "Presets" +msgstr "" + +#: src/skins/ui_main.c:392 +#, c-format +msgid "%s - Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:394 src/skins/ui_main.c:2397 +#, fuzzy +msgid "Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:641 +msgid "VBR" +msgstr "" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "stereo" +msgstr "Stereo" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "mono" +msgstr "Mono" + +#: src/skins/ui_main.c:957 +msgid "Can't jump to time when no track is being played.\n" +msgstr "" + +#: src/skins/ui_main.c:972 src/skins/ui_manager.c:425 +#: src/skins/ui_manager.c:426 +msgid "Jump to Time" +msgstr "" + +#: src/skins/ui_main.c:993 +#, fuzzy +msgid "minutes:seconds" +msgstr "minutit" + +#: src/skins/ui_main.c:1003 +#, fuzzy +msgid "Track length:" +msgstr "Loo number:" + +#: src/skins/ui_main.c:1149 +msgid "Audacious - visibility warning" +msgstr "" + +#: src/skins/ui_main.c:1152 +msgid "Show main player window" +msgstr "" + +#: src/skins/ui_main.c:1153 +msgid "Ignore" +msgstr "" + +#: src/skins/ui_main.c:1159 +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)." +msgstr "" + +#: src/skins/ui_main.c:1165 +msgid "Always ignore, show/hide is controlled remotely" +msgstr "" + +#: src/skins/ui_main.c:1210 +msgid "Audacious - broken GTK engine usage warning" +msgstr "" + +#: src/skins/ui_main.c:1218 +#, c-format +msgid "" +"Broken GTK engine in use\n" +"\n" +"Audacious has detected that you are using a broken GTK engine.\n" +"\n" +"The theme engine you are using, %s, is incompatible with some of the " +"features used by modern skins. The incompatible features have been disabled " +"for this session.\n" +"\n" +"To use these features, please consider using a different GTK theme engine." +msgstr "" + +#: src/skins/ui_main.c:1229 +msgid "Do not display this warning again" +msgstr "" + +#: src/skins/ui_main.c:1253 +msgid "Enter location to play:" +msgstr "" + +#: src/skins/ui_main.c:1497 +#, c-format +msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" +msgstr "" + +#: src/skins/ui_main.c:1527 +#, fuzzy, c-format +msgid "Volume: %d%%" +msgstr "Valjus: (%)" + +#: src/skins/ui_main.c:1555 +#, c-format +msgid "Balance: %d%% left" +msgstr "" + +#: src/skins/ui_main.c:1559 +msgid "Balance: center" +msgstr "" + +#: src/skins/ui_main.c:1563 +#, c-format +msgid "Balance: %d%% right" +msgstr "" + +#: src/skins/ui_main.c:1881 +#, fuzzy +msgid "Options Menu" +msgstr "Valikud" + +#: src/skins/ui_main.c:1885 +msgid "Disable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1887 +msgid "Enable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1890 +#, fuzzy +msgid "File Info Box" +msgstr "Faili andmed" + +#: src/skins/ui_main.c:1894 +msgid "Disable 'GUI Scaling'" +msgstr "" + +#: src/skins/ui_main.c:1896 +msgid "Enable 'GUI Scaling'" +msgstr "" + +#: src/skins/ui_main.c:1899 +msgid "Visualization Menu" +msgstr "" + +#: src/skins/ui_main.c:1946 +msgid "" +"Couldn't open audio.\n" +"\n" +"Please check that:\n" +"1. You have the correct output plugin selected.\n" +"2. No other programs is blocking the soundcard.\n" +"3. Your soundcard is configured properly.\n" +msgstr "" + +#: src/skins/ui_manager.c:53 src/skins/ui_manager.c:54 +msgid "Autoscroll Songname" +msgstr "" + +#: src/skins/ui_manager.c:56 src/skins/ui_manager.c:57 +msgid "Stop after Current Song" +msgstr "" + +#: src/skins/ui_manager.c:59 src/skins/ui_manager.c:60 +msgid "Peaks" +msgstr "" + +#: src/skins/ui_manager.c:62 src/skins/ui_manager.c:63 +msgid "Repeat" +msgstr "" + +#: src/skins/ui_manager.c:65 src/skins/ui_manager.c:66 +msgid "Shuffle" +msgstr "" + +#: src/skins/ui_manager.c:68 src/skins/ui_manager.c:69 +msgid "No Playlist Advance" +msgstr "" + +#: src/skins/ui_manager.c:71 src/skins/ui_manager.c:72 +msgid "Show Player" +msgstr "" + +#: src/skins/ui_manager.c:74 src/skins/ui_manager.c:75 +msgid "Show Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:77 src/skins/ui_manager.c:78 +msgid "Show Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:80 src/skins/ui_manager.c:81 +msgid "Always on Top" +msgstr "" + +#: src/skins/ui_manager.c:83 src/skins/ui_manager.c:84 +msgid "Put on All Workspaces" +msgstr "" + +#: src/skins/ui_manager.c:86 src/skins/ui_manager.c:87 +msgid "Roll up Player" +msgstr "" + +#: src/skins/ui_manager.c:89 src/skins/ui_manager.c:90 +msgid "Roll up Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:92 src/skins/ui_manager.c:93 +msgid "Roll up Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:95 src/sndstretch/sndstretch_xmms.c:375 +msgid "Scale" +msgstr "" + +#: src/skins/ui_manager.c:96 +msgid "DoubleSize" +msgstr "" + +#: src/skins/ui_manager.c:98 src/skins/ui_manager.c:99 +msgid "Easy Move" +msgstr "" + +#: src/skins/ui_manager.c:107 +msgid "Analyzer" +msgstr "" + +#: src/skins/ui_manager.c:108 +#, fuzzy +msgid "Scope" +msgstr "Stereo" + +#: src/skins/ui_manager.c:109 +msgid "Voiceprint" +msgstr "" + +#: src/skins/ui_manager.c:110 +msgid "Off" +msgstr "" + +#: src/skins/ui_manager.c:114 src/skins/ui_manager.c:131 +#: src/skins/ui_manager.c:137 +#, fuzzy +msgid "Normal" +msgstr "Vorming" + +#: src/skins/ui_manager.c:115 src/skins/ui_manager.c:132 +msgid "Fire" +msgstr "" + +#: src/skins/ui_manager.c:116 +msgid "Vertical Lines" +msgstr "" + +#: src/skins/ui_manager.c:120 +#, fuzzy +msgid "Lines" +msgstr "minutit" + +#: src/skins/ui_manager.c:121 +msgid "Bars" +msgstr "" + +#: src/skins/ui_manager.c:125 +#, fuzzy +msgid "Dot Scope" +msgstr "Ei korrata" + +#: src/skins/ui_manager.c:126 +msgid "Line Scope" +msgstr "" + +#: src/skins/ui_manager.c:127 +msgid "Solid Scope" +msgstr "" + +#: src/skins/ui_manager.c:133 +msgid "Ice" +msgstr "" + +#: src/skins/ui_manager.c:138 +msgid "Smooth" +msgstr "" + +#: src/skins/ui_manager.c:142 +msgid "Full (~50 fps)" +msgstr "" + +#: src/skins/ui_manager.c:143 +msgid "Half (~25 fps)" +msgstr "" + +#: src/skins/ui_manager.c:144 +msgid "Quarter (~13 fps)" +msgstr "" + +#: src/skins/ui_manager.c:145 +msgid "Eighth (~6 fps)" +msgstr "" + +#: src/skins/ui_manager.c:149 src/skins/ui_manager.c:157 +msgid "Slowest" +msgstr "" + +#: src/skins/ui_manager.c:150 src/skins/ui_manager.c:158 +#, fuzzy +msgid "Slow" +msgstr "Vari" + +#: src/skins/ui_manager.c:151 src/skins/ui_manager.c:159 +msgid "Medium" +msgstr "" + +#: src/skins/ui_manager.c:152 src/skins/ui_manager.c:160 +#, fuzzy +msgid "Fast" +msgstr "Vorming" + +#: src/skins/ui_manager.c:153 src/skins/ui_manager.c:161 +msgid "Fastest" +msgstr "" + +#: src/skins/ui_manager.c:165 +msgid "Time Elapsed" +msgstr "" + +#: src/skins/ui_manager.c:166 +msgid "Time Remaining" +msgstr "" + +#: src/skins/ui_manager.c:180 src/skins/ui_manager.c:181 +#, fuzzy +msgid "Pause" +msgstr "Pausimine" + +#: src/skins/ui_manager.c:186 src/skins/ui_manager.c:187 +msgid "Previous" +msgstr "" + +#: src/skins/ui_manager.c:189 src/skins/ui_manager.c:190 +#, fuzzy +msgid "Next" +msgstr "Tekst" + +#: src/skins/ui_manager.c:195 +msgid "Visualization" +msgstr "" + +#: src/skins/ui_manager.c:196 +msgid "Visualization Mode" +msgstr "" + +#: src/skins/ui_manager.c:197 +msgid "Analyzer Mode" +msgstr "" + +#: src/skins/ui_manager.c:198 +msgid "Scope Mode" +msgstr "" + +#: src/skins/ui_manager.c:199 +msgid "Voiceprint Mode" +msgstr "" + +#: src/skins/ui_manager.c:200 +msgid "WindowShade VU Mode" +msgstr "" + +#: src/skins/ui_manager.c:201 +msgid "Refresh Rate" +msgstr "" + +#: src/skins/ui_manager.c:202 +msgid "Analyzer Falloff" +msgstr "" + +#: src/skins/ui_manager.c:203 +msgid "Peaks Falloff" +msgstr "" + +#: src/skins/ui_manager.c:208 +#, fuzzy +msgid "Playlist" +msgstr "Esitusnimekirja valimine" + +#: src/skins/ui_manager.c:210 src/skins/ui_manager.c:211 +#, fuzzy +msgid "New Playlist" +msgstr "Esitusnimekirja valimine" + +#: src/skins/ui_manager.c:213 src/skins/ui_manager.c:214 +#, fuzzy +msgid "Select Next Playlist" +msgstr "Esitusnimekirja valimine" + +#: src/skins/ui_manager.c:216 src/skins/ui_manager.c:217 +#, fuzzy +msgid "Select Previous Playlist" +msgstr "Esitusnimekirja valimine" + +#: src/skins/ui_manager.c:219 src/skins/ui_manager.c:220 +#, fuzzy +msgid "Delete Playlist" +msgstr "Esitusnimekirja valimine" + +#: src/skins/ui_manager.c:222 +msgid "Load List" +msgstr "" + +#: src/skins/ui_manager.c:223 +msgid "Loads a playlist file into the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:225 +msgid "Save List" +msgstr "" + +#: src/skins/ui_manager.c:226 +#, fuzzy +msgid "Saves the selected playlist." +msgstr "Esitusnimekirja valimine" + +#: src/skins/ui_manager.c:228 +#, fuzzy +msgid "Save Default List" +msgstr "Vaikimisi (%s)" + +#: src/skins/ui_manager.c:229 +msgid "Saves the selected playlist to the default location." +msgstr "" + +#: src/skins/ui_manager.c:232 +msgid "Refresh List" +msgstr "" + +#: src/skins/ui_manager.c:233 +msgid "Refreshes metadata associated with a playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:236 +msgid "List Manager" +msgstr "" + +#: src/skins/ui_manager.c:237 +msgid "Opens the playlist manager." +msgstr "" + +#: src/skins/ui_manager.c:243 +msgid "View" +msgstr "" + +#: src/skins/ui_manager.c:247 +msgid "Add Internet Address..." +msgstr "" + +#: src/skins/ui_manager.c:248 +msgid "Adds a remote track to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:251 +msgid "Add Files..." +msgstr "" + +#: src/skins/ui_manager.c:252 +msgid "Adds files to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:257 +msgid "Search and Select" +msgstr "" + +#: src/skins/ui_manager.c:258 +msgid "" +"Searches the playlist and selects playlist entries based on specific " +"criteria." +msgstr "" + +#: src/skins/ui_manager.c:261 +#, fuzzy +msgid "Invert Selection" +msgstr "Vormingute valimine" + +#: src/skins/ui_manager.c:262 +msgid "Inverts the selected and unselected entries." +msgstr "" + +#: src/skins/ui_manager.c:265 +#, fuzzy +msgid "Select All" +msgstr "Esitusnimekirja valimine" + +#: src/skins/ui_manager.c:266 +msgid "Selects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:269 +#, fuzzy +msgid "Select None" +msgstr "Loo lõpp tuvastatakse" + +#: src/skins/ui_manager.c:270 +msgid "Deselects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:275 +#, fuzzy +msgid "Remove All" +msgstr "Eemalda" + +#: src/skins/ui_manager.c:276 +msgid "Removes all entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:279 +msgid "Clear Queue" +msgstr "" + +#: src/skins/ui_manager.c:280 +msgid "Clears the queue associated with this playlist." +msgstr "" + +#: src/skins/ui_manager.c:283 +msgid "Remove Unavailable Files" +msgstr "" + +#: src/skins/ui_manager.c:284 +msgid "Removes unavailable files from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:287 +msgid "Remove Duplicates" +msgstr "" + +#: src/skins/ui_manager.c:289 src/skins/ui_manager.c:321 +#: src/skins/ui_manager.c:351 +#, fuzzy +msgid "By Title" +msgstr "Pealkiri" + +#: src/skins/ui_manager.c:290 +msgid "Removes duplicate entries from the playlist by title." +msgstr "" + +#: src/skins/ui_manager.c:293 src/skins/ui_manager.c:329 +#: src/skins/ui_manager.c:359 +#, fuzzy +msgid "By Filename" +msgstr "Failinimi" + +#: src/skins/ui_manager.c:294 +msgid "Removes duplicate entries from the playlist by filename." +msgstr "" + +#: src/skins/ui_manager.c:297 src/skins/ui_manager.c:333 +#: src/skins/ui_manager.c:363 +#, fuzzy +msgid "By Path + Filename" +msgstr "Failinimi" + +#: src/skins/ui_manager.c:298 +msgid "Removes duplicate entries from the playlist by their full path." +msgstr "" + +#: src/skins/ui_manager.c:301 +msgid "Remove Unselected" +msgstr "" + +#: src/skins/ui_manager.c:302 +msgid "Remove unselected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:305 +msgid "Remove Selected" +msgstr "" + +#: src/skins/ui_manager.c:306 +msgid "Remove selected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:311 +msgid "Randomize List" +msgstr "" + +#: src/skins/ui_manager.c:312 +msgid "Randomizes the playlist." +msgstr "" + +#: src/skins/ui_manager.c:315 +msgid "Reverse List" +msgstr "" + +#: src/skins/ui_manager.c:316 +msgid "Reverses the playlist." +msgstr "" + +#: src/skins/ui_manager.c:319 +#, fuzzy +msgid "Sort List" +msgstr "Esitaja:" + +#: src/skins/ui_manager.c:322 src/skins/ui_manager.c:352 +msgid "Sorts the list by title." +msgstr "" + +#: src/skins/ui_manager.c:325 src/skins/ui_manager.c:355 +#, fuzzy +msgid "By Artist" +msgstr "Esitaja:" + +#: src/skins/ui_manager.c:326 src/skins/ui_manager.c:356 +msgid "Sorts the list by artist." +msgstr "" + +#: src/skins/ui_manager.c:330 src/skins/ui_manager.c:360 +msgid "Sorts the list by filename." +msgstr "" + +#: src/skins/ui_manager.c:334 src/skins/ui_manager.c:364 +msgid "Sorts the list by full pathname." +msgstr "" + +#: src/skins/ui_manager.c:337 src/skins/ui_manager.c:367 +#, fuzzy +msgid "By Date" +msgstr "Kuupäev:" + +#: src/skins/ui_manager.c:338 src/skins/ui_manager.c:368 +msgid "Sorts the list by modification time." +msgstr "" + +#: src/skins/ui_manager.c:341 src/skins/ui_manager.c:371 +#, fuzzy +msgid "By Track Number" +msgstr "Loo number:" + +#: src/skins/ui_manager.c:342 src/skins/ui_manager.c:372 +msgid "Sorts the list by track number." +msgstr "" + +#: src/skins/ui_manager.c:345 src/skins/ui_manager.c:375 +#, fuzzy +msgid "By Playlist Entry" +msgstr "Esitusnimekirja andmed kiiresti" + +#: src/skins/ui_manager.c:346 src/skins/ui_manager.c:376 +msgid "Sorts the list by playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:349 +#, fuzzy +msgid "Sort Selected" +msgstr "Vormingute valimine" + +#: src/skins/ui_manager.c:385 +#, fuzzy +msgid "File" +msgstr "Failinimi" + +#: src/skins/ui_manager.c:388 +msgid "Plugin Services" +msgstr "" + +#: src/skins/ui_manager.c:390 src/skins/ui_manager.c:393 +msgid "View Track Details" +msgstr "" + +#: src/skins/ui_manager.c:391 src/skins/ui_manager.c:394 +msgid "View track details" +msgstr "" + +#: src/skins/ui_manager.c:396 src/skins/ui_manager.c:397 +#, fuzzy +msgid "About Audacious" +msgstr "Audacious'e LIRC pluginast lähemalt" + +#: src/skins/ui_manager.c:399 +#, fuzzy +msgid "Play File" +msgstr "Esitamine" + +#: src/skins/ui_manager.c:400 +msgid "Load and play a file" +msgstr "" + +#: src/skins/ui_manager.c:402 +#, fuzzy +msgid "Play Location" +msgstr "Esitusnimekiri (valikuline)" + +#: src/skins/ui_manager.c:403 +msgid "Play media from the selected location" +msgstr "" + +#: src/skins/ui_manager.c:405 +msgid "Plugin services" +msgstr "" + +#: src/skins/ui_manager.c:407 +msgid "Preferences" +msgstr "" + +#: src/skins/ui_manager.c:408 +msgid "Open preferences window" +msgstr "" + +#: src/skins/ui_manager.c:410 +#, fuzzy +msgid "_Quit" +msgstr "Kvaliteet" + +#: src/skins/ui_manager.c:411 +#, fuzzy +msgid "Quit Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_manager.c:413 src/skins/ui_manager.c:414 +msgid "Set A-B" +msgstr "" + +#: src/skins/ui_manager.c:416 src/skins/ui_manager.c:417 +msgid "Clear A-B" +msgstr "" + +#: src/skins/ui_manager.c:419 src/skins/ui_manager.c:420 +msgid "Jump to Playlist Start" +msgstr "" + +#: src/skins/ui_manager.c:428 +msgid "Queue Toggle" +msgstr "" + +#: src/skins/ui_manager.c:429 +msgid "Enables/disables the entry in the playlist's queue." +msgstr "" + +#: src/skins/ui_manager.c:436 +msgid "Load" +msgstr "" + +#: src/skins/ui_manager.c:441 src/skins/ui_manager.c:462 +#: src/skins/ui_manager.c:477 +#, fuzzy +msgid "Preset" +msgstr "Proovi" + +#: src/skins/ui_manager.c:442 +msgid "Load preset" +msgstr "" + +#: src/skins/ui_manager.c:444 src/skins/ui_manager.c:465 +#: src/skins/ui_manager.c:480 +msgid "Auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:445 +msgid "Load auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:448 +#, fuzzy +msgid "Load default preset into equalizer" +msgstr "Laadi vaikeväärtused" + +#: src/skins/ui_manager.c:450 +#, fuzzy +msgid "Zero" +msgstr "Stereo" + +#: src/skins/ui_manager.c:451 +msgid "Set equalizer preset levels to zero" +msgstr "" + +#: src/skins/ui_manager.c:453 +msgid "From file" +msgstr "" + +#: src/skins/ui_manager.c:454 +msgid "Load preset from file" +msgstr "" + +#: src/skins/ui_manager.c:456 +msgid "From WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:457 +msgid "Load preset from WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:459 +msgid "WinAMP Presets" +msgstr "" + +#: src/skins/ui_manager.c:460 +msgid "Import WinAMP presets" +msgstr "" + +#: src/skins/ui_manager.c:463 +msgid "Save preset" +msgstr "" + +#: src/skins/ui_manager.c:466 +msgid "Save auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:469 +#, fuzzy +msgid "Save default preset" +msgstr "Laadi vaikeväärtused" + +#: src/skins/ui_manager.c:471 +#, fuzzy +msgid "To file" +msgstr "Pealkiri" + +#: src/skins/ui_manager.c:472 +msgid "Save preset to file" +msgstr "" + +#: src/skins/ui_manager.c:474 +msgid "To WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:475 +msgid "Save preset to WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:478 +msgid "Delete preset" +msgstr "" + +#: src/skins/ui_manager.c:481 +msgid "Delete auto-load preset" +msgstr "" + +#: src/skins/ui_playlist.c:454 +msgid "Search entries in active playlist" +msgstr "" + +#: src/skins/ui_playlist.c:462 +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 "" + +#: src/skins/ui_playlist.c:477 +#, fuzzy +msgid "Album: " +msgstr "Album:" + +#: src/skins/ui_playlist.c:484 +#, fuzzy +msgid "Artist: " +msgstr "Esitaja:" + +#: src/skins/ui_playlist.c:491 +#, fuzzy +msgid "Filename: " +msgstr "Failinimi:" + +#: src/skins/ui_playlist.c:499 +msgid "Clear previous selection before searching" +msgstr "" + +#: src/skins/ui_playlist.c:502 +msgid "Automatically toggle queue for matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:505 +msgid "Create a new playlist with matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:724 +#, c-format +msgid "Error writing playlist \"%s\": %s" +msgstr "" + +#: src/skins/ui_playlist.c:746 +#, c-format +msgid "%s already exist. Continue?" +msgstr "" + +#: src/skins/ui_playlist.c:761 +#, c-format +msgid "" +"Unable to save playlist.\n" +"\n" +"Unknown file type for '%s'.\n" +msgstr "" + +#: src/skins/ui_playlist.c:887 +#, fuzzy +msgid "Save as Static Playlist" +msgstr "Esitusnimekirja valimine" + +#: src/skins/ui_playlist.c:894 +msgid "Use Relative Path" +msgstr "" + +#: src/skins/ui_playlist.c:916 +#, fuzzy +msgid "Load Playlist" +msgstr "Esitusnimekirja andmed kiiresti" + +#: src/skins/ui_playlist.c:929 +#, fuzzy +msgid "Save Playlist" +msgstr "Esitusnimekirja valimine" + +#: src/skins/ui_playlist.c:1497 +#, fuzzy +msgid "Audacious Playlist Editor" +msgstr "Esitusnimekirja andmed kiiresti" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "PREAMP" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "60HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "170HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "310HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "600HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "1KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "3KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "6KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "12KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "14KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "16KHZ" +msgstr "" + +#: src/skins/ui_skinselector.c:178 +msgid "Archived Winamp 2.x skin" +msgstr "" + +#: src/skins/ui_skinselector.c:183 +msgid "Unarchived Winamp 2.x skin" +msgstr "" + +#: src/skins/util.c:1132 +#, c-format +msgid "Could not create directory (%s): %s\n" +msgstr "" + +#: src/sndfile/plugin.c:554 #, fuzzy msgid "About sndfile plugin" msgstr "ESounD'i pluginast lähemalt" -#: src/sndfile/plugin.c:549 +#: src/sndfile/plugin.c:555 msgid "" "Adapted for Audacious usage by Tony Vroon \n" "from the xmms_sndfile plugin which is:\n" @@ -4223,61 +5359,57 @@ "Boston, MA 02110-1301 USA" msgstr "" -#: src/sndstretch/sndstretch_xmms.c:159 +#: src/sndstretch/sndstretch_xmms.c:158 msgid "About SndStretch" msgstr "" +#: src/sndstretch/sndstretch_xmms.c:318 +msgid "Volume corr." +msgstr "" + #: src/sndstretch/sndstretch_xmms.c:319 -msgid "Volume corr." -msgstr "" - -#: src/sndstretch/sndstretch_xmms.c:320 msgid "Short Overlap" msgstr "" -#: src/sndstretch/sndstretch_xmms.c:374 +#: src/sndstretch/sndstretch_xmms.c:373 msgid "Speed" msgstr "Kiirus" -#: src/sndstretch/sndstretch_xmms.c:375 +#: src/sndstretch/sndstretch_xmms.c:374 msgid "Pitch" msgstr "" -#: src/sndstretch/sndstretch_xmms.c:376 -msgid "Scale" -msgstr "" - -#: src/sndstretch/sndstretch_xmms.c:396 +#: src/sndstretch/sndstretch_xmms.c:395 msgid "SndStretch - Configuration" msgstr "" -#: src/song_change/song_change.c:312 +#: src/song_change/song_change.c:310 msgid "Commands" msgstr "" -#: src/song_change/song_change.c:319 +#: src/song_change/song_change.c:317 msgid "Command to run when Audacious starts a new song." msgstr "" -#: src/song_change/song_change.c:328 src/song_change/song_change.c:350 -#: src/song_change/song_change.c:371 src/song_change/song_change.c:392 +#: src/song_change/song_change.c:326 src/song_change/song_change.c:348 +#: src/song_change/song_change.c:369 src/song_change/song_change.c:390 msgid "Command:" msgstr "" -#: src/song_change/song_change.c:342 +#: src/song_change/song_change.c:340 msgid "Command to run toward the end of a song." msgstr "" -#: src/song_change/song_change.c:362 +#: src/song_change/song_change.c:360 msgid "Command to run when Audacious reaches the end of the playlist." msgstr "" -#: src/song_change/song_change.c:383 +#: src/song_change/song_change.c:381 msgid "" "Command to run when title changes for a song (i.e. network streams titles)." msgstr "" -#: src/song_change/song_change.c:404 +#: src/song_change/song_change.c:402 #, c-format msgid "" "You can use the following format strings which\n" @@ -4294,13 +5426,13 @@ "%%p: Currently playing (1 or 0)" msgstr "" -#: src/song_change/song_change.c:429 +#: src/song_change/song_change.c:427 msgid "" "Parameters passed to the shell should be encapsulated in " "quotes. Doing otherwise is a security risk." msgstr "" -#: src/spectrum/spectrum.c:90 +#: src/spectrum/spectrum.c:89 msgid "Spectrum Analyzer" msgstr "" @@ -4312,11 +5444,11 @@ msgid "The orientation of the tray" msgstr "" -#: src/statusicon/si_ui.c:622 +#: src/statusicon/si_ui.c:620 msgid "About Status Icon Plugin" msgstr "Olekuikooni pluginast lähemalt" -#: src/statusicon/si_ui.c:624 +#: src/statusicon/si_ui.c:622 msgid "" "\n" "written by Giacomo Lozito < james@develia.org >\n" @@ -4325,62 +5457,58 @@ "the system tray area of the window manager.\n" msgstr "" -#: src/statusicon/si_ui.c:696 +#: src/statusicon/si_ui.c:694 msgid "Status Icon Plugin - Preferences" msgstr "Olekuikooni plugina eelistused" -#: src/statusicon/si_ui.c:707 +#: src/statusicon/si_ui.c:705 msgid "Right-Click Menu" msgstr "Paremklõpsu menüü" -#: src/statusicon/si_ui.c:712 +#: src/statusicon/si_ui.c:710 msgid "Audacious standard menu" msgstr "Audacious'e standardmenüü" -#: src/statusicon/si_ui.c:717 +#: src/statusicon/si_ui.c:715 msgid "Small playback menu #1" msgstr "Väike esitusmenüü nr. 1" -#: src/statusicon/si_ui.c:722 +#: src/statusicon/si_ui.c:720 msgid "Small playback menu #2" msgstr "Väike esitusmenüü nr. 2" -#: src/statusicon/si_ui.c:745 +#: src/statusicon/si_ui.c:743 msgid "Mouse Scroll Action" msgstr "Hiire kerimisel" -#: src/statusicon/si_ui.c:750 +#: src/statusicon/si_ui.c:748 msgid "Change volume" msgstr "Muudetakse valjust" -#: src/statusicon/si_ui.c:755 +#: src/statusicon/si_ui.c:753 msgid "Change playing song" msgstr "Vahetatakse esitatavat lugu" -#: src/stereo_plugin/stereo.c:26 +#: src/stereo_plugin/stereo.c:25 msgid "" "Extra Stereo Plugin\n" "\n" "By Johan Levin 1999." msgstr "" -#: src/stereo_plugin/stereo.c:52 +#: src/stereo_plugin/stereo.c:51 msgid "About Extra Stereo Plugin" msgstr "Ekstra stereo pluginast lähemalt" -#: src/stereo_plugin/stereo.c:93 +#: src/stereo_plugin/stereo.c:92 msgid "Configure Extra Stereo" msgstr "" -#: src/stereo_plugin/stereo.c:95 -msgid "Effect intensity:" +#: src/sun/about.c:33 +msgid "About the Sun Driver" msgstr "" #: src/sun/about.c:34 -msgid "About the Sun Driver" -msgstr "" - -#: src/sun/about.c:35 msgid "" "XMMS BSD Sun Driver\n" "\n" @@ -4388,19 +5516,19 @@ "Maintainer: .\n" msgstr "" -#: src/sun/configure.c:201 +#: src/sun/configure.c:199 msgid "Audio control device:" msgstr "" -#: src/sun/configure.c:350 +#: src/sun/configure.c:348 msgid "Volume controls device:" msgstr "" -#: src/sun/configure.c:363 +#: src/sun/configure.c:361 msgid "XMMS uses mixer exclusively." msgstr "" -#: src/sun/configure.c:538 +#: src/sun/configure.c:536 msgid "Sun driver configuration" msgstr "" @@ -4428,7 +5556,7 @@ msgid "TiMidity Configuration File" msgstr "TiMidity sätete fail" -#: src/timidity/xmms-timidity.c:118 +#: src/timidity/xmms-timidity.c:115 msgid "" "TiMidity Plugin\n" "http://libtimidity.sourceforge.net\n" @@ -4438,20 +5566,20 @@ "http://libtimidity.sourceforge.net\n" "autor: Konstantin Korikov" -#: src/timidity/xmms-timidity.c:119 +#: src/timidity/xmms-timidity.c:116 #, c-format msgid "TiMidity Plugin %s" msgstr "TiMidity plugin %s" -#: src/timidity/xmms-timidity.c:336 +#: src/timidity/xmms-timidity.c:333 msgid "Couldn't load MIDI file" msgstr "MIDI-faili pole võimalik laadida" -#: src/tonegen/tonegen.c:56 +#: src/tonegen/tonegen.c:55 msgid "About Tone Generator" msgstr "Toonigeneraatorist lähemalt" -#: src/tonegen/tonegen.c:58 +#: src/tonegen/tonegen.c:57 msgid "" "Sinus tone generator by Haavard Kvaalen \n" "Modified by Daniel J. Peng \n" @@ -4460,86 +5588,86 @@ "e.g. tone://2000;2005 to play a 2000Hz tone and a 2005Hz tone" msgstr "" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 #, c-format msgid "%s %.1f Hz" msgstr "" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 msgid "Tone Generator: " msgstr "" +#: src/tta/libtta.c:127 +msgid "Can't open file\n" +msgstr "" + #: src/tta/libtta.c:130 -msgid "Can't open file\n" +msgid "Not supported file format\n" msgstr "" #: src/tta/libtta.c:133 -msgid "Not supported file format\n" +msgid "File is corrupted\n" msgstr "" #: src/tta/libtta.c:136 -msgid "File is corrupted\n" +msgid "Can't read from file\n" msgstr "" #: src/tta/libtta.c:139 -msgid "Can't read from file\n" +msgid "Insufficient memory available\n" msgstr "" #: src/tta/libtta.c:142 -msgid "Insufficient memory available\n" +msgid "Output plugin error\n" msgstr "" #: src/tta/libtta.c:145 -msgid "Output plugin error\n" -msgstr "" - -#: src/tta/libtta.c:148 msgid "Unknown error\n" msgstr "" -#: src/tta/libtta.c:152 +#: src/tta/libtta.c:149 msgid "TTA Decoder Error" msgstr "" -#: src/tta/libtta.c:261 +#: src/tta/libtta.c:258 msgid "TTA input plugin " msgstr "" -#: src/tta/libtta.c:262 +#: src/tta/libtta.c:259 msgid "" " for BMP\n" "Copyright (c) 2004 True Audio Software\n" msgstr "" -#: src/tta/libtta.c:265 +#: src/tta/libtta.c:262 msgid "About True Audio Plugin" msgstr "" -#: src/tta/libtta.c:316 +#: src/tta/libtta.c:313 msgid "ID3 Tag:" msgstr "" -#: src/tta/libtta.c:378 src/wavpack/ui.cxx:234 +#: src/tta/libtta.c:375 src/wavpack/ui.cxx:232 msgid "Track number:" msgstr "Loo number:" -#: src/vorbis/configure.c:84 +#: src/vorbis/configure.c:82 msgid "Ogg Vorbis Audio Plugin Configuration" msgstr "Ogg Vorbis audioplugina sätted" -#: src/vorbis/configure.c:94 +#: src/vorbis/configure.c:92 msgid "Ogg Vorbis Tags:" msgstr "Ogg Vorbis sildid:" -#: src/vorbis/configure.c:115 +#: src/vorbis/configure.c:113 msgid "Title format:" msgstr "Pealkirja vorming:" -#: src/vorbis/vorbis.c:681 +#: src/vorbis/vorbis.c:677 msgid "About Ogg Vorbis Audio Plugin" msgstr "Ogg Vorbis audiopluginast lähemalt" -#: src/vorbis/vorbis.c:687 +#: src/vorbis/vorbis.c:683 #, fuzzy msgid "" "Ogg Vorbis Plugin by the Xiph.org Foundation\n" @@ -4573,11 +5701,11 @@ "\n" "Külasta ka Xiph.org kodulehte at http://www.xiph.org/\n" -#: src/vtx/about.c:23 +#: src/vtx/about.c:17 msgid "About Vortex Player" msgstr "" -#: src/vtx/about.c:25 +#: src/vtx/about.c:19 msgid "" "Vortex file format player by Sashnov Alexander \n" "Founded on original source in_vtx.dll by Roman Sherbakov " msgstr "" -#: src/wavpack/ui.cxx:52 +#: src/wavpack/ui.cxx:50 #, c-format msgid "Wavpack Decoder Plugin %s" msgstr "" -#: src/wavpack/ui.cxx:53 +#: src/wavpack/ui.cxx:51 msgid "" "Copyright (c) 2006 William Pitcock \n" "\n" @@ -4602,90 +5730,90 @@ "Visit the Wavpack site at http://www.wavpack.com/\n" msgstr "" -#: src/wavpack/ui.cxx:165 +#: src/wavpack/ui.cxx:163 msgid "Ape2 Tag" msgstr "" -#: src/wavpack/ui.cxx:288 +#: src/wavpack/ui.cxx:286 msgid "Wavpack Info:" msgstr "" +#: src/wavpack/ui.cxx:379 +#, c-format +msgid "version %d" +msgstr "versioon %d" + +#: src/wavpack/ui.cxx:380 +#, c-format +msgid "average bitrate: %6.1f kbps" +msgstr "keskmine bitikiirus: %6.1f kbps" + #: src/wavpack/ui.cxx:381 #, c-format -msgid "version %d" -msgstr "versioon %d" +msgid "samplerate: %d Hz" +msgstr "" #: src/wavpack/ui.cxx:382 #, c-format -msgid "average bitrate: %6.1f kbps" -msgstr "keskmine bitikiirus: %6.1f kbps" +msgid "bits per sample: %d" +msgstr "" #: src/wavpack/ui.cxx:383 #, c-format -msgid "samplerate: %d Hz" -msgstr "" +msgid "channels: %d" +msgstr "kanaleid: %d" #: src/wavpack/ui.cxx:384 #, c-format -msgid "bits per sample: %d" -msgstr "" +msgid "length: %d:%.2d" +msgstr "kestus: %d:%.2d" #: src/wavpack/ui.cxx:385 #, c-format -msgid "channels: %d" -msgstr "kanaleid: %d" - -#: src/wavpack/ui.cxx:386 -#, c-format -msgid "length: %d:%.2d" -msgstr "kestus: %d:%.2d" - -#: src/wavpack/ui.cxx:387 -#, c-format msgid "file size: %d Bytes" msgstr "faili suurus: %d baiti" +#: src/wavpack/ui.cxx:392 +msgid "Title Peak: ?" +msgstr "" + +#: src/wavpack/ui.cxx:393 +msgid "Album Peak: ?" +msgstr "" + #: src/wavpack/ui.cxx:394 -msgid "Title Peak: ?" +msgid "Title Gain: ?" msgstr "" #: src/wavpack/ui.cxx:395 -msgid "Album Peak: ?" -msgstr "" - -#: src/wavpack/ui.cxx:396 -msgid "Title Gain: ?" -msgstr "" - -#: src/wavpack/ui.cxx:397 msgid "Album Gain: ?" msgstr "" -#: src/wavpack/ui.cxx:471 +#: src/wavpack/ui.cxx:469 msgid "Wavpack Configuration" msgstr "" -#: src/wavpack/ui.cxx:484 +#: src/wavpack/ui.cxx:482 msgid "General Plugin Settings:" msgstr "" -#: src/wavpack/ui.cxx:502 +#: src/wavpack/ui.cxx:500 msgid "ReplayGain Settings:" msgstr "" -#: src/wavpack/ui.cxx:520 +#: src/wavpack/ui.cxx:518 msgid "ReplayGain Type:" msgstr "" -#: src/wavpack/ui.cxx:531 +#: src/wavpack/ui.cxx:529 msgid "use Track Gain/Peak" msgstr "" -#: src/wavpack/ui.cxx:539 +#: src/wavpack/ui.cxx:537 msgid "use Album Gain/Peak" msgstr "" -#: src/wma/wma.c:123 +#: src/wma/wma.c:120 msgid "" "Adapted for use in Audacious by Tony Vroon (chainsaw@gentoo.org) from\n" "the BEEP-WMA plugin which is Copyright (C) 2004,2005 Mokrushin I.V. aka " @@ -4698,9 +5826,6 @@ #~ msgid "Volume Control:" #~ msgstr "Helivaljuse juhtimine:" -#~ msgid "File Info" -#~ msgstr "Faili andmed" - #~ msgid "Couldn't open file!" #~ msgstr "Faili pole võimalik avada!" @@ -4722,9 +5847,6 @@ #~ msgid "Error!" #~ msgstr "Viga!" -#~ msgid "Date:" -#~ msgstr "Kuupäev:" - #~ msgid "Description:" #~ msgstr "Kirjeldus:" @@ -4748,6 +5870,3 @@ #~ msgid "%d Bytes" #~ msgstr "%d baiti" - -#~ msgid "%s - Audacious" -#~ msgstr "%s - Audacious" diff -r c40585c57877 -r 7fc2c317d190 po/fr.po --- a/po/fr.po Thu Jul 03 17:23:34 2008 +0300 +++ b/po/fr.po Thu Jul 03 17:37:11 2008 +0300 @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: 1.5.x\n" -"Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" -"POT-Creation-Date: 2008-03-30 17:25+0200\n" +"Report-Msgid-Bugs-To: http://bugzilla.atheme.org/\n" +"POT-Creation-Date: 2008-06-21 08:27+0300\n" "PO-Revision-Date: 2008-02-20 14:00+0100\n" "Last-Translator: Stany Henry \n" "Language-Team: fr_FR\n" @@ -17,11 +17,11 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/aac/libmp4.c:286 +#: src/aac/libmp4.c:283 msgid "Using libfaad2-" msgstr "Le module utilise la bibliothèque 'libfaad2-" -#: src/aac/libmp4.c:287 +#: src/aac/libmp4.c:284 msgid "" " for decoding.\n" "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n" @@ -35,38 +35,38 @@ "\n" "Droits d'utilisation : Équipe Audacious (2005-2006)." -#: src/aac/libmp4.c:291 +#: src/aac/libmp4.c:288 msgid "About MP4 AAC player plugin" msgstr "À propos du module 'MP4 AAC'" -#: src/aac/libmp4.c:293 src/adplug/adplug-xmms.cc:182 -#: src/adplug/adplug-xmms.cc:265 src/adplug/adplug-xmms.cc:526 -#: src/alac/plugin.c:77 src/arts/arts.c:26 src/arts/configure.c:90 -#: src/audiocompress/audacious-glue.c:102 -#: src/audiocompress/audacious-glue.c:552 src/cdaudio-ng/configure.c:228 -#: src/console/Audacious_Driver.cxx:449 src/demac/plugin.c:393 -#: src/echo_plugin/gui.c:26 src/echo_plugin/gui.c:137 src/esd/about.c:49 -#: src/filewriter/filewriter.c:183 src/jack/configure.c:141 -#: src/jack/jack.c:456 src/madplug/plugin.c:542 src/madplug/plugin.c:566 -#: src/metronom/metronom.c:88 src/modplug/gui/main.cxx:49 -#: src/musepack/libmpc.cxx:232 src/null/null.c:67 src/null/null.c:110 -#: src/OSS4/about.c:59 src/OSS/about.c:54 src/paranormal-ng/plugin.c:283 -#: src/paranormal/plugin.c:291 src/scrobbler/gtkstuff.c:25 -#: src/sndfile/plugin.c:565 src/statusicon/si_ui.c:628 -#: src/stereo_plugin/stereo.c:53 src/stereo_plugin/stereo.c:116 -#: src/sun/about.c:38 src/sun/configure.c:559 src/timidity/interface.c:222 -#: src/timidity/xmms-timidity.c:120 src/tonegen/tonegen.c:62 -#: src/tta/libtta.c:153 src/tta/libtta.c:267 src/tta/libtta.c:402 -#: src/vorbis/vorbis.c:700 src/vtx/about.c:32 src/vtx/info.c:43 -#: src/wavpack/ui.cxx:56 src/wavpack/ui.cxx:556 +#: src/aac/libmp4.c:290 src/adplug/adplug-xmms.cc:180 +#: src/adplug/adplug-xmms.cc:263 src/adplug/adplug-xmms.cc:524 +#: src/alac/plugin.c:74 src/arts/arts.c:25 src/arts/configure.c:90 +#: src/audiocompress/audacious-glue.c:110 +#: src/audiocompress/audacious-glue.c:560 src/cdaudio-ng/configure.c:242 +#: src/console/Audacious_Driver.cxx:447 src/crystalizer/crystalizer.c:113 +#: src/demac/plugin.c:364 src/echo_plugin/gui.c:24 src/echo_plugin/gui.c:135 +#: src/esd/about.c:48 src/filewriter/filewriter.c:183 src/jack/configure.c:140 +#: src/jack/jack.c:454 src/madplug/plugin.c:679 src/madplug/plugin.c:703 +#: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:52 +#: src/musepack/libmpc.cxx:228 src/null/null.c:64 src/null/null.c:107 +#: src/OSS4/OSS4.c:55 src/OSS/OSS.c:52 src/paranormal-ng/plugin.c:282 +#: src/paranormal/plugin.c:290 src/scrobbler/gtkstuff.c:22 +#: src/sndfile/plugin.c:571 src/statusicon/si_ui.c:626 +#: src/stereo_plugin/stereo.c:52 src/stereo_plugin/stereo.c:115 +#: src/sun/about.c:37 src/sun/configure.c:557 src/timidity/interface.c:222 +#: src/timidity/xmms-timidity.c:117 src/tonegen/tonegen.c:61 +#: src/tta/libtta.c:150 src/tta/libtta.c:264 src/tta/libtta.c:399 +#: src/vorbis/vorbis.c:696 src/vtx/about.c:26 src/vtx/info.c:38 +#: src/wavpack/ui.cxx:54 src/wavpack/ui.cxx:554 msgid "Ok" msgstr "OK" -#: src/adplug/adplug-xmms.cc:171 +#: src/adplug/adplug-xmms.cc:169 msgid "About " msgstr "À propos de " -#: src/adplug/adplug-xmms.cc:175 +#: src/adplug/adplug-xmms.cc:173 msgid "" "\n" "Copyright (C) 2002, 2003 Simon Peter \n" @@ -91,65 +91,65 @@ "\n" "Version de la bibliothèque 'AdPlug' liée : " -#: src/adplug/adplug-xmms.cc:256 +#: src/adplug/adplug-xmms.cc:254 msgid "AdPlug :: Configuration" msgstr "Configuration de 'AdPlug'" -#: src/adplug/adplug-xmms.cc:275 src/alarm/interface.c:1398 +#: src/adplug/adplug-xmms.cc:273 src/alarm/interface.c:1398 #: src/alsa/configure.c:389 src/arts/configure.c:91 -#: src/audiocompress/audacious-glue.c:557 src/cdaudio-ng/configure.c:232 -#: src/echo_plugin/gui.c:145 src/jack/configure.c:148 -#: src/modplug/gui/interface.cxx:714 src/modplug/gui/modplug.glade:1668 -#: src/musepack/libmpc.cxx:237 src/musepack/libmpc.cxx:557 src/null/null.c:111 -#: src/sid/xmms-sid.glade:3080 src/sid/xs_interface.c:1250 -#: src/stereo_plugin/stereo.c:125 src/sun/configure.c:567 -#: src/timidity/interface.c:230 src/wavpack/ui.cxx:280 src/wavpack/ui.cxx:563 +#: src/audiocompress/audacious-glue.c:565 src/cdaudio-ng/configure.c:246 +#: src/crystalizer/crystalizer.c:122 src/echo_plugin/gui.c:143 +#: src/jack/configure.c:147 src/modplug/gui/interface.cxx:714 +#: src/modplug/gui/modplug.glade:1668 src/musepack/libmpc.cxx:233 +#: src/musepack/libmpc.cxx:553 src/null/null.c:108 +#: src/stereo_plugin/stereo.c:124 src/sun/configure.c:565 +#: src/timidity/interface.c:230 src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561 msgid "Cancel" msgstr "Annuler" -#: src/adplug/adplug-xmms.cc:291 src/console/Audacious_Config.cxx:145 -#: src/madplug/configure.c:290 src/modplug/gui/interface.cxx:628 +#: src/adplug/adplug-xmms.cc:289 src/console/Audacious_Config.cxx:144 +#: src/madplug/configure.c:289 src/modplug/gui/interface.cxx:628 #: src/modplug/gui/interface.cxx:887 src/modplug/gui/modplug.glade:1404 #: src/modplug/gui/modplug.glade:1804 msgid "General" msgstr "Général" -#: src/adplug/adplug-xmms.cc:303 +#: src/adplug/adplug-xmms.cc:301 msgid "Sound quality" msgstr "Qualité du son" -#: src/adplug/adplug-xmms.cc:308 src/modplug/gui/interface.cxx:187 +#: src/adplug/adplug-xmms.cc:306 src/modplug/gui/interface.cxx:187 #: src/modplug/gui/modplug.glade:113 msgid "Resolution" msgstr "Résolution" -#: src/adplug/adplug-xmms.cc:310 +#: src/adplug/adplug-xmms.cc:308 msgid "8bit" msgstr "8 bits" -#: src/adplug/adplug-xmms.cc:315 +#: src/adplug/adplug-xmms.cc:313 msgid "16bit" msgstr "16 bits" -#: src/adplug/adplug-xmms.cc:323 src/modplug/gui/interface.cxx:218 +#: src/adplug/adplug-xmms.cc:321 src/modplug/gui/interface.cxx:218 #: src/modplug/gui/modplug.glade:199 src/timidity/interface.c:148 msgid "Channels" msgstr "Sortie" -#: src/adplug/adplug-xmms.cc:325 src/filewriter/mp3.c:900 -#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:288 +#: src/adplug/adplug-xmms.cc:323 src/filewriter/mp3.c:900 +#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:300 #: src/timidity/interface.c:165 msgid "Mono" msgstr "Mono" -#: src/adplug/adplug-xmms.cc:330 src/filewriter/mp3.c:895 +#: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:895 #: src/modplug/gui/interface.cxx:204 src/modplug/gui/modplug.glade:159 -#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:295 +#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:307 #: src/timidity/interface.c:173 msgid "Stereo" msgstr "Stéréo" -#: src/adplug/adplug-xmms.cc:334 +#: src/adplug/adplug-xmms.cc:332 msgid "" "Setting stereo is not recommended, unless you need to. This won't add any " "stereo effects to the sound - OPL2 is just mono - but eats up more CPU power!" @@ -159,20 +159,20 @@ "n'utilise que le mode mono), mais nécessitera beaucoup plus de puissance " "CPU !" -#: src/adplug/adplug-xmms.cc:342 +#: src/adplug/adplug-xmms.cc:340 msgid "Frequency" msgstr "Fréquence" -#: src/adplug/adplug-xmms.cc:378 src/adplug/adplug-xmms.cc:582 -#: src/console/Audacious_Config.cxx:147 +#: src/adplug/adplug-xmms.cc:376 src/adplug/adplug-xmms.cc:580 +#: src/console/Audacious_Config.cxx:146 src/skins/ui_manager.c:175 msgid "Playback" msgstr "Lecture" -#: src/adplug/adplug-xmms.cc:382 +#: src/adplug/adplug-xmms.cc:380 msgid "Detect songend" msgstr "Détecter la fin du morceau" -#: src/adplug/adplug-xmms.cc:386 +#: src/adplug/adplug-xmms.cc:384 msgid "" "If enabled, XMMS will detect a song's ending, stop it and advance in the " "playlist. If disabled, XMMS won't take notice of a song's ending and loop it " @@ -183,23 +183,23 @@ "lecture. Dans le cas contraire, Audacious ne se préoccupera pas de la fin " "des morceaux : le titre sera lu en boucle." -#: src/adplug/adplug-xmms.cc:397 +#: src/adplug/adplug-xmms.cc:395 msgid "Formats" msgstr "Formats" -#: src/adplug/adplug-xmms.cc:404 +#: src/adplug/adplug-xmms.cc:402 msgid "Format selection" msgstr "Choix des formats" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Format" msgstr "Format" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Extension" msgstr "Extension" -#: src/adplug/adplug-xmms.cc:447 +#: src/adplug/adplug-xmms.cc:445 msgid "" "Selected file types will be recognized and played back by this plugin. " "Deselected types will be ignored to make room for other plugins to play " @@ -209,88 +209,88 @@ "Les autres seront ignorés, de manière à pouvoir être supportés par d'autres " "extensions." -#: src/adplug/adplug-xmms.cc:533 +#: src/adplug/adplug-xmms.cc:531 msgid "AdPlug :: File Info" msgstr "Informations sur le fichier" -#: src/adplug/adplug-xmms.cc:555 src/amidi-plug/i_configure-fluidsynth.c:448 +#: src/adplug/adplug-xmms.cc:553 src/amidi-plug/i_configure-fluidsynth.c:448 msgid "Filename" msgstr "Nom du fichier" +#: src/adplug/adplug-xmms.cc:557 src/skins/ui_playlist.c:470 +msgid "Title: " +msgstr "Titre : " + +#: src/adplug/adplug-xmms.cc:558 +msgid "Author: " +msgstr "Auteur : " + #: src/adplug/adplug-xmms.cc:559 -msgid "Title: " -msgstr "Titre : " - -#: src/adplug/adplug-xmms.cc:560 -msgid "Author: " -msgstr "Auteur : " - -#: src/adplug/adplug-xmms.cc:561 msgid "File Type: " msgstr "Format : " -#: src/adplug/adplug-xmms.cc:562 +#: src/adplug/adplug-xmms.cc:560 msgid "Subsongs: " msgstr "Sous-modules : " -#: src/adplug/adplug-xmms.cc:563 +#: src/adplug/adplug-xmms.cc:561 msgid "Instruments: " msgstr "Instruments : " -#: src/adplug/adplug-xmms.cc:568 +#: src/adplug/adplug-xmms.cc:566 msgid "Orders: " msgstr "Partitions : " -#: src/adplug/adplug-xmms.cc:569 +#: src/adplug/adplug-xmms.cc:567 msgid "Patterns: " msgstr "Séquences : " -#: src/adplug/adplug-xmms.cc:573 +#: src/adplug/adplug-xmms.cc:571 msgid "Song" msgstr "Morceau" -#: src/adplug/adplug-xmms.cc:599 +#: src/adplug/adplug-xmms.cc:597 msgid "Instrument name" msgstr "Nom de l'instrument" -#: src/adplug/adplug-xmms.cc:641 +#: src/adplug/adplug-xmms.cc:639 msgid "Song message" msgstr "Commentaires" -#: src/adplug/adplug-xmms.cc:663 +#: src/adplug/adplug-xmms.cc:661 msgid "Subsong selection" msgstr "Sélection du sous-module" -#: src/adplug/adplug-xmms.cc:727 +#: src/adplug/adplug-xmms.cc:725 msgid "Order: " msgstr "Partition : " -#: src/adplug/adplug-xmms.cc:728 +#: src/adplug/adplug-xmms.cc:726 msgid "Pattern: " msgstr "Séquence : " +#: src/adplug/adplug-xmms.cc:728 +msgid "Row: " +msgstr "Ligne : " + +#: src/adplug/adplug-xmms.cc:729 +msgid "Speed: " +msgstr "Vitesse : " + #: src/adplug/adplug-xmms.cc:730 -msgid "Row: " -msgstr "Ligne : " - -#: src/adplug/adplug-xmms.cc:731 -msgid "Speed: " -msgstr "Vitesse : " - -#: src/adplug/adplug-xmms.cc:732 msgid "Timer: " msgstr "Fréquence : " -#: src/adplug/adplug-xmms.cc:733 src/console/Audacious_Config.cxx:225 -#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:341 +#: src/adplug/adplug-xmms.cc:731 src/console/Audacious_Config.cxx:224 +#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:353 msgid "Hz" msgstr "Hz" -#: src/alac/plugin.c:74 +#: src/alac/plugin.c:71 msgid "About Apple Lossless Audio Plugin" msgstr "À propos du module audio 'Apple Lossless'" -#: src/alac/plugin.c:75 +#: src/alac/plugin.c:72 msgid "" "Copyright (c) 2006 Audacious team\n" "Portions (c) 2005-2006 David Hammerton " @@ -333,8 +333,8 @@ #: src/alarm/interface.c:71 src/lirc/about.c:115 #: src/modplug/gui/interface.cxx:971 src/modplug/gui/modplug.glade:2030 -#: src/sid/xmms-sid.glade:3643 src/sid/xs_about.c:214 -#: src/sid/xs_interface.c:1740 +#: src/sid/xmms-sid.glade:3837 src/sid/xs_about.c:214 +#: src/sid/xs_interface.c:1824 msgid "Close" msgstr "Fermer" @@ -346,13 +346,12 @@ msgid "This is your wakeup call." msgstr "L'appel du réveil... ;-)" -#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:46 +#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:45 #: src/alsa/configure.c:383 src/cdaudio-ng/cdaudio-ng.c:247 -#: src/flacng/plugin.c:706 src/gnomeshortcuts/gnomeshortcuts.c:311 -#: src/hotkey/gui.c:671 src/modplug/gui/interface.cxx:702 -#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:738 -#: src/scrobbler/gtkstuff.c:45 src/sid/xmms-sid.glade:3066 -#: src/sid/xs_interface.c:1243 +#: src/flacng/plugin.c:705 src/gnomeshortcuts/gnomeshortcuts.c:310 +#: src/hotkey/gui.c:670 src/modplug/gui/interface.cxx:702 +#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:736 +#: src/scrobbler/gtkstuff.c:42 src/skins/plugin.c:130 msgid "OK" msgstr "OK" @@ -431,7 +430,8 @@ #: src/alarm/interface.c:612 src/alarm/interface.c:660 #: src/alarm/interface.c:708 src/alarm/interface.c:756 #: src/alarm/interface.c:804 src/alarm/interface.c:852 -#: src/alarm/interface.c:900 src/OSS4/configure.c:138 src/OSS/configure.c:169 +#: src/alarm/interface.c:900 src/OSS4/configure.c:136 src/OSS/configure.c:168 +#: src/skins/ui_manager.c:447 src/skins/ui_manager.c:468 msgid "Default" msgstr "Défaut" @@ -476,9 +476,9 @@ msgstr "Fondu" #: src/alarm/interface.c:1087 src/sid/xmms-sid.glade:2007 -#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2676 -#: src/sid/xs_interface.c:908 src/sid/xs_interface.c:962 -#: src/sid/xs_interface.c:1122 +#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2746 +#: src/sid/xs_interface.c:920 src/sid/xs_interface.c:974 +#: src/sid/xs_interface.c:1154 msgid "seconds" msgstr "secondes" @@ -531,7 +531,7 @@ msgid "Use reminder" msgstr "Utiliser le pense-bête" -#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:377 +#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:376 msgid "Options" msgstr "Options" @@ -666,7 +666,7 @@ "(écrivez le message dans le champ prévu à cet effet, puis cochez l'option du " "pense-bête).\n" -#: src/alarm/interface.c:1366 +#: src/alarm/interface.c:1366 src/skins/ui_manager.c:386 msgid "Help" msgstr "Aide" @@ -678,11 +678,11 @@ msgid "Thankyou" msgstr "Merci" -#: src/alsa/about.c:30 +#: src/alsa/about.c:29 msgid "About ALSA Driver" msgstr "À propos du pilote 'ALSA'" -#: src/alsa/about.c:31 +#: src/alsa/about.c:30 msgid "" "Audacious ALSA Driver\n" "\n" @@ -746,8 +746,8 @@ msgid "ALSA Driver configuration" msgstr "Configuration du pilote 'ALSA'" -#: src/alsa/configure.c:274 src/OSS4/configure.c:186 src/OSS/configure.c:217 -#: src/sun/configure.c:183 +#: src/alsa/configure.c:274 src/OSS4/configure.c:184 src/OSS/configure.c:216 +#: src/sun/configure.c:181 msgid "Audio device:" msgstr "Périphérique audio :" @@ -759,7 +759,7 @@ msgid "Mixer card:" msgstr "Carte de mélange audio :" -#: src/alsa/configure.c:313 src/OSS/configure.c:260 src/sun/configure.c:220 +#: src/alsa/configure.c:313 src/OSS/configure.c:259 src/sun/configure.c:218 msgid "Mixer device:" msgstr "Mélangeur audio :" @@ -1520,8 +1520,8 @@ "Sortie\n" "'TiMidity'" -#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3465 -#: src/sid/xs_interface.c:1684 +#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3659 +#: src/sid/xs_interface.c:1768 msgid "Name:" msgstr "Nom :" @@ -1650,20 +1650,20 @@ msgid "None" msgstr "Aucun" -#: src/aosd/aosd_trigger.c:75 +#: src/aosd/aosd_trigger.c:74 msgid "Playback Start" msgstr "Début de la lecture" -#: src/aosd/aosd_trigger.c:76 +#: src/aosd/aosd_trigger.c:75 msgid "Triggers OSD when a playlist entry is played." msgstr "" "Déclenche la fonction 'OSD' lorsqu'une entrée de la liste de lecture est lue." -#: src/aosd/aosd_trigger.c:80 +#: src/aosd/aosd_trigger.c:79 msgid "Title Change" msgstr "Changement de titre" -#: src/aosd/aosd_trigger.c:81 +#: src/aosd/aosd_trigger.c:80 msgid "" "Triggers OSD when, during playback, the song title changes but the filename " "is the same. This is mostly useful to display title changes in internet " @@ -1674,27 +1674,27 @@ "particulièrement utile pour afficher le changement de titre des flux " "Internet." -#: src/aosd/aosd_trigger.c:87 +#: src/aosd/aosd_trigger.c:86 msgid "Volume Change" msgstr "Changement de volume" -#: src/aosd/aosd_trigger.c:88 +#: src/aosd/aosd_trigger.c:87 msgid "Triggers OSD when volume is changed." msgstr "Déclenche la fonction 'OSD' en cas de changement de volume." -#: src/aosd/aosd_trigger.c:92 +#: src/aosd/aosd_trigger.c:91 msgid "Pause On" msgstr "Mode 'pause' activé" -#: src/aosd/aosd_trigger.c:93 +#: src/aosd/aosd_trigger.c:92 msgid "Triggers OSD when playback is paused." msgstr "Déclenche la fonction 'OSD' lorsque la lecture est en mode 'pause'." +#: src/aosd/aosd_trigger.c:96 +msgid "Pause Off" +msgstr "Mode 'pause' désactivé" + #: src/aosd/aosd_trigger.c:97 -msgid "Pause Off" -msgstr "Mode 'pause' désactivé" - -#: src/aosd/aosd_trigger.c:98 msgid "Triggers OSD when playback is unpaused." msgstr "" "Déclenche la fonction 'OSD' lorsque la lecture n'est plus en mode 'pause'." @@ -1794,10 +1794,10 @@ msgid "Skin file:" msgstr "Fichier du thème" -#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2331 -#: src/sid/xmms-sid.glade:2856 src/sid/xmms-sid.glade:2962 -#: src/sid/xs_interface.c:1010 src/sid/xs_interface.c:1182 -#: src/sid/xs_interface.c:1218 +#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2373 +#: src/sid/xmms-sid.glade:2968 src/sid/xmms-sid.glade:3136 +#: src/sid/xs_interface.c:1043 src/sid/xs_interface.c:1235 +#: src/sid/xs_interface.c:1291 msgid "Browse" msgstr "Parcourir" @@ -1881,9 +1881,9 @@ msgid "Trigger" msgstr "Déclenchement" -#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:167 +#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:175 #: src/modplug/gui/interface.cxx:688 src/modplug/gui/modplug.glade:1603 -#: src/sid/xmms-sid.glade:3026 src/sid/xs_interface.c:1229 +#: src/sid/xmms-sid.glade:3220 src/sid/xs_interface.c:1301 msgid "Misc" msgstr "Divers" @@ -1919,11 +1919,11 @@ "'On-Screen-Display' est basé sur la bibliothèque 'Ghosd' de Evan Martin\n" "http://neugierig.org/software/ghosd/\n" -#: src/arts/arts.c:22 +#: src/arts/arts.c:21 msgid "About aRts Output" msgstr "À propos du pilote 'aRts'" -#: src/arts/arts.c:23 +#: src/arts/arts.c:22 msgid "" "aRts output plugin by Håvard Kvålen \n" "Audacious port by Giacomo Lozito from develia.org" @@ -1941,26 +1941,26 @@ msgid "aRts Driver configuration" msgstr "Configuration du pilote 'aRts'" -#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:232 -#: src/OSS/configure.c:304 src/sun/configure.c:259 +#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:230 +#: src/OSS/configure.c:303 src/sun/configure.c:257 msgid "Buffering:" msgstr "Tampon" -#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:245 -#: src/OSS/configure.c:317 src/sun/configure.c:272 +#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:243 +#: src/OSS/configure.c:316 src/sun/configure.c:270 msgid "Buffer size (ms):" msgstr "Taille du tampon (ms) :" -#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:270 -#: src/OSS/configure.c:342 src/sun/configure.c:304 +#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:268 +#: src/OSS/configure.c:341 src/sun/configure.c:302 msgid "Buffering" msgstr "Tampon" -#: src/audiocompress/audacious-glue.c:95 +#: src/audiocompress/audacious-glue.c:103 msgid "AudioCompress " msgstr "AudioCompress " -#: src/audiocompress/audacious-glue.c:96 +#: src/audiocompress/audacious-glue.c:104 msgid "" "\n" "(c)2003 trikuare studios(http://trikuare.cx)\n" @@ -1980,11 +1980,11 @@ "pour maintenir, de manière transparente, le volume à un niveau\n" "plus ou moins uniforme." -#: src/audiocompress/audacious-glue.c:101 +#: src/audiocompress/audacious-glue.c:109 msgid "About AudioCompress" msgstr "À propos de 'AudioCompress'" -#: src/audiocompress/audacious-glue.c:320 +#: src/audiocompress/audacious-glue.c:328 msgid "" "If checked, when the sound peaks the volume will be cut instantly; " "otherwise, it will ramp down just in time for the peak (but some minor " @@ -1994,17 +1994,17 @@ "immédiatement coupé ; sinon, il diminuera juste à temps, de manière à éviter " "le pic (malgré tout, une saturation faible peut survenir)." -#: src/audiocompress/audacious-glue.c:324 +#: src/audiocompress/audacious-glue.c:332 msgid "The maximum amount to amplify the audio by" msgstr "Détermine l'amplification maximale à appliquer au flux audio." -#: src/audiocompress/audacious-glue.c:326 +#: src/audiocompress/audacious-glue.c:334 msgid "Defines how smoothly the volume will ramp up" msgstr "" "Détermine la vitesse à laquelle le volume sera réduit. Une valeur élevée " "correspond à une vitesse plus lente." -#: src/audiocompress/audacious-glue.c:328 +#: src/audiocompress/audacious-glue.c:336 msgid "" "The target audio level for ramping up. Lowering the value gives a bit more " "dynamic range for peaks, but will make the overall sound quieter." @@ -2013,43 +2013,43 @@ "Des valeurs faibles permettent d'obtenir une variation des pics plus " "dynamique, mais rendent l'ensemble du flux moins audible." -#: src/audiocompress/audacious-glue.c:331 +#: src/audiocompress/audacious-glue.c:339 msgid "How long of a window to maintain" msgstr "Temps de relâchement (ms) :" -#: src/audiocompress/audacious-glue.c:372 +#: src/audiocompress/audacious-glue.c:380 msgid "AudioCompress preferences" msgstr "Préférences de 'AudioCompress'" -#: src/audiocompress/audacious-glue.c:389 +#: src/audiocompress/audacious-glue.c:397 msgid " Quality Options " msgstr " Qualité " -#: src/audiocompress/audacious-glue.c:394 +#: src/audiocompress/audacious-glue.c:402 msgid " Aggressively prevent clipping" msgstr " Prévention agressive de la saturation numérique" -#: src/audiocompress/audacious-glue.c:406 +#: src/audiocompress/audacious-glue.c:414 msgid " Target & gain" msgstr " Seuil & Gain" -#: src/audiocompress/audacious-glue.c:417 +#: src/audiocompress/audacious-glue.c:425 msgid "Target audio level:" msgstr "Seuil de compression :" -#: src/audiocompress/audacious-glue.c:425 -msgid "Maximum gain:" -msgstr "Gain maximal :" - #: src/audiocompress/audacious-glue.c:433 +msgid "Maximum gain:" +msgstr "Gain maximal :" + +#: src/audiocompress/audacious-glue.c:441 msgid "Gain smooth:" msgstr "Vitesse du gain :" -#: src/audiocompress/audacious-glue.c:485 +#: src/audiocompress/audacious-glue.c:493 msgid " History " msgstr " Relâchement " -#: src/audiocompress/audacious-glue.c:517 +#: src/audiocompress/audacious-glue.c:525 msgid "" "How long of a history to maintain. A higher number will make the volume " "changes less responsive." @@ -2057,41 +2057,41 @@ "Détermine la durée (exprimée en millisecondes) pendant laquelle la " "compression sera appliquée." -#: src/audiocompress/audacious-glue.c:528 +#: src/audiocompress/audacious-glue.c:536 msgid "Load default values" msgstr "Charger les valeurs par défaut" -#: src/audiocompress/audacious-glue.c:533 +#: src/audiocompress/audacious-glue.c:541 msgid "Audio values" msgstr "Paramètres audio" -#: src/audiocompress/audacious-glue.c:562 src/echo_plugin/gui.c:152 -#: src/modplug/gui/interface.cxx:708 src/modplug/gui/modplug.glade:1655 -#: src/stereo_plugin/stereo.c:132 +#: src/audiocompress/audacious-glue.c:570 src/crystalizer/crystalizer.c:129 +#: src/echo_plugin/gui.c:150 src/modplug/gui/interface.cxx:708 +#: src/modplug/gui/modplug.glade:1655 src/stereo_plugin/stereo.c:131 msgid "Apply" msgstr "Appliquer" -#: src/blur_scope/blur_scope.c:54 +#: src/blur_scope/blur_scope.c:52 msgid "/Toggle Decorations" msgstr "/Montrer les décorations" -#: src/blur_scope/blur_scope.c:56 +#: src/blur_scope/blur_scope.c:54 msgid "/-" msgstr "/-" -#: src/blur_scope/blur_scope.c:57 +#: src/blur_scope/blur_scope.c:55 msgid "/Close" msgstr "/Fermer" -#: src/blur_scope/blur_scope.c:181 +#: src/blur_scope/blur_scope.c:179 msgid "Blur scope" msgstr "'Blur Scope'" -#: src/blur_scope/config.c:72 +#: src/blur_scope/config.c:71 msgid "Blur Scope: Color selection" msgstr "'Blur Scope' : sélection de la couleur" -#: src/blur_scope/config.c:82 src/jack/configure.c:108 +#: src/blur_scope/config.c:81 src/jack/configure.c:107 msgid "Options:" msgstr "Options :" @@ -2133,7 +2133,7 @@ "\n" "Ce module était un projet de 'Google Summer of Code 2007'." -#: src/cdaudio-ng/cdaudio-ng.c:814 +#: src/cdaudio-ng/cdaudio-ng.c:815 msgid "" "No playable CD found.\n" "\n" @@ -2144,98 +2144,103 @@ "Le lecteur ne comporte pas de CD ou le support inséré n'est pas un CD " "audio.\n" -#: src/cdaudio-ng/configure.c:147 +#: src/cdaudio-ng/configure.c:155 msgid "CD Audio Plugin Configuration" msgstr "Configuration du module 'CD Audio'" -#: src/cdaudio-ng/configure.c:157 +#: src/cdaudio-ng/configure.c:165 msgid "Digital audio extraction" msgstr "Extraction audio digitale" -#: src/cdaudio-ng/configure.c:162 +#: src/cdaudio-ng/configure.c:170 msgid "Title information" msgstr "Informations sur le titre" -#: src/cdaudio-ng/configure.c:179 +#: src/cdaudio-ng/configure.c:187 msgid "Limit read speed to: " msgstr "Limiter la vitesse de lecture à : " -#: src/cdaudio-ng/configure.c:186 +#: src/cdaudio-ng/configure.c:194 msgid "Use cd-text if available" msgstr "Utiliser CD-TEXT, si la fonction est disponible" -#: src/cdaudio-ng/configure.c:190 +#: src/cdaudio-ng/configure.c:198 msgid "Use CDDB if available" msgstr "Utiliser CDDB, si le service est disponible" -#: src/cdaudio-ng/configure.c:194 +#: src/cdaudio-ng/configure.c:202 msgid "Server: " msgstr "Serveur : " -#: src/cdaudio-ng/configure.c:197 +#: src/cdaudio-ng/configure.c:205 +#, fuzzy +msgid "Path: " +msgstr "Séquence : " + +#: src/cdaudio-ng/configure.c:208 msgid "Port: " msgstr "Port : " -#: src/cdaudio-ng/configure.c:203 +#: src/cdaudio-ng/configure.c:217 msgid "Use HTTP instead of CDDBP" msgstr "Utiliser HTTP à la place de CDDB" -#: src/cdaudio-ng/configure.c:211 +#: src/cdaudio-ng/configure.c:225 msgid "Override default device: " msgstr "Remplacer le périphérique par défaut : " -#: src/cdaudio-ng/configure.c:218 +#: src/cdaudio-ng/configure.c:232 msgid "Print debug information" msgstr "Afficher les informations de débogage" -#: src/console/Audacious_Config.cxx:125 +#: src/console/Audacious_Config.cxx:124 msgid "Console Music Decoder" msgstr "Décodeur 'Console Music'" -#: src/console/Audacious_Config.cxx:162 +#: src/console/Audacious_Config.cxx:161 msgid "Bass:" msgstr "Basses :" -#: src/console/Audacious_Config.cxx:166 src/console/Audacious_Config.cxx:177 -#: src/console/Audacious_Config.cxx:198 +#: src/console/Audacious_Config.cxx:165 src/console/Audacious_Config.cxx:176 +#: src/console/Audacious_Config.cxx:197 msgid "secs" msgstr "secondes" -#: src/console/Audacious_Config.cxx:173 +#: src/console/Audacious_Config.cxx:172 msgid "Treble:" msgstr "Aiguës :" -#: src/console/Audacious_Config.cxx:194 +#: src/console/Audacious_Config.cxx:193 msgid "Default song length:" msgstr "Durée par défaut :" -#: src/console/Audacious_Config.cxx:200 src/modplug/gui/interface.cxx:268 +#: src/console/Audacious_Config.cxx:199 src/modplug/gui/interface.cxx:268 #: src/modplug/gui/modplug.glade:338 src/sid/xmms-sid.glade:1243 -#: src/sid/xs_interface.c:653 +#: src/sid/xs_interface.c:665 msgid "Resampling" msgstr "Rééchantillonnage" -#: src/console/Audacious_Config.cxx:206 +#: src/console/Audacious_Config.cxx:205 msgid "Enable audio resampling" msgstr "Activer le rééchantillonnage" -#: src/console/Audacious_Config.cxx:221 +#: src/console/Audacious_Config.cxx:220 msgid "Resampling rate:" msgstr "Taux de rééchantillonnage" -#: src/console/Audacious_Config.cxx:236 +#: src/console/Audacious_Config.cxx:235 msgid "SPC" msgstr "SPC" -#: src/console/Audacious_Config.cxx:237 +#: src/console/Audacious_Config.cxx:236 msgid "Ignore length from SPC tags" msgstr "Ignorer la durée des métadonnées SPC" -#: src/console/Audacious_Config.cxx:238 +#: src/console/Audacious_Config.cxx:237 msgid "Increase reverb" msgstr "Augmenter la réverbération" -#: src/console/Audacious_Config.cxx:263 +#: src/console/Audacious_Config.cxx:262 msgid "" "The default song length, expressed in seconds, is used for songs that do not " "provide length information (i.e. looping tracks)." @@ -2245,11 +2250,11 @@ "qui ne disposent pas d'informations quant à leur durée (les pistes en " "boucle, par exemple)." -#: src/console/Audacious_Driver.cxx:444 +#: src/console/Audacious_Driver.cxx:442 msgid "About the Console Music Decoder" msgstr "À propos de 'Console Music Decoder'" -#: src/console/Audacious_Driver.cxx:445 +#: src/console/Audacious_Driver.cxx:443 msgid "" "Console music decoder engine based on Game_Music_Emu 0.5.2.\n" "Supported formats: AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ\n" @@ -2265,11 +2270,20 @@ "William Pitcock \n" "Shay Green " -#: src/demac/plugin.c:388 +#: src/crystalizer/crystalizer.c:90 +#, fuzzy +msgid "Configure Crystalizer" +msgstr "Configurer 'Extra Stereo'" + +#: src/crystalizer/crystalizer.c:92 src/stereo_plugin/stereo.c:94 +msgid "Effect intensity:" +msgstr "Intensité de l'effet :" + +#: src/demac/plugin.c:359 msgid "About Monkey's Audio Plugin" msgstr "À propos du module 'Monkey's Audio'" -#: src/demac/plugin.c:389 +#: src/demac/plugin.c:360 msgid "" "Copyright (C) 2007 Eugene Zagidullin \n" "Based on ffape decoder, Copyright (C) 2007 Benjamin Zores\n" @@ -2286,7 +2300,7 @@ "\n" "'ffape' fait partie du projet 'FFmpeg' (http://ffmpeg.mplayerhq.hu/)" -#: src/echo_plugin/gui.c:11 +#: src/echo_plugin/gui.c:9 msgid "" "Echo Plugin\n" "By Johan Levin 1999.\n" @@ -2299,35 +2313,35 @@ "\n" "'Surround echo' est écrit par Carl van Schaik (1999)" -#: src/echo_plugin/gui.c:25 +#: src/echo_plugin/gui.c:23 msgid "About Echo Plugin" msgstr "À propos du module 'Écho'" -#: src/echo_plugin/gui.c:76 +#: src/echo_plugin/gui.c:74 msgid "Configure Echo" msgstr "Configuration de 'Écho'" -#: src/echo_plugin/gui.c:89 +#: src/echo_plugin/gui.c:87 msgid "Delay: (ms)" msgstr "Délai : (ms)" -#: src/echo_plugin/gui.c:94 +#: src/echo_plugin/gui.c:92 msgid "Feedback: (%)" msgstr "Retour : (%)" -#: src/echo_plugin/gui.c:99 +#: src/echo_plugin/gui.c:97 msgid "Volume: (%)" msgstr "Volume : (%)" -#: src/echo_plugin/gui.c:122 +#: src/echo_plugin/gui.c:120 msgid "Surround echo" msgstr "Écho d'ambiance" -#: src/esd/about.c:34 +#: src/esd/about.c:33 msgid "About ESounD Plugin" msgstr "À propos du module 'ESounD'" -#: src/esd/about.c:35 +#: src/esd/about.c:34 msgid "" "Audacious ESounD Plugin\n" "\n" @@ -2397,8 +2411,8 @@ msgid "Server" msgstr "Serveur" -#: src/esd/configure.c:198 src/OSS4/configure.c:259 src/OSS/configure.c:331 -#: src/sun/configure.c:290 +#: src/esd/configure.c:198 src/OSS4/configure.c:257 src/OSS/configure.c:330 +#: src/sun/configure.c:288 msgid "Pre-buffer (percent):" msgstr "Pré-tampon (pourcents) :" @@ -2470,7 +2484,7 @@ msgid "Window->JumpToFile" msgstr "Fenêtre -> Aller au titre..." -#: src/evdev-plug/ed_internals.c:94 +#: src/evdev-plug/ed_internals.c:93 #, c-format msgid "" "event-device-plugin: unable to open device file %s , skipping this device; " @@ -2480,7 +2494,7 @@ "le périphérique sera ignoré...Veuillez vérifier que le fichier existe et que " "disposez des permissions de lecture requises.\n" -#: src/evdev-plug/ed_internals.c:103 +#: src/evdev-plug/ed_internals.c:102 #, c-format msgid "" "event-device-plugin: unable to create a io_channel for device file %s ," @@ -2489,7 +2503,7 @@ "Module 'Event-Device' : impossible de créer un canal 'io' pour le fichier de " "périphérique %s ; le périphérique sera ignoré...\n" -#: src/evdev-plug/ed_internals.c:342 +#: src/evdev-plug/ed_internals.c:341 msgid "" "event-device-plugin: unable to open /proc/bus/input/devices , automatic " "detection of event devices won't work.\n" @@ -2497,7 +2511,7 @@ "Module 'Event-Device' : impossible d'ouvrir '/proc/bus/input/devices' ; la " "détection automatique des périphériques échouera...\n" -#: src/evdev-plug/ed_internals.c:351 +#: src/evdev-plug/ed_internals.c:350 msgid "" "event-device-plugin: unable to open a io_channel for /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" @@ -2505,7 +2519,7 @@ "Module 'Event-Device' : impossible de créer un canal 'io' pour '/proc/bus/" "input/devices' ; la détection automatique des périphériques échouera...\n" -#: src/evdev-plug/ed_internals.c:361 +#: src/evdev-plug/ed_internals.c:360 msgid "" "event-device-plugin: an error occurred while reading /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" @@ -2513,14 +2527,14 @@ "Module 'Event-Device' : une erreur s'est produite lors de lecture de '/proc/" "bus/input/devices' ; la détection automatique des périphériques échouera...\n" -#: src/evdev-plug/ed_internals.c:424 +#: src/evdev-plug/ed_internals.c:423 #, c-format msgid "event-device-plugin: device %s not found in /dev/input , skipping.\n" msgstr "" "Module 'Event-Device' : le périphérique %s n'a pas été trouvé dans '/dev/" "input' ; le périphérique sera ignoré...\n" -#: src/evdev-plug/ed_internals.c:489 src/evdev-plug/ed_internals.c:583 +#: src/evdev-plug/ed_internals.c:488 src/evdev-plug/ed_internals.c:582 #, c-format msgid "" "event-device-plugin: unable to load config file %s , default settings will " @@ -2529,7 +2543,7 @@ "Module 'Event-Device' : impossible de charger le fichier de configuration %" "s ; les paramètres par défaut seront utilisés...\n" -#: src/evdev-plug/ed_internals.c:535 +#: src/evdev-plug/ed_internals.c:534 #, c-format msgid "" "event-device-plugin: incomplete information in config file for device \"%s" @@ -2538,7 +2552,7 @@ "Module 'Event-Device' : information incomplète au sujet du périphérique \"%s" "\" ; le périphérique sera ignoré...\n" -#: src/evdev-plug/ed_internals.c:604 src/evdev-plug/ed_internals.c:936 +#: src/evdev-plug/ed_internals.c:603 src/evdev-plug/ed_internals.c:935 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_active value for device " @@ -2548,7 +2562,7 @@ "le fichier de configuration pour le périphérique \"%s\" ; le périphérique " "sera ignoré...\n" -#: src/evdev-plug/ed_internals.c:840 +#: src/evdev-plug/ed_internals.c:839 #, c-format msgid "" "event-device-plugin: unable to access local directory %s , settings will not " @@ -2557,7 +2571,7 @@ "Module 'Event-Device' : impossible d'accéder au dossier local %s ; les " "paramètres ne seront pas enregistrés...\n" -#: src/evdev-plug/ed_internals.c:890 +#: src/evdev-plug/ed_internals.c:889 #, c-format msgid "" "event-device-plugin: configuration, unable to get filename value for device " @@ -2567,7 +2581,7 @@ "configuration, le nom du fichier du périphérique \"%s\" ;le périphérique " "sera ignoré...\n" -#: src/evdev-plug/ed_internals.c:906 +#: src/evdev-plug/ed_internals.c:905 #, c-format msgid "" "event-device-plugin: configuration, unable to get phys value for device \"%s" @@ -2576,7 +2590,7 @@ "event-device-plugin : configuration ; impossible d'obtenir la valeur " "physique du périphérique \"%s\" ; opération ignorée.\n" -#: src/evdev-plug/ed_internals.c:922 +#: src/evdev-plug/ed_internals.c:921 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_custom value for device " @@ -2585,7 +2599,7 @@ "event-device-plugin : configuration ; impossible d'obtenir la valeur " "\"is_custom\" pour le périphérique \"%s\" ; opération ignorée.\n" -#: src/evdev-plug/ed_internals.c:946 +#: src/evdev-plug/ed_internals.c:945 #, c-format msgid "" "event-device-plugin: configuration, unexpected value for device \"%s\", " @@ -2608,7 +2622,7 @@ "périphérique qui n'a pas été détecté.\n" "Veuillez vous assurer que le périphérique a été correctement branché." -#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:566 +#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:703 msgid "Error" msgstr "Erreur" @@ -2672,7 +2686,7 @@ msgid "Active" msgstr "Actif" -#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:488 +#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:486 msgid "Status" msgstr "Statut" @@ -2811,7 +2825,7 @@ msgid "Output file format:" msgstr "Format du fichier de sortie :" -#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:960 +#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:959 msgid "Configure" msgstr "Configurer" @@ -3046,11 +3060,11 @@ msgid "Quality level (0 - 10):" msgstr "Niveau de qualité (0 - 10) :" -#: src/flacng/plugin.c:698 +#: src/flacng/plugin.c:697 msgid "FLAC Audio Plugin " msgstr "Module audio 'Flac' " -#: src/flacng/plugin.c:699 +#: src/flacng/plugin.c:698 msgid "" "\n" "\n" @@ -3066,15 +3080,15 @@ "\n" "http://www.skytale.net/projects/bmp-flac2/" -#: src/flacng/plugin.c:704 +#: src/flacng/plugin.c:703 msgid "About FLAC Audio Plugin" msgstr "À propos du module audio 'FLAC'" +#: src/gnomeshortcuts/gnomeshortcuts.c:305 +msgid "About Gnome Shortcut Plugin" +msgstr "À propos du module 'Gnome Shortcut'" + #: src/gnomeshortcuts/gnomeshortcuts.c:306 -msgid "About Gnome Shortcut Plugin" -msgstr "À propos du module 'Gnome Shortcut'" - -#: src/gnomeshortcuts/gnomeshortcuts.c:307 msgid "" "Gnome Shortcut Plugin\n" "Let's you control the player with Gnome's shortcuts.\n" @@ -3094,7 +3108,7 @@ msgid "Previous Track" msgstr "Piste précédente" -#: src/hotkey/gui.c:69 +#: src/hotkey/gui.c:69 src/skins/ui_manager.c:177 src/skins/ui_manager.c:178 msgid "Play" msgstr "Lecture" @@ -3102,7 +3116,7 @@ msgid "Pause/Resume" msgstr "Pause / Reprise" -#: src/hotkey/gui.c:71 +#: src/hotkey/gui.c:71 src/skins/ui_manager.c:183 src/skins/ui_manager.c:184 msgid "Stop" msgstr "Arrêt" @@ -3130,7 +3144,7 @@ msgid "Volume Down" msgstr "Réduire le volume" -#: src/hotkey/gui.c:78 +#: src/hotkey/gui.c:78 src/skins/ui_manager.c:422 src/skins/ui_manager.c:423 msgid "Jump to File" msgstr "Aller au fichier..." @@ -3189,11 +3203,11 @@ msgid "Key Binding:" msgstr "Touche associée :" -#: src/hotkey/gui.c:660 +#: src/hotkey/gui.c:659 msgid "About Global Hotkey Plugin" msgstr "À propos du module 'Global Hotkey'" -#: src/hotkey/gui.c:661 +#: src/hotkey/gui.c:660 msgid "" "Global Hotkey Plugin\n" "Control the player with global key combinations or multimedia keys.\n" @@ -3228,35 +3242,35 @@ "Jeremy Tan \n" "\n" -#: src/jack/configure.c:70 +#: src/jack/configure.c:69 msgid "Connect to all available jack ports" msgstr "Connexion à tous les ports 'jack' disponibles" -#: src/jack/configure.c:77 +#: src/jack/configure.c:76 msgid "Connect only the output ports" msgstr "Connexion aux ports de sortie uniquement" -#: src/jack/configure.c:84 +#: src/jack/configure.c:83 msgid "Connect to no ports" msgstr "Aucune connexion" -#: src/jack/configure.c:99 +#: src/jack/configure.c:98 msgid "jack Plugin configuration" msgstr "Configuration du module 'Jack'" -#: src/jack/configure.c:117 +#: src/jack/configure.c:116 msgid "Connection mode:" msgstr "Mode de connexion :" -#: src/jack/configure.c:129 +#: src/jack/configure.c:128 msgid "Enable debug printing" msgstr "Activer le mode de débogage" -#: src/jack/jack.c:84 +#: src/jack/jack.c:82 msgid "Sample rate mismatch" msgstr "Problème de correspondance entre les taux d'échantillonnage" -#: src/jack/jack.c:87 +#: src/jack/jack.c:85 msgid "" "Xmms is asking for a sample rate that differs from\n" " that of the jack server. Xmms 1.2.8 or later\n" @@ -3281,15 +3295,15 @@ "\n" "Chris Morgan \n" -#: src/jack/jack.c:100 src/wma/wma.c:148 +#: src/jack/jack.c:98 src/wma/wma.c:145 msgid " Close " msgstr " Fermer " -#: src/jack/jack.c:452 +#: src/jack/jack.c:450 msgid "About JACK Output Plugin 0.17" msgstr "À propos du module 'JACK' 0.17" -#: src/jack/jack.c:453 +#: src/jack/jack.c:451 msgid "" "XMMS jack Driver 0.17\n" "\n" @@ -3308,39 +3322,39 @@ "Rétroportage pour Audacious effectué par :\n" "Giacomo Lozito from develia.org" -#: src/ladspa/ladspa.c:722 +#: src/ladspa/ladspa.c:721 msgid "This LADSPA plugin has no user controls" msgstr "Cette extension LADSPA ne dispose pas de contrôles utilisateur" -#: src/ladspa/ladspa.c:767 src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:766 src/ladspa/ladspa.c:852 msgid "Name" msgstr "Nom" -#: src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:852 msgid "UID" msgstr "UID" -#: src/ladspa/ladspa.c:928 +#: src/ladspa/ladspa.c:927 msgid "Installed plugins" msgstr "Extensions installées" -#: src/ladspa/ladspa.c:937 +#: src/ladspa/ladspa.c:936 msgid "Running plugins" msgstr "Extensions utilisées" -#: src/ladspa/ladspa.c:952 +#: src/ladspa/ladspa.c:951 msgid "Add" msgstr "Ajouter" -#: src/ladspa/ladspa.c:956 +#: src/ladspa/ladspa.c:955 msgid "Remove" msgstr "Enlever" -#: src/ladspa/ladspa.c:969 +#: src/ladspa/ladspa.c:968 msgid "LADSPA Plugin Catalog" msgstr "Liste des extensions 'LADSPA'" -#: src/lastfm/lastfm.c:96 +#: src/lastfm/lastfm.c:94 msgid "" "Couldn't initialize the last.fm radio plugin.\n" "\n" @@ -3445,59 +3459,59 @@ msgid "%s: will try reconnect every %d seconds...\n" msgstr "%s: le système va essayer de se reconnecter toutes les %d seconds...\n" -#: src/madplug/configure.c:209 +#: src/madplug/configure.c:208 msgid "MPEG Audio Plugin Configuration" msgstr "Configuration du module audio 'MPEG'" -#: src/madplug/configure.c:226 +#: src/madplug/configure.c:225 msgid "Audio Settings" msgstr "Options audio" -#: src/madplug/configure.c:234 +#: src/madplug/configure.c:233 msgid "Force reopen audio when audio type changed" msgstr "" "Forcer la réouverture de la sortie audio lorsque le format du flux a changé" -#: src/madplug/configure.c:243 +#: src/madplug/configure.c:242 msgid "Metadata Settings" msgstr "Options des métadonnées" -#: src/madplug/configure.c:252 +#: src/madplug/configure.c:251 msgid "Enable fast play-length calculation" msgstr "Activer le calcul rapide de la durée" -#: src/madplug/configure.c:259 +#: src/madplug/configure.c:258 msgid "Parse XING headers" msgstr "Analyser les en-têtes 'XING'" -#: src/madplug/configure.c:266 +#: src/madplug/configure.c:265 msgid "Use SJIS to write ID3 tags (not recommended)" msgstr "" "Utiliser 'SJIS' pour écrire les métadonnées ID3 (l'opération n'est pas " "recommandée)" -#: src/madplug/configure.c:273 +#: src/madplug/configure.c:272 msgid "Miscellaneous Settings" msgstr "Options diverses" -#: src/madplug/configure.c:282 +#: src/madplug/configure.c:281 msgid "Display average bitrate for VBR" msgstr "Afficher le débit moyen pour l'encodage VBR" -#: src/madplug/configure.c:296 src/vorbis/configure.c:102 +#: src/madplug/configure.c:295 src/vorbis/configure.c:100 msgid "Override generic titles" msgstr "Remplacer les titres génériques" -#: src/madplug/configure.c:308 +#: src/madplug/configure.c:307 msgid "ID3 format:" msgstr "Format ID3 :" -#: src/madplug/configure.c:320 src/sid/xmms-sid.glade:2540 -#: src/sid/xs_interface.c:1070 +#: src/madplug/configure.c:319 src/sid/xmms-sid.glade:2610 +#: src/sid/xs_interface.c:1102 msgid "Title" msgstr "Titre" -#: src/madplug/plugin.c:524 +#: src/madplug/plugin.c:661 #, c-format msgid "" "Audacious MPEG Audio Plugin\n" @@ -3530,15 +3544,15 @@ "\n" "Support de 'ReplayGain' : Samuel Krempp" -#: src/madplug/plugin.c:540 +#: src/madplug/plugin.c:677 msgid "About MPEG Audio Plugin" msgstr "À propos du module audio 'MPEG'" +#: src/metronom/metronom.c:86 +msgid "About Metronom" +msgstr "À propos de 'Métronome'" + #: src/metronom/metronom.c:87 -msgid "About Metronom" -msgstr "À propos de 'Métronome'" - -#: src/metronom/metronom.c:88 msgid "" "A Tact Generator by Martin Strauss \n" "\n" @@ -3557,12 +3571,12 @@ "'tact://77' produira 77 battements par minute\n" "'tact://60*3/4' produira 60 battements par minute (mesure à 3/4)" -#: src/metronom/metronom.c:198 src/metronom/metronom.c:262 +#: src/metronom/metronom.c:197 src/metronom/metronom.c:261 #, c-format msgid "Tact generator: %d bpm" msgstr "Métronome : %d bpm" -#: src/metronom/metronom.c:200 src/metronom/metronom.c:264 +#: src/metronom/metronom.c:199 src/metronom/metronom.c:263 #, c-format msgid "Tact generator: %d bpm %d/%d" msgstr "Métronome : %d bpm %d/%d" @@ -3777,11 +3791,11 @@ msgid "Message" msgstr "Commentaires" -#: src/modplug/gui/main.cxx:45 +#: src/modplug/gui/main.cxx:48 msgid "Modplug Input Plugin for Audacious ver" msgstr "Module d'entrée 'Modplug' pour Audacious, version " -#: src/modplug/gui/main.cxx:46 +#: src/modplug/gui/main.cxx:49 msgid "" "\n" "Modplug sound engine written by Olivier Lapicque.\n" @@ -3800,7 +3814,7 @@ "Mises à jour et maintenance : Konstanty Bialkowski.\n" "Rétroportage pour BMP : Theofilos Intzoglou." -#: src/modplug/gui/main.cxx:49 +#: src/modplug/gui/main.cxx:52 msgid "About Modplug" msgstr "À propos de 'Modplug'" @@ -3810,27 +3824,27 @@ msgid "Couldn't find pixmap file: %s" msgstr "Impossible d'ouvrir l'image : %s" -#: src/mtp_up/mtp.c:35 +#: src/mtp_up/mtp.c:33 msgid "Upload selected track(s)" msgstr "Transférer la sélection" -#: src/mtp_up/mtp.c:296 +#: src/mtp_up/mtp.c:294 msgid "Upload in progress..." msgstr "Transfert en cours..." -#: src/mtp_up/mtp.c:305 +#: src/mtp_up/mtp.c:303 msgid "MTP device handler" msgstr "Support MTP" -#: src/mtp_up/mtp.c:309 +#: src/mtp_up/mtp.c:307 msgid "Disconnect the device" msgstr "Déconnecter le périphérique" -#: src/musepack/libmpc.cxx:146 +#: src/musepack/libmpc.cxx:142 msgid "Musepack Decoder Plugin 1.2" msgstr "Décodeur 'Musepack' 1.2" -#: src/musepack/libmpc.cxx:147 +#: src/musepack/libmpc.cxx:143 msgid "" "Plugin code by\n" "Benoit Amiaux\n" @@ -3848,174 +3862,175 @@ "Vous pouvez obtenir la dernière version à l'adresse suivante :\n" "http://musepack.net\n" -#: src/musepack/libmpc.cxx:148 +#: src/musepack/libmpc.cxx:144 msgid "Nevermind" msgstr "Qu'importe !" -#: src/musepack/libmpc.cxx:166 +#: src/musepack/libmpc.cxx:162 msgid "Musepack Decoder Configuration" msgstr "Configuration de 'Musepack'" -#: src/musepack/libmpc.cxx:176 +#: src/musepack/libmpc.cxx:172 msgid "General Settings" msgstr "Réglages généraux" -#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:492 +#: src/musepack/libmpc.cxx:179 src/wavpack/ui.cxx:490 msgid "Enable Dynamic Bitrate Display" msgstr "Activer l'affichage dynamique du débit" -#: src/musepack/libmpc.cxx:187 src/wavpack/ui.cxx:498 +#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:496 msgid "Plugin" msgstr "Module" -#: src/musepack/libmpc.cxx:190 +#: src/musepack/libmpc.cxx:186 msgid "ReplayGain Settings" msgstr "Paramètres de 'ReplayGain'" -#: src/musepack/libmpc.cxx:197 src/wavpack/ui.cxx:510 +#: src/musepack/libmpc.cxx:193 src/wavpack/ui.cxx:508 msgid "Enable Clipping Prevention" msgstr "Activer la prévention de la saturation" -#: src/musepack/libmpc.cxx:202 src/wavpack/ui.cxx:515 +#: src/musepack/libmpc.cxx:198 src/wavpack/ui.cxx:513 msgid "Enable ReplayGain" msgstr "Activer 'ReplayGain'" -#: src/musepack/libmpc.cxx:207 +#: src/musepack/libmpc.cxx:203 msgid "ReplayGain Type" msgstr "Traitement 'ReplayGain'" -#: src/musepack/libmpc.cxx:215 +#: src/musepack/libmpc.cxx:211 msgid "Use Track Gain" msgstr "Utiliser le gain 'piste'" -#: src/musepack/libmpc.cxx:219 +#: src/musepack/libmpc.cxx:215 msgid "Use Album Gain" msgstr "Utiliser le gain 'album'" -#: src/musepack/libmpc.cxx:224 src/wavpack/ui.cxx:547 +#: src/musepack/libmpc.cxx:220 src/wavpack/ui.cxx:545 msgid "ReplayGain" msgstr "ReplayGain" -#: src/musepack/libmpc.cxx:491 src/sid/xmms-sid.glade:3144 -#: src/sid/xs_interface.c:1564 src/tta/libtta.c:304 src/wavpack/ui.cxx:152 +#: src/musepack/libmpc.cxx:487 src/sid/xmms-sid.glade:3338 +#: src/sid/xs_interface.c:1648 src/tta/libtta.c:301 src/wavpack/ui.cxx:150 msgid "Filename:" msgstr "Nom du fichier :" -#: src/musepack/libmpc.cxx:506 +#: src/musepack/libmpc.cxx:502 msgid "Musepack Tag" msgstr "Métadonnées 'Musepack'" -#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:323 src/wavpack/ui.cxx:172 +#: src/musepack/libmpc.cxx:510 src/tta/libtta.c:320 src/wavpack/ui.cxx:170 msgid "Title:" msgstr "Titre :" -#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:333 src/wavpack/ui.cxx:184 +#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:330 src/wavpack/ui.cxx:182 msgid "Artist:" msgstr "Artiste :" -#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:344 src/wavpack/ui.cxx:196 +#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:341 src/wavpack/ui.cxx:194 msgid "Album:" msgstr "Album :" -#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:355 src/wavpack/ui.cxx:208 +#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:352 src/wavpack/ui.cxx:206 msgid "Comment:" msgstr "Commentaire :" -#: src/musepack/libmpc.cxx:530 src/tta/libtta.c:366 src/wavpack/ui.cxx:221 +#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:363 src/wavpack/ui.cxx:219 msgid "Year:" msgstr "Année :" -#: src/musepack/libmpc.cxx:535 +#: src/musepack/libmpc.cxx:531 msgid "Track:" msgstr "Piste :" -#: src/musepack/libmpc.cxx:540 src/tta/libtta.c:390 src/wavpack/ui.cxx:248 +#: src/musepack/libmpc.cxx:536 src/tta/libtta.c:387 src/wavpack/ui.cxx:246 msgid "Genre:" msgstr "Genre :" -#: src/musepack/libmpc.cxx:551 src/sid/xmms-sid.glade:1732 -#: src/sid/xs_interface.c:820 src/wavpack/ui.cxx:267 +#: src/musepack/libmpc.cxx:547 src/sid/xmms-sid.glade:1732 +#: src/sid/xs_interface.c:832 src/skins/ui_manager.c:438 +#: src/wavpack/ui.cxx:265 msgid "Save" msgstr "Enregistrer" -#: src/musepack/libmpc.cxx:554 src/wavpack/ui.cxx:273 +#: src/musepack/libmpc.cxx:550 src/wavpack/ui.cxx:271 msgid "Remove Tag" msgstr "Supprimer les métadonnées" -#: src/musepack/libmpc.cxx:562 +#: src/musepack/libmpc.cxx:558 msgid "Musepack Info" msgstr "Informations 'Musepack'" +#: src/musepack/libmpc.cxx:591 +#, c-format +msgid "Streamversion %d" +msgstr "Version du flux : %d" + +#: src/musepack/libmpc.cxx:592 +#, c-format +msgid "Encoder: %s" +msgstr "Encodeur : %s" + +#: src/musepack/libmpc.cxx:593 +#, c-format +msgid "Profile: %s" +msgstr "Profil : %s" + +#: src/musepack/libmpc.cxx:594 +#, c-format +msgid "Average bitrate: %6.1f kbps" +msgstr "Débit moyen : %6.1f kbps" + #: src/musepack/libmpc.cxx:595 #, c-format -msgid "Streamversion %d" -msgstr "Version du flux : %d" +msgid "Samplerate: %d Hz" +msgstr "Taux d'échantillonnage : %d Hz" #: src/musepack/libmpc.cxx:596 #, c-format -msgid "Encoder: %s" -msgstr "Encodeur : %s" +msgid "Channels: %d" +msgstr "Voies : %d" #: src/musepack/libmpc.cxx:597 #, c-format -msgid "Profile: %s" -msgstr "Profil : %s" - -#: src/musepack/libmpc.cxx:598 -#, c-format -msgid "Average bitrate: %6.1f kbps" -msgstr "Débit moyen : %6.1f kbps" - -#: src/musepack/libmpc.cxx:599 -#, c-format -msgid "Samplerate: %d Hz" -msgstr "Taux d'échantillonnage : %d Hz" - -#: src/musepack/libmpc.cxx:600 -#, c-format -msgid "Channels: %d" -msgstr "Voies : %d" - -#: src/musepack/libmpc.cxx:601 -#, c-format msgid "Length: %d:\\%.2d" msgstr "Durée : %d:\\%.2d" -#: src/musepack/libmpc.cxx:602 +#: src/musepack/libmpc.cxx:598 #, c-format msgid "File size: %d Bytes" msgstr "Taille du fichier : %d Bytes" -#: src/musepack/libmpc.cxx:603 +#: src/musepack/libmpc.cxx:599 #, c-format msgid "Track Peak: %5u" msgstr "Pic sonore 'piste' : %5u" -#: src/musepack/libmpc.cxx:604 +#: src/musepack/libmpc.cxx:600 #, c-format msgid "Track Gain: %-+2.2f dB" msgstr "Gain 'piste' : %-+2.2f dB" -#: src/musepack/libmpc.cxx:605 +#: src/musepack/libmpc.cxx:601 #, c-format msgid "Album Peak: %5u" msgstr "Pic sonore 'album' : %5u" -#: src/musepack/libmpc.cxx:606 +#: src/musepack/libmpc.cxx:602 #, c-format msgid "Album Gain: %-+5.2f dB" msgstr "Gain 'album': %-+5.2f dB" -#: src/musepack/libmpc.cxx:634 src/tta/libtta.c:413 src/wavpack/ui.cxx:409 +#: src/musepack/libmpc.cxx:630 src/tta/libtta.c:410 src/wavpack/ui.cxx:407 #, c-format msgid "File Info - %s" msgstr "Informations sur le fichier : %s" -#: src/null/null.c:61 +#: src/null/null.c:58 msgid "Null output plugin " msgstr "Module de sortie 'Null' " -#: src/null/null.c:62 +#: src/null/null.c:59 msgid "" " by Christian Birchinger \n" "based on the XMMS plugin by Håvard Kvål " @@ -4025,23 +4040,52 @@ "Écrit par Christian Birchinger ,\n" "à partir du module pour XMMS de Håvard Kvål " -#: src/null/null.c:65 +#: src/null/null.c:62 msgid "About Null Output" msgstr "À propos du module de sortie 'Null'" -#: src/null/null.c:94 +#: src/null/null.c:91 msgid "Null output preferences" msgstr "Préférences du module de sortie 'Null'" -#: src/null/null.c:103 +#: src/null/null.c:100 msgid "Run in real time" msgstr "Utiliser en temps réel" -#: src/OSS4/about.c:42 +#: src/OSS4/configure.c:118 src/OSS/configure.c:150 +#, c-format +msgid "Default (%s)" +msgstr "Défaut (%s)" + +#: src/OSS4/configure.c:168 src/OSS/configure.c:200 +msgid "OSS Driver configuration" +msgstr "Configuration du pilote 'OSS'" + +#: src/OSS4/configure.c:206 src/OSS/configure.c:238 src/OSS/configure.c:279 +msgid "Use alternate device:" +msgstr "Utiliser un autre périphérique :" + +#: src/OSS4/configure.c:228 src/OSS/configure.c:301 src/sun/configure.c:246 +msgid "Devices" +msgstr "Périphériques" + +#: src/OSS4/configure.c:270 src/OSS/configure.c:342 +msgid "Mixer Settings:" +msgstr "Paramètres du mélangeur :" + +#: src/OSS4/configure.c:276 +msgid "Save VMIX volume between sessions" +msgstr "Conserver le volume de 'VMIX', d'une session à l'autre" + +#: src/OSS4/configure.c:282 src/OSS/configure.c:354 src/sun/configure.c:392 +msgid "Mixer" +msgstr "Mélangeur audio" + +#: src/OSS4/OSS4.c:38 msgid "About OSSv4 Driver" msgstr "À propos du pilote 'OSSv4'" -#: src/OSS4/about.c:43 +#: src/OSS4/OSS4.c:39 msgid "" "Audacious OSSv4 Driver\n" "\n" @@ -4094,40 +4138,15 @@ "Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,\n" "MA 02110-1301, USA." -#: src/OSS4/configure.c:120 src/OSS/configure.c:151 -#, c-format -msgid "Default (%s)" -msgstr "Défaut (%s)" - -#: src/OSS4/configure.c:170 src/OSS/configure.c:201 -msgid "OSS Driver configuration" -msgstr "Configuration du pilote 'OSS'" - -#: src/OSS4/configure.c:208 src/OSS/configure.c:239 src/OSS/configure.c:280 -msgid "Use alternate device:" -msgstr "Utiliser un autre périphérique :" - -#: src/OSS4/configure.c:230 src/OSS/configure.c:302 src/sun/configure.c:248 -msgid "Devices" -msgstr "Périphériques" - -#: src/OSS4/configure.c:272 src/OSS/configure.c:343 -msgid "Mixer Settings:" -msgstr "Paramètres du mélangeur :" - -#: src/OSS4/configure.c:278 -msgid "Save VMIX volume between sessions" -msgstr "Conserver le volume de 'VMIX', d'une session à l'autre" - -#: src/OSS4/configure.c:284 src/OSS/configure.c:355 src/sun/configure.c:394 -msgid "Mixer" -msgstr "Mélangeur audio" - -#: src/OSS/about.c:39 +#: src/OSS/configure.c:348 +msgid "Volume controls Master not PCM" +msgstr "Contrôle du volume via le canal 'maître' au lieu du canal 'PCM'" + +#: src/OSS/OSS.c:37 msgid "About OSS Driver" msgstr "À propos du pilote 'OSS'" -#: src/OSS/about.c:40 +#: src/OSS/OSS.c:38 msgid "" "Audacious OSS Driver\n" "\n" @@ -4173,19 +4192,15 @@ "Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,\n" "MA 02110-1301, USA." -#: src/OSS/configure.c:349 -msgid "Volume controls Master not PCM" -msgstr "Contrôle du volume via le canal 'maître' au lieu du canal 'PCM'" - #: src/projectm-1.0/main.c:70 msgid "_Random" msgstr "_Aléatoire" -#: src/pulse_audio/pulse_audio.c:722 +#: src/pulse_audio/pulse_audio.c:720 msgid "About Audacious PulseAudio Output Plugin" msgstr "À propos du module de sortie 'PulseAudio' pour Audacious" -#: src/pulse_audio/pulse_audio.c:723 +#: src/pulse_audio/pulse_audio.c:721 msgid "" "Audacious PulseAudio Output Plugin\n" "\n" @@ -4231,27 +4246,27 @@ "Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,\n" "MA 02110-1301, USA." -#: src/scrobbler/configure.c:138 +#: src/scrobbler/configure.c:134 msgid "Services" msgstr "Services" -#: src/scrobbler/configure.c:160 src/scrobbler/configure.c:199 +#: src/scrobbler/configure.c:156 src/scrobbler/configure.c:195 msgid "Username:" msgstr "Utilisateur :" -#: src/scrobbler/configure.c:166 src/scrobbler/configure.c:205 +#: src/scrobbler/configure.c:162 src/scrobbler/configure.c:201 msgid "Password:" msgstr "Mot de passe :" -#: src/scrobbler/configure.c:183 +#: src/scrobbler/configure.c:179 msgid "Last.FM" msgstr "Last.FM" -#: src/scrobbler/configure.c:222 +#: src/scrobbler/configure.c:218 msgid "Gerpok" msgstr "Gerpok" -#: src/scrobbler/gtkstuff.c:21 +#: src/scrobbler/gtkstuff.c:18 msgid "" "Audacious AudioScrobbler Plugin\n" "\n" @@ -4265,11 +4280,11 @@ "Audun Hove \n" "Pipian \n" -#: src/scrobbler/gtkstuff.c:23 +#: src/scrobbler/gtkstuff.c:20 msgid "About Scrobbler Plugin" msgstr "À propos du module 'Scrobbler'" -#: src/scrobbler/gtkstuff.c:36 +#: src/scrobbler/gtkstuff.c:33 #, c-format msgid "" "There has been an error that may require your attention.\n" @@ -4284,59 +4299,59 @@ "\n" "%s\n" -#: src/scrobbler/gtkstuff.c:43 +#: src/scrobbler/gtkstuff.c:40 msgid "Scrobbler Error" msgstr "Erreur de 'Scrobbler'" -#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:221 +#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:233 msgid "Audacious-SID configuration" msgstr "Configuration de 'Audacious-SID'" -#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:257 +#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:269 msgid "8-bit" msgstr "8 bits" -#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:264 +#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:276 msgid "16-bit" msgstr "16 bits" -#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:271 +#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:283 msgid "Resolution:" msgstr "Résolution :" -#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:302 +#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:314 msgid "Autopanning" msgstr "Son panoramique" -#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:309 +#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:321 msgid "Channels:" msgstr "Sortie :" -#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:353 +#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:365 msgid "Samplerate:" msgstr "Taux d'échantillonnage :" -#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:370 +#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:382 msgid "Use oversampling" msgstr "Utiliser le suréchantillonnage" -#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:381 +#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:393 msgid "Factor:" msgstr "Facteur :" -#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:393 +#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:405 msgid "Large factors require more CPU-power" msgstr "Les facteurs élevés nécessitent plus de ressources du processeur" -#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:399 +#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:411 msgid "Oversampling:" msgstr "Suréchantillonnage :" -#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:404 +#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:416 msgid "Audio" msgstr "Audio" -#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:436 +#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:448 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "clock speed/frequency. Otherwise the speed is determined from played file " @@ -4346,11 +4361,11 @@ "vitesse/fréquence de l'horloge sélectionnée. Dans le cas contraire, la " "vitesse est déterminée par le fichier lui-même." -#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:432 +#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:444 msgid "Force speed" msgstr "Forcer la vitesse" -#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:442 +#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:454 msgid "" "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. " "Most of SID-tunes have been made for PAL computers." @@ -4359,11 +4374,11 @@ "rafraîchissement vertical de 50 hz. La plupart des compositions 'SID' ont " "été réalisées pour les ordinateurs 'PAL'." -#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:438 +#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:450 msgid "PAL (50 Hz)" msgstr "PAL (50 Hz)" -#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:450 +#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:462 msgid "" "NTSC is the TV standard with 60Hz vertical refresh rate (and other features " "that differ from PAL). It is mainly used in United States, Japan and certain " @@ -4374,15 +4389,15 @@ "'PAL'). Il est principalement utilisé aux États-Unis, au Japon et dans " "d'autres pays." -#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:446 +#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:458 msgid "NTSC (60 Hz)" msgstr "NTSC (60 Hz)" -#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:454 +#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:466 msgid "Clock speed:" msgstr "Vitesse d'horloge :" -#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:475 +#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:487 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "SID-chip model. Otherwise the preferred SID model is determined from the " @@ -4394,11 +4409,11 @@ "l'information concernant le modèle n'est pas disponible, c'est le réglage " "choisi via cette option qui sera utilisé." -#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:471 +#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:483 msgid "Force model" msgstr "Forcer le modèle" -#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:481 +#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:493 msgid "" "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 " "in few ways, having much fuller filter (which, due to design error, is never " @@ -4411,19 +4426,19 @@ "d'un modèle de puce 'SID' à l'autre) et présente le \"problème d'ajustement " "du volume\" qui permet la lecture des échantillons digitaux." -#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:477 +#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:489 msgid "MOS 6581" msgstr "MOS 6581" -#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:485 +#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:497 msgid "MOS 8580" msgstr "MOS 8580" -#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:492 +#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:504 msgid "SID model:" msgstr "Modèle 'SID' :" -#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:513 +#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:525 msgid "" "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most " "cases, though." @@ -4432,11 +4447,11 @@ "moins précise (toutefois, elle offre une bonne restitution, dans la plupart " "des cas)." -#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:509 +#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:521 msgid "SIDPlay 1 (frame-based)" msgstr "SIDPlay 1 (synchronisation de la trame)" -#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:521 +#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:533 msgid "" "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact " "emulation." @@ -4444,39 +4459,39 @@ "Utilise la bibliothèque 'libSIDPlay 2.x'. L'émulation nécessite un " "processeur puissant, mais est plus précise." -#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:517 +#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:529 msgid "SIDPlay 2 (cycle-based)" msgstr "SIDPlay 2 (synchronisation du cycle)" -#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:525 +#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:537 msgid "Emulation library selection:" msgstr "Choix de la bibliothèque d'émulation :" -#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:542 +#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:554 msgid "Real C64 (SIDPlay 2 only)" msgstr "C64 réel (SIDPlay 2 uniquement)" -#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:549 +#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:561 msgid "Bank switching" msgstr "Pagination" -#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:556 +#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:568 msgid "Transparent ROM" msgstr "ROM transparente" -#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:563 +#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:575 msgid "PlaySID environment" msgstr "Environnement 'PlaySID'" -#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:570 +#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:582 msgid "Memory mode:" msgstr "Gestion de la mémoire :" -#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:575 +#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:587 msgid "Emu#1" msgstr "Émulation #1" -#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:602 +#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:614 msgid "" "This setting can be used to enable libSIDPlay2's \"optimization mode\", " "which in downgrades the emulation from cycle-exact to something similar to " @@ -4486,11 +4501,11 @@ "bibliothèque 'libSIDPlay2'. Ce mode réduit l'émulation de 'synchronisation " "du cycle' à quelque chose équivalant à 'synchronisation de la trame'." -#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:598 +#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:610 msgid "Optimization mode (faster, inaccurate)" msgstr "Mode 'optimisation' (plus rapide, mais imprécis)" -#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:608 +#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:620 msgid "" "reSID is the software SID-chip simulator based on SID reverse-engineering, " "created by Dag Lem. It is probably the closest thing to real SID available " @@ -4500,11 +4515,11 @@ "ingénierie inverse. Il constitue probablement l'émulation logicielle la plus " "proche des véritables puces 'SID'." -#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:604 +#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:616 msgid "reSID-emulation" msgstr "Émulation 'reSID'" -#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:616 +#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:628 msgid "" "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a " "real SID-chip. Software can be used to control the HardSID and combined with " @@ -4520,15 +4535,15 @@ "amples informations, vous pouvez consulter le site suivant : http://www." "hardsid.com/" -#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:612 +#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:624 msgid "HardSID" msgstr "HardSID" -#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:620 +#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:632 msgid "SIDPlay 2 options:" msgstr "Options de 'SIDPlay 2' :" -#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:641 +#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:653 msgid "" "Fastest and also worst sounding sampling method, simply picks nearest " "neighbouring sample." @@ -4536,11 +4551,11 @@ "La plus rapide, mais aussi la pire méthode de restitution sonore : les " "échantillons sont choisis selon la méthode du 'plus proche voisin'." -#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:637 +#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:649 msgid "Fast (nearest neighbour)" msgstr "Rapide (méthode du 'plus proche voisin')" -#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:649 +#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:661 msgid "" "Uses linear interpolation between samples, yielding higher audio quality " "with less sampling noise." @@ -4548,23 +4563,23 @@ "Utilise l'interpolation linéaire entre les échantillons. Le flux audio est " "alors de plus grande qualité et est moins affecté par le bruit. " -#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:645 +#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:657 msgid "Linear interpolation" msgstr "Interpolation linéaire" -#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:660 +#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:672 msgid "Resampling (FIR)" msgstr "Filtre à réponse impulsionnelle finie (FIR)" -#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:667 +#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:679 msgid "reSID sampling options:" msgstr "Options d'échantillonnage de 'reSID' :" -#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:672 +#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:684 msgid "Emu#2" msgstr "Émulation #2" -#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:688 +#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:700 msgid "" "This option enables emulation of SID filter. The filter is an essential part " "of SID's sound capacity, but accurate emulation of it may require quite much " @@ -4577,59 +4592,61 @@ "l'émulation est désactivée, alors qu'un module audio a été composé avec les " "fonctions d'un filtre, le son ne sera pas restitué de manière authentique." -#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:684 +#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:696 msgid "Emulate filters" msgstr "Émuler les filtres" -#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:713 +#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:725 msgid "FS" msgstr "FS" -#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:730 +#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:742 msgid "FM" msgstr "FM" -#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:747 +#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:759 msgid "FT" msgstr "FT" -#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:758 +#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:770 msgid "Reset values" msgstr "Réinitialiser" -#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:763 +#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:775 msgid "SIDPlay1" msgstr "SIDPlay 1" -#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:804 +#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:816 msgid "Export" msgstr "Exporter" -#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:812 +#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:824 msgid "Use" msgstr "Utiliser" -#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:828 +#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:840 +#: src/skins/ui_manager.c:437 msgid "Import" msgstr "Importer" -#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:836 +#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:848 +#: src/skins/ui_manager.c:439 msgid "Delete" msgstr "Supprimer" -#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:850 +#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:862 msgid "Filter curve:" msgstr "Courbe du filtre :" -#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:855 +#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:867 msgid "SIDPlay2" msgstr "SIDPlay 2" -#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:861 +#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:873 msgid "Filters" msgstr "Filtres" -#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:888 +#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:900 msgid "" "If enabled, the tune is played at least for the specified time, adding " "silence to the end if necessary." @@ -4638,21 +4655,21 @@ "durée indiquée. Si cela s'avère nécessaire, un silence sera ajouté à la fin " "du morceau." -#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:884 +#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:896 msgid "Play at least for specified time" msgstr "Lire au moins pendant la durée indiquée" #: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133 -#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:895 -#: src/sid/xs_interface.c:949 src/sid/xs_interface.c:1109 +#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:907 +#: src/sid/xs_interface.c:961 src/sid/xs_interface.c:1141 msgid "Playtime:" msgstr "Durée :" -#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:915 +#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:927 msgid "Minimum playtime:" msgstr "Durée de lecture minimale :" -#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:936 +#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:948 msgid "" "If enabled, tune is played until specified duration is reached (aka maximum " "playtime)." @@ -4661,11 +4678,11 @@ "atteinte la durée indiquée (la durée de lecture maximale, en d'autres " "termes)." -#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:932 +#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:944 msgid "Play for specified time maximum" msgstr "Lire au maximum pendant la durée indiquée" -#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:942 +#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:954 msgid "" "If enabled, the maximum playtime is applied only if song/tune length is not " "known." @@ -4673,15 +4690,15 @@ "Si cette option est activée, la durée de lecture maximale ne sera appliquée " "que si la durée du module audio ne peut pas être déterminée." -#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:938 +#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:950 msgid "Only when song length is unknown" msgstr "Uniquement si la durée du module audio est inconnue" -#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:969 +#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:981 msgid "Maximum playtime:" msgstr "Durée de lecture maximale :" -#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:990 +#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:1002 msgid "" "This option enables using of XSIDPLAY compatible song length database. " "(Refer to Audacious-SID documentation for more information)" @@ -4690,33 +4707,33 @@ "'XSIDPLAY' relative à la durée des modules audio. Pour de plus amples " "informations, vous pouvez consulter la documentation de 'Audacious-SID'." -#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:986 +#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:998 msgid "Use XSIDPLAY-compatible database" msgstr "Utiliser une base de données compatible 'XSIDPLAY'" -#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:997 +#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:1009 msgid "DB-file:" msgstr "Fichier :" -#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1007 +#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1019 msgid "Database path and filename" msgstr "Emplacement et nom du fichier de la base de données" -#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1014 +#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1026 msgid "Browse for song length-database file" msgstr "" "Permet de parcourir l'arborescence pour sélectionner le fichier de la base " "de données" -#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1016 +#: src/sid/xmms-sid.glade:2418 src/sid/xs_interface.c:1048 msgid "Song length database:" msgstr "Base de données relative à la durée des modules audio :" -#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1021 +#: src/sid/xmms-sid.glade:2454 src/sid/xs_interface.c:1053 msgid "Songlength" msgstr "Durée" -#: src/sid/xmms-sid.glade:2430 src/sid/xs_interface.c:1043 +#: src/sid/xmms-sid.glade:2492 src/sid/xs_interface.c:1075 msgid "" "By enabling this option you can specify a custom Tuplez formatting string " "for SID-files. The SID-plugin specific Tuplez tags are described shortly " @@ -4726,25 +4743,32 @@ "personnalisé pour les fichiers 'SID'. Les métadonnées propres au module " "d'extension 'SID' sont brièvement expliquées ci-dessous." -#: src/sid/xmms-sid.glade:2432 src/sid/xs_interface.c:1039 +#: src/sid/xmms-sid.glade:2494 src/sid/xs_interface.c:1071 msgid "Override generic Tuplez format string" msgstr "Remplacer les titres génériques" -#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1054 +#: src/sid/xmms-sid.glade:2519 src/sid/xs_interface.c:1086 msgid "Tuplez format string for SID-files" msgstr "Format du titre des modules audio 'SID'" -#: src/sid/xmms-sid.glade:2477 src/sid/xs_interface.c:1057 -msgid "Descriptions of SID-specific Tuplez fields go here. :D" -msgstr "" -"La description des métadonnées propres à 'SID' est prévue à cet " -"endroit. :D" - -#: src/sid/xmms-sid.glade:2511 src/sid/xs_interface.c:1065 +#: src/sid/xmms-sid.glade:2539 src/sid/xs_interface.c:1089 +msgid "" +"SID-specific Tuplez fields:\n" +"\n" +"sid-format\t\t- Specific fileformat\n" +"sid-model\t\t- 6581 or 8580\n" +"sid-speed\t\t- Timing or speed: PAL/NTSC/etc.\n" +"\n" +"Other \"special\" fields set:\n" +"\n" +"subsong-num, subsong-id" +msgstr "" + +#: src/sid/xmms-sid.glade:2581 src/sid/xs_interface.c:1097 msgid "Song title format:" msgstr "Format du titre :" -#: src/sid/xmms-sid.glade:2584 src/sid/xs_interface.c:1096 +#: src/sid/xmms-sid.glade:2654 src/sid/xs_interface.c:1128 msgid "" "If enabled, sub-tunes of each file will be added to playlist. If disabled, " "only the default sub-tune will be added." @@ -4753,25 +4777,25 @@ "ajoutés à la liste de lecture. Dans le cas contraire, seul le sous-module " "par défaut sera ajouté." -#: src/sid/xmms-sid.glade:2586 src/sid/xs_interface.c:1092 +#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1124 msgid "Add sub-tunes to playlist" msgstr "Ajouter les sous-modules à la liste de lecture" -#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1102 +#: src/sid/xmms-sid.glade:2675 src/sid/xs_interface.c:1134 msgid "Only add sub-tunes that have a duration of at least specified time." msgstr "" "Ajoute uniquement les sous-modules dont la durée est au moins égale au temps " "spécifié." -#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1098 +#: src/sid/xmms-sid.glade:2677 src/sid/xs_interface.c:1130 msgid "Only tunes with specified minimum duration" msgstr "Uniquement les morceaux dont la durée minimale est la suivante :" -#: src/sid/xmms-sid.glade:2710 src/sid/xs_interface.c:1129 +#: src/sid/xmms-sid.glade:2780 src/sid/xs_interface.c:1161 msgid "Sub-tune handling:" msgstr "Gestion des sous-modules :" -#: src/sid/xmms-sid.glade:2755 src/sid/xs_interface.c:1150 +#: src/sid/xmms-sid.glade:2825 src/sid/xs_interface.c:1182 msgid "" "If this option is enabled (and the database & HVSC settings below are " "correctly set), Audacious-SID will use and display additional information " @@ -4783,15 +4807,15 @@ "de données 'STIL', lorsque des modules audio 'SID' de la collection 'HVSC' " "seront lus." -#: src/sid/xmms-sid.glade:2757 src/sid/xs_interface.c:1146 +#: src/sid/xmms-sid.glade:2827 src/sid/xs_interface.c:1178 msgid "Use STIL database" msgstr "Utiliser une base de données 'STIL'" -#: src/sid/xmms-sid.glade:2782 src/sid/xs_interface.c:1157 +#: src/sid/xmms-sid.glade:2852 src/sid/xs_interface.c:1189 msgid "STIL file:" msgstr "Fichier 'STIL' :" -#: src/sid/xmms-sid.glade:2819 src/sid/xs_interface.c:1173 +#: src/sid/xmms-sid.glade:2889 src/sid/xs_interface.c:1205 msgid "" "Path and filename of STIL database file (STIL.txt), usually found from " "HVSC's DOCUMENTS-subdirectory." @@ -4800,17 +4824,17 @@ "txt' est habituellement situé dans le sous-répertoire 'DOCUMENTS' du dossier " "'HVSC')." -#: src/sid/xmms-sid.glade:2854 src/sid/xs_interface.c:1186 +#: src/sid/xmms-sid.glade:2924 src/sid/xs_interface.c:1218 msgid "Browse for STIL-database file" msgstr "" "Permet de parcourir l'arborescence pour sélectionner le fichier de la base " "de données 'STIL'" -#: src/sid/xmms-sid.glade:2888 src/sid/xs_interface.c:1193 +#: src/sid/xmms-sid.glade:3020 src/sid/xs_interface.c:1245 msgid "HVSC path:" msgstr "Emplacement de 'HVSC' :" -#: src/sid/xmms-sid.glade:2925 src/sid/xs_interface.c:1209 +#: src/sid/xmms-sid.glade:3057 src/sid/xs_interface.c:1261 msgid "" "Path to base-directory of your High Voltage SID Collection (HVSC), for " "example /media/C64Music/" @@ -4818,88 +4842,88 @@ "Emplacement du dossier de base de 'High Voltage SID Collection' (HVSC) ('/" "media/C64Music/', par exemple)" -#: src/sid/xmms-sid.glade:2960 src/sid/xs_interface.c:1222 +#: src/sid/xmms-sid.glade:3092 src/sid/xs_interface.c:1274 msgid "Browse for HVSC path" msgstr "Permet de parcourir l'arborescence pour sélectionner le dossier 'HVSC'" -#: src/sid/xmms-sid.glade:2990 src/sid/xs_interface.c:1224 +#: src/sid/xmms-sid.glade:3184 src/sid/xs_interface.c:1296 msgid "SID Tune Information List (STIL) database:" msgstr "Base de données 'STIL' (SID Tune Information List) :" -#: src/sid/xmms-sid.glade:3063 src/sid/xs_interface.c:1248 +#: src/sid/xmms-sid.glade:3257 src/sid/xs_interface.c:1320 msgid "Accept and update changes" msgstr "Valide et applique les changements" -#: src/sid/xmms-sid.glade:3077 src/sid/xs_interface.c:1255 +#: src/sid/xmms-sid.glade:3271 src/sid/xs_interface.c:1327 msgid "Cancel any changes" msgstr "Annule tous les changements" -#: src/sid/xmms-sid.glade:3102 src/sid/xs_interface.c:1543 +#: src/sid/xmms-sid.glade:3296 src/sid/xs_interface.c:1627 msgid "Audacious-SID Fileinfo" msgstr "Infomations sur le fichier 'Audacious-SID'" -#: src/sid/xmms-sid.glade:3172 src/sid/xs_interface.c:1572 +#: src/sid/xmms-sid.glade:3366 src/sid/xs_interface.c:1656 msgid "Songname:" msgstr "Nom du morceau :" -#: src/sid/xmms-sid.glade:3200 src/sid/xs_interface.c:1580 +#: src/sid/xmms-sid.glade:3394 src/sid/xs_interface.c:1664 msgid "Composer:" msgstr "Compositeur :" -#: src/sid/xmms-sid.glade:3228 src/sid/xs_interface.c:1588 +#: src/sid/xmms-sid.glade:3422 src/sid/xs_interface.c:1672 msgid "Copyright:" msgstr "Droits :" -#: src/sid/xmms-sid.glade:3342 src/sid/xs_interface.c:1632 +#: src/sid/xmms-sid.glade:3536 src/sid/xs_interface.c:1716 msgid "Song Information:" msgstr "Informations sur le module :" -#: src/sid/xmms-sid.glade:3416 src/sid/xs_interface.c:1667 +#: src/sid/xmms-sid.glade:3610 src/sid/xs_interface.c:1751 msgid "Author:" msgstr "Auteur :" -#: src/sid/xmms-sid.glade:3514 src/sid/xs_interface.c:1701 +#: src/sid/xmms-sid.glade:3708 src/sid/xs_interface.c:1785 msgid "Duration:" msgstr "Durée :" -#: src/sid/xmms-sid.glade:3608 src/sid/xs_interface.c:1735 +#: src/sid/xmms-sid.glade:3802 src/sid/xs_interface.c:1819 msgid "Sub-tune Information:" msgstr "Informations sur les sous-modules :" -#: src/sid/xmms-sid.glade:3662 src/sid/xs_interface.c:1796 +#: src/sid/xmms-sid.glade:3856 src/sid/xs_interface.c:1880 msgid "Select HVSC song length database" msgstr "Choix de la base de données 'HVSC'" -#: src/sid/xmms-sid.glade:3704 src/sid/xs_interface.c:1837 +#: src/sid/xmms-sid.glade:3898 src/sid/xs_interface.c:1921 msgid "Select STIL-database" msgstr "Choix de la base de données 'STIL'" -#: src/sid/xmms-sid.glade:3746 src/sid/xs_interface.c:1878 +#: src/sid/xmms-sid.glade:3940 src/sid/xs_interface.c:1962 msgid "Select HVSC location prefix" msgstr "Emplacement de 'HVSC'" -#: src/sid/xmms-sid.glade:3788 src/sid/xs_interface.c:1919 +#: src/sid/xmms-sid.glade:3982 src/sid/xs_interface.c:2003 msgid "Select SIDPlay2 filters file for importing" msgstr "Fichier de filtres 'SIDPlay2' à importer :" -#: src/sid/xmms-sid.glade:3830 src/sid/xs_interface.c:1960 +#: src/sid/xmms-sid.glade:4024 src/sid/xs_interface.c:2044 msgid "Select SIDPlay2 filters file for exporting" msgstr "Fichier de filtres 'SIDPlay2' à exporter :" -#: src/sid/xmms-sid.glade:3871 src/sid/xmms-sid.glade:3953 -#: src/sid/xs_interface.c:2008 src/sid/xs_interface.c:2021 +#: src/sid/xmms-sid.glade:4065 src/sid/xmms-sid.glade:4147 +#: src/sid/xs_interface.c:2092 src/sid/xs_interface.c:2105 msgid "Confirm selected action" msgstr "Confirmer l'action choisie" -#: src/sid/xmms-sid.glade:3909 src/sid/xs_interface.c:2038 +#: src/sid/xmms-sid.glade:4103 src/sid/xs_interface.c:2122 msgid "Yes" msgstr "Oui" -#: src/sid/xmms-sid.glade:3921 src/sid/xs_interface.c:2044 +#: src/sid/xmms-sid.glade:4115 src/sid/xs_interface.c:2128 msgid "No" msgstr "Aucun" -#: src/sid/xs_about.c:84 src/wma/wma.c:121 +#: src/sid/xs_about.c:84 src/wma/wma.c:118 #, c-format msgid "About %s" msgstr "À propos de '%s'" @@ -4913,11 +4937,1143 @@ msgid "Tune #%i: " msgstr "Module #%i : " -#: src/sndfile/plugin.c:548 +#: src/skins/plugin.c:128 +msgid "About Skinned GUI" +msgstr "" + +#: src/skins/plugin.c:129 +msgid "" +"Copyright (c) 2008, by Tomasz Moń \n" +"\n" +msgstr "" + +#: src/skins/skins_cfg.c:329 +#, fuzzy +msgid "_Fonts" +msgstr "Action : " + +#: src/skins/skins_cfg.c:330 +#, fuzzy +msgid "_Player:" +msgstr "Durée :" + +#: src/skins/skins_cfg.c:330 +msgid "Select main player window font:" +msgstr "" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "_Playlist:" +msgstr "Choisir une liste de lecture" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "Select playlist font:" +msgstr "Choisir une liste de lecture" + +#: src/skins/skins_cfg.c:332 +#, fuzzy +msgid "Use Bitmap fonts if available" +msgstr "Utiliser CDDB, si le service est disponible" + +#: src/skins/skins_cfg.c:332 +msgid "" +"Use bitmap fonts if they are available. Bitmap fonts do not support Unicode " +"strings." +msgstr "" + +#: src/skins/skins_cfg.c:333 +#, fuzzy +msgid "_Miscellaneous" +msgstr "Services" + +#: src/skins/skins_cfg.c:334 +msgid "Show track numbers in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:336 +msgid "Show separators in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:338 +msgid "Show window manager decoration" +msgstr "" + +#: src/skins/skins_cfg.c:339 +msgid "This enables the window manager to show decorations for windows." +msgstr "" + +#: src/skins/skins_cfg.c:340 +msgid "Use two-way text scroller" +msgstr "" + +#: src/skins/skins_cfg.c:341 +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 "" + +#: src/skins/skins_cfg.c:342 +msgid "Disable inline gtk theme" +msgstr "" + +#: src/skins/skins_cfg.c:343 +msgid "Allow loading incomplete skins" +msgstr "" + +#: src/skins/skins_cfg.c:344 +msgid "" +"If selected, audacious won't refuse loading broken skins. Use only if your " +"favourite skin doesn't work" +msgstr "" + +#: src/skins/skins_cfg.c:410 +msgid "Color Adjustment" +msgstr "" + +#: src/skins/skins_cfg.c:417 +msgid "" +"Audacious allows you to alter the color balance of the skinned UI. The " +"sliders below will allow you to do this." +msgstr "" + +#: src/skins/skins_cfg.c:427 +#, fuzzy +msgid "Blue" +msgstr "Volume" + +#: src/skins/skins_cfg.c:434 +msgid "Green" +msgstr "" + +#: src/skins/skins_cfg.c:441 +msgid "Red" +msgstr "" + +#: src/skins/skins_cfg.c:571 +#, fuzzy +msgid "Audacious Skinned GUI Configuration" +msgstr "Configuration de 'Audacious OSD'" + +#: src/skins/skins_cfg.c:596 +#, fuzzy +msgid "_Skin" +msgstr "Action : " + +#: src/skins/ui_equalizer.c:494 +#, fuzzy +msgid "Audacious Equalizer" +msgstr "Fenêtre -> Égaliseur" + +#: src/skins/ui_equalizer.c:794 +#, c-format +msgid "Error importing Winamp EQF file '%s'" +msgstr "" + +#: src/skins/ui_equalizer.c:1172 +msgid "Presets" +msgstr "" + +#: src/skins/ui_main.c:392 +#, fuzzy, c-format +msgid "%s - Audacious" +msgstr "" +"\n" +"'OSD' pour Audacious " + +#: src/skins/ui_main.c:394 src/skins/ui_main.c:2397 +#, fuzzy +msgid "Audacious" +msgstr "" +"\n" +"'OSD' pour Audacious " + +#: src/skins/ui_main.c:641 +#, fuzzy +msgid "VBR" +msgstr "VBR/ABR" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "stereo" +msgstr "Stéréo" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "mono" +msgstr "Mono" + +#: src/skins/ui_main.c:957 +msgid "Can't jump to time when no track is being played.\n" +msgstr "" + +#: src/skins/ui_main.c:972 src/skins/ui_manager.c:425 +#: src/skins/ui_manager.c:426 +#, fuzzy +msgid "Jump to Time" +msgstr "Aller au fichier..." + +#: src/skins/ui_main.c:993 +#, fuzzy +msgid "minutes:seconds" +msgstr " minutes " + +#: src/skins/ui_main.c:1003 +#, fuzzy +msgid "Track length:" +msgstr "Piste :" + +#: src/skins/ui_main.c:1149 +msgid "Audacious - visibility warning" +msgstr "" + +#: src/skins/ui_main.c:1152 +msgid "Show main player window" +msgstr "" + +#: src/skins/ui_main.c:1153 +msgid "Ignore" +msgstr "" + +#: src/skins/ui_main.c:1159 +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)." +msgstr "" + +#: src/skins/ui_main.c:1165 +msgid "Always ignore, show/hide is controlled remotely" +msgstr "" + +#: src/skins/ui_main.c:1210 +msgid "Audacious - broken GTK engine usage warning" +msgstr "" + +#: src/skins/ui_main.c:1218 +#, c-format +msgid "" +"Broken GTK engine in use\n" +"\n" +"Audacious has detected that you are using a broken GTK engine.\n" +"\n" +"The theme engine you are using, %s, is incompatible with some of the " +"features used by modern skins. The incompatible features have been disabled " +"for this session.\n" +"\n" +"To use these features, please consider using a different GTK theme engine." +msgstr "" + +#: src/skins/ui_main.c:1229 +msgid "Do not display this warning again" +msgstr "" + +#: src/skins/ui_main.c:1253 +msgid "Enter location to play:" +msgstr "" + +#: src/skins/ui_main.c:1497 +#, c-format +msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" +msgstr "" + +#: src/skins/ui_main.c:1527 +#, fuzzy, c-format +msgid "Volume: %d%%" +msgstr "Volume : (%)" + +#: src/skins/ui_main.c:1555 +#, c-format +msgid "Balance: %d%% left" +msgstr "" + +#: src/skins/ui_main.c:1559 +msgid "Balance: center" +msgstr "" + +#: src/skins/ui_main.c:1563 +#, c-format +msgid "Balance: %d%% right" +msgstr "" + +#: src/skins/ui_main.c:1881 +#, fuzzy +msgid "Options Menu" +msgstr "Options" + +#: src/skins/ui_main.c:1885 +msgid "Disable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1887 +msgid "Enable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1890 +#, fuzzy +msgid "File Info Box" +msgstr "Informations sur le fichier : %s" + +#: src/skins/ui_main.c:1894 +msgid "Disable 'GUI Scaling'" +msgstr "" + +#: src/skins/ui_main.c:1896 +#, fuzzy +msgid "Enable 'GUI Scaling'" +msgstr "Activer le rééchantillonnage" + +#: src/skins/ui_main.c:1899 +msgid "Visualization Menu" +msgstr "" + +#: src/skins/ui_main.c:1946 +msgid "" +"Couldn't open audio.\n" +"\n" +"Please check that:\n" +"1. You have the correct output plugin selected.\n" +"2. No other programs is blocking the soundcard.\n" +"3. Your soundcard is configured properly.\n" +msgstr "" + +#: src/skins/ui_manager.c:53 src/skins/ui_manager.c:54 +msgid "Autoscroll Songname" +msgstr "" + +#: src/skins/ui_manager.c:56 src/skins/ui_manager.c:57 +msgid "Stop after Current Song" +msgstr "" + +#: src/skins/ui_manager.c:59 src/skins/ui_manager.c:60 +msgid "Peaks" +msgstr "" + +#: src/skins/ui_manager.c:62 src/skins/ui_manager.c:63 +msgid "Repeat" +msgstr "" + +#: src/skins/ui_manager.c:65 src/skins/ui_manager.c:66 +msgid "Shuffle" +msgstr "" + +#: src/skins/ui_manager.c:68 src/skins/ui_manager.c:69 +msgid "No Playlist Advance" +msgstr "" + +#: src/skins/ui_manager.c:71 src/skins/ui_manager.c:72 +msgid "Show Player" +msgstr "" + +#: src/skins/ui_manager.c:74 src/skins/ui_manager.c:75 +msgid "Show Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:77 src/skins/ui_manager.c:78 +#, fuzzy +msgid "Show Equalizer" +msgstr "Fenêtre -> Égaliseur" + +#: src/skins/ui_manager.c:80 src/skins/ui_manager.c:81 +msgid "Always on Top" +msgstr "" + +#: src/skins/ui_manager.c:83 src/skins/ui_manager.c:84 +msgid "Put on All Workspaces" +msgstr "" + +#: src/skins/ui_manager.c:86 src/skins/ui_manager.c:87 +msgid "Roll up Player" +msgstr "" + +#: src/skins/ui_manager.c:89 src/skins/ui_manager.c:90 +msgid "Roll up Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:92 src/skins/ui_manager.c:93 +msgid "Roll up Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:95 src/sndstretch/sndstretch_xmms.c:375 +msgid "Scale" +msgstr "Échelle" + +#: src/skins/ui_manager.c:96 +msgid "DoubleSize" +msgstr "" + +#: src/skins/ui_manager.c:98 src/skins/ui_manager.c:99 +msgid "Easy Move" +msgstr "" + +#: src/skins/ui_manager.c:107 +#, fuzzy +msgid "Analyzer" +msgstr "Analyseur Spectral" + +#: src/skins/ui_manager.c:108 +#, fuzzy +msgid "Scope" +msgstr "Arrêt" + +#: src/skins/ui_manager.c:109 +msgid "Voiceprint" +msgstr "" + +#: src/skins/ui_manager.c:110 +msgid "Off" +msgstr "" + +#: src/skins/ui_manager.c:114 src/skins/ui_manager.c:131 +#: src/skins/ui_manager.c:137 +#, fuzzy +msgid "Normal" +msgstr "Format" + +#: src/skins/ui_manager.c:115 src/skins/ui_manager.c:132 +msgid "Fire" +msgstr "" + +#: src/skins/ui_manager.c:116 +msgid "Vertical Lines" +msgstr "" + +#: src/skins/ui_manager.c:120 +#, fuzzy +msgid "Lines" +msgstr " minutes " + +#: src/skins/ui_manager.c:121 +#, fuzzy +msgid "Bars" +msgstr "Basses :" + +#: src/skins/ui_manager.c:125 +#, fuzzy +msgid "Dot Scope" +msgstr "Ne pas répéter" + +#: src/skins/ui_manager.c:126 +msgid "Line Scope" +msgstr "" + +#: src/skins/ui_manager.c:127 +msgid "Solid Scope" +msgstr "" + +#: src/skins/ui_manager.c:133 +msgid "Ice" +msgstr "" + +#: src/skins/ui_manager.c:138 +msgid "Smooth" +msgstr "" + +#: src/skins/ui_manager.c:142 +msgid "Full (~50 fps)" +msgstr "" + +#: src/skins/ui_manager.c:143 +msgid "Half (~25 fps)" +msgstr "" + +#: src/skins/ui_manager.c:144 +msgid "Quarter (~13 fps)" +msgstr "" + +#: src/skins/ui_manager.c:145 +msgid "Eighth (~6 fps)" +msgstr "" + +#: src/skins/ui_manager.c:149 src/skins/ui_manager.c:157 +msgid "Slowest" +msgstr "" + +#: src/skins/ui_manager.c:150 src/skins/ui_manager.c:158 +#, fuzzy +msgid "Slow" +msgstr "Ombre" + +#: src/skins/ui_manager.c:151 src/skins/ui_manager.c:159 +msgid "Medium" +msgstr "" + +#: src/skins/ui_manager.c:152 src/skins/ui_manager.c:160 +#, fuzzy +msgid "Fast" +msgstr "Format" + +#: src/skins/ui_manager.c:153 src/skins/ui_manager.c:161 +msgid "Fastest" +msgstr "" + +#: src/skins/ui_manager.c:165 +msgid "Time Elapsed" +msgstr "" + +#: src/skins/ui_manager.c:166 +msgid "Time Remaining" +msgstr "" + +#: src/skins/ui_manager.c:180 src/skins/ui_manager.c:181 +#, fuzzy +msgid "Pause" +msgstr "Mode 'pause' activé" + +#: src/skins/ui_manager.c:186 src/skins/ui_manager.c:187 +#, fuzzy +msgid "Previous" +msgstr "Piste précédente" + +#: src/skins/ui_manager.c:189 src/skins/ui_manager.c:190 +#, fuzzy +msgid "Next" +msgstr "Texte" + +#: src/skins/ui_manager.c:195 +#, fuzzy +msgid "Visualization" +msgstr "Internationalisation" + +#: src/skins/ui_manager.c:196 +msgid "Visualization Mode" +msgstr "" + +#: src/skins/ui_manager.c:197 +msgid "Analyzer Mode" +msgstr "" + +#: src/skins/ui_manager.c:198 +msgid "Scope Mode" +msgstr "" + +#: src/skins/ui_manager.c:199 +msgid "Voiceprint Mode" +msgstr "" + +#: src/skins/ui_manager.c:200 +msgid "WindowShade VU Mode" +msgstr "" + +#: src/skins/ui_manager.c:201 +msgid "Refresh Rate" +msgstr "" + +#: src/skins/ui_manager.c:202 +msgid "Analyzer Falloff" +msgstr "" + +#: src/skins/ui_manager.c:203 +msgid "Peaks Falloff" +msgstr "" + +#: src/skins/ui_manager.c:208 +#, fuzzy +msgid "Playlist" +msgstr "Choisir une liste de lecture" + +#: src/skins/ui_manager.c:210 src/skins/ui_manager.c:211 +#, fuzzy +msgid "New Playlist" +msgstr "Choisir une liste de lecture" + +#: src/skins/ui_manager.c:213 src/skins/ui_manager.c:214 +#, fuzzy +msgid "Select Next Playlist" +msgstr "Choisir une liste de lecture" + +#: src/skins/ui_manager.c:216 src/skins/ui_manager.c:217 +#, fuzzy +msgid "Select Previous Playlist" +msgstr "Choisir une liste de lecture" + +#: src/skins/ui_manager.c:219 src/skins/ui_manager.c:220 +#, fuzzy +msgid "Delete Playlist" +msgstr "Choisir une liste de lecture" + +#: src/skins/ui_manager.c:222 +msgid "Load List" +msgstr "" + +#: src/skins/ui_manager.c:223 +msgid "Loads a playlist file into the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:225 +#, fuzzy +msgid "Save List" +msgstr "Enregistrer" + +#: src/skins/ui_manager.c:226 +#, fuzzy +msgid "Saves the selected playlist." +msgstr "Choisir une liste de lecture" + +#: src/skins/ui_manager.c:228 +#, fuzzy +msgid "Save Default List" +msgstr "Défaut (%s)" + +#: src/skins/ui_manager.c:229 +msgid "Saves the selected playlist to the default location." +msgstr "" + +#: src/skins/ui_manager.c:232 +msgid "Refresh List" +msgstr "" + +#: src/skins/ui_manager.c:233 +msgid "Refreshes metadata associated with a playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:236 +msgid "List Manager" +msgstr "" + +#: src/skins/ui_manager.c:237 +msgid "Opens the playlist manager." +msgstr "" + +#: src/skins/ui_manager.c:243 +msgid "View" +msgstr "" + +#: src/skins/ui_manager.c:247 +msgid "Add Internet Address..." +msgstr "" + +#: src/skins/ui_manager.c:248 +msgid "Adds a remote track to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:251 +msgid "Add Files..." +msgstr "" + +#: src/skins/ui_manager.c:252 +#, fuzzy +msgid "Adds files to the playlist." +msgstr "Ajouter les sous-modules à la liste de lecture" + +#: src/skins/ui_manager.c:257 +msgid "Search and Select" +msgstr "" + +#: src/skins/ui_manager.c:258 +msgid "" +"Searches the playlist and selects playlist entries based on specific " +"criteria." +msgstr "" + +#: src/skins/ui_manager.c:261 +#, fuzzy +msgid "Invert Selection" +msgstr "Choix des formats" + +#: src/skins/ui_manager.c:262 +msgid "Inverts the selected and unselected entries." +msgstr "" + +#: src/skins/ui_manager.c:265 +#, fuzzy +msgid "Select All" +msgstr "Choisir une liste de lecture" + +#: src/skins/ui_manager.c:266 +msgid "Selects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:269 +#, fuzzy +msgid "Select None" +msgstr "Choisir un fichier de thème" + +#: src/skins/ui_manager.c:270 +msgid "Deselects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:275 +#, fuzzy +msgid "Remove All" +msgstr "Enlever" + +#: src/skins/ui_manager.c:276 +msgid "Removes all entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:279 +msgid "Clear Queue" +msgstr "" + +#: src/skins/ui_manager.c:280 +msgid "Clears the queue associated with this playlist." +msgstr "" + +#: src/skins/ui_manager.c:283 +msgid "Remove Unavailable Files" +msgstr "" + +#: src/skins/ui_manager.c:284 +msgid "Removes unavailable files from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:287 +msgid "Remove Duplicates" +msgstr "" + +#: src/skins/ui_manager.c:289 src/skins/ui_manager.c:321 +#: src/skins/ui_manager.c:351 +#, fuzzy +msgid "By Title" +msgstr "Titre" + +#: src/skins/ui_manager.c:290 +msgid "Removes duplicate entries from the playlist by title." +msgstr "" + +#: src/skins/ui_manager.c:293 src/skins/ui_manager.c:329 +#: src/skins/ui_manager.c:359 +#, fuzzy +msgid "By Filename" +msgstr "Nom du fichier" + +#: src/skins/ui_manager.c:294 +msgid "Removes duplicate entries from the playlist by filename." +msgstr "" + +#: src/skins/ui_manager.c:297 src/skins/ui_manager.c:333 +#: src/skins/ui_manager.c:363 +#, fuzzy +msgid "By Path + Filename" +msgstr "Nom du fichier" + +#: src/skins/ui_manager.c:298 +msgid "Removes duplicate entries from the playlist by their full path." +msgstr "" + +#: src/skins/ui_manager.c:301 +msgid "Remove Unselected" +msgstr "" + +#: src/skins/ui_manager.c:302 +msgid "Remove unselected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:305 +msgid "Remove Selected" +msgstr "" + +#: src/skins/ui_manager.c:306 +msgid "Remove selected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:311 +msgid "Randomize List" +msgstr "" + +#: src/skins/ui_manager.c:312 +msgid "Randomizes the playlist." +msgstr "" + +#: src/skins/ui_manager.c:315 +msgid "Reverse List" +msgstr "" + +#: src/skins/ui_manager.c:316 +msgid "Reverses the playlist." +msgstr "" + +#: src/skins/ui_manager.c:319 +#, fuzzy +msgid "Sort List" +msgstr "Artiste :" + +#: src/skins/ui_manager.c:322 src/skins/ui_manager.c:352 +msgid "Sorts the list by title." +msgstr "" + +#: src/skins/ui_manager.c:325 src/skins/ui_manager.c:355 +#, fuzzy +msgid "By Artist" +msgstr "Artiste :" + +#: src/skins/ui_manager.c:326 src/skins/ui_manager.c:356 +msgid "Sorts the list by artist." +msgstr "" + +#: src/skins/ui_manager.c:330 src/skins/ui_manager.c:360 +msgid "Sorts the list by filename." +msgstr "" + +#: src/skins/ui_manager.c:334 src/skins/ui_manager.c:364 +msgid "Sorts the list by full pathname." +msgstr "" + +#: src/skins/ui_manager.c:337 src/skins/ui_manager.c:367 +msgid "By Date" +msgstr "" + +#: src/skins/ui_manager.c:338 src/skins/ui_manager.c:368 +msgid "Sorts the list by modification time." +msgstr "" + +#: src/skins/ui_manager.c:341 src/skins/ui_manager.c:371 +#, fuzzy +msgid "By Track Number" +msgstr "Piste :" + +#: src/skins/ui_manager.c:342 src/skins/ui_manager.c:372 +msgid "Sorts the list by track number." +msgstr "" + +#: src/skins/ui_manager.c:345 src/skins/ui_manager.c:375 +#, fuzzy +msgid "By Playlist Entry" +msgstr "Informations rapides sur la liste de lecture" + +#: src/skins/ui_manager.c:346 src/skins/ui_manager.c:376 +msgid "Sorts the list by playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:349 +#, fuzzy +msgid "Sort Selected" +msgstr "Choix des formats" + +#: src/skins/ui_manager.c:385 +#, fuzzy +msgid "File" +msgstr "Filtres" + +#: src/skins/ui_manager.c:388 +msgid "Plugin Services" +msgstr "" + +#: src/skins/ui_manager.c:390 src/skins/ui_manager.c:393 +#, fuzzy +msgid "View Track Details" +msgstr "Utiliser le gain 'piste'" + +#: src/skins/ui_manager.c:391 src/skins/ui_manager.c:394 +msgid "View track details" +msgstr "" + +#: src/skins/ui_manager.c:396 src/skins/ui_manager.c:397 +#, fuzzy +msgid "About Audacious" +msgstr "À propos du module 'LIRC'" + +#: src/skins/ui_manager.c:399 +#, fuzzy +msgid "Play File" +msgstr "Durée :" + +#: src/skins/ui_manager.c:400 +#, fuzzy +msgid "Load and play a file" +msgstr "Charger la banque de sons au démarrage du lecteur" + +#: src/skins/ui_manager.c:402 +#, fuzzy +msgid "Play Location" +msgstr "Options de 'SIDPlay 2' :" + +#: src/skins/ui_manager.c:403 +#, fuzzy +msgid "Play media from the selected location" +msgstr "Confirmer l'action choisie" + +#: src/skins/ui_manager.c:405 +msgid "Plugin services" +msgstr "" + +#: src/skins/ui_manager.c:407 +msgid "Preferences" +msgstr "" + +#: src/skins/ui_manager.c:408 +msgid "Open preferences window" +msgstr "" + +#: src/skins/ui_manager.c:410 +#, fuzzy +msgid "_Quit" +msgstr "Qualité" + +#: src/skins/ui_manager.c:411 +#, fuzzy +msgid "Quit Audacious" +msgstr "" +"\n" +"'OSD' pour Audacious " + +#: src/skins/ui_manager.c:413 src/skins/ui_manager.c:414 +msgid "Set A-B" +msgstr "" + +#: src/skins/ui_manager.c:416 src/skins/ui_manager.c:417 +msgid "Clear A-B" +msgstr "" + +#: src/skins/ui_manager.c:419 src/skins/ui_manager.c:420 +msgid "Jump to Playlist Start" +msgstr "" + +#: src/skins/ui_manager.c:428 +msgid "Queue Toggle" +msgstr "" + +#: src/skins/ui_manager.c:429 +msgid "Enables/disables the entry in the playlist's queue." +msgstr "" + +#: src/skins/ui_manager.c:436 +msgid "Load" +msgstr "" + +#: src/skins/ui_manager.c:441 src/skins/ui_manager.c:462 +#: src/skins/ui_manager.c:477 +#, fuzzy +msgid "Preset" +msgstr "Port" + +#: src/skins/ui_manager.c:442 +msgid "Load preset" +msgstr "" + +#: src/skins/ui_manager.c:444 src/skins/ui_manager.c:465 +#: src/skins/ui_manager.c:480 +msgid "Auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:445 +msgid "Load auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:448 +#, fuzzy +msgid "Load default preset into equalizer" +msgstr "Charger les valeurs par défaut" + +#: src/skins/ui_manager.c:450 +#, fuzzy +msgid "Zero" +msgstr "Stéréo" + +#: src/skins/ui_manager.c:451 +msgid "Set equalizer preset levels to zero" +msgstr "" + +#: src/skins/ui_manager.c:453 +#, fuzzy +msgid "From file" +msgstr "Profil : %s" + +#: src/skins/ui_manager.c:454 +#, fuzzy +msgid "Load preset from file" +msgstr "Impossible de lire le fichier\n" + +#: src/skins/ui_manager.c:456 +msgid "From WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:457 +msgid "Load preset from WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:459 +msgid "WinAMP Presets" +msgstr "" + +#: src/skins/ui_manager.c:460 +msgid "Import WinAMP presets" +msgstr "" + +#: src/skins/ui_manager.c:463 +msgid "Save preset" +msgstr "" + +#: src/skins/ui_manager.c:466 +msgid "Save auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:469 +#, fuzzy +msgid "Save default preset" +msgstr "Charger les valeurs par défaut" + +#: src/skins/ui_manager.c:471 +#, fuzzy +msgid "To file" +msgstr "Fichier 'STIL' :" + +#: src/skins/ui_manager.c:472 +msgid "Save preset to file" +msgstr "" + +#: src/skins/ui_manager.c:474 +msgid "To WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:475 +msgid "Save preset to WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:478 +#, fuzzy +msgid "Delete preset" +msgstr "Supprimer" + +#: src/skins/ui_manager.c:481 +msgid "Delete auto-load preset" +msgstr "" + +#: src/skins/ui_playlist.c:454 +msgid "Search entries in active playlist" +msgstr "" + +#: src/skins/ui_playlist.c:462 +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 "" + +#: src/skins/ui_playlist.c:477 +#, fuzzy +msgid "Album: " +msgstr "Album :" + +#: src/skins/ui_playlist.c:484 +#, fuzzy +msgid "Artist: " +msgstr "Artiste :" + +#: src/skins/ui_playlist.c:491 +#, fuzzy +msgid "Filename: " +msgstr "Nom du fichier :" + +#: src/skins/ui_playlist.c:499 +msgid "Clear previous selection before searching" +msgstr "" + +#: src/skins/ui_playlist.c:502 +msgid "Automatically toggle queue for matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:505 +msgid "Create a new playlist with matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:724 +#, c-format +msgid "Error writing playlist \"%s\": %s" +msgstr "" + +#: src/skins/ui_playlist.c:746 +#, c-format +msgid "%s already exist. Continue?" +msgstr "" + +#: src/skins/ui_playlist.c:761 +#, c-format +msgid "" +"Unable to save playlist.\n" +"\n" +"Unknown file type for '%s'.\n" +msgstr "" + +#: src/skins/ui_playlist.c:887 +#, fuzzy +msgid "Save as Static Playlist" +msgstr "Choisir une liste de lecture" + +#: src/skins/ui_playlist.c:894 +msgid "Use Relative Path" +msgstr "" + +#: src/skins/ui_playlist.c:916 +#, fuzzy +msgid "Load Playlist" +msgstr "Informations rapides sur la liste de lecture" + +#: src/skins/ui_playlist.c:929 +#, fuzzy +msgid "Save Playlist" +msgstr "Choisir une liste de lecture" + +#: src/skins/ui_playlist.c:1497 +#, fuzzy +msgid "Audacious Playlist Editor" +msgstr "Informations rapides sur la liste de lecture" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "PREAMP" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "60HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "170HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "310HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "600HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "1KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "3KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "6KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "12KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "14KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "16KHZ" +msgstr "" + +#: src/skins/ui_skinselector.c:178 +msgid "Archived Winamp 2.x skin" +msgstr "" + +#: src/skins/ui_skinselector.c:183 +msgid "Unarchived Winamp 2.x skin" +msgstr "" + +#: src/skins/util.c:1132 +#, fuzzy, c-format +msgid "Could not create directory (%s): %s\n" +msgstr "Erreur lors de l'allocation du fichier 'SID' ('%s').\n" + +#: src/sndfile/plugin.c:554 msgid "About sndfile plugin" msgstr "À propos du module 'sndfile'" -#: src/sndfile/plugin.c:549 +#: src/sndfile/plugin.c:555 msgid "" "Adapted for Audacious usage by Tony Vroon \n" "from the xmms_sndfile plugin which is:\n" @@ -4969,64 +6125,60 @@ "Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,\n" "MA 02110-1301, USA." -#: src/sndstretch/sndstretch_xmms.c:159 +#: src/sndstretch/sndstretch_xmms.c:158 msgid "About SndStretch" msgstr "À propos de 'SndStretch'" -#: src/sndstretch/sndstretch_xmms.c:319 +#: src/sndstretch/sndstretch_xmms.c:318 msgid "Volume corr." msgstr "Correction du volume" -#: src/sndstretch/sndstretch_xmms.c:320 +#: src/sndstretch/sndstretch_xmms.c:319 msgid "Short Overlap" msgstr "Chevauchement léger" +#: src/sndstretch/sndstretch_xmms.c:373 +msgid "Speed" +msgstr "Vitesse" + #: src/sndstretch/sndstretch_xmms.c:374 -msgid "Speed" -msgstr "Vitesse" - -#: src/sndstretch/sndstretch_xmms.c:375 msgid "Pitch" msgstr "Hauteur" -#: src/sndstretch/sndstretch_xmms.c:376 -msgid "Scale" -msgstr "Échelle" - -#: src/sndstretch/sndstretch_xmms.c:396 +#: src/sndstretch/sndstretch_xmms.c:395 msgid "SndStretch - Configuration" msgstr "Configuration de 'SndStretch'" -#: src/song_change/song_change.c:312 +#: src/song_change/song_change.c:310 msgid "Commands" msgstr "Commandes" -#: src/song_change/song_change.c:319 +#: src/song_change/song_change.c:317 msgid "Command to run when Audacious starts a new song." msgstr "Commande à exécuter lorsqu'un nouveau morceau commence :" -#: src/song_change/song_change.c:328 src/song_change/song_change.c:350 -#: src/song_change/song_change.c:371 src/song_change/song_change.c:392 +#: src/song_change/song_change.c:326 src/song_change/song_change.c:348 +#: src/song_change/song_change.c:369 src/song_change/song_change.c:390 msgid "Command:" msgstr "Commande :" -#: src/song_change/song_change.c:342 +#: src/song_change/song_change.c:340 msgid "Command to run toward the end of a song." msgstr "Commande à exécuter lorsque la lecture d'un morceau se termine :" -#: src/song_change/song_change.c:362 +#: src/song_change/song_change.c:360 msgid "Command to run when Audacious reaches the end of the playlist." msgstr "" "Commande à exécuter lorsque la fin de la liste de lecture est atteinte :" -#: src/song_change/song_change.c:383 +#: src/song_change/song_change.c:381 msgid "" "Command to run when title changes for a song (i.e. network streams titles)." msgstr "" "Commande à exécuter lorsque le titre d'un morceau change (le titre d'un flux " "distant, par exemple) :" -#: src/song_change/song_change.c:404 +#: src/song_change/song_change.c:402 #, c-format msgid "" "You can use the following format strings which\n" @@ -5055,7 +6207,7 @@ "%%t: Position dans la liste de lecture (%%02d)\n" "%%p: Statut de la lecture (1 ou 0)" -#: src/song_change/song_change.c:429 +#: src/song_change/song_change.c:427 msgid "" "Parameters passed to the shell should be encapsulated in " "quotes. Doing otherwise is a security risk." @@ -5064,7 +6216,7 @@ "entourés de guillemets.\n" "Une utilisation différente constitue un risque en matière de sécurité." -#: src/spectrum/spectrum.c:90 +#: src/spectrum/spectrum.c:89 msgid "Spectrum Analyzer" msgstr "Analyseur Spectral" @@ -5076,11 +6228,11 @@ msgid "The orientation of the tray" msgstr "Définit l'orientation de l'icône" -#: src/statusicon/si_ui.c:622 +#: src/statusicon/si_ui.c:620 msgid "About Status Icon Plugin" msgstr "À propos du module 'Status Icon'" -#: src/statusicon/si_ui.c:624 +#: src/statusicon/si_ui.c:622 msgid "" "\n" "written by Giacomo Lozito < james@develia.org >\n" @@ -5094,39 +6246,39 @@ "Ce module affiche une icône de statut dans la\n" "boîte de notification du gestionnaire de fenêtres.\n" -#: src/statusicon/si_ui.c:696 +#: src/statusicon/si_ui.c:694 msgid "Status Icon Plugin - Preferences" msgstr "Préférences de 'Status Icon'" -#: src/statusicon/si_ui.c:707 +#: src/statusicon/si_ui.c:705 msgid "Right-Click Menu" msgstr "Menu disponible via le clic droit :" -#: src/statusicon/si_ui.c:712 +#: src/statusicon/si_ui.c:710 msgid "Audacious standard menu" msgstr "Menu standard d'Audacious" -#: src/statusicon/si_ui.c:717 +#: src/statusicon/si_ui.c:715 msgid "Small playback menu #1" msgstr "Menu de lecture compact #1" -#: src/statusicon/si_ui.c:722 +#: src/statusicon/si_ui.c:720 msgid "Small playback menu #2" msgstr "Menu de lecture compact #2" -#: src/statusicon/si_ui.c:745 +#: src/statusicon/si_ui.c:743 msgid "Mouse Scroll Action" msgstr "Effet du défilement de la souris :" -#: src/statusicon/si_ui.c:750 +#: src/statusicon/si_ui.c:748 msgid "Change volume" msgstr "Changement du volume" -#: src/statusicon/si_ui.c:755 +#: src/statusicon/si_ui.c:753 msgid "Change playing song" msgstr "Changement du titre en cours de lecture" -#: src/stereo_plugin/stereo.c:26 +#: src/stereo_plugin/stereo.c:25 msgid "" "Extra Stereo Plugin\n" "\n" @@ -5136,23 +6288,19 @@ "\n" "Écrit par Johan Levin (1999)." -#: src/stereo_plugin/stereo.c:52 +#: src/stereo_plugin/stereo.c:51 msgid "About Extra Stereo Plugin" msgstr "À propos..." -#: src/stereo_plugin/stereo.c:93 +#: src/stereo_plugin/stereo.c:92 msgid "Configure Extra Stereo" msgstr "Configurer 'Extra Stereo'" -#: src/stereo_plugin/stereo.c:95 -msgid "Effect intensity:" -msgstr "Intensité de l'effet :" +#: src/sun/about.c:33 +msgid "About the Sun Driver" +msgstr "À propos du pilote 'Sun'" #: src/sun/about.c:34 -msgid "About the Sun Driver" -msgstr "À propos du pilote 'Sun'" - -#: src/sun/about.c:35 msgid "" "XMMS BSD Sun Driver\n" "\n" @@ -5167,19 +6315,19 @@ "Responsable de la maintenance :\n" ".\n" -#: src/sun/configure.c:201 +#: src/sun/configure.c:199 msgid "Audio control device:" msgstr "Périphérique de contrôle audio :" -#: src/sun/configure.c:350 +#: src/sun/configure.c:348 msgid "Volume controls device:" msgstr "Périphérique de contrôle du volume :" -#: src/sun/configure.c:363 +#: src/sun/configure.c:361 msgid "XMMS uses mixer exclusively." msgstr "XMMS utilise le mélangeur audio de manière exclusive." -#: src/sun/configure.c:538 +#: src/sun/configure.c:536 msgid "Sun driver configuration" msgstr "Configuration du pilote 'Sun'" @@ -5207,7 +6355,7 @@ msgid "TiMidity Configuration File" msgstr "Fichier de configuration de 'TiMidity'" -#: src/timidity/xmms-timidity.c:118 +#: src/timidity/xmms-timidity.c:115 msgid "" "TiMidity Plugin\n" "http://libtimidity.sourceforge.net\n" @@ -5219,20 +6367,20 @@ "\n" "Écrit par Konstantin Korikov" -#: src/timidity/xmms-timidity.c:119 +#: src/timidity/xmms-timidity.c:116 #, c-format msgid "TiMidity Plugin %s" msgstr "Module 'TiMidity' %s" -#: src/timidity/xmms-timidity.c:336 +#: src/timidity/xmms-timidity.c:333 msgid "Couldn't load MIDI file" msgstr "Impossible de lire le fichier MIDI" -#: src/tonegen/tonegen.c:56 +#: src/tonegen/tonegen.c:55 msgid "About Tone Generator" msgstr "À propos de 'Tone Generator'" -#: src/tonegen/tonegen.c:58 +#: src/tonegen/tonegen.c:57 msgid "" "Sinus tone generator by Haavard Kvaalen \n" "Modified by Daniel J. Peng \n" @@ -5250,52 +6398,52 @@ "Par exemple, 'tone://2000;2005' émettra un son de 2000 Hz et un son de 2005 " "Hz." -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 #, c-format msgid "%s %.1f Hz" msgstr "%s %.1f Hz" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 msgid "Tone Generator: " msgstr "Générateur de sons : " -#: src/tta/libtta.c:130 +#: src/tta/libtta.c:127 msgid "Can't open file\n" msgstr "Impossible d'ouvrir le fichier\n" +#: src/tta/libtta.c:130 +msgid "Not supported file format\n" +msgstr "Le format du fichier n'est pas supporté\n" + #: src/tta/libtta.c:133 -msgid "Not supported file format\n" -msgstr "Le format du fichier n'est pas supporté\n" +msgid "File is corrupted\n" +msgstr "Le fichier est corrompu\n" #: src/tta/libtta.c:136 -msgid "File is corrupted\n" -msgstr "Le fichier est corrompu\n" +msgid "Can't read from file\n" +msgstr "Impossible de lire le fichier\n" #: src/tta/libtta.c:139 -msgid "Can't read from file\n" -msgstr "Impossible de lire le fichier\n" +msgid "Insufficient memory available\n" +msgstr "La mémoire disponible est insuffisante\n" #: src/tta/libtta.c:142 -msgid "Insufficient memory available\n" -msgstr "La mémoire disponible est insuffisante\n" +msgid "Output plugin error\n" +msgstr "Erreur relative au module de sortie\n" #: src/tta/libtta.c:145 -msgid "Output plugin error\n" -msgstr "Erreur relative au module de sortie\n" - -#: src/tta/libtta.c:148 msgid "Unknown error\n" msgstr "Erreur inconnue\n" -#: src/tta/libtta.c:152 +#: src/tta/libtta.c:149 msgid "TTA Decoder Error" msgstr "Erreur du décodeur 'TTA'" -#: src/tta/libtta.c:261 +#: src/tta/libtta.c:258 msgid "TTA input plugin " msgstr "Module d'entrée 'TTA' " -#: src/tta/libtta.c:262 +#: src/tta/libtta.c:259 msgid "" " for BMP\n" "Copyright (c) 2004 True Audio Software\n" @@ -5306,35 +6454,35 @@ "\n" "True Audio Software\n" -#: src/tta/libtta.c:265 +#: src/tta/libtta.c:262 msgid "About True Audio Plugin" msgstr "À propos du module 'True Audio'" -#: src/tta/libtta.c:316 +#: src/tta/libtta.c:313 msgid "ID3 Tag:" msgstr "Métadonnées ID3" -#: src/tta/libtta.c:378 src/wavpack/ui.cxx:234 +#: src/tta/libtta.c:375 src/wavpack/ui.cxx:232 msgid "Track number:" msgstr "Piste :" -#: src/vorbis/configure.c:84 +#: src/vorbis/configure.c:82 msgid "Ogg Vorbis Audio Plugin Configuration" msgstr "Configuration du module audio 'Ogg Vorbis'" -#: src/vorbis/configure.c:94 +#: src/vorbis/configure.c:92 msgid "Ogg Vorbis Tags:" msgstr "Métadonnées 'Ogg Vorbis' :" -#: src/vorbis/configure.c:115 +#: src/vorbis/configure.c:113 msgid "Title format:" msgstr "Format du titre :" -#: src/vorbis/vorbis.c:681 +#: src/vorbis/vorbis.c:677 msgid "About Ogg Vorbis Audio Plugin" msgstr "À propos du module audio 'Ogg Vorbis'" -#: src/vorbis/vorbis.c:687 +#: src/vorbis/vorbis.c:683 msgid "" "Ogg Vorbis Plugin by the Xiph.org Foundation\n" "\n" @@ -5371,11 +6519,11 @@ "Vous pouvez visiter 'Xiph.org Foundation' à cette adresse :\n" "http://www.xiph.org/\n" -#: src/vtx/about.c:23 +#: src/vtx/about.c:17 msgid "About Vortex Player" msgstr "À propos du lecteur 'Vortex'" -#: src/vtx/about.c:25 +#: src/vtx/about.c:19 msgid "" "Vortex file format player by Sashnov Alexander \n" "Founded on original source in_vtx.dll by Roman Sherbakov " -#: src/wavpack/ui.cxx:52 +#: src/wavpack/ui.cxx:50 #, c-format msgid "Wavpack Decoder Plugin %s" msgstr "Module de décodage 'Wavpack' %s" -#: src/wavpack/ui.cxx:53 +#: src/wavpack/ui.cxx:51 msgid "" "Copyright (c) 2006 William Pitcock \n" "\n" @@ -5419,90 +6567,90 @@ "Vous pouvez visiter le site 'Wavpack' à l'adresse suivante :\n" "http://www.wavpack.com/\n" -#: src/wavpack/ui.cxx:165 +#: src/wavpack/ui.cxx:163 msgid "Ape2 Tag" msgstr "Métadonnées 'Ape2'" -#: src/wavpack/ui.cxx:288 +#: src/wavpack/ui.cxx:286 msgid "Wavpack Info:" msgstr "Informations Wavpack" +#: src/wavpack/ui.cxx:379 +#, c-format +msgid "version %d" +msgstr "Version : %d" + +#: src/wavpack/ui.cxx:380 +#, c-format +msgid "average bitrate: %6.1f kbps" +msgstr "Débit moyen : %6.1f kbps" + #: src/wavpack/ui.cxx:381 #, c-format -msgid "version %d" -msgstr "Version : %d" +msgid "samplerate: %d Hz" +msgstr "Taux d'échantillonnage : %d Hz" #: src/wavpack/ui.cxx:382 #, c-format -msgid "average bitrate: %6.1f kbps" -msgstr "Débit moyen : %6.1f kbps" +msgid "bits per sample: %d" +msgstr "Bits par échantillon : %d" #: src/wavpack/ui.cxx:383 #, c-format -msgid "samplerate: %d Hz" -msgstr "Taux d'échantillonnage : %d Hz" +msgid "channels: %d" +msgstr "Voies : %d" #: src/wavpack/ui.cxx:384 #, c-format -msgid "bits per sample: %d" -msgstr "Bits par échantillon : %d" +msgid "length: %d:%.2d" +msgstr "Durée : %d:%.2d" #: src/wavpack/ui.cxx:385 #, c-format -msgid "channels: %d" -msgstr "Voies : %d" - -#: src/wavpack/ui.cxx:386 -#, c-format -msgid "length: %d:%.2d" -msgstr "Durée : %d:%.2d" - -#: src/wavpack/ui.cxx:387 -#, c-format msgid "file size: %d Bytes" msgstr "Taille du fichier : %d Bytes" -#: src/wavpack/ui.cxx:394 +#: src/wavpack/ui.cxx:392 msgid "Title Peak: ?" msgstr "Pic sonore 'piste' : ?" -#: src/wavpack/ui.cxx:395 +#: src/wavpack/ui.cxx:393 msgid "Album Peak: ?" msgstr "Pic sonore 'album' : ?" -#: src/wavpack/ui.cxx:396 +#: src/wavpack/ui.cxx:394 msgid "Title Gain: ?" msgstr "Gain 'piste' : ?" -#: src/wavpack/ui.cxx:397 +#: src/wavpack/ui.cxx:395 msgid "Album Gain: ?" msgstr "Gain 'album' : ?" -#: src/wavpack/ui.cxx:471 +#: src/wavpack/ui.cxx:469 msgid "Wavpack Configuration" msgstr "Configuration de 'Wavpack'" -#: src/wavpack/ui.cxx:484 +#: src/wavpack/ui.cxx:482 msgid "General Plugin Settings:" msgstr "Réglages généraux" -#: src/wavpack/ui.cxx:502 +#: src/wavpack/ui.cxx:500 msgid "ReplayGain Settings:" msgstr "Paramètres de 'ReplayGain' :" -#: src/wavpack/ui.cxx:520 +#: src/wavpack/ui.cxx:518 msgid "ReplayGain Type:" msgstr "Traitement 'ReplayGain' :" -#: src/wavpack/ui.cxx:531 +#: src/wavpack/ui.cxx:529 msgid "use Track Gain/Peak" msgstr "Utiliser le gain/pic sonore 'piste'" -#: src/wavpack/ui.cxx:539 +#: src/wavpack/ui.cxx:537 msgid "use Album Gain/Peak" msgstr "Utiliser le gain/pic sonore 'album'" -#: src/wma/wma.c:123 +#: src/wma/wma.c:120 msgid "" "Adapted for use in Audacious by Tony Vroon (chainsaw@gentoo.org) from\n" "the BEEP-WMA plugin which is Copyright (C) 2004,2005 Mokrushin I.V. aka " @@ -5519,6 +6667,11 @@ ").\n" "Ce module est basé sur le code source de la bibliothèque " +#~ msgid "Descriptions of SID-specific Tuplez fields go here. :D" +#~ msgstr "" +#~ "La description des métadonnées propres à 'SID' est prévue à cet " +#~ "endroit. :D" + #~ msgid "Error initializing song-length database!\n" #~ msgstr "" #~ "Erreur lors de l'initialisation de la base de données relative à la durée " @@ -5674,9 +6827,6 @@ #~ msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n" #~ msgstr "Impossible d'allouer de la mémoire pour t_xs_tuneinfo ('%s')\n" -#~ msgid "Could not allocate sidFilename ('%s')\n" -#~ msgstr "Erreur lors de l'allocation du fichier 'SID' ('%s').\n" - #~ msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n" #~ msgstr "" #~ "Impossible d'allouer de la mémoire pour t_xs_subtuneinfo ('%s', %i)\n" diff -r c40585c57877 -r 7fc2c317d190 po/ja.po --- a/po/ja.po Thu Jul 03 17:23:34 2008 +0300 +++ b/po/ja.po Thu Jul 03 17:37:11 2008 +0300 @@ -12,8 +12,8 @@ msgid "" msgstr "" "Project-Id-Version: audacious-plugins HEAD\n" -"Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" -"POT-Creation-Date: 2008-03-30 17:25+0200\n" +"Report-Msgid-Bugs-To: http://bugzilla.atheme.org/\n" +"POT-Creation-Date: 2008-06-21 08:27+0300\n" "PO-Revision-Date: 2008-03-31 15:01+0900\n" "Last-Translator: dai \n" "Language-Team: Japanese \n" @@ -21,11 +21,11 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/aac/libmp4.c:286 +#: src/aac/libmp4.c:283 msgid "Using libfaad2-" msgstr "libfaad2-" -#: src/aac/libmp4.c:287 +#: src/aac/libmp4.c:284 msgid "" " for decoding.\n" "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n" @@ -35,38 +35,38 @@ "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n" "Copyright (c) 2005-2006 Audacious team" -#: src/aac/libmp4.c:291 +#: src/aac/libmp4.c:288 msgid "About MP4 AAC player plugin" msgstr "MP4 AAC プレイヤプラグインについて" -#: src/aac/libmp4.c:293 src/adplug/adplug-xmms.cc:182 -#: src/adplug/adplug-xmms.cc:265 src/adplug/adplug-xmms.cc:526 -#: src/alac/plugin.c:77 src/arts/arts.c:26 src/arts/configure.c:90 -#: src/audiocompress/audacious-glue.c:102 -#: src/audiocompress/audacious-glue.c:552 src/cdaudio-ng/configure.c:228 -#: src/console/Audacious_Driver.cxx:449 src/demac/plugin.c:393 -#: src/echo_plugin/gui.c:26 src/echo_plugin/gui.c:137 src/esd/about.c:49 -#: src/filewriter/filewriter.c:183 src/jack/configure.c:141 -#: src/jack/jack.c:456 src/madplug/plugin.c:542 src/madplug/plugin.c:566 -#: src/metronom/metronom.c:88 src/modplug/gui/main.cxx:49 -#: src/musepack/libmpc.cxx:232 src/null/null.c:67 src/null/null.c:110 -#: src/OSS4/about.c:59 src/OSS/about.c:54 src/paranormal-ng/plugin.c:283 -#: src/paranormal/plugin.c:291 src/scrobbler/gtkstuff.c:25 -#: src/sndfile/plugin.c:565 src/statusicon/si_ui.c:628 -#: src/stereo_plugin/stereo.c:53 src/stereo_plugin/stereo.c:116 -#: src/sun/about.c:38 src/sun/configure.c:559 src/timidity/interface.c:222 -#: src/timidity/xmms-timidity.c:120 src/tonegen/tonegen.c:62 -#: src/tta/libtta.c:153 src/tta/libtta.c:267 src/tta/libtta.c:402 -#: src/vorbis/vorbis.c:700 src/vtx/about.c:32 src/vtx/info.c:43 -#: src/wavpack/ui.cxx:56 src/wavpack/ui.cxx:556 +#: src/aac/libmp4.c:290 src/adplug/adplug-xmms.cc:180 +#: src/adplug/adplug-xmms.cc:263 src/adplug/adplug-xmms.cc:524 +#: src/alac/plugin.c:74 src/arts/arts.c:25 src/arts/configure.c:90 +#: src/audiocompress/audacious-glue.c:110 +#: src/audiocompress/audacious-glue.c:560 src/cdaudio-ng/configure.c:242 +#: src/console/Audacious_Driver.cxx:447 src/crystalizer/crystalizer.c:113 +#: src/demac/plugin.c:364 src/echo_plugin/gui.c:24 src/echo_plugin/gui.c:135 +#: src/esd/about.c:48 src/filewriter/filewriter.c:183 src/jack/configure.c:140 +#: src/jack/jack.c:454 src/madplug/plugin.c:679 src/madplug/plugin.c:703 +#: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:52 +#: src/musepack/libmpc.cxx:228 src/null/null.c:64 src/null/null.c:107 +#: src/OSS4/OSS4.c:55 src/OSS/OSS.c:52 src/paranormal-ng/plugin.c:282 +#: src/paranormal/plugin.c:290 src/scrobbler/gtkstuff.c:22 +#: src/sndfile/plugin.c:571 src/statusicon/si_ui.c:626 +#: src/stereo_plugin/stereo.c:52 src/stereo_plugin/stereo.c:115 +#: src/sun/about.c:37 src/sun/configure.c:557 src/timidity/interface.c:222 +#: src/timidity/xmms-timidity.c:117 src/tonegen/tonegen.c:61 +#: src/tta/libtta.c:150 src/tta/libtta.c:264 src/tta/libtta.c:399 +#: src/vorbis/vorbis.c:696 src/vtx/about.c:26 src/vtx/info.c:38 +#: src/wavpack/ui.cxx:54 src/wavpack/ui.cxx:554 msgid "Ok" msgstr "OK" -#: src/adplug/adplug-xmms.cc:171 +#: src/adplug/adplug-xmms.cc:169 msgid "About " msgstr "プラグインについて" -#: src/adplug/adplug-xmms.cc:175 +#: src/adplug/adplug-xmms.cc:173 msgid "" "\n" "Copyright (C) 2002, 2003 Simon Peter \n" @@ -88,65 +88,65 @@ "リを用いている.\n" "リンクしている AdPlug ライブラリのヴァージョン: " -#: src/adplug/adplug-xmms.cc:256 +#: src/adplug/adplug-xmms.cc:254 msgid "AdPlug :: Configuration" msgstr "AdPlug :: 設定" -#: src/adplug/adplug-xmms.cc:275 src/alarm/interface.c:1398 +#: src/adplug/adplug-xmms.cc:273 src/alarm/interface.c:1398 #: src/alsa/configure.c:389 src/arts/configure.c:91 -#: src/audiocompress/audacious-glue.c:557 src/cdaudio-ng/configure.c:232 -#: src/echo_plugin/gui.c:145 src/jack/configure.c:148 -#: src/modplug/gui/interface.cxx:714 src/modplug/gui/modplug.glade:1668 -#: src/musepack/libmpc.cxx:237 src/musepack/libmpc.cxx:557 src/null/null.c:111 -#: src/sid/xmms-sid.glade:3080 src/sid/xs_interface.c:1250 -#: src/stereo_plugin/stereo.c:125 src/sun/configure.c:567 -#: src/timidity/interface.c:230 src/wavpack/ui.cxx:280 src/wavpack/ui.cxx:563 +#: src/audiocompress/audacious-glue.c:565 src/cdaudio-ng/configure.c:246 +#: src/crystalizer/crystalizer.c:122 src/echo_plugin/gui.c:143 +#: src/jack/configure.c:147 src/modplug/gui/interface.cxx:714 +#: src/modplug/gui/modplug.glade:1668 src/musepack/libmpc.cxx:233 +#: src/musepack/libmpc.cxx:553 src/null/null.c:108 +#: src/stereo_plugin/stereo.c:124 src/sun/configure.c:565 +#: src/timidity/interface.c:230 src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561 msgid "Cancel" msgstr "キャンセル" -#: src/adplug/adplug-xmms.cc:291 src/console/Audacious_Config.cxx:145 -#: src/madplug/configure.c:290 src/modplug/gui/interface.cxx:628 +#: src/adplug/adplug-xmms.cc:289 src/console/Audacious_Config.cxx:144 +#: src/madplug/configure.c:289 src/modplug/gui/interface.cxx:628 #: src/modplug/gui/interface.cxx:887 src/modplug/gui/modplug.glade:1404 #: src/modplug/gui/modplug.glade:1804 msgid "General" msgstr "一般" -#: src/adplug/adplug-xmms.cc:303 +#: src/adplug/adplug-xmms.cc:301 msgid "Sound quality" msgstr "音質" -#: src/adplug/adplug-xmms.cc:308 src/modplug/gui/interface.cxx:187 +#: src/adplug/adplug-xmms.cc:306 src/modplug/gui/interface.cxx:187 #: src/modplug/gui/modplug.glade:113 msgid "Resolution" msgstr "解像度" -#: src/adplug/adplug-xmms.cc:310 +#: src/adplug/adplug-xmms.cc:308 msgid "8bit" msgstr " 8ビット" -#: src/adplug/adplug-xmms.cc:315 +#: src/adplug/adplug-xmms.cc:313 msgid "16bit" msgstr "16ビット" -#: src/adplug/adplug-xmms.cc:323 src/modplug/gui/interface.cxx:218 +#: src/adplug/adplug-xmms.cc:321 src/modplug/gui/interface.cxx:218 #: src/modplug/gui/modplug.glade:199 src/timidity/interface.c:148 msgid "Channels" msgstr "チャンネル数" -#: src/adplug/adplug-xmms.cc:325 src/filewriter/mp3.c:900 -#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:288 +#: src/adplug/adplug-xmms.cc:323 src/filewriter/mp3.c:900 +#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:300 #: src/timidity/interface.c:165 msgid "Mono" msgstr "モノラル" -#: src/adplug/adplug-xmms.cc:330 src/filewriter/mp3.c:895 +#: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:895 #: src/modplug/gui/interface.cxx:204 src/modplug/gui/modplug.glade:159 -#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:295 +#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:307 #: src/timidity/interface.c:173 msgid "Stereo" msgstr "ステレオ" -#: src/adplug/adplug-xmms.cc:334 +#: src/adplug/adplug-xmms.cc:332 msgid "" "Setting stereo is not recommended, unless you need to. This won't add any " "stereo effects to the sound - OPL2 is just mono - but eats up more CPU power!" @@ -154,20 +154,20 @@ "必要でないならば, ステレオ設定は推奨しません. OPL2 は単にモノラルなので, サウ" "ンドにステレオエフェクトはかかりませんが, より CPU パワーを消費します!" -#: src/adplug/adplug-xmms.cc:342 +#: src/adplug/adplug-xmms.cc:340 msgid "Frequency" msgstr "周波数" -#: src/adplug/adplug-xmms.cc:378 src/adplug/adplug-xmms.cc:582 -#: src/console/Audacious_Config.cxx:147 +#: src/adplug/adplug-xmms.cc:376 src/adplug/adplug-xmms.cc:580 +#: src/console/Audacious_Config.cxx:146 src/skins/ui_manager.c:175 msgid "Playback" msgstr "演奏" -#: src/adplug/adplug-xmms.cc:382 +#: src/adplug/adplug-xmms.cc:380 msgid "Detect songend" msgstr "曲の終わりを検出する" -#: src/adplug/adplug-xmms.cc:386 +#: src/adplug/adplug-xmms.cc:384 msgid "" "If enabled, XMMS will detect a song's ending, stop it and advance in the " "playlist. If disabled, XMMS won't take notice of a song's ending and loop it " @@ -176,23 +176,23 @@ "有効ならば, XMMS は曲の終わりを検出し, 曲を停止してプレイリストを進みます. 無" "効ならば, XMMS は曲の終わりを通知せずに, 曲全体を何度も繰り返します. " -#: src/adplug/adplug-xmms.cc:397 +#: src/adplug/adplug-xmms.cc:395 msgid "Formats" msgstr "フォーマット" -#: src/adplug/adplug-xmms.cc:404 +#: src/adplug/adplug-xmms.cc:402 msgid "Format selection" msgstr "フォーマット選択" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Format" msgstr "フォーマット" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Extension" msgstr "拡張子" -#: src/adplug/adplug-xmms.cc:447 +#: src/adplug/adplug-xmms.cc:445 msgid "" "Selected file types will be recognized and played back by this plugin. " "Deselected types will be ignored to make room for other plugins to play " @@ -202,88 +202,88 @@ "されていないタイプは, このプラグインからは無視され, 他のプラグインによって再" "生されます. " -#: src/adplug/adplug-xmms.cc:533 +#: src/adplug/adplug-xmms.cc:531 msgid "AdPlug :: File Info" msgstr "AdPlug :: ファイル情報" -#: src/adplug/adplug-xmms.cc:555 src/amidi-plug/i_configure-fluidsynth.c:448 +#: src/adplug/adplug-xmms.cc:553 src/amidi-plug/i_configure-fluidsynth.c:448 msgid "Filename" msgstr "ファイル名" +#: src/adplug/adplug-xmms.cc:557 src/skins/ui_playlist.c:470 +msgid "Title: " +msgstr "タイトル: " + +#: src/adplug/adplug-xmms.cc:558 +msgid "Author: " +msgstr "作者: " + #: src/adplug/adplug-xmms.cc:559 -msgid "Title: " -msgstr "タイトル: " - -#: src/adplug/adplug-xmms.cc:560 -msgid "Author: " -msgstr "作者: " - -#: src/adplug/adplug-xmms.cc:561 msgid "File Type: " msgstr "ファイルタイプ: " -#: src/adplug/adplug-xmms.cc:562 +#: src/adplug/adplug-xmms.cc:560 msgid "Subsongs: " msgstr "サブソング: " -#: src/adplug/adplug-xmms.cc:563 +#: src/adplug/adplug-xmms.cc:561 msgid "Instruments: " msgstr "楽器: " -#: src/adplug/adplug-xmms.cc:568 +#: src/adplug/adplug-xmms.cc:566 msgid "Orders: " msgstr "順序: " -#: src/adplug/adplug-xmms.cc:569 +#: src/adplug/adplug-xmms.cc:567 msgid "Patterns: " msgstr "パターン: " -#: src/adplug/adplug-xmms.cc:573 +#: src/adplug/adplug-xmms.cc:571 msgid "Song" msgstr "曲" -#: src/adplug/adplug-xmms.cc:599 +#: src/adplug/adplug-xmms.cc:597 msgid "Instrument name" msgstr "楽器名" -#: src/adplug/adplug-xmms.cc:641 +#: src/adplug/adplug-xmms.cc:639 msgid "Song message" msgstr "曲メッセージ" -#: src/adplug/adplug-xmms.cc:663 +#: src/adplug/adplug-xmms.cc:661 msgid "Subsong selection" msgstr "サブソング選択" -#: src/adplug/adplug-xmms.cc:727 +#: src/adplug/adplug-xmms.cc:725 msgid "Order: " msgstr "順序: " -#: src/adplug/adplug-xmms.cc:728 +#: src/adplug/adplug-xmms.cc:726 msgid "Pattern: " msgstr "パターン: " +#: src/adplug/adplug-xmms.cc:728 +msgid "Row: " +msgstr "列: " + +#: src/adplug/adplug-xmms.cc:729 +msgid "Speed: " +msgstr "早さ: " + #: src/adplug/adplug-xmms.cc:730 -msgid "Row: " -msgstr "列: " - -#: src/adplug/adplug-xmms.cc:731 -msgid "Speed: " -msgstr "早さ: " - -#: src/adplug/adplug-xmms.cc:732 msgid "Timer: " msgstr "タイマー: " -#: src/adplug/adplug-xmms.cc:733 src/console/Audacious_Config.cxx:225 -#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:341 +#: src/adplug/adplug-xmms.cc:731 src/console/Audacious_Config.cxx:224 +#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:353 msgid "Hz" msgstr "Hz" -#: src/alac/plugin.c:74 +#: src/alac/plugin.c:71 msgid "About Apple Lossless Audio Plugin" msgstr "Apple Lossless オーディオプラグインについて" -#: src/alac/plugin.c:75 +#: src/alac/plugin.c:72 msgid "" "Copyright (c) 2006 Audacious team\n" "Portions (c) 2005-2006 David Hammerton " @@ -321,8 +321,8 @@ #: src/alarm/interface.c:71 src/lirc/about.c:115 #: src/modplug/gui/interface.cxx:971 src/modplug/gui/modplug.glade:2030 -#: src/sid/xmms-sid.glade:3643 src/sid/xs_about.c:214 -#: src/sid/xs_interface.c:1740 +#: src/sid/xmms-sid.glade:3837 src/sid/xs_about.c:214 +#: src/sid/xs_interface.c:1824 msgid "Close" msgstr "閉じる" @@ -334,13 +334,12 @@ msgid "This is your wakeup call." msgstr "目覚ましです." -#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:46 +#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:45 #: src/alsa/configure.c:383 src/cdaudio-ng/cdaudio-ng.c:247 -#: src/flacng/plugin.c:706 src/gnomeshortcuts/gnomeshortcuts.c:311 -#: src/hotkey/gui.c:671 src/modplug/gui/interface.cxx:702 -#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:738 -#: src/scrobbler/gtkstuff.c:45 src/sid/xmms-sid.glade:3066 -#: src/sid/xs_interface.c:1243 +#: src/flacng/plugin.c:705 src/gnomeshortcuts/gnomeshortcuts.c:310 +#: src/hotkey/gui.c:670 src/modplug/gui/interface.cxx:702 +#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:736 +#: src/scrobbler/gtkstuff.c:42 src/skins/plugin.c:130 msgid "OK" msgstr "OK" @@ -417,7 +416,8 @@ #: src/alarm/interface.c:612 src/alarm/interface.c:660 #: src/alarm/interface.c:708 src/alarm/interface.c:756 #: src/alarm/interface.c:804 src/alarm/interface.c:852 -#: src/alarm/interface.c:900 src/OSS4/configure.c:138 src/OSS/configure.c:169 +#: src/alarm/interface.c:900 src/OSS4/configure.c:136 src/OSS/configure.c:168 +#: src/skins/ui_manager.c:447 src/skins/ui_manager.c:468 msgid "Default" msgstr "デフォルト" @@ -462,9 +462,9 @@ msgstr "フェーディング" #: src/alarm/interface.c:1087 src/sid/xmms-sid.glade:2007 -#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2676 -#: src/sid/xs_interface.c:908 src/sid/xs_interface.c:962 -#: src/sid/xs_interface.c:1122 +#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2746 +#: src/sid/xs_interface.c:920 src/sid/xs_interface.c:974 +#: src/sid/xs_interface.c:1154 msgid "seconds" msgstr "秒" @@ -517,7 +517,7 @@ msgid "Use reminder" msgstr "リマインダを使う" -#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:377 +#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:376 msgid "Options" msgstr "オプション" @@ -631,7 +631,7 @@ " これを利用するにはボックス内にリマインダを書き\n" " トグルボタンを有効にします.\n" -#: src/alarm/interface.c:1366 +#: src/alarm/interface.c:1366 src/skins/ui_manager.c:386 msgid "Help" msgstr "ヘルプ" @@ -643,11 +643,11 @@ msgid "Thankyou" msgstr "ありがとう" -#: src/alsa/about.c:30 +#: src/alsa/about.c:29 msgid "About ALSA Driver" msgstr "ALSA ドライバについて" -#: src/alsa/about.c:31 +#: src/alsa/about.c:30 msgid "" "Audacious ALSA Driver\n" "\n" @@ -698,8 +698,8 @@ msgid "ALSA Driver configuration" msgstr "ALSA ドライバ設定" -#: src/alsa/configure.c:274 src/OSS4/configure.c:186 src/OSS/configure.c:217 -#: src/sun/configure.c:183 +#: src/alsa/configure.c:274 src/OSS4/configure.c:184 src/OSS/configure.c:216 +#: src/sun/configure.c:181 msgid "Audio device:" msgstr "オーディオデバイス:" @@ -711,7 +711,7 @@ msgid "Mixer card:" msgstr "ミキサカード:" -#: src/alsa/configure.c:313 src/OSS/configure.c:260 src/sun/configure.c:220 +#: src/alsa/configure.c:313 src/OSS/configure.c:259 src/sun/configure.c:218 msgid "Mixer device:" msgstr "ミキサデバイス:" @@ -1432,8 +1432,8 @@ "TiMidity\n" "バックエンド" -#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3465 -#: src/sid/xs_interface.c:1684 +#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3659 +#: src/sid/xs_interface.c:1768 msgid "Name:" msgstr "名前:" @@ -1559,19 +1559,19 @@ msgid "None" msgstr "なし" -#: src/aosd/aosd_trigger.c:75 +#: src/aosd/aosd_trigger.c:74 msgid "Playback Start" msgstr "演奏開始" -#: src/aosd/aosd_trigger.c:76 +#: src/aosd/aosd_trigger.c:75 msgid "Triggers OSD when a playlist entry is played." msgstr "プレイリストのエントリが演奏されたら OSD が動作します." -#: src/aosd/aosd_trigger.c:80 +#: src/aosd/aosd_trigger.c:79 msgid "Title Change" msgstr "タイトル変更" -#: src/aosd/aosd_trigger.c:81 +#: src/aosd/aosd_trigger.c:80 msgid "" "Triggers OSD when, during playback, the song title changes but the filename " "is the same. This is mostly useful to display title changes in internet " @@ -1581,27 +1581,27 @@ "す. これはインターネットストリームのタイトル変更を表示するのにとても役立ちま" "す." -#: src/aosd/aosd_trigger.c:87 +#: src/aosd/aosd_trigger.c:86 msgid "Volume Change" msgstr "音量変更" -#: src/aosd/aosd_trigger.c:88 +#: src/aosd/aosd_trigger.c:87 msgid "Triggers OSD when volume is changed." msgstr "音量が変更されたら OSD が動作します." -#: src/aosd/aosd_trigger.c:92 +#: src/aosd/aosd_trigger.c:91 msgid "Pause On" msgstr "演奏停止" -#: src/aosd/aosd_trigger.c:93 +#: src/aosd/aosd_trigger.c:92 msgid "Triggers OSD when playback is paused." msgstr "演奏が停止されたら OSD が動作します." +#: src/aosd/aosd_trigger.c:96 +msgid "Pause Off" +msgstr "演奏再開" + #: src/aosd/aosd_trigger.c:97 -msgid "Pause Off" -msgstr "演奏再開" - -#: src/aosd/aosd_trigger.c:98 msgid "Triggers OSD when playback is unpaused." msgstr "演奏が再開されたら OSD が動作します." @@ -1700,10 +1700,10 @@ msgid "Skin file:" msgstr "スキンファイル:" -#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2331 -#: src/sid/xmms-sid.glade:2856 src/sid/xmms-sid.glade:2962 -#: src/sid/xs_interface.c:1010 src/sid/xs_interface.c:1182 -#: src/sid/xs_interface.c:1218 +#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2373 +#: src/sid/xmms-sid.glade:2968 src/sid/xmms-sid.glade:3136 +#: src/sid/xs_interface.c:1043 src/sid/xs_interface.c:1235 +#: src/sid/xs_interface.c:1291 msgid "Browse" msgstr "参照" @@ -1786,9 +1786,9 @@ msgid "Trigger" msgstr "トリガー" -#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:167 +#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:175 #: src/modplug/gui/interface.cxx:688 src/modplug/gui/modplug.glade:1603 -#: src/sid/xmms-sid.glade:3026 src/sid/xs_interface.c:1229 +#: src/sid/xmms-sid.glade:3220 src/sid/xs_interface.c:1301 msgid "Misc" msgstr "その他" @@ -1826,11 +1826,11 @@ "http://neugierig.org/software/ghosd/\n" "\n" -#: src/arts/arts.c:22 +#: src/arts/arts.c:21 msgid "About aRts Output" msgstr "aRts 出力プラグインについて" -#: src/arts/arts.c:23 +#: src/arts/arts.c:22 msgid "" "aRts output plugin by Håvard Kvålen \n" "Audacious port by Giacomo Lozito from develia.org" @@ -1842,26 +1842,26 @@ msgid "aRts Driver configuration" msgstr "aRts ドライバ設定" -#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:232 -#: src/OSS/configure.c:304 src/sun/configure.c:259 +#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:230 +#: src/OSS/configure.c:303 src/sun/configure.c:257 msgid "Buffering:" msgstr "バッファリング:" -#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:245 -#: src/OSS/configure.c:317 src/sun/configure.c:272 +#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:243 +#: src/OSS/configure.c:316 src/sun/configure.c:270 msgid "Buffer size (ms):" msgstr "バッファのサイズ (ミリ秒):" -#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:270 -#: src/OSS/configure.c:342 src/sun/configure.c:304 +#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:268 +#: src/OSS/configure.c:341 src/sun/configure.c:302 msgid "Buffering" msgstr "バッファリング" -#: src/audiocompress/audacious-glue.c:95 +#: src/audiocompress/audacious-glue.c:103 msgid "AudioCompress " msgstr "オーディオ圧縮 " -#: src/audiocompress/audacious-glue.c:96 +#: src/audiocompress/audacious-glue.c:104 msgid "" "\n" "(c)2003 trikuare studios(http://trikuare.cx)\n" @@ -1877,11 +1877,11 @@ "ボリュームを一定のレベルに透過的に上げ下げする\n" "シンプルなダイナミックレンジコンプレッサ" -#: src/audiocompress/audacious-glue.c:101 +#: src/audiocompress/audacious-glue.c:109 msgid "About AudioCompress" msgstr "AudioCompress について" -#: src/audiocompress/audacious-glue.c:320 +#: src/audiocompress/audacious-glue.c:328 msgid "" "If checked, when the sound peaks the volume will be cut instantly; " "otherwise, it will ramp down just in time for the peak (but some minor " @@ -1891,15 +1891,15 @@ "ば, 必要に応じて音量が下げられます(ただし若干のクリッピングがそれでも発生しま" "す)." -#: src/audiocompress/audacious-glue.c:324 +#: src/audiocompress/audacious-glue.c:332 msgid "The maximum amount to amplify the audio by" msgstr "オーディオの増幅に用いられる最大値" -#: src/audiocompress/audacious-glue.c:326 +#: src/audiocompress/audacious-glue.c:334 msgid "Defines how smoothly the volume will ramp up" msgstr "音量を徐々に上げていく際のなめらかさ" -#: src/audiocompress/audacious-glue.c:328 +#: src/audiocompress/audacious-glue.c:336 msgid "" "The target audio level for ramping up. Lowering the value gives a bit more " "dynamic range for peaks, but will make the overall sound quieter." @@ -1907,83 +1907,83 @@ "音量を徐々に上げていく際のターゲットのオーディオレベル. 値を低くすると, ピー" "クへの範囲がより動的になるが, 全体的に音が静かになります." -#: src/audiocompress/audacious-glue.c:331 +#: src/audiocompress/audacious-glue.c:339 msgid "How long of a window to maintain" msgstr "保存用のウィンドウの長さ" -#: src/audiocompress/audacious-glue.c:372 +#: src/audiocompress/audacious-glue.c:380 msgid "AudioCompress preferences" msgstr "オーディオ圧縮 設定" -#: src/audiocompress/audacious-glue.c:389 +#: src/audiocompress/audacious-glue.c:397 msgid " Quality Options " msgstr " 音質オプション " -#: src/audiocompress/audacious-glue.c:394 +#: src/audiocompress/audacious-glue.c:402 msgid " Aggressively prevent clipping" msgstr " 積極的にクリッピングを予防する" -#: src/audiocompress/audacious-glue.c:406 +#: src/audiocompress/audacious-glue.c:414 msgid " Target & gain" msgstr " ターゲットとゲイン" -#: src/audiocompress/audacious-glue.c:417 +#: src/audiocompress/audacious-glue.c:425 msgid "Target audio level:" msgstr "ターゲットのオーディオレベル:" -#: src/audiocompress/audacious-glue.c:425 -msgid "Maximum gain:" -msgstr "最大ゲイン:" - #: src/audiocompress/audacious-glue.c:433 +msgid "Maximum gain:" +msgstr "最大ゲイン:" + +#: src/audiocompress/audacious-glue.c:441 msgid "Gain smooth:" msgstr "ゲインのなめらかさ:" -#: src/audiocompress/audacious-glue.c:485 +#: src/audiocompress/audacious-glue.c:493 msgid " History " msgstr " 履歴 " -#: src/audiocompress/audacious-glue.c:517 +#: src/audiocompress/audacious-glue.c:525 msgid "" "How long of a history to maintain. A higher number will make the volume " "changes less responsive." msgstr "保存する履歴の長さ. 高い数値は音量の変更の応答性を低くします." -#: src/audiocompress/audacious-glue.c:528 +#: src/audiocompress/audacious-glue.c:536 msgid "Load default values" msgstr "デフォルト値を読み込む" -#: src/audiocompress/audacious-glue.c:533 +#: src/audiocompress/audacious-glue.c:541 msgid "Audio values" msgstr "オーディオ設定" -#: src/audiocompress/audacious-glue.c:562 src/echo_plugin/gui.c:152 -#: src/modplug/gui/interface.cxx:708 src/modplug/gui/modplug.glade:1655 -#: src/stereo_plugin/stereo.c:132 +#: src/audiocompress/audacious-glue.c:570 src/crystalizer/crystalizer.c:129 +#: src/echo_plugin/gui.c:150 src/modplug/gui/interface.cxx:708 +#: src/modplug/gui/modplug.glade:1655 src/stereo_plugin/stereo.c:131 msgid "Apply" msgstr "適用" -#: src/blur_scope/blur_scope.c:54 +#: src/blur_scope/blur_scope.c:52 msgid "/Toggle Decorations" msgstr "/装飾の切り替え" -#: src/blur_scope/blur_scope.c:56 +#: src/blur_scope/blur_scope.c:54 msgid "/-" msgstr "/-" -#: src/blur_scope/blur_scope.c:57 +#: src/blur_scope/blur_scope.c:55 msgid "/Close" msgstr "/閉じる" -#: src/blur_scope/blur_scope.c:181 +#: src/blur_scope/blur_scope.c:179 msgid "Blur scope" msgstr "ブラースコープ" -#: src/blur_scope/config.c:72 +#: src/blur_scope/config.c:71 msgid "Blur Scope: Color selection" msgstr "ブラースコープ: 色の選択" -#: src/blur_scope/config.c:82 src/jack/configure.c:108 +#: src/blur_scope/config.c:81 src/jack/configure.c:107 msgid "Options:" msgstr "オプション:" @@ -2021,7 +2021,7 @@ "\n" "これは Google Summer of Code 2007 のプロジェクトでした." -#: src/cdaudio-ng/cdaudio-ng.c:814 +#: src/cdaudio-ng/cdaudio-ng.c:815 msgid "" "No playable CD found.\n" "\n" @@ -2031,98 +2031,103 @@ "\n" "CD が挿入されていないか, オーディオ CD ではありません.\n" -#: src/cdaudio-ng/configure.c:147 +#: src/cdaudio-ng/configure.c:155 msgid "CD Audio Plugin Configuration" msgstr "CD オーディオプラグインの設定" -#: src/cdaudio-ng/configure.c:157 +#: src/cdaudio-ng/configure.c:165 msgid "Digital audio extraction" msgstr "ディジタルオーディオ抽出" -#: src/cdaudio-ng/configure.c:162 +#: src/cdaudio-ng/configure.c:170 msgid "Title information" msgstr "タイトル情報" -#: src/cdaudio-ng/configure.c:179 +#: src/cdaudio-ng/configure.c:187 msgid "Limit read speed to: " msgstr "読み込み速度の制限値: " -#: src/cdaudio-ng/configure.c:186 +#: src/cdaudio-ng/configure.c:194 msgid "Use cd-text if available" msgstr "有効ならば cd-text を使う" -#: src/cdaudio-ng/configure.c:190 +#: src/cdaudio-ng/configure.c:198 msgid "Use CDDB if available" msgstr "有効ならば CDDB を使う" -#: src/cdaudio-ng/configure.c:194 +#: src/cdaudio-ng/configure.c:202 msgid "Server: " msgstr "サーバ: " -#: src/cdaudio-ng/configure.c:197 +#: src/cdaudio-ng/configure.c:205 +#, fuzzy +msgid "Path: " +msgstr "パターン: " + +#: src/cdaudio-ng/configure.c:208 msgid "Port: " msgstr "ポート番号: " -#: src/cdaudio-ng/configure.c:203 +#: src/cdaudio-ng/configure.c:217 msgid "Use HTTP instead of CDDBP" msgstr "CDDBP の代わりに HTTP を使う" -#: src/cdaudio-ng/configure.c:211 +#: src/cdaudio-ng/configure.c:225 msgid "Override default device: " msgstr "デフォルトデバイスを上書きする: " -#: src/cdaudio-ng/configure.c:218 +#: src/cdaudio-ng/configure.c:232 msgid "Print debug information" msgstr "デバグ情報を出力する" -#: src/console/Audacious_Config.cxx:125 +#: src/console/Audacious_Config.cxx:124 msgid "Console Music Decoder" msgstr "コンソールミュージックデコーダ" -#: src/console/Audacious_Config.cxx:162 +#: src/console/Audacious_Config.cxx:161 msgid "Bass:" msgstr "ベース:" -#: src/console/Audacious_Config.cxx:166 src/console/Audacious_Config.cxx:177 -#: src/console/Audacious_Config.cxx:198 +#: src/console/Audacious_Config.cxx:165 src/console/Audacious_Config.cxx:176 +#: src/console/Audacious_Config.cxx:197 msgid "secs" msgstr "秒" -#: src/console/Audacious_Config.cxx:173 +#: src/console/Audacious_Config.cxx:172 msgid "Treble:" msgstr "トリバル:" -#: src/console/Audacious_Config.cxx:194 +#: src/console/Audacious_Config.cxx:193 msgid "Default song length:" msgstr "デフォルトの曲の長さ:" -#: src/console/Audacious_Config.cxx:200 src/modplug/gui/interface.cxx:268 +#: src/console/Audacious_Config.cxx:199 src/modplug/gui/interface.cxx:268 #: src/modplug/gui/modplug.glade:338 src/sid/xmms-sid.glade:1243 -#: src/sid/xs_interface.c:653 +#: src/sid/xs_interface.c:665 msgid "Resampling" msgstr "リサンプリング" -#: src/console/Audacious_Config.cxx:206 +#: src/console/Audacious_Config.cxx:205 msgid "Enable audio resampling" msgstr "オーディオリサンプリングを有効にする" -#: src/console/Audacious_Config.cxx:221 +#: src/console/Audacious_Config.cxx:220 msgid "Resampling rate:" msgstr "リサンプリングレート:" -#: src/console/Audacious_Config.cxx:236 +#: src/console/Audacious_Config.cxx:235 msgid "SPC" msgstr "SPC" -#: src/console/Audacious_Config.cxx:237 +#: src/console/Audacious_Config.cxx:236 msgid "Ignore length from SPC tags" msgstr "SPC タグからの長さを無視する" -#: src/console/Audacious_Config.cxx:238 +#: src/console/Audacious_Config.cxx:237 msgid "Increase reverb" msgstr "リバーブを増やす" -#: src/console/Audacious_Config.cxx:263 +#: src/console/Audacious_Config.cxx:262 msgid "" "The default song length, expressed in seconds, is used for songs that do not " "provide length information (i.e. looping tracks)." @@ -2130,11 +2135,11 @@ "秒数で表現されるデフォルトの曲の長さは, 長さ情報を提供しない曲 (例えばループ" "するトラック) に用いられます." -#: src/console/Audacious_Driver.cxx:444 +#: src/console/Audacious_Driver.cxx:442 msgid "About the Console Music Decoder" msgstr "コンソールミュージックデコーダについて" -#: src/console/Audacious_Driver.cxx:445 +#: src/console/Audacious_Driver.cxx:443 msgid "" "Console music decoder engine based on Game_Music_Emu 0.5.2.\n" "Supported formats: AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ\n" @@ -2148,11 +2153,20 @@ "Audacious の実装は William Pitcock と\n" "Shay Green によります." -#: src/demac/plugin.c:388 +#: src/crystalizer/crystalizer.c:90 +#, fuzzy +msgid "Configure Crystalizer" +msgstr "エクストラステレオの設定" + +#: src/crystalizer/crystalizer.c:92 src/stereo_plugin/stereo.c:94 +msgid "Effect intensity:" +msgstr "エフェクトの強さ:" + +#: src/demac/plugin.c:359 msgid "About Monkey's Audio Plugin" msgstr "Monkey's オーディオプラグインについて" -#: src/demac/plugin.c:389 +#: src/demac/plugin.c:360 msgid "" "Copyright (C) 2007 Eugene Zagidullin \n" "Based on ffape decoder, Copyright (C) 2007 Benjamin Zores\n" @@ -2166,7 +2180,7 @@ "\n" "ffape は FFmpeg プロジェクト(http://ffmpeg.mplayerhq.hu/) の一部である." -#: src/echo_plugin/gui.c:11 +#: src/echo_plugin/gui.c:9 msgid "" "Echo Plugin\n" "By Johan Levin 1999.\n" @@ -2178,35 +2192,35 @@ "\n" "サラウンドエコーは 1999 年 Carl van Schaik による" -#: src/echo_plugin/gui.c:25 +#: src/echo_plugin/gui.c:23 msgid "About Echo Plugin" msgstr "エコー プラグインについて" -#: src/echo_plugin/gui.c:76 +#: src/echo_plugin/gui.c:74 msgid "Configure Echo" msgstr "エコー設定" -#: src/echo_plugin/gui.c:89 +#: src/echo_plugin/gui.c:87 msgid "Delay: (ms)" msgstr "遅延: (ミリ秒)" -#: src/echo_plugin/gui.c:94 +#: src/echo_plugin/gui.c:92 msgid "Feedback: (%)" msgstr "フィードバック: (%)" -#: src/echo_plugin/gui.c:99 +#: src/echo_plugin/gui.c:97 msgid "Volume: (%)" msgstr "音量: (%)" -#: src/echo_plugin/gui.c:122 +#: src/echo_plugin/gui.c:120 msgid "Surround echo" msgstr "サラウンドエコー" -#: src/esd/about.c:34 +#: src/esd/about.c:33 msgid "About ESounD Plugin" msgstr "ESounD プラグインについて" -#: src/esd/about.c:35 +#: src/esd/about.c:34 msgid "" "Audacious ESounD Plugin\n" "\n" @@ -2266,8 +2280,8 @@ msgid "Server" msgstr "サーバ" -#: src/esd/configure.c:198 src/OSS4/configure.c:259 src/OSS/configure.c:331 -#: src/sun/configure.c:290 +#: src/esd/configure.c:198 src/OSS4/configure.c:257 src/OSS/configure.c:330 +#: src/sun/configure.c:288 msgid "Pre-buffer (percent):" msgstr "事前にバッファリングする割合 (%):" @@ -2339,7 +2353,7 @@ msgid "Window->JumpToFile" msgstr "ウィンドウ->ファイルへジャンプ" -#: src/evdev-plug/ed_internals.c:94 +#: src/evdev-plug/ed_internals.c:93 #, c-format msgid "" "event-device-plugin: unable to open device file %s , skipping this device; " @@ -2349,7 +2363,7 @@ "します; ファイルが存在することと読み込みパーミッションがあるか確認してくださ" "い\n" -#: src/evdev-plug/ed_internals.c:103 +#: src/evdev-plug/ed_internals.c:102 #, c-format msgid "" "event-device-plugin: unable to create a io_channel for device file %s ," @@ -2358,7 +2372,7 @@ "event-device-plugin: デバイスファイル %s の io_channel を作成できません,この" "デバイスをスキップします\n" -#: src/evdev-plug/ed_internals.c:342 +#: src/evdev-plug/ed_internals.c:341 msgid "" "event-device-plugin: unable to open /proc/bus/input/devices , automatic " "detection of event devices won't work.\n" @@ -2366,7 +2380,7 @@ "event-device-plugin: /proc/bus/input/devices を開けません, イベントデバイスの" "自動検出は動作しません.\n" -#: src/evdev-plug/ed_internals.c:351 +#: src/evdev-plug/ed_internals.c:350 msgid "" "event-device-plugin: unable to open a io_channel for /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" @@ -2374,7 +2388,7 @@ "event-device-plugin: /proc/bus/input/ デバイスの io_channel を開けません, イ" "ベントデバイスの自動検出は動作しません.\n" -#: src/evdev-plug/ed_internals.c:361 +#: src/evdev-plug/ed_internals.c:360 msgid "" "event-device-plugin: an error occurred while reading /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" @@ -2382,14 +2396,14 @@ "event-device-plugin: /proc/bus/input/ デバイスの読み込み中にエラーが発生しま" "した, イベントデバイスの自動検出は動作しません.\n" -#: src/evdev-plug/ed_internals.c:424 +#: src/evdev-plug/ed_internals.c:423 #, c-format msgid "event-device-plugin: device %s not found in /dev/input , skipping.\n" msgstr "" "event-device-plugin: デバイス %s が /dev/input に見つかりません, スキップしま" "す.\n" -#: src/evdev-plug/ed_internals.c:489 src/evdev-plug/ed_internals.c:583 +#: src/evdev-plug/ed_internals.c:488 src/evdev-plug/ed_internals.c:582 #, c-format msgid "" "event-device-plugin: unable to load config file %s , default settings will " @@ -2398,7 +2412,7 @@ "event-device-plugin: コンフィグファイル %s が読み込めません, デフォルト設定が" "用いられます.\n" -#: src/evdev-plug/ed_internals.c:535 +#: src/evdev-plug/ed_internals.c:534 #, c-format msgid "" "event-device-plugin: incomplete information in config file for device \"%s" @@ -2407,7 +2421,7 @@ "event-device-plugin: デバイス \"%s\" のコンフィグファイルの情報が不完全です, " "スキップします.\n" -#: src/evdev-plug/ed_internals.c:604 src/evdev-plug/ed_internals.c:936 +#: src/evdev-plug/ed_internals.c:603 src/evdev-plug/ed_internals.c:935 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_active value for device " @@ -2416,7 +2430,7 @@ "event-device-plugin: 設定: デバイス \"%s\" の is_active 値が取得できません, " "スキップします.\n" -#: src/evdev-plug/ed_internals.c:840 +#: src/evdev-plug/ed_internals.c:839 #, c-format msgid "" "event-device-plugin: unable to access local directory %s , settings will not " @@ -2425,7 +2439,7 @@ "event-device-plugin: ローカルディレクトリ %s にアクセスできません, 設定は保存" "されません.\n" -#: src/evdev-plug/ed_internals.c:890 +#: src/evdev-plug/ed_internals.c:889 #, c-format msgid "" "event-device-plugin: configuration, unable to get filename value for device " @@ -2434,7 +2448,7 @@ "event-device-plugin: 設定: デバイス \"%s\" のファイル名が取得できません, ス" "キップします.\n" -#: src/evdev-plug/ed_internals.c:906 +#: src/evdev-plug/ed_internals.c:905 #, c-format msgid "" "event-device-plugin: configuration, unable to get phys value for device \"%s" @@ -2443,7 +2457,7 @@ "event-device-plugin: 設定: デバイス \"%s\" の phys 値が取得できません, スキッ" "プします.\n" -#: src/evdev-plug/ed_internals.c:922 +#: src/evdev-plug/ed_internals.c:921 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_custom value for device " @@ -2452,7 +2466,7 @@ "event-device-plugin: 設定: デバイス \"%s\" の is_custom 値が取得できません, " "スキップします.\n" -#: src/evdev-plug/ed_internals.c:946 +#: src/evdev-plug/ed_internals.c:945 #, c-format msgid "" "event-device-plugin: configuration, unexpected value for device \"%s\", " @@ -2474,7 +2488,7 @@ "デバイスが検出されていないため, バインディングウィンドウが開けません.\n" "デバイスが正しく接続されていることを確認してください." -#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:566 +#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:703 msgid "Error" msgstr "エラー" @@ -2537,7 +2551,7 @@ msgid "Active" msgstr "アクティブ" -#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:488 +#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:486 msgid "Status" msgstr "状態" @@ -2662,7 +2676,7 @@ msgid "Output file format:" msgstr "出力ファイルフォーマット:" -#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:960 +#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:959 msgid "Configure" msgstr "設定" @@ -2897,11 +2911,11 @@ msgid "Quality level (0 - 10):" msgstr "品質レベル (0 - 10):" -#: src/flacng/plugin.c:698 +#: src/flacng/plugin.c:697 msgid "FLAC Audio Plugin " msgstr "FLAC オーディオ プラグイン" -#: src/flacng/plugin.c:699 +#: src/flacng/plugin.c:698 msgid "" "\n" "\n" @@ -2917,15 +2931,15 @@ "\n" "http://www.skytale.net/projects/bmp-flac2/" -#: src/flacng/plugin.c:704 +#: src/flacng/plugin.c:703 msgid "About FLAC Audio Plugin" msgstr "FLAC オーディオプラグインについて" +#: src/gnomeshortcuts/gnomeshortcuts.c:305 +msgid "About Gnome Shortcut Plugin" +msgstr "Gnome ショートカットプラグインについて" + #: src/gnomeshortcuts/gnomeshortcuts.c:306 -msgid "About Gnome Shortcut Plugin" -msgstr "Gnome ショートカットプラグインについて" - -#: src/gnomeshortcuts/gnomeshortcuts.c:307 msgid "" "Gnome Shortcut Plugin\n" "Let's you control the player with Gnome's shortcuts.\n" @@ -2943,7 +2957,7 @@ msgid "Previous Track" msgstr "前のトラック" -#: src/hotkey/gui.c:69 +#: src/hotkey/gui.c:69 src/skins/ui_manager.c:177 src/skins/ui_manager.c:178 msgid "Play" msgstr "演奏開始" @@ -2951,7 +2965,7 @@ msgid "Pause/Resume" msgstr "一時停止/再開" -#: src/hotkey/gui.c:71 +#: src/hotkey/gui.c:71 src/skins/ui_manager.c:183 src/skins/ui_manager.c:184 msgid "Stop" msgstr "演奏停止" @@ -2979,7 +2993,7 @@ msgid "Volume Down" msgstr "音量を下げる" -#: src/hotkey/gui.c:78 +#: src/hotkey/gui.c:78 src/skins/ui_manager.c:422 src/skins/ui_manager.c:423 msgid "Jump to File" msgstr "指定ファイルへ移動" @@ -3034,11 +3048,11 @@ msgid "Key Binding:" msgstr "キーバインド:" -#: src/hotkey/gui.c:660 +#: src/hotkey/gui.c:659 msgid "About Global Hotkey Plugin" msgstr "グローバルホットキープラグインについて" -#: src/hotkey/gui.c:661 +#: src/hotkey/gui.c:660 msgid "" "Global Hotkey Plugin\n" "Control the player with global key combinations or multimedia keys.\n" @@ -3066,35 +3080,35 @@ "\t\t\tJeremy Tan \n" "\n" -#: src/jack/configure.c:70 +#: src/jack/configure.c:69 msgid "Connect to all available jack ports" msgstr "有効なすべての jack ポートに接続する" -#: src/jack/configure.c:77 +#: src/jack/configure.c:76 msgid "Connect only the output ports" msgstr "出力ポートにのみ接続する" -#: src/jack/configure.c:84 +#: src/jack/configure.c:83 msgid "Connect to no ports" msgstr "ポートに接続しない" -#: src/jack/configure.c:99 +#: src/jack/configure.c:98 msgid "jack Plugin configuration" msgstr "jack プラグイン設定" -#: src/jack/configure.c:117 +#: src/jack/configure.c:116 msgid "Connection mode:" msgstr "接続モード" -#: src/jack/configure.c:129 +#: src/jack/configure.c:128 msgid "Enable debug printing" msgstr "デバグ出力を有効にする" -#: src/jack/jack.c:84 +#: src/jack/jack.c:82 msgid "Sample rate mismatch" msgstr "サンプリングレートの不一致" -#: src/jack/jack.c:87 +#: src/jack/jack.c:85 msgid "" "Xmms is asking for a sample rate that differs from\n" " that of the jack server. Xmms 1.2.8 or later\n" @@ -3117,15 +3131,15 @@ "\n" "Chris Morgan \n" -#: src/jack/jack.c:100 src/wma/wma.c:148 +#: src/jack/jack.c:98 src/wma/wma.c:145 msgid " Close " msgstr " 閉じる " -#: src/jack/jack.c:452 +#: src/jack/jack.c:450 msgid "About JACK Output Plugin 0.17" msgstr "JACK 出力プラグイン 0.17 について" -#: src/jack/jack.c:453 +#: src/jack/jack.c:451 msgid "" "XMMS jack Driver 0.17\n" "\n" @@ -3143,39 +3157,39 @@ "develia.org の Giacomo Lozito による\n" "Audacious ポート" -#: src/ladspa/ladspa.c:722 +#: src/ladspa/ladspa.c:721 msgid "This LADSPA plugin has no user controls" msgstr "LADSPA プラグインにユーザコントロールはありません" -#: src/ladspa/ladspa.c:767 src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:766 src/ladspa/ladspa.c:852 msgid "Name" msgstr "名前" -#: src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:852 msgid "UID" msgstr "UID" -#: src/ladspa/ladspa.c:928 +#: src/ladspa/ladspa.c:927 msgid "Installed plugins" msgstr "インストール済プラグイン" -#: src/ladspa/ladspa.c:937 +#: src/ladspa/ladspa.c:936 msgid "Running plugins" msgstr "動作中のプラグイン" -#: src/ladspa/ladspa.c:952 +#: src/ladspa/ladspa.c:951 msgid "Add" msgstr "追加" -#: src/ladspa/ladspa.c:956 +#: src/ladspa/ladspa.c:955 msgid "Remove" msgstr "削除" -#: src/ladspa/ladspa.c:969 +#: src/ladspa/ladspa.c:968 msgid "LADSPA Plugin Catalog" msgstr "LADSPA プラグイン カタログ" -#: src/lastfm/lastfm.c:96 +#: src/lastfm/lastfm.c:94 msgid "" "Couldn't initialize the last.fm radio plugin.\n" "\n" @@ -3275,56 +3289,56 @@ msgid "%s: will try reconnect every %d seconds...\n" msgstr "%s: %d 秒ごとに再接続を試みます...\n" -#: src/madplug/configure.c:209 +#: src/madplug/configure.c:208 msgid "MPEG Audio Plugin Configuration" msgstr "MPEG オーディオ プラグインの設定" -#: src/madplug/configure.c:226 +#: src/madplug/configure.c:225 msgid "Audio Settings" msgstr "オーディオ設定" -#: src/madplug/configure.c:234 +#: src/madplug/configure.c:233 msgid "Force reopen audio when audio type changed" msgstr "オーディオタイプが変更されたとき強制的にオーディオを再オープンする" -#: src/madplug/configure.c:243 +#: src/madplug/configure.c:242 msgid "Metadata Settings" msgstr "メタデータ設定" -#: src/madplug/configure.c:252 +#: src/madplug/configure.c:251 msgid "Enable fast play-length calculation" msgstr "高速演奏長計算を有効にする" -#: src/madplug/configure.c:259 +#: src/madplug/configure.c:258 msgid "Parse XING headers" msgstr "XING ヘッダをパースする" -#: src/madplug/configure.c:266 +#: src/madplug/configure.c:265 msgid "Use SJIS to write ID3 tags (not recommended)" msgstr "ID3 タグの書き込みに SJIS を使う (非推奨)" -#: src/madplug/configure.c:273 +#: src/madplug/configure.c:272 msgid "Miscellaneous Settings" msgstr "雑多な設定" -#: src/madplug/configure.c:282 +#: src/madplug/configure.c:281 msgid "Display average bitrate for VBR" msgstr "VBR の平均ビットレートを表示する" -#: src/madplug/configure.c:296 src/vorbis/configure.c:102 +#: src/madplug/configure.c:295 src/vorbis/configure.c:100 msgid "Override generic titles" msgstr "オリジナルのタイトルを上書きする" -#: src/madplug/configure.c:308 +#: src/madplug/configure.c:307 msgid "ID3 format:" msgstr "ID3 の書式:" -#: src/madplug/configure.c:320 src/sid/xmms-sid.glade:2540 -#: src/sid/xs_interface.c:1070 +#: src/madplug/configure.c:319 src/sid/xmms-sid.glade:2610 +#: src/sid/xs_interface.c:1102 msgid "Title" msgstr "タイトル" -#: src/madplug/plugin.c:524 +#: src/madplug/plugin.c:661 #, c-format msgid "" "Audacious MPEG Audio Plugin\n" @@ -3355,15 +3369,15 @@ "リプレイゲインサポート:\n" " Samuel Krempp" -#: src/madplug/plugin.c:540 +#: src/madplug/plugin.c:677 msgid "About MPEG Audio Plugin" msgstr "MPEG オーディオプラグインについて" +#: src/metronom/metronom.c:86 +msgid "About Metronom" +msgstr "Metronom について" + #: src/metronom/metronom.c:87 -msgid "About Metronom" -msgstr "Metronom について" - -#: src/metronom/metronom.c:88 msgid "" "A Tact Generator by Martin Strauss \n" "\n" @@ -3377,12 +3391,12 @@ "例: tact://77 - 毎分 77 拍を演奏\n" " tact://60*3/4 - 60 bpm を 3/4 拍子で演奏" -#: src/metronom/metronom.c:198 src/metronom/metronom.c:262 +#: src/metronom/metronom.c:197 src/metronom/metronom.c:261 #, c-format msgid "Tact generator: %d bpm" msgstr "タクトジェネレータ: %d bpm" -#: src/metronom/metronom.c:200 src/metronom/metronom.c:264 +#: src/metronom/metronom.c:199 src/metronom/metronom.c:263 #, c-format msgid "Tact generator: %d bpm %d/%d" msgstr "タクトジェネレータ: %d bpm %d/%d" @@ -3597,11 +3611,11 @@ msgid "Message" msgstr "メッセージ" -#: src/modplug/gui/main.cxx:45 +#: src/modplug/gui/main.cxx:48 msgid "Modplug Input Plugin for Audacious ver" msgstr "Modplug 入力プラグイン for Audacious ver" -#: src/modplug/gui/main.cxx:46 +#: src/modplug/gui/main.cxx:49 msgid "" "\n" "Modplug sound engine written by Olivier Lapicque.\n" @@ -3617,7 +3631,7 @@ "更新とメンテナンスは Konstanty Bialkowski による.\n" "BMP へのポートは Theofilos Intzoglou による." -#: src/modplug/gui/main.cxx:49 +#: src/modplug/gui/main.cxx:52 msgid "About Modplug" msgstr "Modplug について" @@ -3627,27 +3641,27 @@ msgid "Couldn't find pixmap file: %s" msgstr "pixmap ファイルが見つかりませんでした: %s" -#: src/mtp_up/mtp.c:35 +#: src/mtp_up/mtp.c:33 msgid "Upload selected track(s)" msgstr "選択されたトラックをアップロード" -#: src/mtp_up/mtp.c:296 +#: src/mtp_up/mtp.c:294 msgid "Upload in progress..." msgstr "アップロード進行中..." -#: src/mtp_up/mtp.c:305 +#: src/mtp_up/mtp.c:303 msgid "MTP device handler" msgstr "MTP デバイスハンドラ" -#: src/mtp_up/mtp.c:309 +#: src/mtp_up/mtp.c:307 msgid "Disconnect the device" msgstr "デバイスを切断" -#: src/musepack/libmpc.cxx:146 +#: src/musepack/libmpc.cxx:142 msgid "Musepack Decoder Plugin 1.2" msgstr "Musepack デコーダプラグイン 1.2" -#: src/musepack/libmpc.cxx:147 +#: src/musepack/libmpc.cxx:143 msgid "" "Plugin code by\n" "Benoit Amiaux\n" @@ -3663,174 +3677,175 @@ "\n" "http://musepack.net にて最新版が取得できます\n" -#: src/musepack/libmpc.cxx:148 +#: src/musepack/libmpc.cxx:144 msgid "Nevermind" msgstr "気にしない" -#: src/musepack/libmpc.cxx:166 +#: src/musepack/libmpc.cxx:162 msgid "Musepack Decoder Configuration" msgstr "Musepack デコーダ設定" -#: src/musepack/libmpc.cxx:176 +#: src/musepack/libmpc.cxx:172 msgid "General Settings" msgstr "一般的な設定" -#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:492 +#: src/musepack/libmpc.cxx:179 src/wavpack/ui.cxx:490 msgid "Enable Dynamic Bitrate Display" msgstr "動的ビットレート表示を有効にする" -#: src/musepack/libmpc.cxx:187 src/wavpack/ui.cxx:498 +#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:496 msgid "Plugin" msgstr "プラグイン" -#: src/musepack/libmpc.cxx:190 +#: src/musepack/libmpc.cxx:186 msgid "ReplayGain Settings" msgstr "リプレイゲインの設定" -#: src/musepack/libmpc.cxx:197 src/wavpack/ui.cxx:510 +#: src/musepack/libmpc.cxx:193 src/wavpack/ui.cxx:508 msgid "Enable Clipping Prevention" msgstr "クリッピング回避機能を有効にする" -#: src/musepack/libmpc.cxx:202 src/wavpack/ui.cxx:515 +#: src/musepack/libmpc.cxx:198 src/wavpack/ui.cxx:513 msgid "Enable ReplayGain" msgstr "リプレイゲインを有効にする" -#: src/musepack/libmpc.cxx:207 +#: src/musepack/libmpc.cxx:203 msgid "ReplayGain Type" msgstr "リプレイゲインの種類" -#: src/musepack/libmpc.cxx:215 +#: src/musepack/libmpc.cxx:211 msgid "Use Track Gain" msgstr "トラックゲインを使用する" -#: src/musepack/libmpc.cxx:219 +#: src/musepack/libmpc.cxx:215 msgid "Use Album Gain" msgstr "アルバムゲインを使用する" -#: src/musepack/libmpc.cxx:224 src/wavpack/ui.cxx:547 +#: src/musepack/libmpc.cxx:220 src/wavpack/ui.cxx:545 msgid "ReplayGain" msgstr "リプレイゲイン" -#: src/musepack/libmpc.cxx:491 src/sid/xmms-sid.glade:3144 -#: src/sid/xs_interface.c:1564 src/tta/libtta.c:304 src/wavpack/ui.cxx:152 +#: src/musepack/libmpc.cxx:487 src/sid/xmms-sid.glade:3338 +#: src/sid/xs_interface.c:1648 src/tta/libtta.c:301 src/wavpack/ui.cxx:150 msgid "Filename:" msgstr "ファイル名:" -#: src/musepack/libmpc.cxx:506 +#: src/musepack/libmpc.cxx:502 msgid "Musepack Tag" msgstr "Musepack タグ" -#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:323 src/wavpack/ui.cxx:172 +#: src/musepack/libmpc.cxx:510 src/tta/libtta.c:320 src/wavpack/ui.cxx:170 msgid "Title:" msgstr "タイトル:" -#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:333 src/wavpack/ui.cxx:184 +#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:330 src/wavpack/ui.cxx:182 msgid "Artist:" msgstr "アーティスト:" -#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:344 src/wavpack/ui.cxx:196 +#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:341 src/wavpack/ui.cxx:194 msgid "Album:" msgstr "アルバム名:" -#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:355 src/wavpack/ui.cxx:208 +#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:352 src/wavpack/ui.cxx:206 msgid "Comment:" msgstr "コメント:" -#: src/musepack/libmpc.cxx:530 src/tta/libtta.c:366 src/wavpack/ui.cxx:221 +#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:363 src/wavpack/ui.cxx:219 msgid "Year:" msgstr "年:" -#: src/musepack/libmpc.cxx:535 +#: src/musepack/libmpc.cxx:531 msgid "Track:" msgstr "トラック:" -#: src/musepack/libmpc.cxx:540 src/tta/libtta.c:390 src/wavpack/ui.cxx:248 +#: src/musepack/libmpc.cxx:536 src/tta/libtta.c:387 src/wavpack/ui.cxx:246 msgid "Genre:" msgstr "ジャンル:" -#: src/musepack/libmpc.cxx:551 src/sid/xmms-sid.glade:1732 -#: src/sid/xs_interface.c:820 src/wavpack/ui.cxx:267 +#: src/musepack/libmpc.cxx:547 src/sid/xmms-sid.glade:1732 +#: src/sid/xs_interface.c:832 src/skins/ui_manager.c:438 +#: src/wavpack/ui.cxx:265 msgid "Save" msgstr "保存" -#: src/musepack/libmpc.cxx:554 src/wavpack/ui.cxx:273 +#: src/musepack/libmpc.cxx:550 src/wavpack/ui.cxx:271 msgid "Remove Tag" msgstr "タグの削除" -#: src/musepack/libmpc.cxx:562 +#: src/musepack/libmpc.cxx:558 msgid "Musepack Info" msgstr "Musepack 情報" +#: src/musepack/libmpc.cxx:591 +#, c-format +msgid "Streamversion %d" +msgstr "ストリームヴァージョン %d" + +#: src/musepack/libmpc.cxx:592 +#, c-format +msgid "Encoder: %s" +msgstr "エンコーダ: %s" + +#: src/musepack/libmpc.cxx:593 +#, c-format +msgid "Profile: %s" +msgstr "プロファイル: %s" + +#: src/musepack/libmpc.cxx:594 +#, c-format +msgid "Average bitrate: %6.1f kbps" +msgstr "平均ビットレート: %6.1f kbps" + #: src/musepack/libmpc.cxx:595 #, c-format -msgid "Streamversion %d" -msgstr "ストリームヴァージョン %d" +msgid "Samplerate: %d Hz" +msgstr "サンプリングレート: %d Hz" #: src/musepack/libmpc.cxx:596 #, c-format -msgid "Encoder: %s" -msgstr "エンコーダ: %s" +msgid "Channels: %d" +msgstr "チャンネル数: %d" #: src/musepack/libmpc.cxx:597 #, c-format -msgid "Profile: %s" -msgstr "プロファイル: %s" - -#: src/musepack/libmpc.cxx:598 -#, c-format -msgid "Average bitrate: %6.1f kbps" -msgstr "平均ビットレート: %6.1f kbps" - -#: src/musepack/libmpc.cxx:599 -#, c-format -msgid "Samplerate: %d Hz" -msgstr "サンプリングレート: %d Hz" - -#: src/musepack/libmpc.cxx:600 -#, c-format -msgid "Channels: %d" -msgstr "チャンネル数: %d" - -#: src/musepack/libmpc.cxx:601 -#, c-format msgid "Length: %d:\\%.2d" msgstr "長さ: %d:\\%.2d" -#: src/musepack/libmpc.cxx:602 +#: src/musepack/libmpc.cxx:598 #, c-format msgid "File size: %d Bytes" msgstr "ファイルサイズ: %d Bytes" -#: src/musepack/libmpc.cxx:603 +#: src/musepack/libmpc.cxx:599 #, c-format msgid "Track Peak: %5u" msgstr "トラックピーク: %5u" -#: src/musepack/libmpc.cxx:604 +#: src/musepack/libmpc.cxx:600 #, c-format msgid "Track Gain: %-+2.2f dB" msgstr "トラックゲイン: %-+2.2f dB" -#: src/musepack/libmpc.cxx:605 +#: src/musepack/libmpc.cxx:601 #, c-format msgid "Album Peak: %5u" msgstr "アルバムピーク: %5u" -#: src/musepack/libmpc.cxx:606 +#: src/musepack/libmpc.cxx:602 #, c-format msgid "Album Gain: %-+5.2f dB" msgstr "アルバムゲイン: %-+5.2f dB" -#: src/musepack/libmpc.cxx:634 src/tta/libtta.c:413 src/wavpack/ui.cxx:409 +#: src/musepack/libmpc.cxx:630 src/tta/libtta.c:410 src/wavpack/ui.cxx:407 #, c-format msgid "File Info - %s" msgstr "ファイル情報 - %s" -#: src/null/null.c:61 +#: src/null/null.c:58 msgid "Null output plugin " msgstr "ヌル出力プラグイン " -#: src/null/null.c:62 +#: src/null/null.c:59 msgid "" " by Christian Birchinger \n" "based on the XMMS plugin by Håvard Kvål " @@ -3838,23 +3853,52 @@ " Håvard Kvål の XMMS プラグインをベースとした\n" " Christian Birchinger によるポート" -#: src/null/null.c:65 +#: src/null/null.c:62 msgid "About Null Output" msgstr "ヌル出力プラグインについて" -#: src/null/null.c:94 +#: src/null/null.c:91 msgid "Null output preferences" msgstr "ヌル出力設定" -#: src/null/null.c:103 +#: src/null/null.c:100 msgid "Run in real time" msgstr "実時間で実行する" -#: src/OSS4/about.c:42 +#: src/OSS4/configure.c:118 src/OSS/configure.c:150 +#, c-format +msgid "Default (%s)" +msgstr "デフォルト (%s)" + +#: src/OSS4/configure.c:168 src/OSS/configure.c:200 +msgid "OSS Driver configuration" +msgstr "OSS ドライバの設定" + +#: src/OSS4/configure.c:206 src/OSS/configure.c:238 src/OSS/configure.c:279 +msgid "Use alternate device:" +msgstr "代替デバイスを使用する:" + +#: src/OSS4/configure.c:228 src/OSS/configure.c:301 src/sun/configure.c:246 +msgid "Devices" +msgstr "デバイス" + +#: src/OSS4/configure.c:270 src/OSS/configure.c:342 +msgid "Mixer Settings:" +msgstr "ミキサの設定:" + +#: src/OSS4/configure.c:276 +msgid "Save VMIX volume between sessions" +msgstr "セッション間の VMIX 音量を保存" + +#: src/OSS4/configure.c:282 src/OSS/configure.c:354 src/sun/configure.c:392 +msgid "Mixer" +msgstr "ミキサ" + +#: src/OSS4/OSS4.c:38 msgid "About OSSv4 Driver" msgstr "OSSv4 ドライバについて" -#: src/OSS4/about.c:43 +#: src/OSS4/OSS4.c:39 msgid "" "Audacious OSSv4 Driver\n" "\n" @@ -3896,40 +3940,15 @@ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n" "USA. まで請求して下さい." -#: src/OSS4/configure.c:120 src/OSS/configure.c:151 -#, c-format -msgid "Default (%s)" -msgstr "デフォルト (%s)" - -#: src/OSS4/configure.c:170 src/OSS/configure.c:201 -msgid "OSS Driver configuration" -msgstr "OSS ドライバの設定" - -#: src/OSS4/configure.c:208 src/OSS/configure.c:239 src/OSS/configure.c:280 -msgid "Use alternate device:" -msgstr "代替デバイスを使用する:" - -#: src/OSS4/configure.c:230 src/OSS/configure.c:302 src/sun/configure.c:248 -msgid "Devices" -msgstr "デバイス" - -#: src/OSS4/configure.c:272 src/OSS/configure.c:343 -msgid "Mixer Settings:" -msgstr "ミキサの設定:" - -#: src/OSS4/configure.c:278 -msgid "Save VMIX volume between sessions" -msgstr "セッション間の VMIX 音量を保存" - -#: src/OSS4/configure.c:284 src/OSS/configure.c:355 src/sun/configure.c:394 -msgid "Mixer" -msgstr "ミキサ" - -#: src/OSS/about.c:39 +#: src/OSS/configure.c:348 +msgid "Volume controls Master not PCM" +msgstr "音量の調整は PCM ではなくマスタを使用する" + +#: src/OSS/OSS.c:37 msgid "About OSS Driver" msgstr "OSS ドライバについて" -#: src/OSS/about.c:40 +#: src/OSS/OSS.c:38 msgid "" "Audacious OSS Driver\n" "\n" @@ -3965,19 +3984,15 @@ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,\n" "USA. へ手紙を書いて下さい." -#: src/OSS/configure.c:349 -msgid "Volume controls Master not PCM" -msgstr "音量の調整は PCM ではなくマスタを使用する" - #: src/projectm-1.0/main.c:70 msgid "_Random" msgstr "ランダム(R_)" -#: src/pulse_audio/pulse_audio.c:722 +#: src/pulse_audio/pulse_audio.c:720 msgid "About Audacious PulseAudio Output Plugin" msgstr "Audacious PulseAudio 出力プラグインについて" -#: src/pulse_audio/pulse_audio.c:723 +#: src/pulse_audio/pulse_audio.c:721 msgid "" "Audacious PulseAudio Output Plugin\n" "\n" @@ -4013,27 +4028,27 @@ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n" "USA. まで請求して下さい." -#: src/scrobbler/configure.c:138 +#: src/scrobbler/configure.c:134 msgid "Services" msgstr "サービス" -#: src/scrobbler/configure.c:160 src/scrobbler/configure.c:199 +#: src/scrobbler/configure.c:156 src/scrobbler/configure.c:195 msgid "Username:" msgstr "ユーザ名:" -#: src/scrobbler/configure.c:166 src/scrobbler/configure.c:205 +#: src/scrobbler/configure.c:162 src/scrobbler/configure.c:201 msgid "Password:" msgstr "パスワード:" -#: src/scrobbler/configure.c:183 +#: src/scrobbler/configure.c:179 msgid "Last.FM" msgstr "Last.FM" -#: src/scrobbler/configure.c:222 +#: src/scrobbler/configure.c:218 msgid "Gerpok" msgstr "Gerpok" -#: src/scrobbler/gtkstuff.c:21 +#: src/scrobbler/gtkstuff.c:18 msgid "" "Audacious AudioScrobbler Plugin\n" "\n" @@ -4045,11 +4060,11 @@ "Audun Hove と Pipian によってオリジナルは" "作成された\n" -#: src/scrobbler/gtkstuff.c:23 +#: src/scrobbler/gtkstuff.c:20 msgid "About Scrobbler Plugin" msgstr "Scrobbler プラグインについて" -#: src/scrobbler/gtkstuff.c:36 +#: src/scrobbler/gtkstuff.c:33 #, c-format msgid "" "There has been an error that may require your attention.\n" @@ -4064,59 +4079,59 @@ "\n" "%s\n" -#: src/scrobbler/gtkstuff.c:43 +#: src/scrobbler/gtkstuff.c:40 msgid "Scrobbler Error" msgstr "Scrobbler エラー" -#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:221 +#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:233 msgid "Audacious-SID configuration" msgstr "Audacious-SID 設定" -#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:257 +#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:269 msgid "8-bit" msgstr " 8ビット" -#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:264 +#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:276 msgid "16-bit" msgstr "16ビット" -#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:271 +#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:283 msgid "Resolution:" msgstr "解像度:" -#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:302 +#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:314 msgid "Autopanning" msgstr "オートパニング" -#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:309 +#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:321 msgid "Channels:" msgstr "チャンネル数:" -#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:353 +#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:365 msgid "Samplerate:" msgstr "サンプリングレート:" -#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:370 +#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:382 msgid "Use oversampling" msgstr "オーバーサンプリングを使う" -#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:381 +#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:393 msgid "Factor:" msgstr "ファクター:" -#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:393 +#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:405 msgid "Large factors require more CPU-power" msgstr "大きなファクターはより CPU パワーを必要とします" -#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:399 +#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:411 msgid "Oversampling:" msgstr "オーバーサンプリング:" -#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:404 +#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:416 msgid "Audio" msgstr "オーディオ" -#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:436 +#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:448 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "clock speed/frequency. Otherwise the speed is determined from played file " @@ -4126,11 +4141,11 @@ "うことを\"強制\"します. そうでなければ, 速度は演奏するファイル自体から決定さ" "れます." -#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:432 +#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:444 msgid "Force speed" msgstr "速度を強制する" -#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:442 +#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:454 msgid "" "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. " "Most of SID-tunes have been made for PAL computers." @@ -4138,11 +4153,11 @@ "PAL は 50Hz のリフレッシュレートを用いるヨーロッパの TV 規格です. ほとんどの " "SID-tunes は PAL コンピュータ向けに作られています." -#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:438 +#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:450 msgid "PAL (50 Hz)" msgstr "PAL (50 Hz)" -#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:450 +#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:462 msgid "" "NTSC is the TV standard with 60Hz vertical refresh rate (and other features " "that differ from PAL). It is mainly used in United States, Japan and certain " @@ -4151,15 +4166,15 @@ "NTSC は 60Hz のリフレッシュレートを用い, PAL とは他にも異なる特徴を持つ TV 規" "格です. 主にアメリカ, 日本や他の国々で用いられています." -#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:446 +#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:458 msgid "NTSC (60 Hz)" msgstr "NTSC (60 Hz)" -#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:454 +#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:466 msgid "Clock speed:" msgstr "クロック速度:" -#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:475 +#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:487 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "SID-chip model. Otherwise the preferred SID model is determined from the " @@ -4169,11 +4184,11 @@ "\"強制\"します. 無効ならば, ファイルが PSIDv2NG タイプなら, 望ましい SID モデ" "ルが決定されますが, 利用できなければこの設定が用いられます." -#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:471 +#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:483 msgid "Force model" msgstr "モデルを強制する" -#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:481 +#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:493 msgid "" "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 " "in few ways, having much fuller filter (which, due to design error, is never " @@ -4185,19 +4200,19 @@ "の SID チップは同じではありません), デジタルサンプルの再生を有効にする \"音量" "調整バグ\" があります." -#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:477 +#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:489 msgid "MOS 6581" msgstr "MOS 6581" -#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:485 +#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:497 msgid "MOS 8580" msgstr "MOS 8580" -#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:492 +#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:504 msgid "SID model:" msgstr "SID モデル:" -#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:513 +#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:525 msgid "" "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most " "cases, though." @@ -4205,11 +4220,11 @@ "高速ですがそれほど正確ではない libSIDPlay 1.x を用います. ですがほとんどの場" "合問題ありません." -#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:509 +#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:521 msgid "SIDPlay 1 (frame-based)" msgstr "SIDPlay 1 (フレームベース)" -#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:521 +#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:533 msgid "" "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact " "emulation." @@ -4217,39 +4232,39 @@ "より正確なエミュレーションのために強力な CPU を必要とする libSIDPlay 2.x を用" "います." -#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:517 +#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:529 msgid "SIDPlay 2 (cycle-based)" msgstr "SIDPlay 2 (サイクルベース)" -#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:525 +#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:537 msgid "Emulation library selection:" msgstr "エミュレーションライブラリの選択" -#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:542 +#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:554 msgid "Real C64 (SIDPlay 2 only)" msgstr "Real C64 (SIDPlay 2 専用)" -#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:549 +#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:561 msgid "Bank switching" msgstr "バンクスイッチング" -#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:556 +#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:568 msgid "Transparent ROM" msgstr "透過 ROM" -#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:563 +#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:575 msgid "PlaySID environment" msgstr "PlaySID 環境" -#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:570 +#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:582 msgid "Memory mode:" msgstr "メモリモード:" -#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:575 +#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:587 msgid "Emu#1" msgstr "Emu#1" -#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:602 +#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:614 msgid "" "This setting can be used to enable libSIDPlay2's \"optimization mode\", " "which in downgrades the emulation from cycle-exact to something similar to " @@ -4259,11 +4274,11 @@ "クル正確からフレーム正確に似た何かに格下げします. この結果, CPU 使用率は下が" "りますが, 正確さは悪くなります." -#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:598 +#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:610 msgid "Optimization mode (faster, inaccurate)" msgstr "最適化モード (高速, 不正確)" -#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:608 +#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:620 msgid "" "reSID is the software SID-chip simulator based on SID reverse-engineering, " "created by Dag Lem. It is probably the closest thing to real SID available " @@ -4273,11 +4288,11 @@ "トウェア SID チップシミュレータです. ソフトウェアのみでのエミュレーションで" "は, 本物の利用可能な SID におそらく最も近いものです." -#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:604 +#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:616 msgid "reSID-emulation" msgstr "reSID エミュレーション" -#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:616 +#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:628 msgid "" "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a " "real SID-chip. Software can be used to control the HardSID and combined with " @@ -4291,49 +4306,49 @@ "似点を \"ほぼ 100%\" 達成するために用いられます. より多くの情報は http://www." "hardsid.com/ を参照してください." -#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:612 +#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:624 msgid "HardSID" msgstr "HardSID" -#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:620 +#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:632 msgid "SIDPlay 2 options:" msgstr "SIDPlay 2 オプション:" -#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:641 +#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:653 msgid "" "Fastest and also worst sounding sampling method, simply picks nearest " "neighbouring sample." msgstr "" "単純に最近傍のサンプルを用いるだけの, 最速ですが最悪のサンプリング方法です." -#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:637 +#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:649 msgid "Fast (nearest neighbour)" msgstr "高速 (最近傍)" -#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:649 +#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:661 msgid "" "Uses linear interpolation between samples, yielding higher audio quality " "with less sampling noise." msgstr "" "高い音質を低いサンプリングノイズで生成する, サンプル間の線形補間を用います." -#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:645 +#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:657 msgid "Linear interpolation" msgstr "線形補間" -#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:660 +#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:672 msgid "Resampling (FIR)" msgstr "リサンプリング (FIR)" -#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:667 +#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:679 msgid "reSID sampling options:" msgstr "reSID サンプリングオプション:" -#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:672 +#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:684 msgid "Emu#2" msgstr "Emu#2" -#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:688 +#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:700 msgid "" "This option enables emulation of SID filter. The filter is an essential part " "of SID's sound capacity, but accurate emulation of it may require quite much " @@ -4345,59 +4360,61 @@ "ます. しかし, フィルタエミュレーションが無効だと, フィルタを使っている音色は" "まったく本物のようには聞こえません." -#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:684 +#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:696 msgid "Emulate filters" msgstr "フィルタをエミュレートする" -#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:713 +#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:725 msgid "FS" msgstr "FS" -#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:730 +#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:742 msgid "FM" msgstr "FM" -#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:747 +#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:759 msgid "FT" msgstr "FT" -#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:758 +#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:770 msgid "Reset values" msgstr "値をリセット" -#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:763 +#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:775 msgid "SIDPlay1" msgstr "SIDPlay1" -#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:804 +#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:816 msgid "Export" msgstr "エクスポート" -#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:812 +#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:824 msgid "Use" msgstr "使用" -#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:828 +#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:840 +#: src/skins/ui_manager.c:437 msgid "Import" msgstr "インポート" -#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:836 +#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:848 +#: src/skins/ui_manager.c:439 msgid "Delete" msgstr "削除" -#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:850 +#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:862 msgid "Filter curve:" msgstr "フィルタ曲線:" -#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:855 +#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:867 msgid "SIDPlay2" msgstr "SIDPlay2" -#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:861 +#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:873 msgid "Filters" msgstr "フィルタ" -#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:888 +#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:900 msgid "" "If enabled, the tune is played at least for the specified time, adding " "silence to the end if necessary." @@ -4405,21 +4422,21 @@ "有効ならば, 必要に応じて末尾に無音部分を追加し, 音色は少なくとも指定された時" "間で演奏されます." -#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:884 +#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:896 msgid "Play at least for specified time" msgstr "少なくとも指定された時間で演奏" #: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133 -#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:895 -#: src/sid/xs_interface.c:949 src/sid/xs_interface.c:1109 +#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:907 +#: src/sid/xs_interface.c:961 src/sid/xs_interface.c:1141 msgid "Playtime:" msgstr "演奏時間:" -#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:915 +#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:927 msgid "Minimum playtime:" msgstr "最小演奏時間:" -#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:936 +#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:948 msgid "" "If enabled, tune is played until specified duration is reached (aka maximum " "playtime)." @@ -4427,26 +4444,26 @@ "有効ならば, 音色は指定された持続時間 (最大演奏時間) に到達するまで演奏されま" "す." -#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:932 +#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:944 msgid "Play for specified time maximum" msgstr "指定された時間いっぱいまで演奏" -#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:942 +#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:954 msgid "" "If enabled, the maximum playtime is applied only if song/tune length is not " "known." msgstr "" "有効ならば, 曲や音色の長さが不明な場合のみ, 最大演奏時間が用いられます." -#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:938 +#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:950 msgid "Only when song length is unknown" msgstr "曲の長さが不明な場合のみ" -#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:969 +#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:981 msgid "Maximum playtime:" msgstr "最大演奏時間:" -#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:990 +#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:1002 msgid "" "This option enables using of XSIDPLAY compatible song length database. " "(Refer to Audacious-SID documentation for more information)" @@ -4454,31 +4471,31 @@ "XSIDPLAY 互換の曲の長さデータベースを使用します. (より多くの情報は Audacious-" "SID の文書を参照してください)" -#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:986 +#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:998 msgid "Use XSIDPLAY-compatible database" msgstr "XSIDPLAY 互換データベースを使う" -#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:997 +#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:1009 msgid "DB-file:" msgstr "DB ファイル:" -#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1007 +#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1019 msgid "Database path and filename" msgstr "データベースパスとファイル名" -#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1014 +#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1026 msgid "Browse for song length-database file" msgstr "曲の長さデータベースファイルを参照" -#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1016 +#: src/sid/xmms-sid.glade:2418 src/sid/xs_interface.c:1048 msgid "Song length database:" msgstr "曲の長さデータベース:" -#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1021 +#: src/sid/xmms-sid.glade:2454 src/sid/xs_interface.c:1053 msgid "Songlength" msgstr "曲の長さ" -#: src/sid/xmms-sid.glade:2430 src/sid/xs_interface.c:1043 +#: src/sid/xmms-sid.glade:2492 src/sid/xs_interface.c:1075 msgid "" "By enabling this option you can specify a custom Tuplez formatting string " "for SID-files. The SID-plugin specific Tuplez tags are described shortly " @@ -4487,23 +4504,32 @@ "このオプションを有効にすると,SID ファイルのカスタムタプルフォーマット文字列" "を指定できます.SID プラグインで指定するタプルタグはすぐ下に記述します." -#: src/sid/xmms-sid.glade:2432 src/sid/xs_interface.c:1039 +#: src/sid/xmms-sid.glade:2494 src/sid/xs_interface.c:1071 msgid "Override generic Tuplez format string" msgstr "オリジナルのタプルフォーマット文字列を上書きする" -#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1054 +#: src/sid/xmms-sid.glade:2519 src/sid/xs_interface.c:1086 msgid "Tuplez format string for SID-files" msgstr "SID ファイルのタプルフォーマット文字列" -#: src/sid/xmms-sid.glade:2477 src/sid/xs_interface.c:1057 -msgid "Descriptions of SID-specific Tuplez fields go here. :D" -msgstr "SID 特有のタプルフィールドはここに記載されます.:D" - -#: src/sid/xmms-sid.glade:2511 src/sid/xs_interface.c:1065 +#: src/sid/xmms-sid.glade:2539 src/sid/xs_interface.c:1089 +msgid "" +"SID-specific Tuplez fields:\n" +"\n" +"sid-format\t\t- Specific fileformat\n" +"sid-model\t\t- 6581 or 8580\n" +"sid-speed\t\t- Timing or speed: PAL/NTSC/etc.\n" +"\n" +"Other \"special\" fields set:\n" +"\n" +"subsong-num, subsong-id" +msgstr "" + +#: src/sid/xmms-sid.glade:2581 src/sid/xs_interface.c:1097 msgid "Song title format:" msgstr "曲のタイトルの書式:" -#: src/sid/xmms-sid.glade:2584 src/sid/xs_interface.c:1096 +#: src/sid/xmms-sid.glade:2654 src/sid/xs_interface.c:1128 msgid "" "If enabled, sub-tunes of each file will be added to playlist. If disabled, " "only the default sub-tune will be added." @@ -4511,23 +4537,23 @@ "有効にすると,各ファイルのサブチューンがプレイリストに追加されます.無効にす" "ると,デフォルトのサブチューンのみが追加されます." -#: src/sid/xmms-sid.glade:2586 src/sid/xs_interface.c:1092 +#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1124 msgid "Add sub-tunes to playlist" msgstr "サブチューンをプレイリストに追加" -#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1102 +#: src/sid/xmms-sid.glade:2675 src/sid/xs_interface.c:1134 msgid "Only add sub-tunes that have a duration of at least specified time." msgstr "少なくとも指定された時間の持続時間を持ったサブチューンのみ追加します." -#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1098 +#: src/sid/xmms-sid.glade:2677 src/sid/xs_interface.c:1130 msgid "Only tunes with specified minimum duration" msgstr "指定された最小の長さのチューンのみ" -#: src/sid/xmms-sid.glade:2710 src/sid/xs_interface.c:1129 +#: src/sid/xmms-sid.glade:2780 src/sid/xs_interface.c:1161 msgid "Sub-tune handling:" msgstr "サブチューンの取り扱い:" -#: src/sid/xmms-sid.glade:2755 src/sid/xs_interface.c:1150 +#: src/sid/xmms-sid.glade:2825 src/sid/xs_interface.c:1182 msgid "" "If this option is enabled (and the database & HVSC settings below are " "correctly set), Audacious-SID will use and display additional information " @@ -4537,15 +4563,15 @@ "Audacious-SID は HVSC SID が演奏された場合 STIL データベースから追加情報の使" "用・表示を行います." -#: src/sid/xmms-sid.glade:2757 src/sid/xs_interface.c:1146 +#: src/sid/xmms-sid.glade:2827 src/sid/xs_interface.c:1178 msgid "Use STIL database" msgstr "STIL データベースを使う" -#: src/sid/xmms-sid.glade:2782 src/sid/xs_interface.c:1157 +#: src/sid/xmms-sid.glade:2852 src/sid/xs_interface.c:1189 msgid "STIL file:" msgstr "STIL ファイル:" -#: src/sid/xmms-sid.glade:2819 src/sid/xs_interface.c:1173 +#: src/sid/xmms-sid.glade:2889 src/sid/xs_interface.c:1205 msgid "" "Path and filename of STIL database file (STIL.txt), usually found from " "HVSC's DOCUMENTS-subdirectory." @@ -4553,15 +4579,15 @@ "STIL データベースファイル (STIL.txt) のパスとファイル名を指定します.通常, " "HVSC のドキュメントのサブディレクトリです." -#: src/sid/xmms-sid.glade:2854 src/sid/xs_interface.c:1186 +#: src/sid/xmms-sid.glade:2924 src/sid/xs_interface.c:1218 msgid "Browse for STIL-database file" msgstr "STIL データベースファイルを参照" -#: src/sid/xmms-sid.glade:2888 src/sid/xs_interface.c:1193 +#: src/sid/xmms-sid.glade:3020 src/sid/xs_interface.c:1245 msgid "HVSC path:" msgstr "HVSC パス:" -#: src/sid/xmms-sid.glade:2925 src/sid/xs_interface.c:1209 +#: src/sid/xmms-sid.glade:3057 src/sid/xs_interface.c:1261 msgid "" "Path to base-directory of your High Voltage SID Collection (HVSC), for " "example /media/C64Music/" @@ -4569,88 +4595,88 @@ "High Voltage SID コレクション (HVSC) のベースディレクトリのパスを指定します. " "例: /media/C64Music/" -#: src/sid/xmms-sid.glade:2960 src/sid/xs_interface.c:1222 +#: src/sid/xmms-sid.glade:3092 src/sid/xs_interface.c:1274 msgid "Browse for HVSC path" msgstr "HVSC パスを参照" -#: src/sid/xmms-sid.glade:2990 src/sid/xs_interface.c:1224 +#: src/sid/xmms-sid.glade:3184 src/sid/xs_interface.c:1296 msgid "SID Tune Information List (STIL) database:" msgstr "SID Tune 情報リスト (STIL) データベース:" -#: src/sid/xmms-sid.glade:3063 src/sid/xs_interface.c:1248 +#: src/sid/xmms-sid.glade:3257 src/sid/xs_interface.c:1320 msgid "Accept and update changes" msgstr "変更を承認して更新する" -#: src/sid/xmms-sid.glade:3077 src/sid/xs_interface.c:1255 +#: src/sid/xmms-sid.glade:3271 src/sid/xs_interface.c:1327 msgid "Cancel any changes" msgstr "あらゆる変更を取り消す" -#: src/sid/xmms-sid.glade:3102 src/sid/xs_interface.c:1543 +#: src/sid/xmms-sid.glade:3296 src/sid/xs_interface.c:1627 msgid "Audacious-SID Fileinfo" msgstr "Audacious-SID ファイル情報" -#: src/sid/xmms-sid.glade:3172 src/sid/xs_interface.c:1572 +#: src/sid/xmms-sid.glade:3366 src/sid/xs_interface.c:1656 msgid "Songname:" msgstr "曲名:" -#: src/sid/xmms-sid.glade:3200 src/sid/xs_interface.c:1580 +#: src/sid/xmms-sid.glade:3394 src/sid/xs_interface.c:1664 msgid "Composer:" msgstr "作曲者:" -#: src/sid/xmms-sid.glade:3228 src/sid/xs_interface.c:1588 +#: src/sid/xmms-sid.glade:3422 src/sid/xs_interface.c:1672 msgid "Copyright:" msgstr "著作権:" -#: src/sid/xmms-sid.glade:3342 src/sid/xs_interface.c:1632 +#: src/sid/xmms-sid.glade:3536 src/sid/xs_interface.c:1716 msgid "Song Information:" msgstr "曲情報:" -#: src/sid/xmms-sid.glade:3416 src/sid/xs_interface.c:1667 +#: src/sid/xmms-sid.glade:3610 src/sid/xs_interface.c:1751 msgid "Author:" msgstr "作者:" -#: src/sid/xmms-sid.glade:3514 src/sid/xs_interface.c:1701 +#: src/sid/xmms-sid.glade:3708 src/sid/xs_interface.c:1785 msgid "Duration:" msgstr "持続時間:" -#: src/sid/xmms-sid.glade:3608 src/sid/xs_interface.c:1735 +#: src/sid/xmms-sid.glade:3802 src/sid/xs_interface.c:1819 msgid "Sub-tune Information:" msgstr "サブチューン情報:" -#: src/sid/xmms-sid.glade:3662 src/sid/xs_interface.c:1796 +#: src/sid/xmms-sid.glade:3856 src/sid/xs_interface.c:1880 msgid "Select HVSC song length database" msgstr "HVSC 曲の長さデータベースを選択" -#: src/sid/xmms-sid.glade:3704 src/sid/xs_interface.c:1837 +#: src/sid/xmms-sid.glade:3898 src/sid/xs_interface.c:1921 msgid "Select STIL-database" msgstr "STIL データベースを選択" -#: src/sid/xmms-sid.glade:3746 src/sid/xs_interface.c:1878 +#: src/sid/xmms-sid.glade:3940 src/sid/xs_interface.c:1962 msgid "Select HVSC location prefix" msgstr "HVSC 位置のプレフィックスを選択" -#: src/sid/xmms-sid.glade:3788 src/sid/xs_interface.c:1919 +#: src/sid/xmms-sid.glade:3982 src/sid/xs_interface.c:2003 msgid "Select SIDPlay2 filters file for importing" msgstr "インポートする SIDPlay2 フィルタファイルを選択" -#: src/sid/xmms-sid.glade:3830 src/sid/xs_interface.c:1960 +#: src/sid/xmms-sid.glade:4024 src/sid/xs_interface.c:2044 msgid "Select SIDPlay2 filters file for exporting" msgstr "エクスポートする SIDPlay2 フィルタファイルを選択" -#: src/sid/xmms-sid.glade:3871 src/sid/xmms-sid.glade:3953 -#: src/sid/xs_interface.c:2008 src/sid/xs_interface.c:2021 +#: src/sid/xmms-sid.glade:4065 src/sid/xmms-sid.glade:4147 +#: src/sid/xs_interface.c:2092 src/sid/xs_interface.c:2105 msgid "Confirm selected action" msgstr "選択されたアクションの確認" -#: src/sid/xmms-sid.glade:3909 src/sid/xs_interface.c:2038 +#: src/sid/xmms-sid.glade:4103 src/sid/xs_interface.c:2122 msgid "Yes" msgstr "はい" -#: src/sid/xmms-sid.glade:3921 src/sid/xs_interface.c:2044 +#: src/sid/xmms-sid.glade:4115 src/sid/xs_interface.c:2128 msgid "No" msgstr "いいえ" -#: src/sid/xs_about.c:84 src/wma/wma.c:121 +#: src/sid/xs_about.c:84 src/wma/wma.c:118 #, c-format msgid "About %s" msgstr "%s について" @@ -4664,11 +4690,1147 @@ msgid "Tune #%i: " msgstr "チューン #%i:" -#: src/sndfile/plugin.c:548 +#: src/skins/plugin.c:128 +msgid "About Skinned GUI" +msgstr "" + +#: src/skins/plugin.c:129 +msgid "" +"Copyright (c) 2008, by Tomasz Moń \n" +"\n" +msgstr "" + +#: src/skins/skins_cfg.c:329 +#, fuzzy +msgid "_Fonts" +msgstr "動作:" + +#: src/skins/skins_cfg.c:330 +#, fuzzy +msgid "_Player:" +msgstr "演奏時間:" + +#: src/skins/skins_cfg.c:330 +msgid "Select main player window font:" +msgstr "" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "_Playlist:" +msgstr "プレイリストの選択" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "Select playlist font:" +msgstr "プレイリストの選択" + +#: src/skins/skins_cfg.c:332 +#, fuzzy +msgid "Use Bitmap fonts if available" +msgstr "有効ならば CDDB を使う" + +#: src/skins/skins_cfg.c:332 +msgid "" +"Use bitmap fonts if they are available. Bitmap fonts do not support Unicode " +"strings." +msgstr "" + +#: src/skins/skins_cfg.c:333 +#, fuzzy +msgid "_Miscellaneous" +msgstr "サービス" + +#: src/skins/skins_cfg.c:334 +msgid "Show track numbers in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:336 +msgid "Show separators in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:338 +msgid "Show window manager decoration" +msgstr "" + +#: src/skins/skins_cfg.c:339 +msgid "This enables the window manager to show decorations for windows." +msgstr "" + +#: src/skins/skins_cfg.c:340 +msgid "Use two-way text scroller" +msgstr "" + +#: src/skins/skins_cfg.c:341 +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 "" + +#: src/skins/skins_cfg.c:342 +msgid "Disable inline gtk theme" +msgstr "" + +#: src/skins/skins_cfg.c:343 +msgid "Allow loading incomplete skins" +msgstr "" + +#: src/skins/skins_cfg.c:344 +msgid "" +"If selected, audacious won't refuse loading broken skins. Use only if your " +"favourite skin doesn't work" +msgstr "" + +#: src/skins/skins_cfg.c:410 +msgid "Color Adjustment" +msgstr "" + +#: src/skins/skins_cfg.c:417 +msgid "" +"Audacious allows you to alter the color balance of the skinned UI. The " +"sliders below will allow you to do this." +msgstr "" + +#: src/skins/skins_cfg.c:427 +#, fuzzy +msgid "Blue" +msgstr "ブルース" + +#: src/skins/skins_cfg.c:434 +msgid "Green" +msgstr "" + +#: src/skins/skins_cfg.c:441 +msgid "Red" +msgstr "" + +#: src/skins/skins_cfg.c:571 +#, fuzzy +msgid "Audacious Skinned GUI Configuration" +msgstr "Audacious OSD - 設定" + +#: src/skins/skins_cfg.c:596 +#, fuzzy +msgid "_Skin" +msgstr "動作:" + +#: src/skins/ui_equalizer.c:494 +#, fuzzy +msgid "Audacious Equalizer" +msgstr "ウィンドウ->イコライザー" + +#: src/skins/ui_equalizer.c:794 +#, fuzzy, c-format +msgid "Error importing Winamp EQF file '%s'" +msgstr "pixmap ファイルの読み込みエラー: %s" + +#: src/skins/ui_equalizer.c:1172 +msgid "Presets" +msgstr "" + +#: src/skins/ui_main.c:392 +#, c-format +msgid "%s - Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:394 src/skins/ui_main.c:2397 +#, fuzzy +msgid "Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:641 +#, fuzzy +msgid "VBR" +msgstr "VBR/ABR" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "stereo" +msgstr "ステレオ" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "mono" +msgstr "モノラル" + +#: src/skins/ui_main.c:957 +msgid "Can't jump to time when no track is being played.\n" +msgstr "" + +#: src/skins/ui_main.c:972 src/skins/ui_manager.c:425 +#: src/skins/ui_manager.c:426 +#, fuzzy +msgid "Jump to Time" +msgstr "指定ファイルへ移動" + +#: src/skins/ui_main.c:993 +#, fuzzy +msgid "minutes:seconds" +msgstr "分" + +#: src/skins/ui_main.c:1003 +#, fuzzy +msgid "Track length:" +msgstr "トラックのゲイン:" + +#: src/skins/ui_main.c:1149 +msgid "Audacious - visibility warning" +msgstr "" + +#: src/skins/ui_main.c:1152 +#, fuzzy +msgid "Show main player window" +msgstr "ネットワークウィンドウの表示" + +#: src/skins/ui_main.c:1153 +msgid "Ignore" +msgstr "" + +#: src/skins/ui_main.c:1159 +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)." +msgstr "" + +#: src/skins/ui_main.c:1165 +msgid "Always ignore, show/hide is controlled remotely" +msgstr "" + +#: src/skins/ui_main.c:1210 +msgid "Audacious - broken GTK engine usage warning" +msgstr "" + +#: src/skins/ui_main.c:1218 +#, c-format +msgid "" +"Broken GTK engine in use\n" +"\n" +"Audacious has detected that you are using a broken GTK engine.\n" +"\n" +"The theme engine you are using, %s, is incompatible with some of the " +"features used by modern skins. The incompatible features have been disabled " +"for this session.\n" +"\n" +"To use these features, please consider using a different GTK theme engine." +msgstr "" + +#: src/skins/ui_main.c:1229 +msgid "Do not display this warning again" +msgstr "" + +#: src/skins/ui_main.c:1253 +msgid "Enter location to play:" +msgstr "" + +#: src/skins/ui_main.c:1497 +#, c-format +msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" +msgstr "" + +#: src/skins/ui_main.c:1527 +#, fuzzy, c-format +msgid "Volume: %d%%" +msgstr "音量: (%)" + +#: src/skins/ui_main.c:1555 +#, c-format +msgid "Balance: %d%% left" +msgstr "" + +#: src/skins/ui_main.c:1559 +msgid "Balance: center" +msgstr "" + +#: src/skins/ui_main.c:1563 +#, c-format +msgid "Balance: %d%% right" +msgstr "" + +#: src/skins/ui_main.c:1881 +#, fuzzy +msgid "Options Menu" +msgstr "オプション" + +#: src/skins/ui_main.c:1885 +msgid "Disable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1887 +msgid "Enable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1890 +#, fuzzy +msgid "File Info Box" +msgstr "ファイル情報" + +#: src/skins/ui_main.c:1894 +msgid "Disable 'GUI Scaling'" +msgstr "" + +#: src/skins/ui_main.c:1896 +#, fuzzy +msgid "Enable 'GUI Scaling'" +msgstr "オーディオリサンプリングを有効にする" + +#: src/skins/ui_main.c:1899 +msgid "Visualization Menu" +msgstr "" + +#: src/skins/ui_main.c:1946 +msgid "" +"Couldn't open audio.\n" +"\n" +"Please check that:\n" +"1. You have the correct output plugin selected.\n" +"2. No other programs is blocking the soundcard.\n" +"3. Your soundcard is configured properly.\n" +msgstr "" + +#: src/skins/ui_manager.c:53 src/skins/ui_manager.c:54 +msgid "Autoscroll Songname" +msgstr "" + +#: src/skins/ui_manager.c:56 src/skins/ui_manager.c:57 +msgid "Stop after Current Song" +msgstr "" + +#: src/skins/ui_manager.c:59 src/skins/ui_manager.c:60 +#, fuzzy +msgid "Peaks" +msgstr "プランク" + +#: src/skins/ui_manager.c:62 src/skins/ui_manager.c:63 +#, fuzzy +msgid "Repeat" +msgstr "ビート" + +#: src/skins/ui_manager.c:65 src/skins/ui_manager.c:66 +msgid "Shuffle" +msgstr "" + +#: src/skins/ui_manager.c:68 src/skins/ui_manager.c:69 +msgid "No Playlist Advance" +msgstr "" + +#: src/skins/ui_manager.c:71 src/skins/ui_manager.c:72 +msgid "Show Player" +msgstr "" + +#: src/skins/ui_manager.c:74 src/skins/ui_manager.c:75 +msgid "Show Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:77 src/skins/ui_manager.c:78 +#, fuzzy +msgid "Show Equalizer" +msgstr "ウィンドウ->イコライザー" + +#: src/skins/ui_manager.c:80 src/skins/ui_manager.c:81 +msgid "Always on Top" +msgstr "" + +#: src/skins/ui_manager.c:83 src/skins/ui_manager.c:84 +msgid "Put on All Workspaces" +msgstr "" + +#: src/skins/ui_manager.c:86 src/skins/ui_manager.c:87 +msgid "Roll up Player" +msgstr "" + +#: src/skins/ui_manager.c:89 src/skins/ui_manager.c:90 +msgid "Roll up Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:92 src/skins/ui_manager.c:93 +msgid "Roll up Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:95 src/sndstretch/sndstretch_xmms.c:375 +msgid "Scale" +msgstr "スケール" + +#: src/skins/ui_manager.c:96 +msgid "DoubleSize" +msgstr "" + +#: src/skins/ui_manager.c:98 src/skins/ui_manager.c:99 +msgid "Easy Move" +msgstr "" + +#: src/skins/ui_manager.c:107 +#, fuzzy +msgid "Analyzer" +msgstr "スペクトラムアナライザ" + +#: src/skins/ui_manager.c:108 +#, fuzzy +msgid "Scope" +msgstr "演奏停止" + +#: src/skins/ui_manager.c:109 +msgid "Voiceprint" +msgstr "" + +#: src/skins/ui_manager.c:110 +msgid "Off" +msgstr "" + +#: src/skins/ui_manager.c:114 src/skins/ui_manager.c:131 +#: src/skins/ui_manager.c:137 +#, fuzzy +msgid "Normal" +msgstr "フォーマット" + +#: src/skins/ui_manager.c:115 src/skins/ui_manager.c:132 +#, fuzzy +msgid "Fire" +msgstr "サティア" + +#: src/skins/ui_manager.c:116 +msgid "Vertical Lines" +msgstr "" + +#: src/skins/ui_manager.c:120 +#, fuzzy +msgid "Lines" +msgstr "分" + +#: src/skins/ui_manager.c:121 +#, fuzzy +msgid "Bars" +msgstr "ベース" + +#: src/skins/ui_manager.c:125 +#, fuzzy +msgid "Dot Scope" +msgstr "ループしない" + +#: src/skins/ui_manager.c:126 +msgid "Line Scope" +msgstr "" + +#: src/skins/ui_manager.c:127 +msgid "Solid Scope" +msgstr "" + +#: src/skins/ui_manager.c:133 +msgid "Ice" +msgstr "" + +#: src/skins/ui_manager.c:138 +msgid "Smooth" +msgstr "" + +#: src/skins/ui_manager.c:142 +msgid "Full (~50 fps)" +msgstr "" + +#: src/skins/ui_manager.c:143 +msgid "Half (~25 fps)" +msgstr "" + +#: src/skins/ui_manager.c:144 +msgid "Quarter (~13 fps)" +msgstr "" + +#: src/skins/ui_manager.c:145 +msgid "Eighth (~6 fps)" +msgstr "" + +#: src/skins/ui_manager.c:149 src/skins/ui_manager.c:157 +#, fuzzy +msgid "Slowest" +msgstr "ショーチューン" + +#: src/skins/ui_manager.c:150 src/skins/ui_manager.c:158 +#, fuzzy +msgid "Slow" +msgstr "低" + +#: src/skins/ui_manager.c:151 src/skins/ui_manager.c:159 +#, fuzzy +msgid "Medium" +msgstr "中" + +#: src/skins/ui_manager.c:152 src/skins/ui_manager.c:160 +#, fuzzy +msgid "Fast" +msgstr "フォーマット" + +#: src/skins/ui_manager.c:153 src/skins/ui_manager.c:161 +msgid "Fastest" +msgstr "" + +#: src/skins/ui_manager.c:165 +msgid "Time Elapsed" +msgstr "" + +#: src/skins/ui_manager.c:166 +msgid "Time Remaining" +msgstr "" + +#: src/skins/ui_manager.c:180 src/skins/ui_manager.c:181 +#, fuzzy +msgid "Pause" +msgstr "演奏停止" + +#: src/skins/ui_manager.c:186 src/skins/ui_manager.c:187 +#, fuzzy +msgid "Previous" +msgstr "前のトラック" + +#: src/skins/ui_manager.c:189 src/skins/ui_manager.c:190 +#, fuzzy +msgid "Next" +msgstr "文字" + +#: src/skins/ui_manager.c:195 +#, fuzzy +msgid "Visualization" +msgstr "組織:" + +#: src/skins/ui_manager.c:196 +msgid "Visualization Mode" +msgstr "" + +#: src/skins/ui_manager.c:197 +msgid "Analyzer Mode" +msgstr "" + +#: src/skins/ui_manager.c:198 +msgid "Scope Mode" +msgstr "" + +#: src/skins/ui_manager.c:199 +msgid "Voiceprint Mode" +msgstr "" + +#: src/skins/ui_manager.c:200 +msgid "WindowShade VU Mode" +msgstr "" + +#: src/skins/ui_manager.c:201 +msgid "Refresh Rate" +msgstr "" + +#: src/skins/ui_manager.c:202 +msgid "Analyzer Falloff" +msgstr "" + +#: src/skins/ui_manager.c:203 +msgid "Peaks Falloff" +msgstr "" + +#: src/skins/ui_manager.c:208 +#, fuzzy +msgid "Playlist" +msgstr "プレイリストの選択" + +#: src/skins/ui_manager.c:210 src/skins/ui_manager.c:211 +#, fuzzy +msgid "New Playlist" +msgstr "プレイリストの選択" + +#: src/skins/ui_manager.c:213 src/skins/ui_manager.c:214 +#, fuzzy +msgid "Select Next Playlist" +msgstr "プレイリストの選択" + +#: src/skins/ui_manager.c:216 src/skins/ui_manager.c:217 +#, fuzzy +msgid "Select Previous Playlist" +msgstr "プレイリストの選択" + +#: src/skins/ui_manager.c:219 src/skins/ui_manager.c:220 +#, fuzzy +msgid "Delete Playlist" +msgstr "プレイリストの選択" + +#: src/skins/ui_manager.c:222 +#, fuzzy +msgid "Load List" +msgstr "読み込み" + +#: src/skins/ui_manager.c:223 +msgid "Loads a playlist file into the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:225 +#, fuzzy +msgid "Save List" +msgstr "保存" + +#: src/skins/ui_manager.c:226 +#, fuzzy +msgid "Saves the selected playlist." +msgstr "プレイリストの選択" + +#: src/skins/ui_manager.c:228 +#, fuzzy +msgid "Save Default List" +msgstr "デフォルト (%s)" + +#: src/skins/ui_manager.c:229 +msgid "Saves the selected playlist to the default location." +msgstr "" + +#: src/skins/ui_manager.c:232 +msgid "Refresh List" +msgstr "" + +#: src/skins/ui_manager.c:233 +msgid "Refreshes metadata associated with a playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:236 +msgid "List Manager" +msgstr "" + +#: src/skins/ui_manager.c:237 +msgid "Opens the playlist manager." +msgstr "" + +#: src/skins/ui_manager.c:243 +msgid "View" +msgstr "" + +#: src/skins/ui_manager.c:247 +msgid "Add Internet Address..." +msgstr "" + +#: src/skins/ui_manager.c:248 +msgid "Adds a remote track to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:251 +msgid "Add Files..." +msgstr "" + +#: src/skins/ui_manager.c:252 +#, fuzzy +msgid "Adds files to the playlist." +msgstr "サブチューンをプレイリストに追加" + +#: src/skins/ui_manager.c:257 +msgid "Search and Select" +msgstr "" + +#: src/skins/ui_manager.c:258 +msgid "" +"Searches the playlist and selects playlist entries based on specific " +"criteria." +msgstr "" + +#: src/skins/ui_manager.c:261 +#, fuzzy +msgid "Invert Selection" +msgstr "フォーマット選択" + +#: src/skins/ui_manager.c:262 +msgid "Inverts the selected and unselected entries." +msgstr "" + +#: src/skins/ui_manager.c:265 +#, fuzzy +msgid "Select All" +msgstr "プレイリストの選択" + +#: src/skins/ui_manager.c:266 +msgid "Selects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:269 +#, fuzzy +msgid "Select None" +msgstr "スキンファイル選択" + +#: src/skins/ui_manager.c:270 +msgid "Deselects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:275 +#, fuzzy +msgid "Remove All" +msgstr "削除" + +#: src/skins/ui_manager.c:276 +msgid "Removes all entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:279 +msgid "Clear Queue" +msgstr "" + +#: src/skins/ui_manager.c:280 +msgid "Clears the queue associated with this playlist." +msgstr "" + +#: src/skins/ui_manager.c:283 +msgid "Remove Unavailable Files" +msgstr "" + +#: src/skins/ui_manager.c:284 +msgid "Removes unavailable files from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:287 +#, fuzzy +msgid "Remove Duplicates" +msgstr "ドライブの削除" + +#: src/skins/ui_manager.c:289 src/skins/ui_manager.c:321 +#: src/skins/ui_manager.c:351 +#, fuzzy +msgid "By Title" +msgstr "タイトル" + +#: src/skins/ui_manager.c:290 +msgid "Removes duplicate entries from the playlist by title." +msgstr "" + +#: src/skins/ui_manager.c:293 src/skins/ui_manager.c:329 +#: src/skins/ui_manager.c:359 +#, fuzzy +msgid "By Filename" +msgstr "ファイル名" + +#: src/skins/ui_manager.c:294 +msgid "Removes duplicate entries from the playlist by filename." +msgstr "" + +#: src/skins/ui_manager.c:297 src/skins/ui_manager.c:333 +#: src/skins/ui_manager.c:363 +#, fuzzy +msgid "By Path + Filename" +msgstr "ファイル名" + +#: src/skins/ui_manager.c:298 +msgid "Removes duplicate entries from the playlist by their full path." +msgstr "" + +#: src/skins/ui_manager.c:301 +msgid "Remove Unselected" +msgstr "" + +#: src/skins/ui_manager.c:302 +msgid "Remove unselected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:305 +msgid "Remove Selected" +msgstr "" + +#: src/skins/ui_manager.c:306 +msgid "Remove selected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:311 +msgid "Randomize List" +msgstr "" + +#: src/skins/ui_manager.c:312 +msgid "Randomizes the playlist." +msgstr "" + +#: src/skins/ui_manager.c:315 +msgid "Reverse List" +msgstr "" + +#: src/skins/ui_manager.c:316 +msgid "Reverses the playlist." +msgstr "" + +#: src/skins/ui_manager.c:319 +#, fuzzy +msgid "Sort List" +msgstr "アーティスト:" + +#: src/skins/ui_manager.c:322 src/skins/ui_manager.c:352 +msgid "Sorts the list by title." +msgstr "" + +#: src/skins/ui_manager.c:325 src/skins/ui_manager.c:355 +#, fuzzy +msgid "By Artist" +msgstr "アーティスト:" + +#: src/skins/ui_manager.c:326 src/skins/ui_manager.c:356 +msgid "Sorts the list by artist." +msgstr "" + +#: src/skins/ui_manager.c:330 src/skins/ui_manager.c:360 +msgid "Sorts the list by filename." +msgstr "" + +#: src/skins/ui_manager.c:334 src/skins/ui_manager.c:364 +msgid "Sorts the list by full pathname." +msgstr "" + +#: src/skins/ui_manager.c:337 src/skins/ui_manager.c:367 +#, fuzzy +msgid "By Date" +msgstr "日付:" + +#: src/skins/ui_manager.c:338 src/skins/ui_manager.c:368 +msgid "Sorts the list by modification time." +msgstr "" + +#: src/skins/ui_manager.c:341 src/skins/ui_manager.c:371 +#, fuzzy +msgid "By Track Number" +msgstr "トラック番号:" + +#: src/skins/ui_manager.c:342 src/skins/ui_manager.c:372 +msgid "Sorts the list by track number." +msgstr "" + +#: src/skins/ui_manager.c:345 src/skins/ui_manager.c:375 +#, fuzzy +msgid "By Playlist Entry" +msgstr "高速なプレイリスト情報" + +#: src/skins/ui_manager.c:346 src/skins/ui_manager.c:376 +msgid "Sorts the list by playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:349 +#, fuzzy +msgid "Sort Selected" +msgstr "フォーマット選択" + +#: src/skins/ui_manager.c:385 +#, fuzzy +msgid "File" +msgstr "フィルタ" + +#: src/skins/ui_manager.c:388 +msgid "Plugin Services" +msgstr "" + +#: src/skins/ui_manager.c:390 src/skins/ui_manager.c:393 +#, fuzzy +msgid "View Track Details" +msgstr "トラックゲインを使用する" + +#: src/skins/ui_manager.c:391 src/skins/ui_manager.c:394 +msgid "View track details" +msgstr "" + +#: src/skins/ui_manager.c:396 src/skins/ui_manager.c:397 +#, fuzzy +msgid "About Audacious" +msgstr "LIRC Audacious プラグインについて" + +#: src/skins/ui_manager.c:399 +#, fuzzy +msgid "Play File" +msgstr "演奏時間:" + +#: src/skins/ui_manager.c:400 +#, fuzzy +msgid "Load and play a file" +msgstr "プレイヤ起動時に SF を読み込む" + +#: src/skins/ui_manager.c:402 +#, fuzzy +msgid "Play Location" +msgstr "場所:" + +#: src/skins/ui_manager.c:403 +#, fuzzy +msgid "Play media from the selected location" +msgstr "選択されたアクションの確認" + +#: src/skins/ui_manager.c:405 +msgid "Plugin services" +msgstr "" + +#: src/skins/ui_manager.c:407 +msgid "Preferences" +msgstr "" + +#: src/skins/ui_manager.c:408 +msgid "Open preferences window" +msgstr "" + +#: src/skins/ui_manager.c:410 +#, fuzzy +msgid "_Quit" +msgstr "品質" + +#: src/skins/ui_manager.c:411 +#, fuzzy +msgid "Quit Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_manager.c:413 src/skins/ui_manager.c:414 +msgid "Set A-B" +msgstr "" + +#: src/skins/ui_manager.c:416 src/skins/ui_manager.c:417 +msgid "Clear A-B" +msgstr "" + +#: src/skins/ui_manager.c:419 src/skins/ui_manager.c:420 +msgid "Jump to Playlist Start" +msgstr "" + +#: src/skins/ui_manager.c:428 +msgid "Queue Toggle" +msgstr "" + +#: src/skins/ui_manager.c:429 +msgid "Enables/disables the entry in the playlist's queue." +msgstr "" + +#: src/skins/ui_manager.c:436 +msgid "Load" +msgstr "読み込み" + +#: src/skins/ui_manager.c:441 src/skins/ui_manager.c:462 +#: src/skins/ui_manager.c:477 +#, fuzzy +msgid "Preset" +msgstr "ポート" + +#: src/skins/ui_manager.c:442 +msgid "Load preset" +msgstr "" + +#: src/skins/ui_manager.c:444 src/skins/ui_manager.c:465 +#: src/skins/ui_manager.c:480 +msgid "Auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:445 +msgid "Load auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:448 +#, fuzzy +msgid "Load default preset into equalizer" +msgstr "デフォルト値を読み込む" + +#: src/skins/ui_manager.c:450 +#, fuzzy +msgid "Zero" +msgstr "レトロ" + +#: src/skins/ui_manager.c:451 +msgid "Set equalizer preset levels to zero" +msgstr "" + +#: src/skins/ui_manager.c:453 +#, fuzzy +msgid "From file" +msgstr "プロファイル: %s" + +#: src/skins/ui_manager.c:454 +#, fuzzy +msgid "Load preset from file" +msgstr "ファイルから読み込めません\n" + +#: src/skins/ui_manager.c:456 +msgid "From WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:457 +msgid "Load preset from WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:459 +msgid "WinAMP Presets" +msgstr "" + +#: src/skins/ui_manager.c:460 +msgid "Import WinAMP presets" +msgstr "" + +#: src/skins/ui_manager.c:463 +msgid "Save preset" +msgstr "" + +#: src/skins/ui_manager.c:466 +msgid "Save auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:469 +#, fuzzy +msgid "Save default preset" +msgstr "デフォルト値を読み込む" + +#: src/skins/ui_manager.c:471 +#, fuzzy +msgid "To file" +msgstr "STIL ファイル:" + +#: src/skins/ui_manager.c:472 +msgid "Save preset to file" +msgstr "" + +#: src/skins/ui_manager.c:474 +msgid "To WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:475 +msgid "Save preset to WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:478 +#, fuzzy +msgid "Delete preset" +msgstr "削除" + +#: src/skins/ui_manager.c:481 +msgid "Delete auto-load preset" +msgstr "" + +#: src/skins/ui_playlist.c:454 +msgid "Search entries in active playlist" +msgstr "" + +#: src/skins/ui_playlist.c:462 +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 "" + +#: src/skins/ui_playlist.c:477 +#, fuzzy +msgid "Album: " +msgstr "アルバム名:" + +#: src/skins/ui_playlist.c:484 +#, fuzzy +msgid "Artist: " +msgstr "アーティスト:" + +#: src/skins/ui_playlist.c:491 +#, fuzzy +msgid "Filename: " +msgstr "ファイル名:" + +#: src/skins/ui_playlist.c:499 +msgid "Clear previous selection before searching" +msgstr "" + +#: src/skins/ui_playlist.c:502 +msgid "Automatically toggle queue for matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:505 +msgid "Create a new playlist with matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:724 +#, c-format +msgid "Error writing playlist \"%s\": %s" +msgstr "" + +#: src/skins/ui_playlist.c:746 +#, c-format +msgid "%s already exist. Continue?" +msgstr "" + +#: src/skins/ui_playlist.c:761 +#, c-format +msgid "" +"Unable to save playlist.\n" +"\n" +"Unknown file type for '%s'.\n" +msgstr "" + +#: src/skins/ui_playlist.c:887 +#, fuzzy +msgid "Save as Static Playlist" +msgstr "プレイリストの選択" + +#: src/skins/ui_playlist.c:894 +msgid "Use Relative Path" +msgstr "" + +#: src/skins/ui_playlist.c:916 +#, fuzzy +msgid "Load Playlist" +msgstr "高速なプレイリスト情報" + +#: src/skins/ui_playlist.c:929 +#, fuzzy +msgid "Save Playlist" +msgstr "プレイリストの選択" + +#: src/skins/ui_playlist.c:1497 +#, fuzzy +msgid "Audacious Playlist Editor" +msgstr "高速なプレイリスト情報" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "PREAMP" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "60HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "170HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "310HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +#, fuzzy +msgid "600HZ" +msgstr "11000 Hz" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "1KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "3KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "6KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "12KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "14KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "16KHZ" +msgstr "" + +#: src/skins/ui_skinselector.c:178 +msgid "Archived Winamp 2.x skin" +msgstr "" + +#: src/skins/ui_skinselector.c:183 +msgid "Unarchived Winamp 2.x skin" +msgstr "" + +#: src/skins/util.c:1132 +#, fuzzy, c-format +msgid "Could not create directory (%s): %s\n" +msgstr "sidFilename ('%s') を割り当てられませんでした\n" + +#: src/sndfile/plugin.c:554 msgid "About sndfile plugin" msgstr "sndfile プラグインについて" -#: src/sndfile/plugin.c:549 +#: src/sndfile/plugin.c:555 msgid "" "Adapted for Audacious usage by Tony Vroon \n" "from the xmms_sndfile plugin which is:\n" @@ -4710,63 +5872,59 @@ "51 Franklin Street, Fifth Floor, \n" "Boston, MA 02110-1301 USA へ手紙を書いて下さい." -#: src/sndstretch/sndstretch_xmms.c:159 +#: src/sndstretch/sndstretch_xmms.c:158 msgid "About SndStretch" msgstr "SndStretch について" -#: src/sndstretch/sndstretch_xmms.c:319 +#: src/sndstretch/sndstretch_xmms.c:318 msgid "Volume corr." msgstr "音量補正" -#: src/sndstretch/sndstretch_xmms.c:320 +#: src/sndstretch/sndstretch_xmms.c:319 msgid "Short Overlap" msgstr "一部重ね合わせ" +#: src/sndstretch/sndstretch_xmms.c:373 +msgid "Speed" +msgstr "スピード" + #: src/sndstretch/sndstretch_xmms.c:374 -msgid "Speed" -msgstr "スピード" - -#: src/sndstretch/sndstretch_xmms.c:375 msgid "Pitch" msgstr "ピッチ" -#: src/sndstretch/sndstretch_xmms.c:376 -msgid "Scale" -msgstr "スケール" - -#: src/sndstretch/sndstretch_xmms.c:396 +#: src/sndstretch/sndstretch_xmms.c:395 msgid "SndStretch - Configuration" msgstr "SndStretch - 設定" -#: src/song_change/song_change.c:312 +#: src/song_change/song_change.c:310 msgid "Commands" msgstr "コマンド" -#: src/song_change/song_change.c:319 +#: src/song_change/song_change.c:317 msgid "Command to run when Audacious starts a new song." msgstr "Audacious が新しい曲を開始したときに実行するコマンド" -#: src/song_change/song_change.c:328 src/song_change/song_change.c:350 -#: src/song_change/song_change.c:371 src/song_change/song_change.c:392 +#: src/song_change/song_change.c:326 src/song_change/song_change.c:348 +#: src/song_change/song_change.c:369 src/song_change/song_change.c:390 msgid "Command:" msgstr "コマンド:" -#: src/song_change/song_change.c:342 +#: src/song_change/song_change.c:340 msgid "Command to run toward the end of a song." msgstr "曲の終わりで実行するコマンド." -#: src/song_change/song_change.c:362 +#: src/song_change/song_change.c:360 msgid "Command to run when Audacious reaches the end of the playlist." msgstr "Audacious がプレイリストの最後に到達したときに実行するコマンド." -#: src/song_change/song_change.c:383 +#: src/song_change/song_change.c:381 msgid "" "Command to run when title changes for a song (i.e. network streams titles)." msgstr "" "例えばネットワークストリームのタイトルなど, 曲のタイトルが変わったときに実行" "するコマンド." -#: src/song_change/song_change.c:404 +#: src/song_change/song_change.c:402 #, c-format msgid "" "You can use the following format strings which\n" @@ -4794,7 +5952,7 @@ "%%t: プレイリストの位置 (%%02d)\n" "%%p: 現在演奏中か (1 or 0)" -#: src/song_change/song_change.c:429 +#: src/song_change/song_change.c:427 msgid "" "Parameters passed to the shell should be encapsulated in " "quotes. Doing otherwise is a security risk." @@ -4802,7 +5960,7 @@ "シェルに渡されるパラメータはクォートでくくられるべきです." "さもないとセキュリティ上の危険があります." -#: src/spectrum/spectrum.c:90 +#: src/spectrum/spectrum.c:89 msgid "Spectrum Analyzer" msgstr "スペクトラムアナライザ" @@ -4814,11 +5972,11 @@ msgid "The orientation of the tray" msgstr "トレイの向き" -#: src/statusicon/si_ui.c:622 +#: src/statusicon/si_ui.c:620 msgid "About Status Icon Plugin" msgstr "ステータスアイコン プラグインについて" -#: src/statusicon/si_ui.c:624 +#: src/statusicon/si_ui.c:622 msgid "" "\n" "written by Giacomo Lozito < james@develia.org >\n" @@ -4832,39 +5990,39 @@ "このプラグインは, ウィンドウマネージャの\n" "システムトレイエリアに置かれるステータスアイコンを提供します.\n" -#: src/statusicon/si_ui.c:696 +#: src/statusicon/si_ui.c:694 msgid "Status Icon Plugin - Preferences" msgstr "ステータスアイコンプラグイン - 設定" -#: src/statusicon/si_ui.c:707 +#: src/statusicon/si_ui.c:705 msgid "Right-Click Menu" msgstr "右クリックメニュー" -#: src/statusicon/si_ui.c:712 +#: src/statusicon/si_ui.c:710 msgid "Audacious standard menu" msgstr "Audacious 標準メニュー" -#: src/statusicon/si_ui.c:717 +#: src/statusicon/si_ui.c:715 msgid "Small playback menu #1" msgstr "小型再生メニュー #1" -#: src/statusicon/si_ui.c:722 +#: src/statusicon/si_ui.c:720 msgid "Small playback menu #2" msgstr "小型再生メニュー #2" -#: src/statusicon/si_ui.c:745 +#: src/statusicon/si_ui.c:743 msgid "Mouse Scroll Action" msgstr "マウススクロールの動作" -#: src/statusicon/si_ui.c:750 +#: src/statusicon/si_ui.c:748 msgid "Change volume" msgstr "音量の変更" -#: src/statusicon/si_ui.c:755 +#: src/statusicon/si_ui.c:753 msgid "Change playing song" msgstr "演奏曲の変更" -#: src/stereo_plugin/stereo.c:26 +#: src/stereo_plugin/stereo.c:25 msgid "" "Extra Stereo Plugin\n" "\n" @@ -4874,23 +6032,19 @@ "\n" "1999. Johan Levin による" -#: src/stereo_plugin/stereo.c:52 +#: src/stereo_plugin/stereo.c:51 msgid "About Extra Stereo Plugin" msgstr "エクストラステレオプラグインについて" -#: src/stereo_plugin/stereo.c:93 +#: src/stereo_plugin/stereo.c:92 msgid "Configure Extra Stereo" msgstr "エクストラステレオの設定" -#: src/stereo_plugin/stereo.c:95 -msgid "Effect intensity:" -msgstr "エフェクトの強さ:" +#: src/sun/about.c:33 +msgid "About the Sun Driver" +msgstr "Sun ドライバについて" #: src/sun/about.c:34 -msgid "About the Sun Driver" -msgstr "Sun ドライバについて" - -#: src/sun/about.c:35 msgid "" "XMMS BSD Sun Driver\n" "\n" @@ -4902,19 +6056,19 @@ "Copyright (c) 2001 CubeSoft Communications, Inc.\n" "メンテナ: .\n" -#: src/sun/configure.c:201 +#: src/sun/configure.c:199 msgid "Audio control device:" msgstr "オーディオコントロールデバイス:" -#: src/sun/configure.c:350 +#: src/sun/configure.c:348 msgid "Volume controls device:" msgstr "音量コントロールデバイス:" -#: src/sun/configure.c:363 +#: src/sun/configure.c:361 msgid "XMMS uses mixer exclusively." msgstr "ミキサを排他的に使う" -#: src/sun/configure.c:538 +#: src/sun/configure.c:536 msgid "Sun driver configuration" msgstr "Sun ドライバの設定" @@ -4942,7 +6096,7 @@ msgid "TiMidity Configuration File" msgstr "TiMidity 設定ファイル" -#: src/timidity/xmms-timidity.c:118 +#: src/timidity/xmms-timidity.c:115 msgid "" "TiMidity Plugin\n" "http://libtimidity.sourceforge.net\n" @@ -4952,20 +6106,20 @@ "http://libtimidity.sourceforge.net\n" "Konstantin Korikov による" -#: src/timidity/xmms-timidity.c:119 +#: src/timidity/xmms-timidity.c:116 #, c-format msgid "TiMidity Plugin %s" msgstr "TiMidity プラグイン %s" -#: src/timidity/xmms-timidity.c:336 +#: src/timidity/xmms-timidity.c:333 msgid "Couldn't load MIDI file" msgstr "MIDI ファイルを読み込めません" -#: src/tonegen/tonegen.c:56 +#: src/tonegen/tonegen.c:55 msgid "About Tone Generator" msgstr "トーンジェネレータについて" -#: src/tonegen/tonegen.c:58 +#: src/tonegen/tonegen.c:57 msgid "" "Sinus tone generator by Haavard Kvaalen \n" "Modified by Daniel J. Peng \n" @@ -4979,52 +6133,52 @@ "URLに tone://frequency1;frequency2;frequency3;... と追加して使用します\n" "例 tone://2000;2005 は 2000Hz トーンと 2005Hz トーンを演奏します" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 #, c-format msgid "%s %.1f Hz" msgstr "%s %.1f Hz" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 msgid "Tone Generator: " msgstr "トーンジェネレータ: " -#: src/tta/libtta.c:130 +#: src/tta/libtta.c:127 msgid "Can't open file\n" msgstr "ファイルを開けません\n" +#: src/tta/libtta.c:130 +msgid "Not supported file format\n" +msgstr "サポートしていないファイルフォーマットです\n" + #: src/tta/libtta.c:133 -msgid "Not supported file format\n" -msgstr "サポートしていないファイルフォーマットです\n" +msgid "File is corrupted\n" +msgstr "ファイルが壊れています\n" #: src/tta/libtta.c:136 -msgid "File is corrupted\n" -msgstr "ファイルが壊れています\n" +msgid "Can't read from file\n" +msgstr "ファイルから読み込めません\n" #: src/tta/libtta.c:139 -msgid "Can't read from file\n" -msgstr "ファイルから読み込めません\n" +msgid "Insufficient memory available\n" +msgstr "利用可能メモリが不十分です\n" #: src/tta/libtta.c:142 -msgid "Insufficient memory available\n" -msgstr "利用可能メモリが不十分です\n" +msgid "Output plugin error\n" +msgstr "出力プラグインエラー\n" #: src/tta/libtta.c:145 -msgid "Output plugin error\n" -msgstr "出力プラグインエラー\n" - -#: src/tta/libtta.c:148 msgid "Unknown error\n" msgstr "不明なエラー\n" -#: src/tta/libtta.c:152 +#: src/tta/libtta.c:149 msgid "TTA Decoder Error" msgstr "TTA デコーダエラー" -#: src/tta/libtta.c:261 +#: src/tta/libtta.c:258 msgid "TTA input plugin " msgstr "TTA 入力プラグイン" -#: src/tta/libtta.c:262 +#: src/tta/libtta.c:259 msgid "" " for BMP\n" "Copyright (c) 2004 True Audio Software\n" @@ -5032,35 +6186,35 @@ " for BMP\n" "Copyright (c) 2004 True Audio Software\n" -#: src/tta/libtta.c:265 +#: src/tta/libtta.c:262 msgid "About True Audio Plugin" msgstr "True Audio プラグインについて" -#: src/tta/libtta.c:316 +#: src/tta/libtta.c:313 msgid "ID3 Tag:" msgstr " ID3 タグ:" -#: src/tta/libtta.c:378 src/wavpack/ui.cxx:234 +#: src/tta/libtta.c:375 src/wavpack/ui.cxx:232 msgid "Track number:" msgstr "トラック番号:" -#: src/vorbis/configure.c:84 +#: src/vorbis/configure.c:82 msgid "Ogg Vorbis Audio Plugin Configuration" msgstr "Ogg Vorbis オーディオプラグインの設定" -#: src/vorbis/configure.c:94 +#: src/vorbis/configure.c:92 msgid "Ogg Vorbis Tags:" msgstr "Ogg Vorbis タグ:" -#: src/vorbis/configure.c:115 +#: src/vorbis/configure.c:113 msgid "Title format:" msgstr "タイトルの書式:" -#: src/vorbis/vorbis.c:681 +#: src/vorbis/vorbis.c:677 msgid "About Ogg Vorbis Audio Plugin" msgstr "Ogg Vorbis オーディオ プラグインについて" -#: src/vorbis/vorbis.c:687 +#: src/vorbis/vorbis.c:683 msgid "" "Ogg Vorbis Plugin by the Xiph.org Foundation\n" "\n" @@ -5094,11 +6248,11 @@ "\n" "Xiph.org Foundation もご覧下さい.\n" -#: src/vtx/about.c:23 +#: src/vtx/about.c:17 msgid "About Vortex Player" msgstr "Vortex プレイヤについて" -#: src/vtx/about.c:25 +#: src/vtx/about.c:19 msgid "" "Vortex file format player by Sashnov Alexander \n" "Founded on original source in_vtx.dll by Roman Sherbakov による" -#: src/wavpack/ui.cxx:52 +#: src/wavpack/ui.cxx:50 #, c-format msgid "Wavpack Decoder Plugin %s" msgstr "Wavpack デコーダプラグイン %s" -#: src/wavpack/ui.cxx:53 +#: src/wavpack/ui.cxx:51 msgid "" "Copyright (c) 2006 William Pitcock \n" "\n" @@ -5135,90 +6289,90 @@ "プラグインコードの一部は Miles Egan による\n" "Wavpack のサイト http://www.wavpack.com/ をご覧ください\n" -#: src/wavpack/ui.cxx:165 +#: src/wavpack/ui.cxx:163 msgid "Ape2 Tag" msgstr "Ape2 タグ" -#: src/wavpack/ui.cxx:288 +#: src/wavpack/ui.cxx:286 msgid "Wavpack Info:" msgstr "Wavpack 情報:" +#: src/wavpack/ui.cxx:379 +#, c-format +msgid "version %d" +msgstr "バージョン %d" + +#: src/wavpack/ui.cxx:380 +#, c-format +msgid "average bitrate: %6.1f kbps" +msgstr "平均ビットレート: %6.1f kbps" + #: src/wavpack/ui.cxx:381 #, c-format -msgid "version %d" -msgstr "バージョン %d" +msgid "samplerate: %d Hz" +msgstr "サンプリングレート: %d Hz" #: src/wavpack/ui.cxx:382 #, c-format -msgid "average bitrate: %6.1f kbps" -msgstr "平均ビットレート: %6.1f kbps" +msgid "bits per sample: %d" +msgstr "ビット/サンプリング: %d" #: src/wavpack/ui.cxx:383 #, c-format -msgid "samplerate: %d Hz" -msgstr "サンプリングレート: %d Hz" +msgid "channels: %d" +msgstr "チャンネル数: %d" #: src/wavpack/ui.cxx:384 #, c-format -msgid "bits per sample: %d" -msgstr "ビット/サンプリング: %d" +msgid "length: %d:%.2d" +msgstr "長さ: %d:%.2d" #: src/wavpack/ui.cxx:385 #, c-format -msgid "channels: %d" -msgstr "チャンネル数: %d" - -#: src/wavpack/ui.cxx:386 -#, c-format -msgid "length: %d:%.2d" -msgstr "長さ: %d:%.2d" - -#: src/wavpack/ui.cxx:387 -#, c-format msgid "file size: %d Bytes" msgstr "ファイルサイズ: %d Bytes" -#: src/wavpack/ui.cxx:394 +#: src/wavpack/ui.cxx:392 msgid "Title Peak: ?" msgstr "タイトルピーク: ?" -#: src/wavpack/ui.cxx:395 +#: src/wavpack/ui.cxx:393 msgid "Album Peak: ?" msgstr "アルバムピーク: ?" -#: src/wavpack/ui.cxx:396 +#: src/wavpack/ui.cxx:394 msgid "Title Gain: ?" msgstr "タイトルゲイン: ?" -#: src/wavpack/ui.cxx:397 +#: src/wavpack/ui.cxx:395 msgid "Album Gain: ?" msgstr "アルバムゲイン: ?" -#: src/wavpack/ui.cxx:471 +#: src/wavpack/ui.cxx:469 msgid "Wavpack Configuration" msgstr "Wavpack 設定" -#: src/wavpack/ui.cxx:484 +#: src/wavpack/ui.cxx:482 msgid "General Plugin Settings:" msgstr "一般的なプラグイン設定:" -#: src/wavpack/ui.cxx:502 +#: src/wavpack/ui.cxx:500 msgid "ReplayGain Settings:" msgstr "リプレイゲインの設定:" -#: src/wavpack/ui.cxx:520 +#: src/wavpack/ui.cxx:518 msgid "ReplayGain Type:" msgstr "リプレイゲインの種類:" -#: src/wavpack/ui.cxx:531 +#: src/wavpack/ui.cxx:529 msgid "use Track Gain/Peak" msgstr "トラックのゲイン/ピークを使用する" -#: src/wavpack/ui.cxx:539 +#: src/wavpack/ui.cxx:537 msgid "use Album Gain/Peak" msgstr "アルバムのゲイン/ピークを使用する" -#: src/wma/wma.c:123 +#: src/wma/wma.c:120 msgid "" "Adapted for use in Audacious by Tony Vroon (chainsaw@gentoo.org) from\n" "the BEEP-WMA plugin which is Copyright (C) 2004,2005 Mokrushin I.V. aka " @@ -5234,6 +6388,9 @@ "Tony Vroon による Audacious への適用.\n" "このプラグインは以下のソースコードを元とする: " +#~ msgid "Descriptions of SID-specific Tuplez fields go here. :D" +#~ msgstr "SID 特有のタプルフィールドはここに記載されます.:D" + #~ msgid "Error initializing song-length database!\n" #~ msgstr "曲の長さデータベース初期化エラー!\n" @@ -5367,9 +6524,6 @@ #~ msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n" #~ msgstr "t_xs_tuneinfo ('%s') のメモリを割り当てられませんでした\n" -#~ msgid "Could not allocate sidFilename ('%s')\n" -#~ msgstr "sidFilename ('%s') を割り当てられませんでした\n" - #~ msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n" #~ msgstr "t_xs_subtuneinfo ('%s', %i) のメモリを割り当てられませんでした\n" @@ -5445,9 +6599,6 @@ #~ msgid "Play/Pause:" #~ msgstr "演奏/一時停止:" -#~ msgid "File Info" -#~ msgstr "ファイル情報" - #~ msgid "Couldn't open file!" #~ msgstr "ファイルを開けませんでした!" @@ -5499,9 +6650,6 @@ #~ msgid "mp3gain minmax=%4s (max-min=%+6.3fdB)" #~ msgstr "mp3ゲイン minmax=%4s (max-min=%+6.3fdB)" -#~ msgid "Blues" -#~ msgstr "ブルース" - #~ msgid "Classic Rock" #~ msgstr "クラシックロック" @@ -5568,9 +6716,6 @@ #~ msgid "Death Metal" #~ msgstr "デスメタル" -#~ msgid "Pranks" -#~ msgstr "プランク" - #~ msgid "Soundtrack" #~ msgstr "サウンドトラック" @@ -5622,9 +6767,6 @@ #~ msgid "AlternRock" #~ msgstr "オルタナロック" -#~ msgid "Bass" -#~ msgstr "ベース" - #~ msgid "Soul" #~ msgstr "ソウル" @@ -5706,9 +6848,6 @@ #~ msgid "Rave" #~ msgstr "レイブ" -#~ msgid "Showtunes" -#~ msgstr "ショーチューン" - #~ msgid "Trailer" #~ msgstr "トレイラー" @@ -5727,9 +6866,6 @@ #~ msgid "Polka" #~ msgstr "ポルカ" -#~ msgid "Retro" -#~ msgstr "レトロ" - #~ msgid "Musical" #~ msgstr "ミュージカル" @@ -5829,9 +6965,6 @@ #~ msgid "Porn Groove" #~ msgstr "ポルノグルーヴ" -#~ msgid "Satire" -#~ msgstr "サティア" - #~ msgid "Slow Jam" #~ msgstr "スロージャム" @@ -5904,9 +7037,6 @@ #~ msgid "Polsk Punk" #~ msgstr "ポルスクパンク" -#~ msgid "Beat" -#~ msgstr "ビート" - #~ msgid "Christian Gangsta Rap" #~ msgstr "クリスチャンギャングスタラップ" @@ -5965,30 +7095,18 @@ #~ msgid " Ogg Vorbis Tag " #~ msgstr " Ogg Vorbis タグ " -#~ msgid "Date:" -#~ msgstr "日付:" - #~ msgid "Description:" #~ msgstr "詳細:" -#~ msgid "Location:" -#~ msgstr "場所:" - #~ msgid "Version:" #~ msgstr "バージョン:" #~ msgid "ISRC number:" #~ msgstr "ISRC 番号:" -#~ msgid "Organization:" -#~ msgstr "組織:" - #~ msgid " Ogg Vorbis ReplayGain " #~ msgstr " Ogg Vorbis リプレイゲイン " -#~ msgid "Track gain:" -#~ msgstr "トラックのゲイン:" - #~ msgid "Track peak:" #~ msgstr "トラックのピーク:" @@ -6028,9 +7146,6 @@ #~ msgid "%d Bytes" #~ msgstr "%d バイト" -#~ msgid "%s - Audacious" -#~ msgstr "%s - Audacious" - #~ msgid "Use software volume control" #~ msgstr "ソフトウェア音量コントロールを使う" @@ -6041,9 +7156,6 @@ #~ "リアルタイムモードで実行しているとき\n" #~ "ファイルライタ プラグインは利用できません." -#~ msgid "Error loading pixmap file: %s" -#~ msgstr "pixmap ファイルの読み込みエラー: %s" - #~ msgid "Tune #%i" #~ msgstr "チューン #%i" @@ -6059,9 +7171,6 @@ #~ msgid "6581R4 (alankila)" #~ msgstr "6581R4 (alankila)" -#~ msgid "Load" -#~ msgstr "読み込み" - #~ msgid "" #~ "XMMS v1.2.5 and later support generic titlestring formatting (see XMMS " #~ "preferences). This option can be enabled to override those generic titles " @@ -6196,10 +7305,6 @@ #~ msgstr "11000 Hz" #, fuzzy -#~ msgid "16000" -#~ msgstr "11000 Hz" - -#, fuzzy #~ msgid "24000" #~ msgstr "22000 Hz" @@ -6294,9 +7399,6 @@ #~ msgid "Check drive..." #~ msgstr "ドライブのチェック..." -#~ msgid "Remove drive" -#~ msgstr "ドライブの削除" - #~ msgid "CD Audio Player Configuration" #~ msgstr "CD オーディオプレイヤの設定" @@ -6315,9 +7417,6 @@ #~ msgid "Get server list" #~ msgstr "サーバリストの取得" -#~ msgid "Show network window" -#~ msgstr "ネットワークウィンドウの表示" - #~ msgid "CDDB server:" #~ msgstr "CDDB サーバ:" @@ -6650,12 +7749,6 @@ #~ msgid "Noise shaping" #~ msgstr "ノイズシェーピング" -#~ msgid "low" -#~ msgstr "低" - -#~ msgid "medium" -#~ msgstr "中" - #~ msgid "high" #~ msgstr "高" diff -r c40585c57877 -r 7fc2c317d190 po/ro.po --- a/po/ro.po Thu Jul 03 17:23:34 2008 +0300 +++ b/po/ro.po Thu Jul 03 17:37:11 2008 +0300 @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: audacious-plugins 1.4.0\n" -"Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" -"POT-Creation-Date: 2008-03-30 17:25+0200\n" +"Report-Msgid-Bugs-To: http://bugzilla.atheme.org/\n" +"POT-Creation-Date: 2008-06-21 08:27+0300\n" "PO-Revision-Date: 2007-08-28 20:44+0200\n" "Last-Translator: Daniel Patriche \n" "Language-Team: Romanian \n" @@ -18,11 +18,11 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/aac/libmp4.c:286 +#: src/aac/libmp4.c:283 msgid "Using libfaad2-" msgstr "Este utilizat libfaad2" -#: src/aac/libmp4.c:287 +#: src/aac/libmp4.c:284 msgid "" " for decoding.\n" "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n" @@ -33,38 +33,38 @@ "decoder-ul este ·(C)·Nero·AG,·www.nero.com\n" "Copyright·(c)·2005-2006·Echipa de dezvoltare Audacious" -#: src/aac/libmp4.c:291 +#: src/aac/libmp4.c:288 msgid "About MP4 AAC player plugin" msgstr "Despre plugin-ul decodor MP4·AAC" -#: src/aac/libmp4.c:293 src/adplug/adplug-xmms.cc:182 -#: src/adplug/adplug-xmms.cc:265 src/adplug/adplug-xmms.cc:526 -#: src/alac/plugin.c:77 src/arts/arts.c:26 src/arts/configure.c:90 -#: src/audiocompress/audacious-glue.c:102 -#: src/audiocompress/audacious-glue.c:552 src/cdaudio-ng/configure.c:228 -#: src/console/Audacious_Driver.cxx:449 src/demac/plugin.c:393 -#: src/echo_plugin/gui.c:26 src/echo_plugin/gui.c:137 src/esd/about.c:49 -#: src/filewriter/filewriter.c:183 src/jack/configure.c:141 -#: src/jack/jack.c:456 src/madplug/plugin.c:542 src/madplug/plugin.c:566 -#: src/metronom/metronom.c:88 src/modplug/gui/main.cxx:49 -#: src/musepack/libmpc.cxx:232 src/null/null.c:67 src/null/null.c:110 -#: src/OSS4/about.c:59 src/OSS/about.c:54 src/paranormal-ng/plugin.c:283 -#: src/paranormal/plugin.c:291 src/scrobbler/gtkstuff.c:25 -#: src/sndfile/plugin.c:565 src/statusicon/si_ui.c:628 -#: src/stereo_plugin/stereo.c:53 src/stereo_plugin/stereo.c:116 -#: src/sun/about.c:38 src/sun/configure.c:559 src/timidity/interface.c:222 -#: src/timidity/xmms-timidity.c:120 src/tonegen/tonegen.c:62 -#: src/tta/libtta.c:153 src/tta/libtta.c:267 src/tta/libtta.c:402 -#: src/vorbis/vorbis.c:700 src/vtx/about.c:32 src/vtx/info.c:43 -#: src/wavpack/ui.cxx:56 src/wavpack/ui.cxx:556 +#: src/aac/libmp4.c:290 src/adplug/adplug-xmms.cc:180 +#: src/adplug/adplug-xmms.cc:263 src/adplug/adplug-xmms.cc:524 +#: src/alac/plugin.c:74 src/arts/arts.c:25 src/arts/configure.c:90 +#: src/audiocompress/audacious-glue.c:110 +#: src/audiocompress/audacious-glue.c:560 src/cdaudio-ng/configure.c:242 +#: src/console/Audacious_Driver.cxx:447 src/crystalizer/crystalizer.c:113 +#: src/demac/plugin.c:364 src/echo_plugin/gui.c:24 src/echo_plugin/gui.c:135 +#: src/esd/about.c:48 src/filewriter/filewriter.c:183 src/jack/configure.c:140 +#: src/jack/jack.c:454 src/madplug/plugin.c:679 src/madplug/plugin.c:703 +#: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:52 +#: src/musepack/libmpc.cxx:228 src/null/null.c:64 src/null/null.c:107 +#: src/OSS4/OSS4.c:55 src/OSS/OSS.c:52 src/paranormal-ng/plugin.c:282 +#: src/paranormal/plugin.c:290 src/scrobbler/gtkstuff.c:22 +#: src/sndfile/plugin.c:571 src/statusicon/si_ui.c:626 +#: src/stereo_plugin/stereo.c:52 src/stereo_plugin/stereo.c:115 +#: src/sun/about.c:37 src/sun/configure.c:557 src/timidity/interface.c:222 +#: src/timidity/xmms-timidity.c:117 src/tonegen/tonegen.c:61 +#: src/tta/libtta.c:150 src/tta/libtta.c:264 src/tta/libtta.c:399 +#: src/vorbis/vorbis.c:696 src/vtx/about.c:26 src/vtx/info.c:38 +#: src/wavpack/ui.cxx:54 src/wavpack/ui.cxx:554 msgid "Ok" msgstr "Ok" -#: src/adplug/adplug-xmms.cc:171 +#: src/adplug/adplug-xmms.cc:169 msgid "About " msgstr "Despre " -#: src/adplug/adplug-xmms.cc:175 +#: src/adplug/adplug-xmms.cc:173 msgid "" "\n" "Copyright (C) 2002, 2003 Simon Peter \n" @@ -86,65 +86,65 @@ "Plugin-ul folosește biblioteca AdPlug,·Copyright·(C)·Simon·Peter·și alții.\n" "Versiunea AdPlug pentru care a fost link-editat:·" -#: src/adplug/adplug-xmms.cc:256 +#: src/adplug/adplug-xmms.cc:254 msgid "AdPlug :: Configuration" msgstr "AdPlug·::·Configurare" -#: src/adplug/adplug-xmms.cc:275 src/alarm/interface.c:1398 +#: src/adplug/adplug-xmms.cc:273 src/alarm/interface.c:1398 #: src/alsa/configure.c:389 src/arts/configure.c:91 -#: src/audiocompress/audacious-glue.c:557 src/cdaudio-ng/configure.c:232 -#: src/echo_plugin/gui.c:145 src/jack/configure.c:148 -#: src/modplug/gui/interface.cxx:714 src/modplug/gui/modplug.glade:1668 -#: src/musepack/libmpc.cxx:237 src/musepack/libmpc.cxx:557 src/null/null.c:111 -#: src/sid/xmms-sid.glade:3080 src/sid/xs_interface.c:1250 -#: src/stereo_plugin/stereo.c:125 src/sun/configure.c:567 -#: src/timidity/interface.c:230 src/wavpack/ui.cxx:280 src/wavpack/ui.cxx:563 +#: src/audiocompress/audacious-glue.c:565 src/cdaudio-ng/configure.c:246 +#: src/crystalizer/crystalizer.c:122 src/echo_plugin/gui.c:143 +#: src/jack/configure.c:147 src/modplug/gui/interface.cxx:714 +#: src/modplug/gui/modplug.glade:1668 src/musepack/libmpc.cxx:233 +#: src/musepack/libmpc.cxx:553 src/null/null.c:108 +#: src/stereo_plugin/stereo.c:124 src/sun/configure.c:565 +#: src/timidity/interface.c:230 src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561 msgid "Cancel" msgstr "Anulează" -#: src/adplug/adplug-xmms.cc:291 src/console/Audacious_Config.cxx:145 -#: src/madplug/configure.c:290 src/modplug/gui/interface.cxx:628 +#: src/adplug/adplug-xmms.cc:289 src/console/Audacious_Config.cxx:144 +#: src/madplug/configure.c:289 src/modplug/gui/interface.cxx:628 #: src/modplug/gui/interface.cxx:887 src/modplug/gui/modplug.glade:1404 #: src/modplug/gui/modplug.glade:1804 msgid "General" msgstr "General" -#: src/adplug/adplug-xmms.cc:303 +#: src/adplug/adplug-xmms.cc:301 msgid "Sound quality" msgstr "Calitatea sunetului" -#: src/adplug/adplug-xmms.cc:308 src/modplug/gui/interface.cxx:187 +#: src/adplug/adplug-xmms.cc:306 src/modplug/gui/interface.cxx:187 #: src/modplug/gui/modplug.glade:113 msgid "Resolution" msgstr "Rezoluție" -#: src/adplug/adplug-xmms.cc:310 +#: src/adplug/adplug-xmms.cc:308 msgid "8bit" msgstr "8 biți" -#: src/adplug/adplug-xmms.cc:315 +#: src/adplug/adplug-xmms.cc:313 msgid "16bit" msgstr "16 biți" -#: src/adplug/adplug-xmms.cc:323 src/modplug/gui/interface.cxx:218 +#: src/adplug/adplug-xmms.cc:321 src/modplug/gui/interface.cxx:218 #: src/modplug/gui/modplug.glade:199 src/timidity/interface.c:148 msgid "Channels" msgstr "Canale" -#: src/adplug/adplug-xmms.cc:325 src/filewriter/mp3.c:900 -#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:288 +#: src/adplug/adplug-xmms.cc:323 src/filewriter/mp3.c:900 +#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:300 #: src/timidity/interface.c:165 msgid "Mono" msgstr "Mono" -#: src/adplug/adplug-xmms.cc:330 src/filewriter/mp3.c:895 +#: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:895 #: src/modplug/gui/interface.cxx:204 src/modplug/gui/modplug.glade:159 -#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:295 +#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:307 #: src/timidity/interface.c:173 msgid "Stereo" msgstr "Stereo" -#: src/adplug/adplug-xmms.cc:334 +#: src/adplug/adplug-xmms.cc:332 msgid "" "Setting stereo is not recommended, unless you need to. This won't add any " "stereo effects to the sound - OPL2 is just mono - but eats up more CPU power!" @@ -153,20 +153,20 @@ "nevoieAceastă setare nu va adăuga efecte stereo, deoarece OPL2 suportă doar " "MonoVa consuma însă mai multe resurse de calcul!" -#: src/adplug/adplug-xmms.cc:342 +#: src/adplug/adplug-xmms.cc:340 msgid "Frequency" msgstr "Frecvența" -#: src/adplug/adplug-xmms.cc:378 src/adplug/adplug-xmms.cc:582 -#: src/console/Audacious_Config.cxx:147 +#: src/adplug/adplug-xmms.cc:376 src/adplug/adplug-xmms.cc:580 +#: src/console/Audacious_Config.cxx:146 src/skins/ui_manager.c:175 msgid "Playback" msgstr "Redare" -#: src/adplug/adplug-xmms.cc:382 +#: src/adplug/adplug-xmms.cc:380 msgid "Detect songend" msgstr "Detectează sfârșitul melodiei" -#: src/adplug/adplug-xmms.cc:386 +#: src/adplug/adplug-xmms.cc:384 msgid "" "If enabled, XMMS will detect a song's ending, stop it and advance in the " "playlist. If disabled, XMMS won't take notice of a song's ending and loop it " @@ -176,23 +176,23 @@ "și va avansa la melodia următoare. Dacă este dezactivat, nu se va ști când s-" "a terminat melodia și va fi redată din nou, la infinit. " -#: src/adplug/adplug-xmms.cc:397 +#: src/adplug/adplug-xmms.cc:395 msgid "Formats" msgstr "Formate" -#: src/adplug/adplug-xmms.cc:404 +#: src/adplug/adplug-xmms.cc:402 msgid "Format selection" msgstr "Selecția formatelor" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Format" msgstr "Format" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Extension" msgstr "Extensie" -#: src/adplug/adplug-xmms.cc:447 +#: src/adplug/adplug-xmms.cc:445 msgid "" "Selected file types will be recognized and played back by this plugin. " "Deselected types will be ignored to make room for other plugins to play " @@ -201,88 +201,88 @@ "Tipurile de fișiere selectate vor fi recunoscute și redate de acest plugin. " "Cele deselectate vor fi ignorate, dar pot fi redate de alte pluginuri." -#: src/adplug/adplug-xmms.cc:533 +#: src/adplug/adplug-xmms.cc:531 msgid "AdPlug :: File Info" msgstr "AdPlug·::·Informații despre fișier" -#: src/adplug/adplug-xmms.cc:555 src/amidi-plug/i_configure-fluidsynth.c:448 +#: src/adplug/adplug-xmms.cc:553 src/amidi-plug/i_configure-fluidsynth.c:448 msgid "Filename" msgstr "Numele Fișierului:" +#: src/adplug/adplug-xmms.cc:557 src/skins/ui_playlist.c:470 +msgid "Title: " +msgstr "Titlu: " + +#: src/adplug/adplug-xmms.cc:558 +msgid "Author: " +msgstr "Autor: " + #: src/adplug/adplug-xmms.cc:559 -msgid "Title: " -msgstr "Titlu: " - -#: src/adplug/adplug-xmms.cc:560 -msgid "Author: " -msgstr "Autor: " - -#: src/adplug/adplug-xmms.cc:561 msgid "File Type: " msgstr "Tipul Fișierului: " -#: src/adplug/adplug-xmms.cc:562 +#: src/adplug/adplug-xmms.cc:560 msgid "Subsongs: " msgstr "Sub-melodii: " -#: src/adplug/adplug-xmms.cc:563 +#: src/adplug/adplug-xmms.cc:561 msgid "Instruments: " msgstr "Instrumente: " -#: src/adplug/adplug-xmms.cc:568 +#: src/adplug/adplug-xmms.cc:566 msgid "Orders: " msgstr "Ordine: " -#: src/adplug/adplug-xmms.cc:569 +#: src/adplug/adplug-xmms.cc:567 msgid "Patterns: " msgstr "Șabloane: " -#: src/adplug/adplug-xmms.cc:573 +#: src/adplug/adplug-xmms.cc:571 msgid "Song" msgstr "Melodia" -#: src/adplug/adplug-xmms.cc:599 +#: src/adplug/adplug-xmms.cc:597 msgid "Instrument name" msgstr "Numele Instrumentului" -#: src/adplug/adplug-xmms.cc:641 +#: src/adplug/adplug-xmms.cc:639 msgid "Song message" msgstr "Mesajul melodiei" -#: src/adplug/adplug-xmms.cc:663 +#: src/adplug/adplug-xmms.cc:661 msgid "Subsong selection" msgstr "Selecția sub-melodiei" -#: src/adplug/adplug-xmms.cc:727 +#: src/adplug/adplug-xmms.cc:725 msgid "Order: " msgstr "Ordine: " -#: src/adplug/adplug-xmms.cc:728 +#: src/adplug/adplug-xmms.cc:726 msgid "Pattern: " msgstr "Șablon: " +#: src/adplug/adplug-xmms.cc:728 +msgid "Row: " +msgstr "Linie: " + +#: src/adplug/adplug-xmms.cc:729 +msgid "Speed: " +msgstr "Viteză: " + #: src/adplug/adplug-xmms.cc:730 -msgid "Row: " -msgstr "Linie: " - -#: src/adplug/adplug-xmms.cc:731 -msgid "Speed: " -msgstr "Viteză: " - -#: src/adplug/adplug-xmms.cc:732 msgid "Timer: " msgstr "Cronometru: " -#: src/adplug/adplug-xmms.cc:733 src/console/Audacious_Config.cxx:225 -#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:341 +#: src/adplug/adplug-xmms.cc:731 src/console/Audacious_Config.cxx:224 +#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:353 msgid "Hz" msgstr "Hz" -#: src/alac/plugin.c:74 +#: src/alac/plugin.c:71 msgid "About Apple Lossless Audio Plugin" msgstr "Despre plugin-ul·Apple·Lossless·Audio" -#: src/alac/plugin.c:75 +#: src/alac/plugin.c:72 msgid "" "Copyright (c) 2006 Audacious team\n" "Portions (c) 2005-2006 David Hammerton " @@ -320,8 +320,8 @@ #: src/alarm/interface.c:71 src/lirc/about.c:115 #: src/modplug/gui/interface.cxx:971 src/modplug/gui/modplug.glade:2030 -#: src/sid/xmms-sid.glade:3643 src/sid/xs_about.c:214 -#: src/sid/xs_interface.c:1740 +#: src/sid/xmms-sid.glade:3837 src/sid/xs_about.c:214 +#: src/sid/xs_interface.c:1824 msgid "Close" msgstr "Închide" @@ -333,13 +333,12 @@ msgid "This is your wakeup call." msgstr "Acesta este semnalul de deșteptare." -#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:46 +#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:45 #: src/alsa/configure.c:383 src/cdaudio-ng/cdaudio-ng.c:247 -#: src/flacng/plugin.c:706 src/gnomeshortcuts/gnomeshortcuts.c:311 -#: src/hotkey/gui.c:671 src/modplug/gui/interface.cxx:702 -#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:738 -#: src/scrobbler/gtkstuff.c:45 src/sid/xmms-sid.glade:3066 -#: src/sid/xs_interface.c:1243 +#: src/flacng/plugin.c:705 src/gnomeshortcuts/gnomeshortcuts.c:310 +#: src/hotkey/gui.c:670 src/modplug/gui/interface.cxx:702 +#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:736 +#: src/scrobbler/gtkstuff.c:42 src/skins/plugin.c:130 msgid "OK" msgstr "Ok" @@ -418,7 +417,8 @@ #: src/alarm/interface.c:612 src/alarm/interface.c:660 #: src/alarm/interface.c:708 src/alarm/interface.c:756 #: src/alarm/interface.c:804 src/alarm/interface.c:852 -#: src/alarm/interface.c:900 src/OSS4/configure.c:138 src/OSS/configure.c:169 +#: src/alarm/interface.c:900 src/OSS4/configure.c:136 src/OSS/configure.c:168 +#: src/skins/ui_manager.c:447 src/skins/ui_manager.c:468 #, fuzzy msgid "Default" msgstr "Implicit" @@ -464,9 +464,9 @@ msgstr "Tranziție" #: src/alarm/interface.c:1087 src/sid/xmms-sid.glade:2007 -#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2676 -#: src/sid/xs_interface.c:908 src/sid/xs_interface.c:962 -#: src/sid/xs_interface.c:1122 +#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2746 +#: src/sid/xs_interface.c:920 src/sid/xs_interface.c:974 +#: src/sid/xs_interface.c:1154 #, fuzzy msgid "seconds" msgstr "secunde" @@ -527,7 +527,7 @@ msgid "Use reminder" msgstr "Folosește cursoare de mouse personalizate (oferite de skin)" -#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:377 +#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:376 #, fuzzy msgid "Options" msgstr "Meniu de Opțiuni" @@ -642,7 +642,7 @@ " oprește. Editați mesajul și activați-l dacă doriți \n" " ca acesta să fie afișat.\n" -#: src/alarm/interface.c:1366 +#: src/alarm/interface.c:1366 src/skins/ui_manager.c:386 msgid "Help" msgstr "Ajutor" @@ -654,12 +654,12 @@ msgid "Thankyou" msgstr "Mulțumesc" -#: src/alsa/about.c:30 +#: src/alsa/about.c:29 #, fuzzy msgid "About ALSA Driver" msgstr "Despre plugin-ul·pentru Alarmă" -#: src/alsa/about.c:31 +#: src/alsa/about.c:30 msgid "" "Audacious ALSA Driver\n" "\n" @@ -708,8 +708,8 @@ msgid "ALSA Driver configuration" msgstr "Configurarea plugin-ului ALSA" -#: src/alsa/configure.c:274 src/OSS4/configure.c:186 src/OSS/configure.c:217 -#: src/sun/configure.c:183 +#: src/alsa/configure.c:274 src/OSS4/configure.c:184 src/OSS/configure.c:216 +#: src/sun/configure.c:181 #, fuzzy msgid "Audio device:" msgstr "Sistemul Audio" @@ -722,7 +722,7 @@ msgid "Mixer card:" msgstr "Placă mixer:" -#: src/alsa/configure.c:313 src/OSS/configure.c:260 src/sun/configure.c:220 +#: src/alsa/configure.c:313 src/OSS/configure.c:259 src/sun/configure.c:218 msgid "Mixer device:" msgstr "Dispozitiv mixer:" @@ -1356,8 +1356,8 @@ "backend" msgstr "" -#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3465 -#: src/sid/xs_interface.c:1684 +#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3659 +#: src/sid/xs_interface.c:1768 #, fuzzy msgid "Name:" msgstr "Numele Instrumentului" @@ -1469,51 +1469,51 @@ msgid "None" msgstr "Deselectează tot" -#: src/aosd/aosd_trigger.c:75 +#: src/aosd/aosd_trigger.c:74 #, fuzzy msgid "Playback Start" msgstr "Începe redarea playlist-ului curent" -#: src/aosd/aosd_trigger.c:76 +#: src/aosd/aosd_trigger.c:75 msgid "Triggers OSD when a playlist entry is played." msgstr "" -#: src/aosd/aosd_trigger.c:80 +#: src/aosd/aosd_trigger.c:79 #, fuzzy msgid "Title Change" msgstr "Formatul titlului:" -#: src/aosd/aosd_trigger.c:81 +#: src/aosd/aosd_trigger.c:80 msgid "" "Triggers OSD when, during playback, the song title changes but the filename " "is the same. This is mostly useful to display title changes in internet " "streams." msgstr "" -#: src/aosd/aosd_trigger.c:87 +#: src/aosd/aosd_trigger.c:86 #, fuzzy msgid "Volume Change" msgstr "Schimbă volumul cu" -#: src/aosd/aosd_trigger.c:88 +#: src/aosd/aosd_trigger.c:87 msgid "Triggers OSD when volume is changed." msgstr "" -#: src/aosd/aosd_trigger.c:92 +#: src/aosd/aosd_trigger.c:91 #, fuzzy msgid "Pause On" msgstr "La încărcare" -#: src/aosd/aosd_trigger.c:93 +#: src/aosd/aosd_trigger.c:92 msgid "Triggers OSD when playback is paused." msgstr "" -#: src/aosd/aosd_trigger.c:97 +#: src/aosd/aosd_trigger.c:96 #, fuzzy msgid "Pause Off" msgstr "Pauză pentru" -#: src/aosd/aosd_trigger.c:98 +#: src/aosd/aosd_trigger.c:97 msgid "Triggers OSD when playback is unpaused." msgstr "" @@ -1622,10 +1622,10 @@ msgid "Skin file:" msgstr "Tipul Fișierului: " -#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2331 -#: src/sid/xmms-sid.glade:2856 src/sid/xmms-sid.glade:2962 -#: src/sid/xs_interface.c:1010 src/sid/xs_interface.c:1182 -#: src/sid/xs_interface.c:1218 +#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2373 +#: src/sid/xmms-sid.glade:2968 src/sid/xmms-sid.glade:3136 +#: src/sid/xs_interface.c:1043 src/sid/xs_interface.c:1235 +#: src/sid/xs_interface.c:1291 msgid "Browse" msgstr "" @@ -1708,9 +1708,9 @@ msgid "Trigger" msgstr "Declanşator" -#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:167 +#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:175 #: src/modplug/gui/interface.cxx:688 src/modplug/gui/modplug.glade:1603 -#: src/sid/xmms-sid.glade:3026 src/sid/xs_interface.c:1229 +#: src/sid/xmms-sid.glade:3220 src/sid/xs_interface.c:1301 msgid "Misc" msgstr "" @@ -1738,12 +1738,12 @@ "\n" msgstr "" -#: src/arts/arts.c:22 +#: src/arts/arts.c:21 #, fuzzy msgid "About aRts Output" msgstr "Plugin-ul de ieșire curent" -#: src/arts/arts.c:23 +#: src/arts/arts.c:22 msgid "" "aRts output plugin by Håvard Kvålen \n" "Audacious port by Giacomo Lozito from develia.org" @@ -1753,27 +1753,27 @@ msgid "aRts Driver configuration" msgstr "" -#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:232 -#: src/OSS/configure.c:304 src/sun/configure.c:259 +#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:230 +#: src/OSS/configure.c:303 src/sun/configure.c:257 msgid "Buffering:" msgstr "" -#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:245 -#: src/OSS/configure.c:317 src/sun/configure.c:272 +#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:243 +#: src/OSS/configure.c:316 src/sun/configure.c:270 #, fuzzy msgid "Buffer size (ms):" msgstr "Titlu" -#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:270 -#: src/OSS/configure.c:342 src/sun/configure.c:304 +#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:268 +#: src/OSS/configure.c:341 src/sun/configure.c:302 msgid "Buffering" msgstr "" -#: src/audiocompress/audacious-glue.c:95 +#: src/audiocompress/audacious-glue.c:103 msgid "AudioCompress " msgstr "" -#: src/audiocompress/audacious-glue.c:96 +#: src/audiocompress/audacious-glue.c:104 msgid "" "\n" "(c)2003 trikuare studios(http://trikuare.cx)\n" @@ -1783,117 +1783,117 @@ "keeping the volume level more or less consistent" msgstr "" -#: src/audiocompress/audacious-glue.c:101 +#: src/audiocompress/audacious-glue.c:109 #, fuzzy msgid "About AudioCompress" msgstr "Despre Audacious" -#: src/audiocompress/audacious-glue.c:320 +#: src/audiocompress/audacious-glue.c:328 msgid "" "If checked, when the sound peaks the volume will be cut instantly; " "otherwise, it will ramp down just in time for the peak (but some minor " "clipping may still occur)." msgstr "" -#: src/audiocompress/audacious-glue.c:324 +#: src/audiocompress/audacious-glue.c:332 msgid "The maximum amount to amplify the audio by" msgstr "" -#: src/audiocompress/audacious-glue.c:326 +#: src/audiocompress/audacious-glue.c:334 msgid "Defines how smoothly the volume will ramp up" msgstr "" -#: src/audiocompress/audacious-glue.c:328 +#: src/audiocompress/audacious-glue.c:336 msgid "" "The target audio level for ramping up. Lowering the value gives a bit more " "dynamic range for peaks, but will make the overall sound quieter." msgstr "" -#: src/audiocompress/audacious-glue.c:331 +#: src/audiocompress/audacious-glue.c:339 msgid "How long of a window to maintain" msgstr "" -#: src/audiocompress/audacious-glue.c:372 +#: src/audiocompress/audacious-glue.c:380 #, fuzzy msgid "AudioCompress preferences" msgstr "Preferințe Audacious" -#: src/audiocompress/audacious-glue.c:389 +#: src/audiocompress/audacious-glue.c:397 #, fuzzy msgid " Quality Options " msgstr "Meniu de Opțiuni" -#: src/audiocompress/audacious-glue.c:394 +#: src/audiocompress/audacious-glue.c:402 msgid " Aggressively prevent clipping" msgstr "" -#: src/audiocompress/audacious-glue.c:406 +#: src/audiocompress/audacious-glue.c:414 msgid " Target & gain" msgstr "" -#: src/audiocompress/audacious-glue.c:417 +#: src/audiocompress/audacious-glue.c:425 #, fuzzy msgid "Target audio level:" msgstr "Despre plugin-ul·Apple·Lossless·Audio" -#: src/audiocompress/audacious-glue.c:425 +#: src/audiocompress/audacious-glue.c:433 msgid "Maximum gain:" msgstr "" -#: src/audiocompress/audacious-glue.c:433 +#: src/audiocompress/audacious-glue.c:441 msgid "Gain smooth:" msgstr "" -#: src/audiocompress/audacious-glue.c:485 +#: src/audiocompress/audacious-glue.c:493 msgid " History " msgstr " Istorie " -#: src/audiocompress/audacious-glue.c:517 +#: src/audiocompress/audacious-glue.c:525 msgid "" "How long of a history to maintain. A higher number will make the volume " "changes less responsive." msgstr "" -#: src/audiocompress/audacious-glue.c:528 +#: src/audiocompress/audacious-glue.c:536 #, fuzzy msgid "Load default values" msgstr "Încarcă presetarea implicită a egalizatorului" -#: src/audiocompress/audacious-glue.c:533 +#: src/audiocompress/audacious-glue.c:541 #, fuzzy msgid "Audio values" msgstr "Sistemul Audio" -#: src/audiocompress/audacious-glue.c:562 src/echo_plugin/gui.c:152 -#: src/modplug/gui/interface.cxx:708 src/modplug/gui/modplug.glade:1655 -#: src/stereo_plugin/stereo.c:132 +#: src/audiocompress/audacious-glue.c:570 src/crystalizer/crystalizer.c:129 +#: src/echo_plugin/gui.c:150 src/modplug/gui/interface.cxx:708 +#: src/modplug/gui/modplug.glade:1655 src/stereo_plugin/stereo.c:131 msgid "Apply" msgstr "" -#: src/blur_scope/blur_scope.c:54 +#: src/blur_scope/blur_scope.c:52 #, fuzzy msgid "/Toggle Decorations" msgstr "Schimbă Coada" -#: src/blur_scope/blur_scope.c:56 +#: src/blur_scope/blur_scope.c:54 msgid "/-" msgstr "/-" -#: src/blur_scope/blur_scope.c:57 +#: src/blur_scope/blur_scope.c:55 #, fuzzy msgid "/Close" msgstr "Închide" -#: src/blur_scope/blur_scope.c:181 +#: src/blur_scope/blur_scope.c:179 #, fuzzy msgid "Blur scope" msgstr "Scop din Puncte" -#: src/blur_scope/config.c:72 +#: src/blur_scope/config.c:71 msgid "Blur Scope: Color selection" msgstr "" -#: src/blur_scope/config.c:82 src/jack/configure.c:108 +#: src/blur_scope/config.c:81 src/jack/configure.c:107 #, fuzzy msgid "Options:" msgstr "Meniu de Opțiuni" @@ -1925,7 +1925,7 @@ "This was a Google Summer of Code 2007 project." msgstr "" -#: src/cdaudio-ng/cdaudio-ng.c:814 +#: src/cdaudio-ng/cdaudio-ng.c:815 #, fuzzy msgid "" "No playable CD found.\n" @@ -1936,119 +1936,124 @@ "\n" "Nici un CD inserat, sau CD-ul inserat nu este audio.\n" -#: src/cdaudio-ng/configure.c:147 +#: src/cdaudio-ng/configure.c:155 #, fuzzy msgid "CD Audio Plugin Configuration" msgstr "Despre plugin-ul·Apple·Lossless·Audio" -#: src/cdaudio-ng/configure.c:157 +#: src/cdaudio-ng/configure.c:165 #, fuzzy msgid "Digital audio extraction" msgstr "Despre plugin-ul·Apple·Lossless·Audio" -#: src/cdaudio-ng/configure.c:162 +#: src/cdaudio-ng/configure.c:170 #, fuzzy msgid "Title information" msgstr "Informații despre Track" -#: src/cdaudio-ng/configure.c:179 +#: src/cdaudio-ng/configure.c:187 msgid "Limit read speed to: " msgstr "Limitează viteza de citire la:" -#: src/cdaudio-ng/configure.c:186 +#: src/cdaudio-ng/configure.c:194 #, fuzzy msgid "Use cd-text if available" msgstr "Folosește fonturi Bitmap dacă sunt disponibile" -#: src/cdaudio-ng/configure.c:190 +#: src/cdaudio-ng/configure.c:198 #, fuzzy msgid "Use CDDB if available" msgstr "Folosește fonturi Bitmap dacă sunt disponibile" -#: src/cdaudio-ng/configure.c:194 +#: src/cdaudio-ng/configure.c:202 msgid "Server: " msgstr "Server:" -#: src/cdaudio-ng/configure.c:197 +#: src/cdaudio-ng/configure.c:205 +#, fuzzy +msgid "Path: " +msgstr "Șablon: " + +#: src/cdaudio-ng/configure.c:208 #, fuzzy msgid "Port: " msgstr "Port-ul:" -#: src/cdaudio-ng/configure.c:203 +#: src/cdaudio-ng/configure.c:217 msgid "Use HTTP instead of CDDBP" msgstr "" -#: src/cdaudio-ng/configure.c:211 +#: src/cdaudio-ng/configure.c:225 #, fuzzy msgid "Override default device: " msgstr "Salvează Lista Implicită" -#: src/cdaudio-ng/configure.c:218 +#: src/cdaudio-ng/configure.c:232 #, fuzzy msgid "Print debug information" msgstr "Informații despre Pluginul de ieșire" -#: src/console/Audacious_Config.cxx:125 +#: src/console/Audacious_Config.cxx:124 msgid "Console Music Decoder" msgstr "" -#: src/console/Audacious_Config.cxx:162 +#: src/console/Audacious_Config.cxx:161 msgid "Bass:" msgstr "Bass:" -#: src/console/Audacious_Config.cxx:166 src/console/Audacious_Config.cxx:177 -#: src/console/Audacious_Config.cxx:198 +#: src/console/Audacious_Config.cxx:165 src/console/Audacious_Config.cxx:176 +#: src/console/Audacious_Config.cxx:197 msgid "secs" msgstr "" -#: src/console/Audacious_Config.cxx:173 +#: src/console/Audacious_Config.cxx:172 msgid "Treble:" msgstr "Inalte:" -#: src/console/Audacious_Config.cxx:194 +#: src/console/Audacious_Config.cxx:193 #, fuzzy msgid "Default song length:" msgstr "Pauză" -#: src/console/Audacious_Config.cxx:200 src/modplug/gui/interface.cxx:268 +#: src/console/Audacious_Config.cxx:199 src/modplug/gui/interface.cxx:268 #: src/modplug/gui/modplug.glade:338 src/sid/xmms-sid.glade:1243 -#: src/sid/xs_interface.c:653 +#: src/sid/xs_interface.c:665 msgid "Resampling" msgstr "" -#: src/console/Audacious_Config.cxx:206 +#: src/console/Audacious_Config.cxx:205 #, fuzzy msgid "Enable audio resampling" msgstr "Activează proxy" -#: src/console/Audacious_Config.cxx:221 +#: src/console/Audacious_Config.cxx:220 #, fuzzy msgid "Resampling rate:" msgstr "Rata de Reîmprospătare" -#: src/console/Audacious_Config.cxx:236 +#: src/console/Audacious_Config.cxx:235 msgid "SPC" msgstr "SPC" +#: src/console/Audacious_Config.cxx:236 +msgid "Ignore length from SPC tags" +msgstr "" + #: src/console/Audacious_Config.cxx:237 -msgid "Ignore length from SPC tags" -msgstr "" - -#: src/console/Audacious_Config.cxx:238 msgid "Increase reverb" msgstr "Măreşte reverbul" -#: src/console/Audacious_Config.cxx:263 +#: src/console/Audacious_Config.cxx:262 msgid "" "The default song length, expressed in seconds, is used for songs that do not " "provide length information (i.e. looping tracks)." msgstr "" -#: src/console/Audacious_Driver.cxx:444 +#: src/console/Audacious_Driver.cxx:442 msgid "About the Console Music Decoder" msgstr "" -#: src/console/Audacious_Driver.cxx:445 +#: src/console/Audacious_Driver.cxx:443 msgid "" "Console music decoder engine based on Game_Music_Emu 0.5.2.\n" "Supported formats: AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ\n" @@ -2056,12 +2061,22 @@ " Shay Green " msgstr "" -#: src/demac/plugin.c:388 +#: src/crystalizer/crystalizer.c:90 +#, fuzzy +msgid "Configure Crystalizer" +msgstr "Configurează" + +#: src/crystalizer/crystalizer.c:92 src/stereo_plugin/stereo.c:94 +#, fuzzy +msgid "Effect intensity:" +msgstr "Lista plugin-urilor de _Efecte" + +#: src/demac/plugin.c:359 #, fuzzy msgid "About Monkey's Audio Plugin" msgstr "Despre plugin-ul·Apple·Lossless·Audio" -#: src/demac/plugin.c:389 +#: src/demac/plugin.c:360 msgid "" "Copyright (C) 2007 Eugene Zagidullin \n" "Based on ffape decoder, Copyright (C) 2007 Benjamin Zores\n" @@ -2070,7 +2085,7 @@ "ffape is a part of FFmpeg project, http://ffmpeg.mplayerhq.hu/" msgstr "" -#: src/echo_plugin/gui.c:11 +#: src/echo_plugin/gui.c:9 msgid "" "Echo Plugin\n" "By Johan Levin 1999.\n" @@ -2078,38 +2093,38 @@ "Surround echo by Carl van Schaik 1999" msgstr "" -#: src/echo_plugin/gui.c:25 +#: src/echo_plugin/gui.c:23 #, fuzzy msgid "About Echo Plugin" msgstr "Despre plugin-ul decodor MP4·AAC" -#: src/echo_plugin/gui.c:76 +#: src/echo_plugin/gui.c:74 msgid "Configure Echo" msgstr "Configurează Ecou" -#: src/echo_plugin/gui.c:89 +#: src/echo_plugin/gui.c:87 msgid "Delay: (ms)" msgstr "" -#: src/echo_plugin/gui.c:94 +#: src/echo_plugin/gui.c:92 msgid "Feedback: (%)" msgstr "" -#: src/echo_plugin/gui.c:99 +#: src/echo_plugin/gui.c:97 #, fuzzy msgid "Volume: (%)" msgstr "Volum: %d%%" -#: src/echo_plugin/gui.c:122 +#: src/echo_plugin/gui.c:120 msgid "Surround echo" msgstr "" -#: src/esd/about.c:34 +#: src/esd/about.c:33 #, fuzzy msgid "About ESounD Plugin" msgstr "Despre plugin-ul decodor MP4·AAC" -#: src/esd/about.c:35 +#: src/esd/about.c:34 msgid "" "Audacious ESounD Plugin\n" "\n" @@ -2155,8 +2170,8 @@ msgid "Server" msgstr "Server" -#: src/esd/configure.c:198 src/OSS4/configure.c:259 src/OSS/configure.c:331 -#: src/sun/configure.c:290 +#: src/esd/configure.c:198 src/OSS4/configure.c:257 src/OSS/configure.c:330 +#: src/sun/configure.c:288 msgid "Pre-buffer (percent):" msgstr "" @@ -2245,93 +2260,93 @@ msgid "Window->JumpToFile" msgstr "Fereastra de Preferințe" -#: src/evdev-plug/ed_internals.c:94 +#: src/evdev-plug/ed_internals.c:93 #, c-format msgid "" "event-device-plugin: unable to open device file %s , skipping this device; " "check that the file exists and that you have read permission for it\n" msgstr "" -#: src/evdev-plug/ed_internals.c:103 +#: src/evdev-plug/ed_internals.c:102 #, c-format msgid "" "event-device-plugin: unable to create a io_channel for device file %s ," "skipping this device\n" msgstr "" -#: src/evdev-plug/ed_internals.c:342 +#: src/evdev-plug/ed_internals.c:341 msgid "" "event-device-plugin: unable to open /proc/bus/input/devices , automatic " "detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:351 +#: src/evdev-plug/ed_internals.c:350 msgid "" "event-device-plugin: unable to open a io_channel for /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:361 +#: src/evdev-plug/ed_internals.c:360 msgid "" "event-device-plugin: an error occurred while reading /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:424 +#: src/evdev-plug/ed_internals.c:423 #, c-format msgid "event-device-plugin: device %s not found in /dev/input , skipping.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:489 src/evdev-plug/ed_internals.c:583 +#: src/evdev-plug/ed_internals.c:488 src/evdev-plug/ed_internals.c:582 #, c-format msgid "" "event-device-plugin: unable to load config file %s , default settings will " "be used.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:535 +#: src/evdev-plug/ed_internals.c:534 #, c-format msgid "" "event-device-plugin: incomplete information in config file for device \"%s" "\" , skipping.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:604 src/evdev-plug/ed_internals.c:936 +#: src/evdev-plug/ed_internals.c:603 src/evdev-plug/ed_internals.c:935 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_active value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:840 +#: src/evdev-plug/ed_internals.c:839 #, c-format msgid "" "event-device-plugin: unable to access local directory %s , settings will not " "be saved.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:890 +#: src/evdev-plug/ed_internals.c:889 #, c-format msgid "" "event-device-plugin: configuration, unable to get filename value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:906 +#: src/evdev-plug/ed_internals.c:905 #, c-format msgid "" "event-device-plugin: configuration, unable to get phys value for device \"%s" "\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:922 +#: src/evdev-plug/ed_internals.c:921 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_custom value for device " "\"%s\", skipping it.\n" msgstr "" -#: src/evdev-plug/ed_internals.c:946 +#: src/evdev-plug/ed_internals.c:945 #, c-format msgid "" "event-device-plugin: configuration, unexpected value for device \"%s\", " @@ -2350,7 +2365,7 @@ "Ensure that the device has been correctly plugged in." msgstr "" -#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:566 +#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:703 #, fuzzy msgid "Error" msgstr "Eroare în Audacious" @@ -2407,7 +2422,7 @@ msgid "Active" msgstr "Activ" -#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:488 +#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:486 msgid "Status" msgstr "Statut" @@ -2513,7 +2528,7 @@ msgid "Output file format:" msgstr "AdPlug·::·Informații despre fișier" -#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:960 +#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:959 msgid "Configure" msgstr "Configurează" @@ -2756,12 +2771,12 @@ msgid "Quality level (0 - 10):" msgstr "Nivelul de calitate (0 - 10):" -#: src/flacng/plugin.c:698 +#: src/flacng/plugin.c:697 #, fuzzy msgid "FLAC Audio Plugin " msgstr "Despre plugin-ul·Apple·Lossless·Audio" -#: src/flacng/plugin.c:699 +#: src/flacng/plugin.c:698 msgid "" "\n" "\n" @@ -2771,17 +2786,17 @@ "http://www.skytale.net/projects/bmp-flac2/" msgstr "" -#: src/flacng/plugin.c:704 +#: src/flacng/plugin.c:703 #, fuzzy msgid "About FLAC Audio Plugin" msgstr "Despre plugin-ul·Apple·Lossless·Audio" -#: src/gnomeshortcuts/gnomeshortcuts.c:306 +#: src/gnomeshortcuts/gnomeshortcuts.c:305 #, fuzzy msgid "About Gnome Shortcut Plugin" msgstr "Despre plugin-ul decodor MP4·AAC" -#: src/gnomeshortcuts/gnomeshortcuts.c:307 +#: src/gnomeshortcuts/gnomeshortcuts.c:306 msgid "" "Gnome Shortcut Plugin\n" "Let's you control the player with Gnome's shortcuts.\n" @@ -2794,7 +2809,7 @@ msgid "Previous Track" msgstr "" -#: src/hotkey/gui.c:69 +#: src/hotkey/gui.c:69 src/skins/ui_manager.c:177 src/skins/ui_manager.c:178 #, fuzzy msgid "Play" msgstr "Pauză pentru" @@ -2804,7 +2819,7 @@ msgid "Pause/Resume" msgstr "La încărcare" -#: src/hotkey/gui.c:71 +#: src/hotkey/gui.c:71 src/skins/ui_manager.c:183 src/skins/ui_manager.c:184 #, fuzzy msgid "Stop" msgstr "Synthpop" @@ -2837,7 +2852,7 @@ msgid "Volume Down" msgstr "Schimbă volumul cu" -#: src/hotkey/gui.c:78 +#: src/hotkey/gui.c:78 src/skins/ui_manager.c:422 src/skins/ui_manager.c:423 #, fuzzy msgid "Jump to File" msgstr "Fereastra de Preferințe" @@ -2892,12 +2907,12 @@ msgid "Key Binding:" msgstr "" -#: src/hotkey/gui.c:660 +#: src/hotkey/gui.c:659 #, fuzzy msgid "About Global Hotkey Plugin" msgstr "Despre plugin-ul decodor MP4·AAC" -#: src/hotkey/gui.c:661 +#: src/hotkey/gui.c:660 msgid "" "Global Hotkey Plugin\n" "Control the player with global key combinations or multimedia keys.\n" @@ -2913,39 +2928,39 @@ "\n" msgstr "" -#: src/jack/configure.c:70 +#: src/jack/configure.c:69 msgid "Connect to all available jack ports" msgstr "Conectează la toate porturile jack" -#: src/jack/configure.c:77 +#: src/jack/configure.c:76 msgid "Connect only the output ports" msgstr "Conectează numai la porturile de ieşire" -#: src/jack/configure.c:84 +#: src/jack/configure.c:83 msgid "Connect to no ports" msgstr "" -#: src/jack/configure.c:99 +#: src/jack/configure.c:98 #, fuzzy msgid "jack Plugin configuration" msgstr "Lista plugin-urilor _Generale" -#: src/jack/configure.c:117 +#: src/jack/configure.c:116 #, fuzzy msgid "Connection mode:" msgstr "Mod de Vizualizare" -#: src/jack/configure.c:129 +#: src/jack/configure.c:128 #, fuzzy msgid "Enable debug printing" msgstr "Activează proxy" -#: src/jack/jack.c:84 +#: src/jack/jack.c:82 #, fuzzy msgid "Sample rate mismatch" msgstr "Convertor pentru rata de eșantionare" -#: src/jack/jack.c:87 +#: src/jack/jack.c:85 msgid "" "Xmms is asking for a sample rate that differs from\n" " that of the jack server. Xmms 1.2.8 or later\n" @@ -2959,16 +2974,16 @@ "Chris Morgan \n" msgstr "" -#: src/jack/jack.c:100 src/wma/wma.c:148 +#: src/jack/jack.c:98 src/wma/wma.c:145 #, fuzzy msgid " Close " msgstr "Închide" -#: src/jack/jack.c:452 +#: src/jack/jack.c:450 msgid "About JACK Output Plugin 0.17" msgstr "" -#: src/jack/jack.c:453 +#: src/jack/jack.c:451 msgid "" "XMMS jack Driver 0.17\n" "\n" @@ -2979,45 +2994,45 @@ "Giacomo Lozito from develia.org" msgstr "" -#: src/ladspa/ladspa.c:722 +#: src/ladspa/ladspa.c:721 msgid "This LADSPA plugin has no user controls" msgstr "" -#: src/ladspa/ladspa.c:767 src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:766 src/ladspa/ladspa.c:852 #, fuzzy msgid "Name" msgstr "Numele Instrumentului" -#: src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:852 msgid "UID" msgstr "" -#: src/ladspa/ladspa.c:928 +#: src/ladspa/ladspa.c:927 #, fuzzy msgid "Installed plugins" msgstr "Reîncarcă Plugin-urile" -#: src/ladspa/ladspa.c:937 +#: src/ladspa/ladspa.c:936 #, fuzzy msgid "Running plugins" msgstr "Reîncarcă Plugin-urile" -#: src/ladspa/ladspa.c:952 +#: src/ladspa/ladspa.c:951 #, fuzzy msgid "Add" msgstr "Adaugă Fișiere" -#: src/ladspa/ladspa.c:956 +#: src/ladspa/ladspa.c:955 #, fuzzy msgid "Remove" msgstr "Șterge Duplicatele" -#: src/ladspa/ladspa.c:969 +#: src/ladspa/ladspa.c:968 #, fuzzy msgid "LADSPA Plugin Catalog" msgstr "Lista plugin-urilor _Generale" -#: src/lastfm/lastfm.c:96 +#: src/lastfm/lastfm.c:94 msgid "" "Couldn't initialize the last.fm radio plugin.\n" "\n" @@ -3104,62 +3119,62 @@ msgid "%s: will try reconnect every %d seconds...\n" msgstr "" -#: src/madplug/configure.c:209 +#: src/madplug/configure.c:208 #, fuzzy msgid "MPEG Audio Plugin Configuration" msgstr "Despre plugin-ul·Apple·Lossless·Audio" -#: src/madplug/configure.c:226 +#: src/madplug/configure.c:225 #, fuzzy msgid "Audio Settings" msgstr "Opțiuni ale plugin-ului Alarm" -#: src/madplug/configure.c:234 +#: src/madplug/configure.c:233 msgid "Force reopen audio when audio type changed" msgstr "" -#: src/madplug/configure.c:243 +#: src/madplug/configure.c:242 #, fuzzy msgid "Metadata Settings" msgstr "Opțiuni pentru Popup-ul cu informații suplimentare" -#: src/madplug/configure.c:252 +#: src/madplug/configure.c:251 msgid "Enable fast play-length calculation" msgstr "" -#: src/madplug/configure.c:259 +#: src/madplug/configure.c:258 msgid "Parse XING headers" msgstr "" -#: src/madplug/configure.c:266 +#: src/madplug/configure.c:265 msgid "Use SJIS to write ID3 tags (not recommended)" msgstr "" -#: src/madplug/configure.c:273 +#: src/madplug/configure.c:272 #, fuzzy msgid "Miscellaneous Settings" msgstr "Meniu de Opțiuni" -#: src/madplug/configure.c:282 +#: src/madplug/configure.c:281 msgid "Display average bitrate for VBR" msgstr "" -#: src/madplug/configure.c:296 src/vorbis/configure.c:102 +#: src/madplug/configure.c:295 src/vorbis/configure.c:100 msgid "Override generic titles" msgstr "" -#: src/madplug/configure.c:308 +#: src/madplug/configure.c:307 #, fuzzy msgid "ID3 format:" msgstr "Selecția formatelor" -#: src/madplug/configure.c:320 src/sid/xmms-sid.glade:2540 -#: src/sid/xs_interface.c:1070 +#: src/madplug/configure.c:319 src/sid/xmms-sid.glade:2610 +#: src/sid/xs_interface.c:1102 #, fuzzy msgid "Title" msgstr "Titlu" -#: src/madplug/plugin.c:524 +#: src/madplug/plugin.c:661 #, c-format msgid "" "Audacious MPEG Audio Plugin\n" @@ -3177,17 +3192,17 @@ " Samuel Krempp" msgstr "" -#: src/madplug/plugin.c:540 +#: src/madplug/plugin.c:677 #, fuzzy msgid "About MPEG Audio Plugin" msgstr "Despre plugin-ul·Apple·Lossless·Audio" -#: src/metronom/metronom.c:87 +#: src/metronom/metronom.c:86 #, fuzzy msgid "About Metronom" msgstr "Despre Audacious" -#: src/metronom/metronom.c:88 +#: src/metronom/metronom.c:87 msgid "" "A Tact Generator by Martin Strauss \n" "\n" @@ -3196,12 +3211,12 @@ "or tact://60*3/4 to play 60 bpm in 3/4 tacts" msgstr "" -#: src/metronom/metronom.c:198 src/metronom/metronom.c:262 +#: src/metronom/metronom.c:197 src/metronom/metronom.c:261 #, c-format msgid "Tact generator: %d bpm" msgstr "" -#: src/metronom/metronom.c:200 src/metronom/metronom.c:264 +#: src/metronom/metronom.c:199 src/metronom/metronom.c:263 #, c-format msgid "Tact generator: %d bpm %d/%d" msgstr "" @@ -3406,11 +3421,11 @@ msgid "Message" msgstr "Mesajul melodiei" -#: src/modplug/gui/main.cxx:45 +#: src/modplug/gui/main.cxx:48 msgid "Modplug Input Plugin for Audacious ver" msgstr "" -#: src/modplug/gui/main.cxx:46 +#: src/modplug/gui/main.cxx:49 msgid "" "\n" "Modplug sound engine written by Olivier Lapicque.\n" @@ -3420,7 +3435,7 @@ "Ported to BMP by Theofilos Intzoglou." msgstr "" -#: src/modplug/gui/main.cxx:49 +#: src/modplug/gui/main.cxx:52 #, fuzzy msgid "About Modplug" msgstr "Despre Audacious" @@ -3431,28 +3446,28 @@ msgid "Couldn't find pixmap file: %s" msgstr "" -#: src/mtp_up/mtp.c:35 +#: src/mtp_up/mtp.c:33 msgid "Upload selected track(s)" msgstr "" -#: src/mtp_up/mtp.c:296 +#: src/mtp_up/mtp.c:294 msgid "Upload in progress..." msgstr "" -#: src/mtp_up/mtp.c:305 +#: src/mtp_up/mtp.c:303 msgid "MTP device handler" msgstr "" -#: src/mtp_up/mtp.c:309 +#: src/mtp_up/mtp.c:307 msgid "Disconnect the device" msgstr "" -#: src/musepack/libmpc.cxx:146 +#: src/musepack/libmpc.cxx:142 #, fuzzy msgid "Musepack Decoder Plugin 1.2" msgstr "Lista plugin-urilor _Generale" -#: src/musepack/libmpc.cxx:147 +#: src/musepack/libmpc.cxx:143 msgid "" "Plugin code by\n" "Benoit Amiaux\n" @@ -3462,219 +3477,251 @@ "Get latest version at http://musepack.net\n" msgstr "" -#: src/musepack/libmpc.cxx:148 +#: src/musepack/libmpc.cxx:144 msgid "Nevermind" msgstr "" -#: src/musepack/libmpc.cxx:166 +#: src/musepack/libmpc.cxx:162 msgid "Musepack Decoder Configuration" msgstr "" -#: src/musepack/libmpc.cxx:176 +#: src/musepack/libmpc.cxx:172 #, fuzzy msgid "General Settings" msgstr "Opțiuni pentru Popup-ul cu informații suplimentare" -#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:492 +#: src/musepack/libmpc.cxx:179 src/wavpack/ui.cxx:490 msgid "Enable Dynamic Bitrate Display" msgstr "" -#: src/musepack/libmpc.cxx:187 src/wavpack/ui.cxx:498 +#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:496 #, fuzzy msgid "Plugin" msgstr "Plugin de intrare: %s" -#: src/musepack/libmpc.cxx:190 +#: src/musepack/libmpc.cxx:186 #, fuzzy msgid "ReplayGain Settings" msgstr "Opțiuni pentru Popup-ul cu informații suplimentare" -#: src/musepack/libmpc.cxx:197 src/wavpack/ui.cxx:510 +#: src/musepack/libmpc.cxx:193 src/wavpack/ui.cxx:508 #, fuzzy msgid "Enable Clipping Prevention" msgstr "Activează proxy" -#: src/musepack/libmpc.cxx:202 src/wavpack/ui.cxx:515 +#: src/musepack/libmpc.cxx:198 src/wavpack/ui.cxx:513 #, fuzzy msgid "Enable ReplayGain" msgstr "Activează modul 'Mărime Dublă'" -#: src/musepack/libmpc.cxx:207 +#: src/musepack/libmpc.cxx:203 #, fuzzy msgid "ReplayGain Type" msgstr "Tipul Fișierului: " -#: src/musepack/libmpc.cxx:215 +#: src/musepack/libmpc.cxx:211 #, fuzzy msgid "Use Track Gain" msgstr "Fereastra cu informații despre Track" -#: src/musepack/libmpc.cxx:219 +#: src/musepack/libmpc.cxx:215 #, fuzzy msgid "Use Album Gain" msgstr "Folosește cursoare de mouse personalizate (oferite de skin)" -#: src/musepack/libmpc.cxx:224 src/wavpack/ui.cxx:547 +#: src/musepack/libmpc.cxx:220 src/wavpack/ui.cxx:545 msgid "ReplayGain" msgstr "" -#: src/musepack/libmpc.cxx:491 src/sid/xmms-sid.glade:3144 -#: src/sid/xs_interface.c:1564 src/tta/libtta.c:304 src/wavpack/ui.cxx:152 +#: src/musepack/libmpc.cxx:487 src/sid/xmms-sid.glade:3338 +#: src/sid/xs_interface.c:1648 src/tta/libtta.c:301 src/wavpack/ui.cxx:150 #, fuzzy msgid "Filename:" msgstr "Fișier:" -#: src/musepack/libmpc.cxx:506 +#: src/musepack/libmpc.cxx:502 msgid "Musepack Tag" msgstr "" -#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:323 src/wavpack/ui.cxx:172 +#: src/musepack/libmpc.cxx:510 src/tta/libtta.c:320 src/wavpack/ui.cxx:170 #, fuzzy msgid "Title:" msgstr "Titlu: " -#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:333 src/wavpack/ui.cxx:184 +#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:330 src/wavpack/ui.cxx:182 #, fuzzy msgid "Artist:" msgstr "Artist" -#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:344 src/wavpack/ui.cxx:196 +#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:341 src/wavpack/ui.cxx:194 #, fuzzy msgid "Album:" msgstr "Album" -#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:355 src/wavpack/ui.cxx:208 +#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:352 src/wavpack/ui.cxx:206 #, fuzzy msgid "Comment:" msgstr "Comentariu" -#: src/musepack/libmpc.cxx:530 src/tta/libtta.c:366 src/wavpack/ui.cxx:221 +#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:363 src/wavpack/ui.cxx:219 #, fuzzy msgid "Year:" msgstr "Anul" -#: src/musepack/libmpc.cxx:535 +#: src/musepack/libmpc.cxx:531 #, fuzzy msgid "Track:" msgstr "Informații despre Track" -#: src/musepack/libmpc.cxx:540 src/tta/libtta.c:390 src/wavpack/ui.cxx:248 +#: src/musepack/libmpc.cxx:536 src/tta/libtta.c:387 src/wavpack/ui.cxx:246 #, fuzzy msgid "Genre:" msgstr "Genul" -#: src/musepack/libmpc.cxx:551 src/sid/xmms-sid.glade:1732 -#: src/sid/xs_interface.c:820 src/wavpack/ui.cxx:267 +#: src/musepack/libmpc.cxx:547 src/sid/xmms-sid.glade:1732 +#: src/sid/xs_interface.c:832 src/skins/ui_manager.c:438 +#: src/wavpack/ui.cxx:265 #, fuzzy msgid "Save" msgstr "Salvează" -#: src/musepack/libmpc.cxx:554 src/wavpack/ui.cxx:273 +#: src/musepack/libmpc.cxx:550 src/wavpack/ui.cxx:271 #, fuzzy msgid "Remove Tag" msgstr "Șterge Duplicatele" -#: src/musepack/libmpc.cxx:562 +#: src/musepack/libmpc.cxx:558 #, fuzzy msgid "Musepack Info" msgstr "AdPlug·::·Informații despre fișier" -#: src/musepack/libmpc.cxx:595 +#: src/musepack/libmpc.cxx:591 #, c-format msgid "Streamversion %d" msgstr "" -#: src/musepack/libmpc.cxx:596 +#: src/musepack/libmpc.cxx:592 #, c-format msgid "Encoder: %s" msgstr "" -#: src/musepack/libmpc.cxx:597 +#: src/musepack/libmpc.cxx:593 #, c-format msgid "Profile: %s" msgstr "" -#: src/musepack/libmpc.cxx:598 +#: src/musepack/libmpc.cxx:594 #, c-format msgid "Average bitrate: %6.1f kbps" msgstr "" -#: src/musepack/libmpc.cxx:599 +#: src/musepack/libmpc.cxx:595 #, fuzzy, c-format msgid "Samplerate: %d Hz" msgstr "Rata de eșantionare [Hz]:" -#: src/musepack/libmpc.cxx:600 +#: src/musepack/libmpc.cxx:596 #, fuzzy, c-format msgid "Channels: %d" msgstr "Canale" -#: src/musepack/libmpc.cxx:601 +#: src/musepack/libmpc.cxx:597 #, fuzzy, c-format msgid "Length: %d:\\%.2d" msgstr "Mărimea track-ului" -#: src/musepack/libmpc.cxx:602 +#: src/musepack/libmpc.cxx:598 #, fuzzy, c-format msgid "File size: %d Bytes" msgstr "AdPlug·::·Informații despre fișier" -#: src/musepack/libmpc.cxx:603 +#: src/musepack/libmpc.cxx:599 #, fuzzy, c-format msgid "Track Peak: %5u" msgstr "Fereastra cu informații despre Track" -#: src/musepack/libmpc.cxx:604 +#: src/musepack/libmpc.cxx:600 #, c-format msgid "Track Gain: %-+2.2f dB" msgstr "" -#: src/musepack/libmpc.cxx:605 +#: src/musepack/libmpc.cxx:601 #, fuzzy, c-format msgid "Album Peak: %5u" msgstr "Album" -#: src/musepack/libmpc.cxx:606 +#: src/musepack/libmpc.cxx:602 #, c-format msgid "Album Gain: %-+5.2f dB" msgstr "" -#: src/musepack/libmpc.cxx:634 src/tta/libtta.c:413 src/wavpack/ui.cxx:409 +#: src/musepack/libmpc.cxx:630 src/tta/libtta.c:410 src/wavpack/ui.cxx:407 #, fuzzy, c-format msgid "File Info - %s" msgstr "AdPlug·::·Informații despre fișier" -#: src/null/null.c:61 +#: src/null/null.c:58 #, fuzzy msgid "Null output plugin " msgstr "Plugin-ul de ieșire curent" -#: src/null/null.c:62 +#: src/null/null.c:59 msgid "" " by Christian Birchinger \n" "based on the XMMS plugin by Håvard Kvål " msgstr "" -#: src/null/null.c:65 +#: src/null/null.c:62 #, fuzzy msgid "About Null Output" msgstr "Plugin-ul de ieșire curent" -#: src/null/null.c:94 +#: src/null/null.c:91 #, fuzzy msgid "Null output preferences" msgstr "Preferințele Plugin-ului de Ieșire" -#: src/null/null.c:103 +#: src/null/null.c:100 msgid "Run in real time" msgstr "" -#: src/OSS4/about.c:42 +#: src/OSS4/configure.c:118 src/OSS/configure.c:150 +#, fuzzy, c-format +msgid "Default (%s)" +msgstr "Implicit" + +#: src/OSS4/configure.c:168 src/OSS/configure.c:200 +msgid "OSS Driver configuration" +msgstr "" + +#: src/OSS4/configure.c:206 src/OSS/configure.c:238 src/OSS/configure.c:279 +#, fuzzy +msgid "Use alternate device:" +msgstr "Folosește cursoare de mouse personalizate (oferite de skin)" + +#: src/OSS4/configure.c:228 src/OSS/configure.c:301 src/sun/configure.c:246 +msgid "Devices" +msgstr "" + +#: src/OSS4/configure.c:270 src/OSS/configure.c:342 +#, fuzzy +msgid "Mixer Settings:" +msgstr "Opțiuni pentru Popup-ul cu informații suplimentare" + +#: src/OSS4/configure.c:276 +msgid "Save VMIX volume between sessions" +msgstr "" + +#: src/OSS4/configure.c:282 src/OSS/configure.c:354 src/sun/configure.c:392 +msgid "Mixer" +msgstr "" + +#: src/OSS4/OSS4.c:38 #, fuzzy msgid "About OSSv4 Driver" msgstr "Despre plugin-ul·pentru Alarmă" -#: src/OSS4/about.c:43 +#: src/OSS4/OSS4.c:39 msgid "" "Audacious OSSv4 Driver\n" "\n" @@ -3697,43 +3744,16 @@ "USA." msgstr "" -#: src/OSS4/configure.c:120 src/OSS/configure.c:151 -#, fuzzy, c-format -msgid "Default (%s)" -msgstr "Implicit" - -#: src/OSS4/configure.c:170 src/OSS/configure.c:201 -msgid "OSS Driver configuration" -msgstr "" - -#: src/OSS4/configure.c:208 src/OSS/configure.c:239 src/OSS/configure.c:280 -#, fuzzy -msgid "Use alternate device:" -msgstr "Folosește cursoare de mouse personalizate (oferite de skin)" - -#: src/OSS4/configure.c:230 src/OSS/configure.c:302 src/sun/configure.c:248 -msgid "Devices" -msgstr "" - -#: src/OSS4/configure.c:272 src/OSS/configure.c:343 -#, fuzzy -msgid "Mixer Settings:" -msgstr "Opțiuni pentru Popup-ul cu informații suplimentare" - -#: src/OSS4/configure.c:278 -msgid "Save VMIX volume between sessions" -msgstr "" - -#: src/OSS4/configure.c:284 src/OSS/configure.c:355 src/sun/configure.c:394 -msgid "Mixer" -msgstr "" - -#: src/OSS/about.c:39 +#: src/OSS/configure.c:348 +msgid "Volume controls Master not PCM" +msgstr "" + +#: src/OSS/OSS.c:37 #, fuzzy msgid "About OSS Driver" msgstr "Despre plugin-ul·pentru Alarmă" -#: src/OSS/about.c:40 +#: src/OSS/OSS.c:38 msgid "" "Audacious OSS Driver\n" "\n" @@ -3753,19 +3773,15 @@ "USA." msgstr "" -#: src/OSS/configure.c:349 -msgid "Volume controls Master not PCM" -msgstr "" - #: src/projectm-1.0/main.c:70 msgid "_Random" msgstr "" -#: src/pulse_audio/pulse_audio.c:722 +#: src/pulse_audio/pulse_audio.c:720 msgid "About Audacious PulseAudio Output Plugin" msgstr "" -#: src/pulse_audio/pulse_audio.c:723 +#: src/pulse_audio/pulse_audio.c:721 msgid "" "Audacious PulseAudio Output Plugin\n" "\n" @@ -3785,30 +3801,30 @@ "USA." msgstr "" -#: src/scrobbler/configure.c:138 +#: src/scrobbler/configure.c:134 msgid "Services" msgstr "" -#: src/scrobbler/configure.c:160 src/scrobbler/configure.c:199 +#: src/scrobbler/configure.c:156 src/scrobbler/configure.c:195 #, fuzzy msgid "Username:" msgstr "Utilizator:" -#: src/scrobbler/configure.c:166 src/scrobbler/configure.c:205 +#: src/scrobbler/configure.c:162 src/scrobbler/configure.c:201 #, fuzzy msgid "Password:" msgstr "Parolă:" -#: src/scrobbler/configure.c:183 +#: src/scrobbler/configure.c:179 #, fuzzy msgid "Last.FM" msgstr "Radio Last.fm" -#: src/scrobbler/configure.c:222 +#: src/scrobbler/configure.c:218 msgid "Gerpok" msgstr "" -#: src/scrobbler/gtkstuff.c:21 +#: src/scrobbler/gtkstuff.c:18 msgid "" "Audacious AudioScrobbler Plugin\n" "\n" @@ -3816,12 +3832,12 @@ "com>\n" msgstr "" -#: src/scrobbler/gtkstuff.c:23 +#: src/scrobbler/gtkstuff.c:20 #, fuzzy msgid "About Scrobbler Plugin" msgstr "Despre plugin-ul decodor MP4·AAC" -#: src/scrobbler/gtkstuff.c:36 +#: src/scrobbler/gtkstuff.c:33 #, c-format msgid "" "There has been an error that may require your attention.\n" @@ -3831,114 +3847,114 @@ "%s\n" msgstr "" -#: src/scrobbler/gtkstuff.c:43 +#: src/scrobbler/gtkstuff.c:40 #, fuzzy msgid "Scrobbler Error" msgstr "Eroare în Audacious" -#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:221 +#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:233 #, fuzzy msgid "Audacious-SID configuration" msgstr "Developerii Audacious:" -#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:257 +#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:269 msgid "8-bit" msgstr "" -#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:264 +#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:276 msgid "16-bit" msgstr "" -#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:271 +#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:283 #, fuzzy msgid "Resolution:" msgstr "Rezoluție" -#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:302 +#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:314 msgid "Autopanning" msgstr "" -#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:309 +#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:321 #, fuzzy msgid "Channels:" msgstr "Canale" -#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:353 +#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:365 msgid "Samplerate:" msgstr "" -#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:370 +#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:382 #, fuzzy msgid "Use oversampling" msgstr "Folosește cursoare de mouse personalizate (oferite de skin)" -#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:381 +#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:393 msgid "Factor:" msgstr "" -#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:393 +#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:405 msgid "Large factors require more CPU-power" msgstr "" -#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:399 +#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:411 msgid "Oversampling:" msgstr "" -#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:404 +#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:416 #, fuzzy msgid "Audio" msgstr "Audio" -#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:436 +#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:448 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "clock speed/frequency. Otherwise the speed is determined from played file " "itself." msgstr "" -#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:432 +#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:444 msgid "Force speed" msgstr "" -#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:442 +#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:454 msgid "" "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. " "Most of SID-tunes have been made for PAL computers." msgstr "" -#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:438 +#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:450 #, fuzzy msgid "PAL (50 Hz)" msgstr "Rata de eșantionare [Hz]:" -#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:450 +#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:462 msgid "" "NTSC is the TV standard with 60Hz vertical refresh rate (and other features " "that differ from PAL). It is mainly used in United States, Japan and certain " "other countries." msgstr "" -#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:446 +#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:458 #, fuzzy msgid "NTSC (60 Hz)" msgstr "Rata de eșantionare [Hz]:" -#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:454 +#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:466 msgid "Clock speed:" msgstr "" -#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:475 +#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:487 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "SID-chip model. Otherwise the preferred SID model is determined from the " "file (if PSIDv2NG type) or if not available, this setting is used." msgstr "" -#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:471 +#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:483 msgid "Force model" msgstr "" -#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:481 +#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:493 msgid "" "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 " "in few ways, having much fuller filter (which, due to design error, is never " @@ -3946,91 +3962,91 @@ "which enables playing of digital samples." msgstr "" -#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:477 +#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:489 msgid "MOS 6581" msgstr "" -#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:485 +#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:497 msgid "MOS 8580" msgstr "" -#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:492 +#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:504 msgid "SID model:" msgstr "" -#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:513 +#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:525 msgid "" "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most " "cases, though." msgstr "" -#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:509 +#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:521 msgid "SIDPlay 1 (frame-based)" msgstr "" -#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:521 +#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:533 msgid "" "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact " "emulation." msgstr "" -#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:517 +#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:529 msgid "SIDPlay 2 (cycle-based)" msgstr "" -#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:525 +#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:537 #, fuzzy msgid "Emulation library selection:" msgstr "Șterge selecția anterioară înainte de a căuta" -#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:542 +#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:554 msgid "Real C64 (SIDPlay 2 only)" msgstr "" -#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:549 +#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:561 msgid "Bank switching" msgstr "" -#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:556 +#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:568 msgid "Transparent ROM" msgstr "" -#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:563 +#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:575 msgid "PlaySID environment" msgstr "" -#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:570 +#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:582 #, fuzzy msgid "Memory mode:" msgstr "Mod de Vizualizare" -#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:575 +#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:587 msgid "Emu#1" msgstr "" -#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:602 +#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:614 msgid "" "This setting can be used to enable libSIDPlay2's \"optimization mode\", " "which in downgrades the emulation from cycle-exact to something similar to " "frame-exact. The result is lower CPU usage, but worse accuracy." msgstr "" -#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:598 +#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:610 msgid "Optimization mode (faster, inaccurate)" msgstr "" -#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:608 +#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:620 msgid "" "reSID is the software SID-chip simulator based on SID reverse-engineering, " "created by Dag Lem. It is probably the closest thing to real SID available " "as software-only emulation." msgstr "" -#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:604 +#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:616 msgid "reSID-emulation" msgstr "" -#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:616 +#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:628 msgid "" "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a " "real SID-chip. Software can be used to control the HardSID and combined with " @@ -4039,49 +4055,49 @@ "http://www.hardsid.com/" msgstr "" -#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:612 +#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:624 msgid "HardSID" msgstr "" -#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:620 +#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:632 #, fuzzy msgid "SIDPlay 2 options:" msgstr "Meniu de Opțiuni" -#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:641 +#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:653 msgid "" "Fastest and also worst sounding sampling method, simply picks nearest " "neighbouring sample." msgstr "" -#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:637 +#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:649 msgid "Fast (nearest neighbour)" msgstr "" -#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:649 +#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:661 msgid "" "Uses linear interpolation between samples, yielding higher audio quality " "with less sampling noise." msgstr "" -#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:645 +#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:657 msgid "Linear interpolation" msgstr "" -#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:660 +#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:672 msgid "Resampling (FIR)" msgstr "" -#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:667 +#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:679 #, fuzzy msgid "reSID sampling options:" msgstr "Convertor pentru rata de eșantionare" -#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:672 +#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:684 msgid "Emu#2" msgstr "" -#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:688 +#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:700 msgid "" "This option enables emulation of SID filter. The filter is an essential part " "of SID's sound capacity, but accurate emulation of it may require quite much " @@ -4089,311 +4105,322 @@ "authentic at all if they utilize the filter." msgstr "" -#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:684 +#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:696 msgid "Emulate filters" msgstr "" -#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:713 +#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:725 msgid "FS" msgstr "" -#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:730 +#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:742 #, fuzzy msgid "FM" msgstr "Radio Last.fm" -#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:747 +#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:759 msgid "FT" msgstr "" -#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:758 +#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:770 msgid "Reset values" msgstr "" -#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:763 +#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:775 msgid "SIDPlay1" msgstr "" -#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:804 +#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:816 msgid "Export" msgstr "" -#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:812 +#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:824 msgid "Use" msgstr "" -#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:828 +#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:840 +#: src/skins/ui_manager.c:437 #, fuzzy msgid "Import" msgstr "Importă" -#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:836 +#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:848 +#: src/skins/ui_manager.c:439 #, fuzzy msgid "Delete" msgstr "Implicit" -#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:850 +#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:862 msgid "Filter curve:" msgstr "" -#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:855 +#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:867 msgid "SIDPlay2" msgstr "" -#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:861 +#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:873 msgid "Filters" msgstr "" -#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:888 +#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:900 msgid "" "If enabled, the tune is played at least for the specified time, adding " "silence to the end if necessary." msgstr "" -#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:884 +#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:896 msgid "Play at least for specified time" msgstr "" #: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133 -#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:895 -#: src/sid/xs_interface.c:949 src/sid/xs_interface.c:1109 +#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:907 +#: src/sid/xs_interface.c:961 src/sid/xs_interface.c:1141 msgid "Playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:915 +#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:927 msgid "Minimum playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:936 +#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:948 msgid "" "If enabled, tune is played until specified duration is reached (aka maximum " "playtime)." msgstr "" -#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:932 +#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:944 msgid "Play for specified time maximum" msgstr "" -#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:942 +#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:954 msgid "" "If enabled, the maximum playtime is applied only if song/tune length is not " "known." msgstr "" -#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:938 +#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:950 msgid "Only when song length is unknown" msgstr "" -#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:969 +#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:981 msgid "Maximum playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:990 +#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:1002 msgid "" "This option enables using of XSIDPLAY compatible song length database. " "(Refer to Audacious-SID documentation for more information)" msgstr "" -#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:986 +#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:998 msgid "Use XSIDPLAY-compatible database" msgstr "" -#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:997 +#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:1009 #, fuzzy msgid "DB-file:" msgstr "Tipul Fișierului: " -#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1007 +#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1019 msgid "Database path and filename" msgstr "" -#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1014 +#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1026 msgid "Browse for song length-database file" msgstr "" -#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1016 +#: src/sid/xmms-sid.glade:2418 src/sid/xs_interface.c:1048 #, fuzzy msgid "Song length database:" msgstr "Pauză" -#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1021 +#: src/sid/xmms-sid.glade:2454 src/sid/xs_interface.c:1053 msgid "Songlength" msgstr "" -#: src/sid/xmms-sid.glade:2430 src/sid/xs_interface.c:1043 +#: src/sid/xmms-sid.glade:2492 src/sid/xs_interface.c:1075 msgid "" "By enabling this option you can specify a custom Tuplez formatting string " "for SID-files. The SID-plugin specific Tuplez tags are described shortly " "below." msgstr "" -#: src/sid/xmms-sid.glade:2432 src/sid/xs_interface.c:1039 +#: src/sid/xmms-sid.glade:2494 src/sid/xs_interface.c:1071 msgid "Override generic Tuplez format string" msgstr "" -#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1054 +#: src/sid/xmms-sid.glade:2519 src/sid/xs_interface.c:1086 msgid "Tuplez format string for SID-files" msgstr "" -#: src/sid/xmms-sid.glade:2477 src/sid/xs_interface.c:1057 -msgid "Descriptions of SID-specific Tuplez fields go here. :D" -msgstr "" - -#: src/sid/xmms-sid.glade:2511 src/sid/xs_interface.c:1065 +#: src/sid/xmms-sid.glade:2539 src/sid/xs_interface.c:1089 +msgid "" +"SID-specific Tuplez fields:\n" +"\n" +"sid-format\t\t- Specific fileformat\n" +"sid-model\t\t- 6581 or 8580\n" +"sid-speed\t\t- Timing or speed: PAL/NTSC/etc.\n" +"\n" +"Other \"special\" fields set:\n" +"\n" +"subsong-num, subsong-id" +msgstr "" + +#: src/sid/xmms-sid.glade:2581 src/sid/xs_interface.c:1097 #, fuzzy msgid "Song title format:" msgstr "Formatul titlului:" -#: src/sid/xmms-sid.glade:2584 src/sid/xs_interface.c:1096 +#: src/sid/xmms-sid.glade:2654 src/sid/xs_interface.c:1128 msgid "" "If enabled, sub-tunes of each file will be added to playlist. If disabled, " "only the default sub-tune will be added." msgstr "" -#: src/sid/xmms-sid.glade:2586 src/sid/xs_interface.c:1092 +#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1124 msgid "Add sub-tunes to playlist" msgstr "" -#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1102 +#: src/sid/xmms-sid.glade:2675 src/sid/xs_interface.c:1134 msgid "Only add sub-tunes that have a duration of at least specified time." msgstr "" -#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1098 +#: src/sid/xmms-sid.glade:2677 src/sid/xs_interface.c:1130 msgid "Only tunes with specified minimum duration" msgstr "" -#: src/sid/xmms-sid.glade:2710 src/sid/xs_interface.c:1129 +#: src/sid/xmms-sid.glade:2780 src/sid/xs_interface.c:1161 #, fuzzy msgid "Sub-tune handling:" msgstr "Informații despre Pluginul de ieșire" -#: src/sid/xmms-sid.glade:2755 src/sid/xs_interface.c:1150 +#: src/sid/xmms-sid.glade:2825 src/sid/xs_interface.c:1182 msgid "" "If this option is enabled (and the database & HVSC settings below are " "correctly set), Audacious-SID will use and display additional information " "from STIL database when HVSC SIDs are played." msgstr "" -#: src/sid/xmms-sid.glade:2757 src/sid/xs_interface.c:1146 +#: src/sid/xmms-sid.glade:2827 src/sid/xs_interface.c:1178 msgid "Use STIL database" msgstr "Foloseste baza de date STIL" -#: src/sid/xmms-sid.glade:2782 src/sid/xs_interface.c:1157 +#: src/sid/xmms-sid.glade:2852 src/sid/xs_interface.c:1189 msgid "STIL file:" msgstr "Fisierul STIL:" -#: src/sid/xmms-sid.glade:2819 src/sid/xs_interface.c:1173 +#: src/sid/xmms-sid.glade:2889 src/sid/xs_interface.c:1205 msgid "" "Path and filename of STIL database file (STIL.txt), usually found from " "HVSC's DOCUMENTS-subdirectory." msgstr "" -#: src/sid/xmms-sid.glade:2854 src/sid/xs_interface.c:1186 +#: src/sid/xmms-sid.glade:2924 src/sid/xs_interface.c:1218 msgid "Browse for STIL-database file" msgstr "" -#: src/sid/xmms-sid.glade:2888 src/sid/xs_interface.c:1193 +#: src/sid/xmms-sid.glade:3020 src/sid/xs_interface.c:1245 #, fuzzy msgid "HVSC path:" msgstr "Calea fisierului" -#: src/sid/xmms-sid.glade:2925 src/sid/xs_interface.c:1209 +#: src/sid/xmms-sid.glade:3057 src/sid/xs_interface.c:1261 msgid "" "Path to base-directory of your High Voltage SID Collection (HVSC), for " "example /media/C64Music/" msgstr "" -#: src/sid/xmms-sid.glade:2960 src/sid/xs_interface.c:1222 +#: src/sid/xmms-sid.glade:3092 src/sid/xs_interface.c:1274 msgid "Browse for HVSC path" msgstr "" -#: src/sid/xmms-sid.glade:2990 src/sid/xs_interface.c:1224 +#: src/sid/xmms-sid.glade:3184 src/sid/xs_interface.c:1296 msgid "SID Tune Information List (STIL) database:" msgstr "" -#: src/sid/xmms-sid.glade:3063 src/sid/xs_interface.c:1248 +#: src/sid/xmms-sid.glade:3257 src/sid/xs_interface.c:1320 msgid "Accept and update changes" msgstr "" -#: src/sid/xmms-sid.glade:3077 src/sid/xs_interface.c:1255 +#: src/sid/xmms-sid.glade:3271 src/sid/xs_interface.c:1327 msgid "Cancel any changes" msgstr "Anuleaza toate schimbarile" -#: src/sid/xmms-sid.glade:3102 src/sid/xs_interface.c:1543 +#: src/sid/xmms-sid.glade:3296 src/sid/xs_interface.c:1627 #, fuzzy msgid "Audacious-SID Fileinfo" msgstr "Developerii Audacious:" -#: src/sid/xmms-sid.glade:3172 src/sid/xs_interface.c:1572 +#: src/sid/xmms-sid.glade:3366 src/sid/xs_interface.c:1656 #, fuzzy msgid "Songname:" msgstr "Autoderularea Numelui Fișierului" -#: src/sid/xmms-sid.glade:3200 src/sid/xs_interface.c:1580 +#: src/sid/xmms-sid.glade:3394 src/sid/xs_interface.c:1664 msgid "Composer:" msgstr "" -#: src/sid/xmms-sid.glade:3228 src/sid/xs_interface.c:1588 +#: src/sid/xmms-sid.glade:3422 src/sid/xs_interface.c:1672 msgid "Copyright:" msgstr "" -#: src/sid/xmms-sid.glade:3342 src/sid/xs_interface.c:1632 +#: src/sid/xmms-sid.glade:3536 src/sid/xs_interface.c:1716 #, fuzzy msgid "Song Information:" msgstr "Informații despre Track" -#: src/sid/xmms-sid.glade:3416 src/sid/xs_interface.c:1667 +#: src/sid/xmms-sid.glade:3610 src/sid/xs_interface.c:1751 #, fuzzy msgid "Author:" msgstr "Autor: " -#: src/sid/xmms-sid.glade:3514 src/sid/xs_interface.c:1701 +#: src/sid/xmms-sid.glade:3708 src/sid/xs_interface.c:1785 msgid "Duration:" msgstr "" -#: src/sid/xmms-sid.glade:3608 src/sid/xs_interface.c:1735 +#: src/sid/xmms-sid.glade:3802 src/sid/xs_interface.c:1819 #, fuzzy msgid "Sub-tune Information:" msgstr "Informații despre Pluginul de ieșire" -#: src/sid/xmms-sid.glade:3662 src/sid/xs_interface.c:1796 +#: src/sid/xmms-sid.glade:3856 src/sid/xs_interface.c:1880 msgid "Select HVSC song length database" msgstr "" -#: src/sid/xmms-sid.glade:3704 src/sid/xs_interface.c:1837 +#: src/sid/xmms-sid.glade:3898 src/sid/xs_interface.c:1921 #, fuzzy msgid "Select STIL-database" msgstr "Alege fontul playlist-ului" -#: src/sid/xmms-sid.glade:3746 src/sid/xs_interface.c:1878 +#: src/sid/xmms-sid.glade:3940 src/sid/xs_interface.c:1962 msgid "Select HVSC location prefix" msgstr "" -#: src/sid/xmms-sid.glade:3788 src/sid/xs_interface.c:1919 +#: src/sid/xmms-sid.glade:3982 src/sid/xs_interface.c:2003 msgid "Select SIDPlay2 filters file for importing" msgstr "" -#: src/sid/xmms-sid.glade:3830 src/sid/xs_interface.c:1960 +#: src/sid/xmms-sid.glade:4024 src/sid/xs_interface.c:2044 msgid "Select SIDPlay2 filters file for exporting" msgstr "" -#: src/sid/xmms-sid.glade:3871 src/sid/xmms-sid.glade:3953 -#: src/sid/xs_interface.c:2008 src/sid/xs_interface.c:2021 +#: src/sid/xmms-sid.glade:4065 src/sid/xmms-sid.glade:4147 +#: src/sid/xs_interface.c:2092 src/sid/xs_interface.c:2105 #, fuzzy msgid "Confirm selected action" msgstr "Selecția formatelor" -#: src/sid/xmms-sid.glade:3909 src/sid/xs_interface.c:2038 +#: src/sid/xmms-sid.glade:4103 src/sid/xs_interface.c:2122 #, fuzzy msgid "Yes" msgstr "da" -#: src/sid/xmms-sid.glade:3921 src/sid/xs_interface.c:2044 +#: src/sid/xmms-sid.glade:4115 src/sid/xs_interface.c:2128 #, fuzzy msgid "No" msgstr "Deselectează tot" -#: src/sid/xs_about.c:84 src/wma/wma.c:121 +#: src/sid/xs_about.c:84 src/wma/wma.c:118 #, c-format msgid "About %s" msgstr "Despre %s" @@ -4408,12 +4435,1143 @@ msgid "Tune #%i: " msgstr "Pornește" -#: src/sndfile/plugin.c:548 +#: src/skins/plugin.c:128 +msgid "About Skinned GUI" +msgstr "" + +#: src/skins/plugin.c:129 +msgid "" +"Copyright (c) 2008, by Tomasz Moń \n" +"\n" +msgstr "" + +#: src/skins/skins_cfg.c:329 +#, fuzzy +msgid "_Fonts" +msgstr "Numele Fișierului:" + +#: src/skins/skins_cfg.c:330 +#, fuzzy +msgid "_Player:" +msgstr "Pauză pentru" + +#: src/skins/skins_cfg.c:330 +msgid "Select main player window font:" +msgstr "" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "_Playlist:" +msgstr "Selectați Playlist-ul" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "Select playlist font:" +msgstr "Selectați Playlist-ul" + +#: src/skins/skins_cfg.c:332 +#, fuzzy +msgid "Use Bitmap fonts if available" +msgstr "Folosește fonturi Bitmap dacă sunt disponibile" + +#: src/skins/skins_cfg.c:332 +msgid "" +"Use bitmap fonts if they are available. Bitmap fonts do not support Unicode " +"strings." +msgstr "" + +#: src/skins/skins_cfg.c:333 +#, fuzzy +msgid "_Miscellaneous" +msgstr "Meniu de Opțiuni" + +#: src/skins/skins_cfg.c:334 +msgid "Show track numbers in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:336 +msgid "Show separators in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:338 +msgid "Show window manager decoration" +msgstr "" + +#: src/skins/skins_cfg.c:339 +msgid "This enables the window manager to show decorations for windows." +msgstr "" + +#: src/skins/skins_cfg.c:340 +msgid "Use two-way text scroller" +msgstr "" + +#: src/skins/skins_cfg.c:341 +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 "" + +#: src/skins/skins_cfg.c:342 +msgid "Disable inline gtk theme" +msgstr "" + +#: src/skins/skins_cfg.c:343 +msgid "Allow loading incomplete skins" +msgstr "" + +#: src/skins/skins_cfg.c:344 +msgid "" +"If selected, audacious won't refuse loading broken skins. Use only if your " +"favourite skin doesn't work" +msgstr "" + +#: src/skins/skins_cfg.c:410 +msgid "Color Adjustment" +msgstr "" + +#: src/skins/skins_cfg.c:417 +msgid "" +"Audacious allows you to alter the color balance of the skinned UI. The " +"sliders below will allow you to do this." +msgstr "" + +#: src/skins/skins_cfg.c:427 +#, fuzzy +msgid "Blue" +msgstr "Blues" + +#: src/skins/skins_cfg.c:434 +msgid "Green" +msgstr "" + +#: src/skins/skins_cfg.c:441 +msgid "Red" +msgstr "" + +#: src/skins/skins_cfg.c:571 +#, fuzzy +msgid "Audacious Skinned GUI Configuration" +msgstr "Developerii Audacious:" + +#: src/skins/skins_cfg.c:596 +#, fuzzy +msgid "_Skin" +msgstr "Numele Fișierului:" + +#: src/skins/ui_equalizer.c:494 +#, fuzzy +msgid "Audacious Equalizer" +msgstr "Egalizator Audacious" + +#: src/skins/ui_equalizer.c:794 +#, c-format +msgid "Error importing Winamp EQF file '%s'" +msgstr "" + +#: src/skins/ui_equalizer.c:1172 +msgid "Presets" +msgstr "" + +#: src/skins/ui_main.c:392 +#, fuzzy, c-format +msgid "%s - Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:394 src/skins/ui_main.c:2397 +#, fuzzy +msgid "Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:641 +#, fuzzy +msgid "VBR" +msgstr "VBR/ABR" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "stereo" +msgstr "Stereo" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "mono" +msgstr "Mono" + +#: src/skins/ui_main.c:957 +msgid "Can't jump to time when no track is being played.\n" +msgstr "" + +#: src/skins/ui_main.c:972 src/skins/ui_manager.c:425 +#: src/skins/ui_manager.c:426 +#, fuzzy +msgid "Jump to Time" +msgstr "Fereastra de Preferințe" + +#: src/skins/ui_main.c:993 +#, fuzzy +msgid "minutes:seconds" +msgstr "secunde" + +#: src/skins/ui_main.c:1003 +#, fuzzy +msgid "Track length:" +msgstr "Informații despre Track" + +#: src/skins/ui_main.c:1149 +msgid "Audacious - visibility warning" +msgstr "" + +#: src/skins/ui_main.c:1152 +msgid "Show main player window" +msgstr "" + +#: src/skins/ui_main.c:1153 +msgid "Ignore" +msgstr "" + +#: src/skins/ui_main.c:1159 +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)." +msgstr "" + +#: src/skins/ui_main.c:1165 +msgid "Always ignore, show/hide is controlled remotely" +msgstr "" + +#: src/skins/ui_main.c:1210 +msgid "Audacious - broken GTK engine usage warning" +msgstr "" + +#: src/skins/ui_main.c:1218 +#, c-format +msgid "" +"Broken GTK engine in use\n" +"\n" +"Audacious has detected that you are using a broken GTK engine.\n" +"\n" +"The theme engine you are using, %s, is incompatible with some of the " +"features used by modern skins. The incompatible features have been disabled " +"for this session.\n" +"\n" +"To use these features, please consider using a different GTK theme engine." +msgstr "" + +#: src/skins/ui_main.c:1229 +msgid "Do not display this warning again" +msgstr "" + +#: src/skins/ui_main.c:1253 +msgid "Enter location to play:" +msgstr "" + +#: src/skins/ui_main.c:1497 +#, c-format +msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" +msgstr "" + +#: src/skins/ui_main.c:1527 +#, fuzzy, c-format +msgid "Volume: %d%%" +msgstr "Volum: %d%%" + +#: src/skins/ui_main.c:1555 +#, c-format +msgid "Balance: %d%% left" +msgstr "" + +#: src/skins/ui_main.c:1559 +msgid "Balance: center" +msgstr "" + +#: src/skins/ui_main.c:1563 +#, c-format +msgid "Balance: %d%% right" +msgstr "" + +#: src/skins/ui_main.c:1881 +#, fuzzy +msgid "Options Menu" +msgstr "Meniu de Opțiuni" + +#: src/skins/ui_main.c:1885 +msgid "Disable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1887 +msgid "Enable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1890 +#, fuzzy +msgid "File Info Box" +msgstr "AdPlug·::·Informații despre fișier" + +#: src/skins/ui_main.c:1894 +msgid "Disable 'GUI Scaling'" +msgstr "" + +#: src/skins/ui_main.c:1896 +#, fuzzy +msgid "Enable 'GUI Scaling'" +msgstr "Activează proxy" + +#: src/skins/ui_main.c:1899 +msgid "Visualization Menu" +msgstr "" + +#: src/skins/ui_main.c:1946 +msgid "" +"Couldn't open audio.\n" +"\n" +"Please check that:\n" +"1. You have the correct output plugin selected.\n" +"2. No other programs is blocking the soundcard.\n" +"3. Your soundcard is configured properly.\n" +msgstr "" + +#: src/skins/ui_manager.c:53 src/skins/ui_manager.c:54 +msgid "Autoscroll Songname" +msgstr "" + +#: src/skins/ui_manager.c:56 src/skins/ui_manager.c:57 +msgid "Stop after Current Song" +msgstr "" + +#: src/skins/ui_manager.c:59 src/skins/ui_manager.c:60 +#, fuzzy +msgid "Peaks" +msgstr "Pranks" + +#: src/skins/ui_manager.c:62 src/skins/ui_manager.c:63 +#, fuzzy +msgid "Repeat" +msgstr "Beat" + +#: src/skins/ui_manager.c:65 src/skins/ui_manager.c:66 +msgid "Shuffle" +msgstr "" + +#: src/skins/ui_manager.c:68 src/skins/ui_manager.c:69 +msgid "No Playlist Advance" +msgstr "" + +#: src/skins/ui_manager.c:71 src/skins/ui_manager.c:72 +msgid "Show Player" +msgstr "" + +#: src/skins/ui_manager.c:74 src/skins/ui_manager.c:75 +msgid "Show Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:77 src/skins/ui_manager.c:78 +#, fuzzy +msgid "Show Equalizer" +msgstr "Egalizator Audacious" + +#: src/skins/ui_manager.c:80 src/skins/ui_manager.c:81 +msgid "Always on Top" +msgstr "" + +#: src/skins/ui_manager.c:83 src/skins/ui_manager.c:84 +msgid "Put on All Workspaces" +msgstr "" + +#: src/skins/ui_manager.c:86 src/skins/ui_manager.c:87 +msgid "Roll up Player" +msgstr "" + +#: src/skins/ui_manager.c:89 src/skins/ui_manager.c:90 +msgid "Roll up Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:92 src/skins/ui_manager.c:93 +msgid "Roll up Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:95 src/sndstretch/sndstretch_xmms.c:375 +msgid "Scale" +msgstr "" + +#: src/skins/ui_manager.c:96 +msgid "DoubleSize" +msgstr "" + +#: src/skins/ui_manager.c:98 src/skins/ui_manager.c:99 +msgid "Easy Move" +msgstr "" + +#: src/skins/ui_manager.c:107 +#, fuzzy +msgid "Analyzer" +msgstr "Modul Analizatorului" + +#: src/skins/ui_manager.c:108 +#, fuzzy +msgid "Scope" +msgstr "Synthpop" + +#: src/skins/ui_manager.c:109 +msgid "Voiceprint" +msgstr "" + +#: src/skins/ui_manager.c:110 +msgid "Off" +msgstr "" + +#: src/skins/ui_manager.c:114 src/skins/ui_manager.c:131 +#: src/skins/ui_manager.c:137 +#, fuzzy +msgid "Normal" +msgstr "Format" + +#: src/skins/ui_manager.c:115 src/skins/ui_manager.c:132 +#, fuzzy +msgid "Fire" +msgstr "Satire" + +#: src/skins/ui_manager.c:116 +msgid "Vertical Lines" +msgstr "" + +#: src/skins/ui_manager.c:120 +#, fuzzy +msgid "Lines" +msgstr "Latin" + +#: src/skins/ui_manager.c:121 +#, fuzzy +msgid "Bars" +msgstr "Bass" + +#: src/skins/ui_manager.c:125 +#, fuzzy +msgid "Dot Scope" +msgstr "Nu curăța playlist-ul" + +#: src/skins/ui_manager.c:126 +msgid "Line Scope" +msgstr "" + +#: src/skins/ui_manager.c:127 +msgid "Solid Scope" +msgstr "" + +#: src/skins/ui_manager.c:133 +msgid "Ice" +msgstr "" + +#: src/skins/ui_manager.c:138 +msgid "Smooth" +msgstr "" + +#: src/skins/ui_manager.c:142 +msgid "Full (~50 fps)" +msgstr "" + +#: src/skins/ui_manager.c:143 +msgid "Half (~25 fps)" +msgstr "" + +#: src/skins/ui_manager.c:144 +msgid "Quarter (~13 fps)" +msgstr "" + +#: src/skins/ui_manager.c:145 +msgid "Eighth (~6 fps)" +msgstr "" + +#: src/skins/ui_manager.c:149 src/skins/ui_manager.c:157 +#, fuzzy +msgid "Slowest" +msgstr "Showtunes" + +#: src/skins/ui_manager.c:150 src/skins/ui_manager.c:158 +#, fuzzy +msgid "Slow" +msgstr "Slow Jam" + +#: src/skins/ui_manager.c:151 src/skins/ui_manager.c:159 +msgid "Medium" +msgstr "" + +#: src/skins/ui_manager.c:152 src/skins/ui_manager.c:160 +#, fuzzy +msgid "Fast" +msgstr "Format" + +#: src/skins/ui_manager.c:153 src/skins/ui_manager.c:161 +msgid "Fastest" +msgstr "" + +#: src/skins/ui_manager.c:165 +msgid "Time Elapsed" +msgstr "" + +#: src/skins/ui_manager.c:166 +msgid "Time Remaining" +msgstr "" + +#: src/skins/ui_manager.c:180 src/skins/ui_manager.c:181 +#, fuzzy +msgid "Pause" +msgstr "La încărcare" + +#: src/skins/ui_manager.c:186 src/skins/ui_manager.c:187 +#, fuzzy +msgid "Previous" +msgstr "Primus" + +#: src/skins/ui_manager.c:189 src/skins/ui_manager.c:190 +#, fuzzy +msgid "Next" +msgstr "Text" + +#: src/skins/ui_manager.c:195 +#, fuzzy +msgid "Visualization" +msgstr "Internaţionalizare" + +#: src/skins/ui_manager.c:196 +msgid "Visualization Mode" +msgstr "" + +#: src/skins/ui_manager.c:197 +msgid "Analyzer Mode" +msgstr "" + +#: src/skins/ui_manager.c:198 +msgid "Scope Mode" +msgstr "" + +#: src/skins/ui_manager.c:199 +msgid "Voiceprint Mode" +msgstr "" + +#: src/skins/ui_manager.c:200 +msgid "WindowShade VU Mode" +msgstr "" + +#: src/skins/ui_manager.c:201 +msgid "Refresh Rate" +msgstr "" + +#: src/skins/ui_manager.c:202 +msgid "Analyzer Falloff" +msgstr "" + +#: src/skins/ui_manager.c:203 +msgid "Peaks Falloff" +msgstr "" + +#: src/skins/ui_manager.c:208 +#, fuzzy +msgid "Playlist" +msgstr "Selectați Playlist-ul" + +#: src/skins/ui_manager.c:210 src/skins/ui_manager.c:211 +#, fuzzy +msgid "New Playlist" +msgstr "Selectați Playlist-ul" + +#: src/skins/ui_manager.c:213 src/skins/ui_manager.c:214 +#, fuzzy +msgid "Select Next Playlist" +msgstr "Selectați Playlist-ul" + +#: src/skins/ui_manager.c:216 src/skins/ui_manager.c:217 +#, fuzzy +msgid "Select Previous Playlist" +msgstr "Selectați Playlist-ul" + +#: src/skins/ui_manager.c:219 src/skins/ui_manager.c:220 +#, fuzzy +msgid "Delete Playlist" +msgstr "Selectați Playlist-ul" + +#: src/skins/ui_manager.c:222 +#, fuzzy +msgid "Load List" +msgstr "Încarcă" + +#: src/skins/ui_manager.c:223 +msgid "Loads a playlist file into the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:225 +#, fuzzy +msgid "Save List" +msgstr "Salvează" + +#: src/skins/ui_manager.c:226 +#, fuzzy +msgid "Saves the selected playlist." +msgstr "Selectați Playlist-ul" + +#: src/skins/ui_manager.c:228 +#, fuzzy +msgid "Save Default List" +msgstr "Implicit" + +#: src/skins/ui_manager.c:229 +msgid "Saves the selected playlist to the default location." +msgstr "" + +#: src/skins/ui_manager.c:232 +msgid "Refresh List" +msgstr "" + +#: src/skins/ui_manager.c:233 +msgid "Refreshes metadata associated with a playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:236 +msgid "List Manager" +msgstr "" + +#: src/skins/ui_manager.c:237 +msgid "Opens the playlist manager." +msgstr "" + +#: src/skins/ui_manager.c:243 +msgid "View" +msgstr "" + +#: src/skins/ui_manager.c:247 +msgid "Add Internet Address..." +msgstr "" + +#: src/skins/ui_manager.c:248 +msgid "Adds a remote track to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:251 +msgid "Add Files..." +msgstr "" + +#: src/skins/ui_manager.c:252 +msgid "Adds files to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:257 +msgid "Search and Select" +msgstr "" + +#: src/skins/ui_manager.c:258 +msgid "" +"Searches the playlist and selects playlist entries based on specific " +"criteria." +msgstr "" + +#: src/skins/ui_manager.c:261 +#, fuzzy +msgid "Invert Selection" +msgstr "Selecția formatelor" + +#: src/skins/ui_manager.c:262 +msgid "Inverts the selected and unselected entries." +msgstr "" + +#: src/skins/ui_manager.c:265 +#, fuzzy +msgid "Select All" +msgstr "Selectați Playlist-ul" + +#: src/skins/ui_manager.c:266 +msgid "Selects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:269 +#, fuzzy +msgid "Select None" +msgstr "AdPlug·::·Informații despre fișier" + +#: src/skins/ui_manager.c:270 +msgid "Deselects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:275 +#, fuzzy +msgid "Remove All" +msgstr "Șterge Duplicatele" + +#: src/skins/ui_manager.c:276 +msgid "Removes all entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:279 +msgid "Clear Queue" +msgstr "" + +#: src/skins/ui_manager.c:280 +msgid "Clears the queue associated with this playlist." +msgstr "" + +#: src/skins/ui_manager.c:283 +msgid "Remove Unavailable Files" +msgstr "" + +#: src/skins/ui_manager.c:284 +msgid "Removes unavailable files from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:287 +msgid "Remove Duplicates" +msgstr "" + +#: src/skins/ui_manager.c:289 src/skins/ui_manager.c:321 +#: src/skins/ui_manager.c:351 +#, fuzzy +msgid "By Title" +msgstr "Titlu" + +#: src/skins/ui_manager.c:290 +msgid "Removes duplicate entries from the playlist by title." +msgstr "" + +#: src/skins/ui_manager.c:293 src/skins/ui_manager.c:329 +#: src/skins/ui_manager.c:359 +#, fuzzy +msgid "By Filename" +msgstr "Numele Fișierului:" + +#: src/skins/ui_manager.c:294 +msgid "Removes duplicate entries from the playlist by filename." +msgstr "" + +#: src/skins/ui_manager.c:297 src/skins/ui_manager.c:333 +#: src/skins/ui_manager.c:363 +#, fuzzy +msgid "By Path + Filename" +msgstr "Numele Fișierului:" + +#: src/skins/ui_manager.c:298 +msgid "Removes duplicate entries from the playlist by their full path." +msgstr "" + +#: src/skins/ui_manager.c:301 +msgid "Remove Unselected" +msgstr "" + +#: src/skins/ui_manager.c:302 +msgid "Remove unselected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:305 +msgid "Remove Selected" +msgstr "" + +#: src/skins/ui_manager.c:306 +msgid "Remove selected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:311 +msgid "Randomize List" +msgstr "" + +#: src/skins/ui_manager.c:312 +msgid "Randomizes the playlist." +msgstr "" + +#: src/skins/ui_manager.c:315 +msgid "Reverse List" +msgstr "" + +#: src/skins/ui_manager.c:316 +msgid "Reverses the playlist." +msgstr "" + +#: src/skins/ui_manager.c:319 +#, fuzzy +msgid "Sort List" +msgstr "Artist" + +#: src/skins/ui_manager.c:322 src/skins/ui_manager.c:352 +msgid "Sorts the list by title." +msgstr "" + +#: src/skins/ui_manager.c:325 src/skins/ui_manager.c:355 +#, fuzzy +msgid "By Artist" +msgstr "Artist" + +#: src/skins/ui_manager.c:326 src/skins/ui_manager.c:356 +msgid "Sorts the list by artist." +msgstr "" + +#: src/skins/ui_manager.c:330 src/skins/ui_manager.c:360 +msgid "Sorts the list by filename." +msgstr "" + +#: src/skins/ui_manager.c:334 src/skins/ui_manager.c:364 +msgid "Sorts the list by full pathname." +msgstr "" + +#: src/skins/ui_manager.c:337 src/skins/ui_manager.c:367 +#, fuzzy +msgid "By Date" +msgstr "Data:" + +#: src/skins/ui_manager.c:338 src/skins/ui_manager.c:368 +msgid "Sorts the list by modification time." +msgstr "" + +#: src/skins/ui_manager.c:341 src/skins/ui_manager.c:371 +#, fuzzy +msgid "By Track Number" +msgstr "Numărul Trackului" + +#: src/skins/ui_manager.c:342 src/skins/ui_manager.c:372 +msgid "Sorts the list by track number." +msgstr "" + +#: src/skins/ui_manager.c:345 src/skins/ui_manager.c:375 +#, fuzzy +msgid "By Playlist Entry" +msgstr "AdPlug·::·Informații despre fișier" + +#: src/skins/ui_manager.c:346 src/skins/ui_manager.c:376 +msgid "Sorts the list by playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:349 +#, fuzzy +msgid "Sort Selected" +msgstr "Selecția formatelor" + +#: src/skins/ui_manager.c:385 +#, fuzzy +msgid "File" +msgstr "Numele Fișierului:" + +#: src/skins/ui_manager.c:388 +msgid "Plugin Services" +msgstr "" + +#: src/skins/ui_manager.c:390 src/skins/ui_manager.c:393 +#, fuzzy +msgid "View Track Details" +msgstr "Fereastra cu informații despre Track" + +#: src/skins/ui_manager.c:391 src/skins/ui_manager.c:394 +msgid "View track details" +msgstr "" + +#: src/skins/ui_manager.c:396 src/skins/ui_manager.c:397 +#, fuzzy +msgid "About Audacious" +msgstr "Despre plugin-ul decodor MP4·AAC" + +#: src/skins/ui_manager.c:399 +#, fuzzy +msgid "Play File" +msgstr "Pauză pentru" + +#: src/skins/ui_manager.c:400 +#, fuzzy +msgid "Load and play a file" +msgstr "Încarcă SF la pornirea playerului" + +#: src/skins/ui_manager.c:402 +#, fuzzy +msgid "Play Location" +msgstr "Locaţie:" + +#: src/skins/ui_manager.c:403 +#, fuzzy +msgid "Play media from the selected location" +msgstr "Selecția formatelor" + +#: src/skins/ui_manager.c:405 +msgid "Plugin services" +msgstr "" + +#: src/skins/ui_manager.c:407 +msgid "Preferences" +msgstr "" + +#: src/skins/ui_manager.c:408 +msgid "Open preferences window" +msgstr "" + +#: src/skins/ui_manager.c:410 +#, fuzzy +msgid "_Quit" +msgstr "Calitatea sunetului" + +#: src/skins/ui_manager.c:411 +#, fuzzy +msgid "Quit Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_manager.c:413 src/skins/ui_manager.c:414 +msgid "Set A-B" +msgstr "" + +#: src/skins/ui_manager.c:416 src/skins/ui_manager.c:417 +msgid "Clear A-B" +msgstr "" + +#: src/skins/ui_manager.c:419 src/skins/ui_manager.c:420 +msgid "Jump to Playlist Start" +msgstr "" + +#: src/skins/ui_manager.c:428 +msgid "Queue Toggle" +msgstr "" + +#: src/skins/ui_manager.c:429 +msgid "Enables/disables the entry in the playlist's queue." +msgstr "" + +#: src/skins/ui_manager.c:436 +#, fuzzy +msgid "Load" +msgstr "Încarcă" + +#: src/skins/ui_manager.c:441 src/skins/ui_manager.c:462 +#: src/skins/ui_manager.c:477 +#, fuzzy +msgid "Preset" +msgstr "Port-ul:" + +#: src/skins/ui_manager.c:442 +msgid "Load preset" +msgstr "" + +#: src/skins/ui_manager.c:444 src/skins/ui_manager.c:465 +#: src/skins/ui_manager.c:480 +msgid "Auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:445 +msgid "Load auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:448 +#, fuzzy +msgid "Load default preset into equalizer" +msgstr "Încarcă presetarea implicită a egalizatorului" + +#: src/skins/ui_manager.c:450 +#, fuzzy +msgid "Zero" +msgstr "Retro" + +#: src/skins/ui_manager.c:451 +msgid "Set equalizer preset levels to zero" +msgstr "" + +#: src/skins/ui_manager.c:453 +msgid "From file" +msgstr "" + +#: src/skins/ui_manager.c:454 +#, fuzzy +msgid "Load preset from file" +msgstr "Încarcă preset din fișier" + +#: src/skins/ui_manager.c:456 +msgid "From WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:457 +msgid "Load preset from WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:459 +msgid "WinAMP Presets" +msgstr "" + +#: src/skins/ui_manager.c:460 +msgid "Import WinAMP presets" +msgstr "" + +#: src/skins/ui_manager.c:463 +msgid "Save preset" +msgstr "" + +#: src/skins/ui_manager.c:466 +msgid "Save auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:469 +#, fuzzy +msgid "Save default preset" +msgstr "Încarcă presetarea implicită a egalizatorului" + +#: src/skins/ui_manager.c:471 +#, fuzzy +msgid "To file" +msgstr "Fisierul STIL:" + +#: src/skins/ui_manager.c:472 +msgid "Save preset to file" +msgstr "" + +#: src/skins/ui_manager.c:474 +msgid "To WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:475 +msgid "Save preset to WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:478 +#, fuzzy +msgid "Delete preset" +msgstr "Implicit" + +#: src/skins/ui_manager.c:481 +msgid "Delete auto-load preset" +msgstr "" + +#: src/skins/ui_playlist.c:454 +msgid "Search entries in active playlist" +msgstr "" + +#: src/skins/ui_playlist.c:462 +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 "" + +#: src/skins/ui_playlist.c:477 +#, fuzzy +msgid "Album: " +msgstr "Album" + +#: src/skins/ui_playlist.c:484 +#, fuzzy +msgid "Artist: " +msgstr "Artist" + +#: src/skins/ui_playlist.c:491 +#, fuzzy +msgid "Filename: " +msgstr "Fișier:" + +#: src/skins/ui_playlist.c:499 +msgid "Clear previous selection before searching" +msgstr "" + +#: src/skins/ui_playlist.c:502 +msgid "Automatically toggle queue for matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:505 +msgid "Create a new playlist with matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:724 +#, c-format +msgid "Error writing playlist \"%s\": %s" +msgstr "" + +#: src/skins/ui_playlist.c:746 +#, c-format +msgid "%s already exist. Continue?" +msgstr "" + +#: src/skins/ui_playlist.c:761 +#, c-format +msgid "" +"Unable to save playlist.\n" +"\n" +"Unknown file type for '%s'.\n" +msgstr "" + +#: src/skins/ui_playlist.c:887 +#, fuzzy +msgid "Save as Static Playlist" +msgstr "Selectați Playlist-ul" + +#: src/skins/ui_playlist.c:894 +msgid "Use Relative Path" +msgstr "" + +#: src/skins/ui_playlist.c:916 +#, fuzzy +msgid "Load Playlist" +msgstr "AdPlug·::·Informații despre fișier" + +#: src/skins/ui_playlist.c:929 +#, fuzzy +msgid "Save Playlist" +msgstr "Selectați Playlist-ul" + +#: src/skins/ui_playlist.c:1497 +#, fuzzy +msgid "Audacious Playlist Editor" +msgstr "AdPlug·::·Informații despre fișier" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "PREAMP" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "60HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "170HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "310HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "600HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "1KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "3KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "6KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "12KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "14KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "16KHZ" +msgstr "" + +#: src/skins/ui_skinselector.c:178 +msgid "Archived Winamp 2.x skin" +msgstr "" + +#: src/skins/ui_skinselector.c:183 +msgid "Unarchived Winamp 2.x skin" +msgstr "" + +#: src/skins/util.c:1132 +#, fuzzy, c-format +msgid "Could not create directory (%s): %s\n" +msgstr "Nu s-a putut crea directorul (%s): %s\n" + +#: src/sndfile/plugin.c:554 #, fuzzy msgid "About sndfile plugin" msgstr "Lista plugin-urilor _Generale" -#: src/sndfile/plugin.c:549 +#: src/sndfile/plugin.c:555 msgid "" "Adapted for Audacious usage by Tony Vroon \n" "from the xmms_sndfile plugin which is:\n" @@ -4436,65 +5594,61 @@ "Boston, MA 02110-1301 USA" msgstr "" -#: src/sndstretch/sndstretch_xmms.c:159 +#: src/sndstretch/sndstretch_xmms.c:158 #, fuzzy msgid "About SndStretch" msgstr "Despre Audacious" -#: src/sndstretch/sndstretch_xmms.c:319 +#: src/sndstretch/sndstretch_xmms.c:318 #, fuzzy msgid "Volume corr." msgstr "Schimbă volumul cu" -#: src/sndstretch/sndstretch_xmms.c:320 +#: src/sndstretch/sndstretch_xmms.c:319 msgid "Short Overlap" msgstr "" -#: src/sndstretch/sndstretch_xmms.c:374 +#: src/sndstretch/sndstretch_xmms.c:373 #, fuzzy msgid "Speed" msgstr "Viteză: " -#: src/sndstretch/sndstretch_xmms.c:375 +#: src/sndstretch/sndstretch_xmms.c:374 msgid "Pitch" msgstr "" -#: src/sndstretch/sndstretch_xmms.c:376 -msgid "Scale" -msgstr "" - -#: src/sndstretch/sndstretch_xmms.c:396 +#: src/sndstretch/sndstretch_xmms.c:395 #, fuzzy msgid "SndStretch - Configuration" msgstr "AdPlug·::·Configurare" -#: src/song_change/song_change.c:312 +#: src/song_change/song_change.c:310 msgid "Commands" msgstr "" -#: src/song_change/song_change.c:319 +#: src/song_change/song_change.c:317 msgid "Command to run when Audacious starts a new song." msgstr "" -#: src/song_change/song_change.c:328 src/song_change/song_change.c:350 -#: src/song_change/song_change.c:371 src/song_change/song_change.c:392 +#: src/song_change/song_change.c:326 src/song_change/song_change.c:348 +#: src/song_change/song_change.c:369 src/song_change/song_change.c:390 msgid "Command:" msgstr "" -#: src/song_change/song_change.c:342 +#: src/song_change/song_change.c:340 msgid "Command to run toward the end of a song." msgstr "" -#: src/song_change/song_change.c:362 +#: src/song_change/song_change.c:360 msgid "Command to run when Audacious reaches the end of the playlist." msgstr "" -#: src/song_change/song_change.c:383 +#: src/song_change/song_change.c:381 msgid "" "Command to run when title changes for a song (i.e. network streams titles)." msgstr "" -#: src/song_change/song_change.c:404 +#: src/song_change/song_change.c:402 #, c-format msgid "" "You can use the following format strings which\n" @@ -4511,13 +5665,13 @@ "%%p: Currently playing (1 or 0)" msgstr "" -#: src/song_change/song_change.c:429 +#: src/song_change/song_change.c:427 msgid "" "Parameters passed to the shell should be encapsulated in " "quotes. Doing otherwise is a security risk." msgstr "" -#: src/spectrum/spectrum.c:90 +#: src/spectrum/spectrum.c:89 #, fuzzy msgid "Spectrum Analyzer" msgstr "Modul Analizatorului" @@ -4530,12 +5684,12 @@ msgid "The orientation of the tray" msgstr "" -#: src/statusicon/si_ui.c:622 +#: src/statusicon/si_ui.c:620 #, fuzzy msgid "About Status Icon Plugin" msgstr "Despre plugin-ul decodor MP4·AAC" -#: src/statusicon/si_ui.c:624 +#: src/statusicon/si_ui.c:622 msgid "" "\n" "written by Giacomo Lozito < james@develia.org >\n" @@ -4544,70 +5698,65 @@ "the system tray area of the window manager.\n" msgstr "" -#: src/statusicon/si_ui.c:696 +#: src/statusicon/si_ui.c:694 msgid "Status Icon Plugin - Preferences" msgstr "" -#: src/statusicon/si_ui.c:707 +#: src/statusicon/si_ui.c:705 msgid "Right-Click Menu" msgstr "" -#: src/statusicon/si_ui.c:712 +#: src/statusicon/si_ui.c:710 #, fuzzy msgid "Audacious standard menu" msgstr "Developerii Audacious:" -#: src/statusicon/si_ui.c:717 +#: src/statusicon/si_ui.c:715 #, fuzzy msgid "Small playback menu #1" msgstr "Continuă redarea la pornire" -#: src/statusicon/si_ui.c:722 +#: src/statusicon/si_ui.c:720 #, fuzzy msgid "Small playback menu #2" msgstr "Continuă redarea la pornire" -#: src/statusicon/si_ui.c:745 +#: src/statusicon/si_ui.c:743 msgid "Mouse Scroll Action" msgstr "" -#: src/statusicon/si_ui.c:750 +#: src/statusicon/si_ui.c:748 #, fuzzy msgid "Change volume" msgstr "Schimbă volumul cu" -#: src/statusicon/si_ui.c:755 +#: src/statusicon/si_ui.c:753 #, fuzzy msgid "Change playing song" msgstr "Pauză" -#: src/stereo_plugin/stereo.c:26 +#: src/stereo_plugin/stereo.c:25 msgid "" "Extra Stereo Plugin\n" "\n" "By Johan Levin 1999." msgstr "" -#: src/stereo_plugin/stereo.c:52 +#: src/stereo_plugin/stereo.c:51 #, fuzzy msgid "About Extra Stereo Plugin" msgstr "Despre plugin-ul decodor MP4·AAC" -#: src/stereo_plugin/stereo.c:93 +#: src/stereo_plugin/stereo.c:92 msgid "Configure Extra Stereo" msgstr "" -#: src/stereo_plugin/stereo.c:95 -#, fuzzy -msgid "Effect intensity:" -msgstr "Lista plugin-urilor de _Efecte" - -#: src/sun/about.c:34 +#: src/sun/about.c:33 #, fuzzy msgid "About the Sun Driver" msgstr "Despre plugin-ul·pentru Alarmă" -#: src/sun/about.c:35 +#: src/sun/about.c:34 msgid "" "XMMS BSD Sun Driver\n" "\n" @@ -4615,21 +5764,21 @@ "Maintainer: .\n" msgstr "" -#: src/sun/configure.c:201 +#: src/sun/configure.c:199 #, fuzzy msgid "Audio control device:" msgstr "Despre plugin-ul·Apple·Lossless·Audio" -#: src/sun/configure.c:350 +#: src/sun/configure.c:348 #, fuzzy msgid "Volume controls device:" msgstr "Schimbă volumul cu" -#: src/sun/configure.c:363 +#: src/sun/configure.c:361 msgid "XMMS uses mixer exclusively." msgstr "" -#: src/sun/configure.c:538 +#: src/sun/configure.c:536 msgid "Sun driver configuration" msgstr "" @@ -4659,29 +5808,29 @@ msgid "TiMidity Configuration File" msgstr "AdPlug·::·Informații despre fișier" -#: src/timidity/xmms-timidity.c:118 +#: src/timidity/xmms-timidity.c:115 msgid "" "TiMidity Plugin\n" "http://libtimidity.sourceforge.net\n" "by Konstantin Korikov" msgstr "" -#: src/timidity/xmms-timidity.c:119 +#: src/timidity/xmms-timidity.c:116 #, fuzzy, c-format msgid "TiMidity Plugin %s" msgstr "Plugin de intrare: %s" -#: src/timidity/xmms-timidity.c:336 +#: src/timidity/xmms-timidity.c:333 #, fuzzy msgid "Couldn't load MIDI file" msgstr "Încarcă și redă un fișier" -#: src/tonegen/tonegen.c:56 +#: src/tonegen/tonegen.c:55 #, fuzzy msgid "About Tone Generator" msgstr "Despre plugin-ul·pentru Alarmă" -#: src/tonegen/tonegen.c:58 +#: src/tonegen/tonegen.c:57 msgid "" "Sinus tone generator by Haavard Kvaalen \n" "Modified by Daniel J. Peng \n" @@ -4690,98 +5839,98 @@ "e.g. tone://2000;2005 to play a 2000Hz tone and a 2005Hz tone" msgstr "" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 #, c-format msgid "%s %.1f Hz" msgstr "%s %.1f Hz" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 msgid "Tone Generator: " msgstr "" -#: src/tta/libtta.c:130 +#: src/tta/libtta.c:127 #, fuzzy msgid "Can't open file\n" msgstr "AdPlug·::·Informații despre fișier" -#: src/tta/libtta.c:133 +#: src/tta/libtta.c:130 msgid "Not supported file format\n" msgstr "" -#: src/tta/libtta.c:136 +#: src/tta/libtta.c:133 #, fuzzy msgid "File is corrupted\n" msgstr "AdPlug·::·Informații despre fișier" -#: src/tta/libtta.c:139 +#: src/tta/libtta.c:136 #, fuzzy msgid "Can't read from file\n" msgstr "Încarcă preset din fișier" -#: src/tta/libtta.c:142 +#: src/tta/libtta.c:139 #, fuzzy msgid "Insufficient memory available\n" msgstr "Folosește fonturi Bitmap dacă sunt disponibile" -#: src/tta/libtta.c:145 +#: src/tta/libtta.c:142 #, fuzzy msgid "Output plugin error\n" msgstr "Plugin-ul de ieșire curent" -#: src/tta/libtta.c:148 +#: src/tta/libtta.c:145 #, fuzzy msgid "Unknown error\n" msgstr "Eroare în Audacious" -#: src/tta/libtta.c:152 +#: src/tta/libtta.c:149 #, fuzzy msgid "TTA Decoder Error" msgstr "Eroare în Audacious" -#: src/tta/libtta.c:261 +#: src/tta/libtta.c:258 #, fuzzy msgid "TTA input plugin " msgstr "Lista plugin-urilor _Generale" -#: src/tta/libtta.c:262 +#: src/tta/libtta.c:259 msgid "" " for BMP\n" "Copyright (c) 2004 True Audio Software\n" msgstr "" -#: src/tta/libtta.c:265 +#: src/tta/libtta.c:262 #, fuzzy msgid "About True Audio Plugin" msgstr "Despre plugin-ul·Apple·Lossless·Audio" -#: src/tta/libtta.c:316 +#: src/tta/libtta.c:313 msgid "ID3 Tag:" msgstr "" -#: src/tta/libtta.c:378 src/wavpack/ui.cxx:234 +#: src/tta/libtta.c:375 src/wavpack/ui.cxx:232 #, fuzzy msgid "Track number:" msgstr "Numărul Trackului" -#: src/vorbis/configure.c:84 +#: src/vorbis/configure.c:82 msgid "Ogg Vorbis Audio Plugin Configuration" msgstr "" -#: src/vorbis/configure.c:94 +#: src/vorbis/configure.c:92 msgid "Ogg Vorbis Tags:" msgstr "" -#: src/vorbis/configure.c:115 +#: src/vorbis/configure.c:113 #, fuzzy msgid "Title format:" msgstr "Formatul titlului:" -#: src/vorbis/vorbis.c:681 +#: src/vorbis/vorbis.c:677 #, fuzzy msgid "About Ogg Vorbis Audio Plugin" msgstr "Despre plugin-ul·Apple·Lossless·Audio" -#: src/vorbis/vorbis.c:687 +#: src/vorbis/vorbis.c:683 msgid "" "Ogg Vorbis Plugin by the Xiph.org Foundation\n" "\n" @@ -4800,12 +5949,12 @@ "Visit the Xiph.org Foundation at http://www.xiph.org/\n" msgstr "" -#: src/vtx/about.c:23 +#: src/vtx/about.c:17 #, fuzzy msgid "About Vortex Player" msgstr "Despre plugin-ul decodor MP4·AAC" -#: src/vtx/about.c:25 +#: src/vtx/about.c:19 msgid "" "Vortex file format player by Sashnov Alexander \n" "Founded on original source in_vtx.dll by Roman Sherbakov " msgstr "" -#: src/wavpack/ui.cxx:52 +#: src/wavpack/ui.cxx:50 #, fuzzy, c-format msgid "Wavpack Decoder Plugin %s" msgstr "Lista plugin-urilor _Generale" -#: src/wavpack/ui.cxx:53 +#: src/wavpack/ui.cxx:51 msgid "" "Copyright (c) 2006 William Pitcock \n" "\n" @@ -4830,99 +5979,99 @@ "Visit the Wavpack site at http://www.wavpack.com/\n" msgstr "" -#: src/wavpack/ui.cxx:165 +#: src/wavpack/ui.cxx:163 msgid "Ape2 Tag" msgstr "" -#: src/wavpack/ui.cxx:288 +#: src/wavpack/ui.cxx:286 #, fuzzy msgid "Wavpack Info:" msgstr "AdPlug·::·Informații despre fișier" -#: src/wavpack/ui.cxx:381 +#: src/wavpack/ui.cxx:379 #, c-format msgid "version %d" msgstr "versiunea %d" -#: src/wavpack/ui.cxx:382 +#: src/wavpack/ui.cxx:380 #, c-format msgid "average bitrate: %6.1f kbps" msgstr "bitrate-ul mediu: %6.1f kbps" -#: src/wavpack/ui.cxx:383 +#: src/wavpack/ui.cxx:381 #, fuzzy, c-format msgid "samplerate: %d Hz" msgstr "Rata de eșantionare [Hz]:" -#: src/wavpack/ui.cxx:384 +#: src/wavpack/ui.cxx:382 #, fuzzy, c-format msgid "bits per sample: %d" msgstr "Foloseste coperta per-fișier" -#: src/wavpack/ui.cxx:385 +#: src/wavpack/ui.cxx:383 #, fuzzy, c-format msgid "channels: %d" msgstr "Canale" -#: src/wavpack/ui.cxx:386 +#: src/wavpack/ui.cxx:384 #, fuzzy, c-format msgid "length: %d:%.2d" msgstr "Mărimea track-ului" -#: src/wavpack/ui.cxx:387 +#: src/wavpack/ui.cxx:385 #, fuzzy, c-format msgid "file size: %d Bytes" msgstr "AdPlug·::·Informații despre fișier" -#: src/wavpack/ui.cxx:394 +#: src/wavpack/ui.cxx:392 #, fuzzy msgid "Title Peak: ?" msgstr "Formatul titlului:" -#: src/wavpack/ui.cxx:395 +#: src/wavpack/ui.cxx:393 #, fuzzy msgid "Album Peak: ?" msgstr "Album" -#: src/wavpack/ui.cxx:396 +#: src/wavpack/ui.cxx:394 #, fuzzy msgid "Title Gain: ?" msgstr "Formatul titlului:" -#: src/wavpack/ui.cxx:397 +#: src/wavpack/ui.cxx:395 #, fuzzy msgid "Album Gain: ?" msgstr "Album" -#: src/wavpack/ui.cxx:471 +#: src/wavpack/ui.cxx:469 #, fuzzy msgid "Wavpack Configuration" msgstr "AdPlug·::·Configurare" -#: src/wavpack/ui.cxx:484 +#: src/wavpack/ui.cxx:482 #, fuzzy msgid "General Plugin Settings:" msgstr "Lista plugin-urilor _Generale" -#: src/wavpack/ui.cxx:502 +#: src/wavpack/ui.cxx:500 #, fuzzy msgid "ReplayGain Settings:" msgstr "Opțiuni pentru Popup-ul cu informații suplimentare" -#: src/wavpack/ui.cxx:520 +#: src/wavpack/ui.cxx:518 #, fuzzy msgid "ReplayGain Type:" msgstr "Tipul Fișierului: " -#: src/wavpack/ui.cxx:531 +#: src/wavpack/ui.cxx:529 msgid "use Track Gain/Peak" msgstr "" -#: src/wavpack/ui.cxx:539 +#: src/wavpack/ui.cxx:537 msgid "use Album Gain/Peak" msgstr "" -#: src/wma/wma.c:123 +#: src/wma/wma.c:120 msgid "" "Adapted for use in Audacious by Tony Vroon (chainsaw@gentoo.org) from\n" "the BEEP-WMA plugin which is Copyright (C) 2004,2005 Mokrushin I.V. aka " @@ -4957,10 +6106,6 @@ #~ msgstr "Nu s-a putut crea directorul (%s): %s\n" #, fuzzy -#~ msgid "Could not allocate sidFilename ('%s')\n" -#~ msgstr "Nu s-a putut crea directorul (%s): %s\n" - -#, fuzzy #~ msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n" #~ msgstr "Nu s-a putut crea directorul (%s): %s\n" @@ -5001,10 +6146,6 @@ #~ msgstr "Mod de Vizualizare" #, fuzzy -#~ msgid "File Info" -#~ msgstr "AdPlug·::·Informații despre fișier" - -#, fuzzy #~ msgid "Couldn't open file!" #~ msgstr "AdPlug·::·Informații despre fișier" @@ -5024,9 +6165,6 @@ #~ msgid "%d:%02d (%d seconds)" #~ msgstr "minute:secunde" -#~ msgid "Blues" -#~ msgstr "Blues" - #~ msgid "Classic Rock" #~ msgstr "Classic Rock" @@ -5094,9 +6232,6 @@ #~ msgid "Death Metal" #~ msgstr "Death Metal" -#~ msgid "Pranks" -#~ msgstr "Pranks" - #~ msgid "Soundtrack" #~ msgstr "Soundtrack" @@ -5149,9 +6284,6 @@ #~ msgid "AlternRock" #~ msgstr "AlternRock" -#~ msgid "Bass" -#~ msgstr "Bass" - #~ msgid "Soul" #~ msgstr "Soul" @@ -5233,9 +6365,6 @@ #~ msgid "Rave" #~ msgstr "Rave" -#~ msgid "Showtunes" -#~ msgstr "Showtunes" - #~ msgid "Trailer" #~ msgstr "Trailer" @@ -5254,9 +6383,6 @@ #~ msgid "Polka" #~ msgstr "Polka" -#~ msgid "Retro" -#~ msgstr "Retro" - #~ msgid "Musical" #~ msgstr "Musical" @@ -5284,9 +6410,6 @@ #~ msgid "Bebob" #~ msgstr "Bebob" -#~ msgid "Latin" -#~ msgstr "Latin" - #~ msgid "Revival" #~ msgstr "Revival" @@ -5350,18 +6473,9 @@ #~ msgid "Booty Bass" #~ msgstr "Booty Bass" -#~ msgid "Primus" -#~ msgstr "Primus" - #~ msgid "Porn Groove" #~ msgstr "Porn Groove" -#~ msgid "Satire" -#~ msgstr "Satire" - -#~ msgid "Slow Jam" -#~ msgstr "Slow Jam" - #~ msgid "Club" #~ msgstr "Club" @@ -5431,9 +6545,6 @@ #~ msgid "Polsk Punk" #~ msgstr "Polsk Punk" -#~ msgid "Beat" -#~ msgstr "Beat" - #~ msgid "Christian Gangsta Rap" #~ msgstr "Christian Gangsta Rap" @@ -5479,24 +6590,14 @@ #~ msgid "Error!" #~ msgstr "Eroare!" -#~ msgid "Date:" -#~ msgstr "Data:" - #~ msgid "Description:" #~ msgstr "Descriere:" -#~ msgid "Location:" -#~ msgstr "Locaţie:" - #, fuzzy #~ msgid "ISRC number:" #~ msgstr "Numărul Trackului" #, fuzzy -#~ msgid "Track gain:" -#~ msgstr "Informații despre Track" - -#, fuzzy #~ msgid "Track peak:" #~ msgstr "Informații despre Track" @@ -5532,10 +6633,6 @@ #~ msgid "%d:%.2d" #~ msgstr "Salt la: %d:%-2.2d/%d:%-2.2d (%d%%)" -#, fuzzy -#~ msgid "%s - Audacious" -#~ msgstr "%s - Audacious" - #~ msgid "Use software volume control" #~ msgstr "Folosește controlul de volum în software" @@ -5544,10 +6641,6 @@ #~ msgstr "Pornește" #, fuzzy -#~ msgid "Load" -#~ msgstr "Încarcă" - -#, fuzzy #~ msgid "Song-position patch" #~ msgstr "Pauză" diff -r c40585c57877 -r 7fc2c317d190 po/ru.po --- a/po/ru.po Thu Jul 03 17:23:34 2008 +0300 +++ b/po/ru.po Thu Jul 03 17:37:11 2008 +0300 @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: audacious-plugins 1.5\n" -"Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" -"POT-Creation-Date: 2008-03-30 17:25+0200\n" +"Report-Msgid-Bugs-To: http://bugzilla.atheme.org/\n" +"POT-Creation-Date: 2008-06-21 08:27+0300\n" "PO-Revision-Date: 2008-01-11 04:59+0300\n" "Last-Translator: Eugene Zagidullin \n" "Language-Team: none\n" @@ -20,11 +20,11 @@ "X-Poedit-Language: Russian\n" "X-Poedit-Basepath: /home/asphyx/ahinea/audacious-plugins\n" -#: src/aac/libmp4.c:286 +#: src/aac/libmp4.c:283 msgid "Using libfaad2-" msgstr "Используется libfaad2-" -#: src/aac/libmp4.c:287 +#: src/aac/libmp4.c:284 msgid "" " for decoding.\n" "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n" @@ -34,38 +34,38 @@ "FAAD2 AAC/HE-AAC/HE-AACv2/DRM декодер (c) Nero AG, www.nero.com\n" "Copyright (c) 2005-2006 Команда разработчиков Audacious" -#: src/aac/libmp4.c:291 +#: src/aac/libmp4.c:288 msgid "About MP4 AAC player plugin" msgstr "О модуле MP4 AAC" -#: src/aac/libmp4.c:293 src/adplug/adplug-xmms.cc:182 -#: src/adplug/adplug-xmms.cc:265 src/adplug/adplug-xmms.cc:526 -#: src/alac/plugin.c:77 src/arts/arts.c:26 src/arts/configure.c:90 -#: src/audiocompress/audacious-glue.c:102 -#: src/audiocompress/audacious-glue.c:552 src/cdaudio-ng/configure.c:228 -#: src/console/Audacious_Driver.cxx:449 src/demac/plugin.c:393 -#: src/echo_plugin/gui.c:26 src/echo_plugin/gui.c:137 src/esd/about.c:49 -#: src/filewriter/filewriter.c:183 src/jack/configure.c:141 -#: src/jack/jack.c:456 src/madplug/plugin.c:542 src/madplug/plugin.c:566 -#: src/metronom/metronom.c:88 src/modplug/gui/main.cxx:49 -#: src/musepack/libmpc.cxx:232 src/null/null.c:67 src/null/null.c:110 -#: src/OSS4/about.c:59 src/OSS/about.c:54 src/paranormal-ng/plugin.c:283 -#: src/paranormal/plugin.c:291 src/scrobbler/gtkstuff.c:25 -#: src/sndfile/plugin.c:565 src/statusicon/si_ui.c:628 -#: src/stereo_plugin/stereo.c:53 src/stereo_plugin/stereo.c:116 -#: src/sun/about.c:38 src/sun/configure.c:559 src/timidity/interface.c:222 -#: src/timidity/xmms-timidity.c:120 src/tonegen/tonegen.c:62 -#: src/tta/libtta.c:153 src/tta/libtta.c:267 src/tta/libtta.c:402 -#: src/vorbis/vorbis.c:700 src/vtx/about.c:32 src/vtx/info.c:43 -#: src/wavpack/ui.cxx:56 src/wavpack/ui.cxx:556 +#: src/aac/libmp4.c:290 src/adplug/adplug-xmms.cc:180 +#: src/adplug/adplug-xmms.cc:263 src/adplug/adplug-xmms.cc:524 +#: src/alac/plugin.c:74 src/arts/arts.c:25 src/arts/configure.c:90 +#: src/audiocompress/audacious-glue.c:110 +#: src/audiocompress/audacious-glue.c:560 src/cdaudio-ng/configure.c:242 +#: src/console/Audacious_Driver.cxx:447 src/crystalizer/crystalizer.c:113 +#: src/demac/plugin.c:364 src/echo_plugin/gui.c:24 src/echo_plugin/gui.c:135 +#: src/esd/about.c:48 src/filewriter/filewriter.c:183 src/jack/configure.c:140 +#: src/jack/jack.c:454 src/madplug/plugin.c:679 src/madplug/plugin.c:703 +#: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:52 +#: src/musepack/libmpc.cxx:228 src/null/null.c:64 src/null/null.c:107 +#: src/OSS4/OSS4.c:55 src/OSS/OSS.c:52 src/paranormal-ng/plugin.c:282 +#: src/paranormal/plugin.c:290 src/scrobbler/gtkstuff.c:22 +#: src/sndfile/plugin.c:571 src/statusicon/si_ui.c:626 +#: src/stereo_plugin/stereo.c:52 src/stereo_plugin/stereo.c:115 +#: src/sun/about.c:37 src/sun/configure.c:557 src/timidity/interface.c:222 +#: src/timidity/xmms-timidity.c:117 src/tonegen/tonegen.c:61 +#: src/tta/libtta.c:150 src/tta/libtta.c:264 src/tta/libtta.c:399 +#: src/vorbis/vorbis.c:696 src/vtx/about.c:26 src/vtx/info.c:38 +#: src/wavpack/ui.cxx:54 src/wavpack/ui.cxx:554 msgid "Ok" msgstr "ОК" -#: src/adplug/adplug-xmms.cc:171 +#: src/adplug/adplug-xmms.cc:169 msgid "About " msgstr "О " -#: src/adplug/adplug-xmms.cc:175 +#: src/adplug/adplug-xmms.cc:173 msgid "" "\n" "Copyright (C) 2002, 2003 Simon Peter \n" @@ -87,195 +87,195 @@ "Этот модуль использует библиотеку AdPlug, Copyright (C) Simon Peter.\n" "Версия библиотеки AdPlug: " -#: src/adplug/adplug-xmms.cc:256 +#: src/adplug/adplug-xmms.cc:254 msgid "AdPlug :: Configuration" msgstr "AdPlug :: Настройка" -#: src/adplug/adplug-xmms.cc:275 src/alarm/interface.c:1398 +#: src/adplug/adplug-xmms.cc:273 src/alarm/interface.c:1398 #: src/alsa/configure.c:389 src/arts/configure.c:91 -#: src/audiocompress/audacious-glue.c:557 src/cdaudio-ng/configure.c:232 -#: src/echo_plugin/gui.c:145 src/jack/configure.c:148 -#: src/modplug/gui/interface.cxx:714 src/modplug/gui/modplug.glade:1668 -#: src/musepack/libmpc.cxx:237 src/musepack/libmpc.cxx:557 src/null/null.c:111 -#: src/sid/xmms-sid.glade:3080 src/sid/xs_interface.c:1250 -#: src/stereo_plugin/stereo.c:125 src/sun/configure.c:567 -#: src/timidity/interface.c:230 src/wavpack/ui.cxx:280 src/wavpack/ui.cxx:563 +#: src/audiocompress/audacious-glue.c:565 src/cdaudio-ng/configure.c:246 +#: src/crystalizer/crystalizer.c:122 src/echo_plugin/gui.c:143 +#: src/jack/configure.c:147 src/modplug/gui/interface.cxx:714 +#: src/modplug/gui/modplug.glade:1668 src/musepack/libmpc.cxx:233 +#: src/musepack/libmpc.cxx:553 src/null/null.c:108 +#: src/stereo_plugin/stereo.c:124 src/sun/configure.c:565 +#: src/timidity/interface.c:230 src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561 msgid "Cancel" msgstr "Отмена" -#: src/adplug/adplug-xmms.cc:291 src/console/Audacious_Config.cxx:145 -#: src/madplug/configure.c:290 src/modplug/gui/interface.cxx:628 +#: src/adplug/adplug-xmms.cc:289 src/console/Audacious_Config.cxx:144 +#: src/madplug/configure.c:289 src/modplug/gui/interface.cxx:628 #: src/modplug/gui/interface.cxx:887 src/modplug/gui/modplug.glade:1404 #: src/modplug/gui/modplug.glade:1804 msgid "General" msgstr "Основной" -#: src/adplug/adplug-xmms.cc:303 +#: src/adplug/adplug-xmms.cc:301 msgid "Sound quality" msgstr "Качество звука" -#: src/adplug/adplug-xmms.cc:308 src/modplug/gui/interface.cxx:187 +#: src/adplug/adplug-xmms.cc:306 src/modplug/gui/interface.cxx:187 #: src/modplug/gui/modplug.glade:113 msgid "Resolution" msgstr "Разрешение" -#: src/adplug/adplug-xmms.cc:310 +#: src/adplug/adplug-xmms.cc:308 msgid "8bit" msgstr "8 бит" -#: src/adplug/adplug-xmms.cc:315 +#: src/adplug/adplug-xmms.cc:313 msgid "16bit" msgstr "16 бит" -#: src/adplug/adplug-xmms.cc:323 src/modplug/gui/interface.cxx:218 +#: src/adplug/adplug-xmms.cc:321 src/modplug/gui/interface.cxx:218 #: src/modplug/gui/modplug.glade:199 src/timidity/interface.c:148 msgid "Channels" msgstr "Каналы" -#: src/adplug/adplug-xmms.cc:325 src/filewriter/mp3.c:900 -#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:288 +#: src/adplug/adplug-xmms.cc:323 src/filewriter/mp3.c:900 +#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:300 #: src/timidity/interface.c:165 msgid "Mono" msgstr "Моно" -#: src/adplug/adplug-xmms.cc:330 src/filewriter/mp3.c:895 +#: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:895 #: src/modplug/gui/interface.cxx:204 src/modplug/gui/modplug.glade:159 -#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:295 +#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:307 #: src/timidity/interface.c:173 msgid "Stereo" msgstr "Стерео" -#: src/adplug/adplug-xmms.cc:334 +#: src/adplug/adplug-xmms.cc:332 msgid "" "Setting stereo is not recommended, unless you need to. This won't add any " "stereo effects to the sound - OPL2 is just mono - but eats up more CPU power!" msgstr "" -#: src/adplug/adplug-xmms.cc:342 +#: src/adplug/adplug-xmms.cc:340 msgid "Frequency" msgstr "Частота" -#: src/adplug/adplug-xmms.cc:378 src/adplug/adplug-xmms.cc:582 -#: src/console/Audacious_Config.cxx:147 +#: src/adplug/adplug-xmms.cc:376 src/adplug/adplug-xmms.cc:580 +#: src/console/Audacious_Config.cxx:146 src/skins/ui_manager.c:175 msgid "Playback" msgstr "Воспроизведение" -#: src/adplug/adplug-xmms.cc:382 +#: src/adplug/adplug-xmms.cc:380 msgid "Detect songend" msgstr "" -#: src/adplug/adplug-xmms.cc:386 +#: src/adplug/adplug-xmms.cc:384 msgid "" "If enabled, XMMS will detect a song's ending, stop it and advance in the " "playlist. If disabled, XMMS won't take notice of a song's ending and loop it " "all over again and again." msgstr "" -#: src/adplug/adplug-xmms.cc:397 +#: src/adplug/adplug-xmms.cc:395 msgid "Formats" msgstr "Форматы" -#: src/adplug/adplug-xmms.cc:404 +#: src/adplug/adplug-xmms.cc:402 msgid "Format selection" msgstr "Выбор формата" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Format" msgstr "Формат" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Extension" msgstr "" -#: src/adplug/adplug-xmms.cc:447 +#: src/adplug/adplug-xmms.cc:445 msgid "" "Selected file types will be recognized and played back by this plugin. " "Deselected types will be ignored to make room for other plugins to play " "these files." msgstr "" -#: src/adplug/adplug-xmms.cc:533 +#: src/adplug/adplug-xmms.cc:531 msgid "AdPlug :: File Info" msgstr "" -#: src/adplug/adplug-xmms.cc:555 src/amidi-plug/i_configure-fluidsynth.c:448 +#: src/adplug/adplug-xmms.cc:553 src/amidi-plug/i_configure-fluidsynth.c:448 msgid "Filename" msgstr "Имя файла" -#: src/adplug/adplug-xmms.cc:559 +#: src/adplug/adplug-xmms.cc:557 src/skins/ui_playlist.c:470 msgid "Title: " msgstr "Название:" +#: src/adplug/adplug-xmms.cc:558 +msgid "Author: " +msgstr "" + +#: src/adplug/adplug-xmms.cc:559 +msgid "File Type: " +msgstr "Тип файла:" + #: src/adplug/adplug-xmms.cc:560 -msgid "Author: " +msgid "Subsongs: " msgstr "" #: src/adplug/adplug-xmms.cc:561 -msgid "File Type: " -msgstr "Тип файла:" - -#: src/adplug/adplug-xmms.cc:562 -msgid "Subsongs: " -msgstr "" - -#: src/adplug/adplug-xmms.cc:563 msgid "Instruments: " msgstr "Инструменты:" -#: src/adplug/adplug-xmms.cc:568 +#: src/adplug/adplug-xmms.cc:566 msgid "Orders: " msgstr "" -#: src/adplug/adplug-xmms.cc:569 +#: src/adplug/adplug-xmms.cc:567 msgid "Patterns: " msgstr "" -#: src/adplug/adplug-xmms.cc:573 +#: src/adplug/adplug-xmms.cc:571 msgid "Song" msgstr "Дорожка" -#: src/adplug/adplug-xmms.cc:599 +#: src/adplug/adplug-xmms.cc:597 msgid "Instrument name" msgstr "Название инструмента" -#: src/adplug/adplug-xmms.cc:641 +#: src/adplug/adplug-xmms.cc:639 msgid "Song message" msgstr "Сообщение дорожки" -#: src/adplug/adplug-xmms.cc:663 +#: src/adplug/adplug-xmms.cc:661 msgid "Subsong selection" msgstr "Выбор поддорожки" -#: src/adplug/adplug-xmms.cc:727 +#: src/adplug/adplug-xmms.cc:725 msgid "Order: " msgstr "" +#: src/adplug/adplug-xmms.cc:726 +msgid "Pattern: " +msgstr "" + #: src/adplug/adplug-xmms.cc:728 -msgid "Pattern: " -msgstr "" - -#: src/adplug/adplug-xmms.cc:730 msgid "Row: " msgstr "" -#: src/adplug/adplug-xmms.cc:731 +#: src/adplug/adplug-xmms.cc:729 msgid "Speed: " msgstr "Скорость:" -#: src/adplug/adplug-xmms.cc:732 +#: src/adplug/adplug-xmms.cc:730 msgid "Timer: " msgstr "Таймер:" -#: src/adplug/adplug-xmms.cc:733 src/console/Audacious_Config.cxx:225 -#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:341 +#: src/adplug/adplug-xmms.cc:731 src/console/Audacious_Config.cxx:224 +#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:353 msgid "Hz" msgstr "Гц" -#: src/alac/plugin.c:74 +#: src/alac/plugin.c:71 msgid "About Apple Lossless Audio Plugin" msgstr "О модуле Apple Lossless" -#: src/alac/plugin.c:75 +#: src/alac/plugin.c:72 msgid "" "Copyright (c) 2006 Audacious team\n" "Portions (c) 2005-2006 David Hammerton " @@ -303,8 +303,8 @@ #: src/alarm/interface.c:71 src/lirc/about.c:115 #: src/modplug/gui/interface.cxx:971 src/modplug/gui/modplug.glade:2030 -#: src/sid/xmms-sid.glade:3643 src/sid/xs_about.c:214 -#: src/sid/xs_interface.c:1740 +#: src/sid/xmms-sid.glade:3837 src/sid/xs_about.c:214 +#: src/sid/xs_interface.c:1824 msgid "Close" msgstr "Закрыть" @@ -316,13 +316,12 @@ msgid "This is your wakeup call." msgstr "" -#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:46 +#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:45 #: src/alsa/configure.c:383 src/cdaudio-ng/cdaudio-ng.c:247 -#: src/flacng/plugin.c:706 src/gnomeshortcuts/gnomeshortcuts.c:311 -#: src/hotkey/gui.c:671 src/modplug/gui/interface.cxx:702 -#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:738 -#: src/scrobbler/gtkstuff.c:45 src/sid/xmms-sid.glade:3066 -#: src/sid/xs_interface.c:1243 +#: src/flacng/plugin.c:705 src/gnomeshortcuts/gnomeshortcuts.c:310 +#: src/hotkey/gui.c:670 src/modplug/gui/interface.cxx:702 +#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:736 +#: src/scrobbler/gtkstuff.c:42 src/skins/plugin.c:130 msgid "OK" msgstr "ОК" @@ -391,7 +390,8 @@ #: src/alarm/interface.c:612 src/alarm/interface.c:660 #: src/alarm/interface.c:708 src/alarm/interface.c:756 #: src/alarm/interface.c:804 src/alarm/interface.c:852 -#: src/alarm/interface.c:900 src/OSS4/configure.c:138 src/OSS/configure.c:169 +#: src/alarm/interface.c:900 src/OSS4/configure.c:136 src/OSS/configure.c:168 +#: src/skins/ui_manager.c:447 src/skins/ui_manager.c:468 msgid "Default" msgstr "По умолчанию" @@ -436,9 +436,9 @@ msgstr "Затухание" #: src/alarm/interface.c:1087 src/sid/xmms-sid.glade:2007 -#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2676 -#: src/sid/xs_interface.c:908 src/sid/xs_interface.c:962 -#: src/sid/xs_interface.c:1122 +#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2746 +#: src/sid/xs_interface.c:920 src/sid/xs_interface.c:974 +#: src/sid/xs_interface.c:1154 msgid "seconds" msgstr "секунд" @@ -491,7 +491,7 @@ msgid "Use reminder" msgstr "Использовать напоминание" -#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:377 +#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:376 msgid "Options" msgstr "Параметры" @@ -554,7 +554,7 @@ " toggle button if you want it to be shown.\n" msgstr "" -#: src/alarm/interface.c:1366 +#: src/alarm/interface.c:1366 src/skins/ui_manager.c:386 msgid "Help" msgstr "" @@ -566,11 +566,11 @@ msgid "Thankyou" msgstr "Спасибо" -#: src/alsa/about.c:30 +#: src/alsa/about.c:29 msgid "About ALSA Driver" msgstr "О драйвере ALSA" -#: src/alsa/about.c:31 +#: src/alsa/about.c:30 msgid "" "Audacious ALSA Driver\n" "\n" @@ -623,8 +623,8 @@ msgid "ALSA Driver configuration" msgstr "Настройка драйвера ALSA" -#: src/alsa/configure.c:274 src/OSS4/configure.c:186 src/OSS/configure.c:217 -#: src/sun/configure.c:183 +#: src/alsa/configure.c:274 src/OSS4/configure.c:184 src/OSS/configure.c:216 +#: src/sun/configure.c:181 msgid "Audio device:" msgstr "Аудиоустройство:" @@ -636,7 +636,7 @@ msgid "Mixer card:" msgstr "Карта микшера:" -#: src/alsa/configure.c:313 src/OSS/configure.c:260 src/sun/configure.c:220 +#: src/alsa/configure.c:313 src/OSS/configure.c:259 src/sun/configure.c:218 msgid "Mixer device:" msgstr "Устройство микшера:" @@ -1366,8 +1366,8 @@ "TiMidity\n" "модуль" -#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3465 -#: src/sid/xs_interface.c:1684 +#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3659 +#: src/sid/xs_interface.c:1768 msgid "Name:" msgstr "Имя:" @@ -1472,19 +1472,19 @@ msgid "None" msgstr "Нет" -#: src/aosd/aosd_trigger.c:75 +#: src/aosd/aosd_trigger.c:74 msgid "Playback Start" msgstr "Начало воспроизведения" -#: src/aosd/aosd_trigger.c:76 +#: src/aosd/aosd_trigger.c:75 msgid "Triggers OSD when a playlist entry is played." msgstr "Показывает OSD, когда начинается проигрывание." -#: src/aosd/aosd_trigger.c:80 +#: src/aosd/aosd_trigger.c:79 msgid "Title Change" msgstr "Изменение названия" -#: src/aosd/aosd_trigger.c:81 +#: src/aosd/aosd_trigger.c:80 msgid "" "Triggers OSD when, during playback, the song title changes but the filename " "is the same. This is mostly useful to display title changes in internet " @@ -1494,27 +1494,27 @@ "файла остаётся прежним. Полезно для отображения названий при воспроизведении " "Интернет-потоков." -#: src/aosd/aosd_trigger.c:87 +#: src/aosd/aosd_trigger.c:86 msgid "Volume Change" msgstr "Изменение громкости" -#: src/aosd/aosd_trigger.c:88 +#: src/aosd/aosd_trigger.c:87 msgid "Triggers OSD when volume is changed." msgstr "Показывает OSD, когда меняется громкость." +#: src/aosd/aosd_trigger.c:91 +msgid "Pause On" +msgstr "" + #: src/aosd/aosd_trigger.c:92 -msgid "Pause On" -msgstr "" - -#: src/aosd/aosd_trigger.c:93 msgid "Triggers OSD when playback is paused." msgstr "Показывает OSD, когда воспроизведение приостанавливается." -#: src/aosd/aosd_trigger.c:97 +#: src/aosd/aosd_trigger.c:96 msgid "Pause Off" msgstr "" -#: src/aosd/aosd_trigger.c:98 +#: src/aosd/aosd_trigger.c:97 msgid "Triggers OSD when playback is unpaused." msgstr "Показывает OSD, когда воспроизведение возобновляется." @@ -1613,10 +1613,10 @@ msgid "Skin file:" msgstr "Файл темы:" -#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2331 -#: src/sid/xmms-sid.glade:2856 src/sid/xmms-sid.glade:2962 -#: src/sid/xs_interface.c:1010 src/sid/xs_interface.c:1182 -#: src/sid/xs_interface.c:1218 +#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2373 +#: src/sid/xmms-sid.glade:2968 src/sid/xmms-sid.glade:3136 +#: src/sid/xs_interface.c:1043 src/sid/xs_interface.c:1235 +#: src/sid/xs_interface.c:1291 msgid "Browse" msgstr "Просмотреть" @@ -1699,9 +1699,9 @@ msgid "Trigger" msgstr "События" -#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:167 +#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:175 #: src/modplug/gui/interface.cxx:688 src/modplug/gui/modplug.glade:1603 -#: src/sid/xmms-sid.glade:3026 src/sid/xs_interface.c:1229 +#: src/sid/xmms-sid.glade:3220 src/sid/xs_interface.c:1301 msgid "Misc" msgstr "Прочее" @@ -1739,11 +1739,11 @@ "http://neugierig.org/software/ghosd/\n" "\n" -#: src/arts/arts.c:22 +#: src/arts/arts.c:21 msgid "About aRts Output" msgstr "О модуле вывода звука aRts" -#: src/arts/arts.c:23 +#: src/arts/arts.c:22 msgid "" "aRts output plugin by Håvard Kvålen \n" "Audacious port by Giacomo Lozito from develia.org" @@ -1753,26 +1753,26 @@ msgid "aRts Driver configuration" msgstr "Настройка драйвера aRts" -#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:232 -#: src/OSS/configure.c:304 src/sun/configure.c:259 +#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:230 +#: src/OSS/configure.c:303 src/sun/configure.c:257 msgid "Buffering:" msgstr "Буферизация:" -#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:245 -#: src/OSS/configure.c:317 src/sun/configure.c:272 +#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:243 +#: src/OSS/configure.c:316 src/sun/configure.c:270 msgid "Buffer size (ms):" msgstr "Размер буфера (мс):" -#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:270 -#: src/OSS/configure.c:342 src/sun/configure.c:304 +#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:268 +#: src/OSS/configure.c:341 src/sun/configure.c:302 msgid "Buffering" msgstr "Буферизация" -#: src/audiocompress/audacious-glue.c:95 +#: src/audiocompress/audacious-glue.c:103 msgid "AudioCompress " msgstr "AudioCompress " -#: src/audiocompress/audacious-glue.c:96 +#: src/audiocompress/audacious-glue.c:104 msgid "" "\n" "(c)2003 trikuare studios(http://trikuare.cx)\n" @@ -1788,108 +1788,108 @@ "Простой динамический компрессор, служащий для\n" "удержания громкости на более-менее стандартном уровне" -#: src/audiocompress/audacious-glue.c:101 +#: src/audiocompress/audacious-glue.c:109 msgid "About AudioCompress" msgstr "О модуле AudioCompress" -#: src/audiocompress/audacious-glue.c:320 +#: src/audiocompress/audacious-glue.c:328 msgid "" "If checked, when the sound peaks the volume will be cut instantly; " "otherwise, it will ramp down just in time for the peak (but some minor " "clipping may still occur)." msgstr "" -#: src/audiocompress/audacious-glue.c:324 +#: src/audiocompress/audacious-glue.c:332 msgid "The maximum amount to amplify the audio by" msgstr "" -#: src/audiocompress/audacious-glue.c:326 +#: src/audiocompress/audacious-glue.c:334 msgid "Defines how smoothly the volume will ramp up" msgstr "" -#: src/audiocompress/audacious-glue.c:328 +#: src/audiocompress/audacious-glue.c:336 msgid "" "The target audio level for ramping up. Lowering the value gives a bit more " "dynamic range for peaks, but will make the overall sound quieter." msgstr "" -#: src/audiocompress/audacious-glue.c:331 +#: src/audiocompress/audacious-glue.c:339 msgid "How long of a window to maintain" msgstr "" -#: src/audiocompress/audacious-glue.c:372 +#: src/audiocompress/audacious-glue.c:380 msgid "AudioCompress preferences" msgstr "Настройки AudioCompress" -#: src/audiocompress/audacious-glue.c:389 +#: src/audiocompress/audacious-glue.c:397 msgid " Quality Options " msgstr "Параметры качества" -#: src/audiocompress/audacious-glue.c:394 +#: src/audiocompress/audacious-glue.c:402 msgid " Aggressively prevent clipping" msgstr "Усиленно предотвращать срезание" -#: src/audiocompress/audacious-glue.c:406 +#: src/audiocompress/audacious-glue.c:414 msgid " Target & gain" msgstr "" -#: src/audiocompress/audacious-glue.c:417 -msgid "Target audio level:" -msgstr "" - #: src/audiocompress/audacious-glue.c:425 -msgid "Maximum gain:" -msgstr "Максимальное усиление:" +msgid "Target audio level:" +msgstr "" #: src/audiocompress/audacious-glue.c:433 +msgid "Maximum gain:" +msgstr "Максимальное усиление:" + +#: src/audiocompress/audacious-glue.c:441 msgid "Gain smooth:" msgstr "" -#: src/audiocompress/audacious-glue.c:485 +#: src/audiocompress/audacious-glue.c:493 msgid " History " msgstr "" -#: src/audiocompress/audacious-glue.c:517 +#: src/audiocompress/audacious-glue.c:525 msgid "" "How long of a history to maintain. A higher number will make the volume " "changes less responsive." msgstr "" -#: src/audiocompress/audacious-glue.c:528 +#: src/audiocompress/audacious-glue.c:536 msgid "Load default values" msgstr "" -#: src/audiocompress/audacious-glue.c:533 +#: src/audiocompress/audacious-glue.c:541 msgid "Audio values" msgstr "Параметры аудио" -#: src/audiocompress/audacious-glue.c:562 src/echo_plugin/gui.c:152 -#: src/modplug/gui/interface.cxx:708 src/modplug/gui/modplug.glade:1655 -#: src/stereo_plugin/stereo.c:132 +#: src/audiocompress/audacious-glue.c:570 src/crystalizer/crystalizer.c:129 +#: src/echo_plugin/gui.c:150 src/modplug/gui/interface.cxx:708 +#: src/modplug/gui/modplug.glade:1655 src/stereo_plugin/stereo.c:131 msgid "Apply" msgstr "Применить" -#: src/blur_scope/blur_scope.c:54 +#: src/blur_scope/blur_scope.c:52 msgid "/Toggle Decorations" msgstr "/Переключить отображение обрамления" -#: src/blur_scope/blur_scope.c:56 +#: src/blur_scope/blur_scope.c:54 msgid "/-" msgstr "/-" -#: src/blur_scope/blur_scope.c:57 +#: src/blur_scope/blur_scope.c:55 msgid "/Close" msgstr "/Закрыть" -#: src/blur_scope/blur_scope.c:181 +#: src/blur_scope/blur_scope.c:179 msgid "Blur scope" msgstr "Размытый осциллоскоп" -#: src/blur_scope/config.c:72 +#: src/blur_scope/config.c:71 msgid "Blur Scope: Color selection" msgstr "Размытый осциллоскоп: выбор цвета" -#: src/blur_scope/config.c:82 src/jack/configure.c:108 +#: src/blur_scope/config.c:81 src/jack/configure.c:107 msgid "Options:" msgstr "Параметры:" @@ -1928,7 +1928,7 @@ "\n" "Этот модуль являлся частью проекта Google Summer of Code в 2007 году." -#: src/cdaudio-ng/cdaudio-ng.c:814 +#: src/cdaudio-ng/cdaudio-ng.c:815 msgid "" "No playable CD found.\n" "\n" @@ -1938,98 +1938,103 @@ "\n" "Диск не вставлен в привод, или вставленный диск не является Audio CD.\n" -#: src/cdaudio-ng/configure.c:147 +#: src/cdaudio-ng/configure.c:155 msgid "CD Audio Plugin Configuration" msgstr "Настройки модуля CD Audio" -#: src/cdaudio-ng/configure.c:157 +#: src/cdaudio-ng/configure.c:165 msgid "Digital audio extraction" msgstr "Цифровое считывание аудио" -#: src/cdaudio-ng/configure.c:162 +#: src/cdaudio-ng/configure.c:170 msgid "Title information" msgstr "Формат названия" -#: src/cdaudio-ng/configure.c:179 +#: src/cdaudio-ng/configure.c:187 msgid "Limit read speed to: " msgstr "Ограничить скорость чтения:" -#: src/cdaudio-ng/configure.c:186 +#: src/cdaudio-ng/configure.c:194 msgid "Use cd-text if available" msgstr "Использовать CD-Text, если возможно" -#: src/cdaudio-ng/configure.c:190 +#: src/cdaudio-ng/configure.c:198 msgid "Use CDDB if available" msgstr "Использовать CDDB, если возможно" -#: src/cdaudio-ng/configure.c:194 +#: src/cdaudio-ng/configure.c:202 msgid "Server: " msgstr "Сервер:" -#: src/cdaudio-ng/configure.c:197 +#: src/cdaudio-ng/configure.c:205 +#, fuzzy +msgid "Path: " +msgstr "Порт:" + +#: src/cdaudio-ng/configure.c:208 msgid "Port: " msgstr "Порт:" -#: src/cdaudio-ng/configure.c:203 +#: src/cdaudio-ng/configure.c:217 msgid "Use HTTP instead of CDDBP" msgstr "Использовать HTTP вместо CDDBP" -#: src/cdaudio-ng/configure.c:211 +#: src/cdaudio-ng/configure.c:225 msgid "Override default device: " msgstr "Переопределить устройство по-умолчанию:" -#: src/cdaudio-ng/configure.c:218 +#: src/cdaudio-ng/configure.c:232 msgid "Print debug information" msgstr "Выводить отладочную информацию" -#: src/console/Audacious_Config.cxx:125 +#: src/console/Audacious_Config.cxx:124 msgid "Console Music Decoder" msgstr "Модуль поддержки Console Music" -#: src/console/Audacious_Config.cxx:162 +#: src/console/Audacious_Config.cxx:161 msgid "Bass:" msgstr "Бас:" -#: src/console/Audacious_Config.cxx:166 src/console/Audacious_Config.cxx:177 -#: src/console/Audacious_Config.cxx:198 +#: src/console/Audacious_Config.cxx:165 src/console/Audacious_Config.cxx:176 +#: src/console/Audacious_Config.cxx:197 msgid "secs" msgstr "секунд" -#: src/console/Audacious_Config.cxx:173 +#: src/console/Audacious_Config.cxx:172 msgid "Treble:" msgstr "Высокие:" -#: src/console/Audacious_Config.cxx:194 +#: src/console/Audacious_Config.cxx:193 msgid "Default song length:" msgstr "Длительность песни по-умолчанию:" -#: src/console/Audacious_Config.cxx:200 src/modplug/gui/interface.cxx:268 +#: src/console/Audacious_Config.cxx:199 src/modplug/gui/interface.cxx:268 #: src/modplug/gui/modplug.glade:338 src/sid/xmms-sid.glade:1243 -#: src/sid/xs_interface.c:653 +#: src/sid/xs_interface.c:665 msgid "Resampling" msgstr "Преобразование частоты" -#: src/console/Audacious_Config.cxx:206 +#: src/console/Audacious_Config.cxx:205 msgid "Enable audio resampling" msgstr "Включить преобразование" -#: src/console/Audacious_Config.cxx:221 +#: src/console/Audacious_Config.cxx:220 msgid "Resampling rate:" msgstr "Преобразование частоты:" -#: src/console/Audacious_Config.cxx:236 +#: src/console/Audacious_Config.cxx:235 msgid "SPC" msgstr "SPC" -#: src/console/Audacious_Config.cxx:237 +#: src/console/Audacious_Config.cxx:236 msgid "Ignore length from SPC tags" msgstr "Игнорировать длительность из тэгов SPC" -#: src/console/Audacious_Config.cxx:238 +#: src/console/Audacious_Config.cxx:237 msgid "Increase reverb" msgstr "Увеличить реверберацию" -#: src/console/Audacious_Config.cxx:263 +#: src/console/Audacious_Config.cxx:262 msgid "" "The default song length, expressed in seconds, is used for songs that do not " "provide length information (i.e. looping tracks)." @@ -2038,11 +2043,11 @@ "записей, у которых отсутствуют данные о длительности (например, бесконечные " "дорожки)." -#: src/console/Audacious_Driver.cxx:444 +#: src/console/Audacious_Driver.cxx:442 msgid "About the Console Music Decoder" msgstr "О модуле поддержки Console Music" -#: src/console/Audacious_Driver.cxx:445 +#: src/console/Audacious_Driver.cxx:443 msgid "" "Console music decoder engine based on Game_Music_Emu 0.5.2.\n" "Supported formats: AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ\n" @@ -2055,11 +2060,20 @@ "Портирование под Audacious: William Pitcock , \n" " Shay Green " -#: src/demac/plugin.c:388 +#: src/crystalizer/crystalizer.c:90 +#, fuzzy +msgid "Configure Crystalizer" +msgstr "Настроить Extra Stereo" + +#: src/crystalizer/crystalizer.c:92 src/stereo_plugin/stereo.c:94 +msgid "Effect intensity:" +msgstr "Интенсивность эффекта:" + +#: src/demac/plugin.c:359 msgid "About Monkey's Audio Plugin" msgstr "О модуле Monkey's Audio" -#: src/demac/plugin.c:389 +#: src/demac/plugin.c:360 msgid "" "Copyright (C) 2007 Eugene Zagidullin \n" "Based on ffape decoder, Copyright (C) 2007 Benjamin Zores\n" @@ -2073,7 +2087,7 @@ "\n" "ffape является частью проекта FFmpeg, http://ffmpeg.mplayerhq.hu/" -#: src/echo_plugin/gui.c:11 +#: src/echo_plugin/gui.c:9 msgid "" "Echo Plugin\n" "By Johan Levin 1999.\n" @@ -2085,35 +2099,35 @@ "\n" "Объёмное эхо добавлено Carl van Schaik 1999" -#: src/echo_plugin/gui.c:25 +#: src/echo_plugin/gui.c:23 msgid "About Echo Plugin" msgstr "О модуле Эхо" -#: src/echo_plugin/gui.c:76 +#: src/echo_plugin/gui.c:74 msgid "Configure Echo" msgstr "Настроить Эхо" -#: src/echo_plugin/gui.c:89 +#: src/echo_plugin/gui.c:87 msgid "Delay: (ms)" msgstr "Задержка: (мс)" -#: src/echo_plugin/gui.c:94 +#: src/echo_plugin/gui.c:92 msgid "Feedback: (%)" msgstr "Обратная связь: (%)" -#: src/echo_plugin/gui.c:99 +#: src/echo_plugin/gui.c:97 msgid "Volume: (%)" msgstr "Громкость: (%)" -#: src/echo_plugin/gui.c:122 +#: src/echo_plugin/gui.c:120 msgid "Surround echo" msgstr "Объёмное эхо" -#: src/esd/about.c:34 +#: src/esd/about.c:33 msgid "About ESounD Plugin" msgstr "О модуле вывода звука ESounD" -#: src/esd/about.c:35 +#: src/esd/about.c:34 msgid "" "Audacious ESounD Plugin\n" "\n" @@ -2175,8 +2189,8 @@ msgid "Server" msgstr "Сервер" -#: src/esd/configure.c:198 src/OSS4/configure.c:259 src/OSS/configure.c:331 -#: src/sun/configure.c:290 +#: src/esd/configure.c:198 src/OSS4/configure.c:257 src/OSS/configure.c:330 +#: src/sun/configure.c:288 msgid "Pre-buffer (percent):" msgstr "Пребуферизация (%):" @@ -2248,7 +2262,7 @@ msgid "Window->JumpToFile" msgstr "Окно->ПерейтиНаФайл" -#: src/evdev-plug/ed_internals.c:94 +#: src/evdev-plug/ed_internals.c:93 #, c-format msgid "" "event-device-plugin: unable to open device file %s , skipping this device; " @@ -2258,7 +2272,7 @@ "устройства; проверьте, что файл существует и что у вас есть привелегии для " "его чтения\n" -#: src/evdev-plug/ed_internals.c:103 +#: src/evdev-plug/ed_internals.c:102 #, c-format msgid "" "event-device-plugin: unable to create a io_channel for device file %s ," @@ -2267,7 +2281,7 @@ "event-device-plugin: невозможно создать io_channel для устройства %s ," "пропуск устройства\n" -#: src/evdev-plug/ed_internals.c:342 +#: src/evdev-plug/ed_internals.c:341 msgid "" "event-device-plugin: unable to open /proc/bus/input/devices , automatic " "detection of event devices won't work.\n" @@ -2275,7 +2289,7 @@ "event-device-plugin: невозможно открыть /proc/bus/input/devices , " "автоматическое распознавание устройств событий не будет работать.\n" -#: src/evdev-plug/ed_internals.c:351 +#: src/evdev-plug/ed_internals.c:350 msgid "" "event-device-plugin: unable to open a io_channel for /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" @@ -2283,7 +2297,7 @@ "event-device-plugin: невозможно открыть io_channel для /proc/bus/input/" "devices, автоматическое распознавание устройств событий не будет работать.\n" -#: src/evdev-plug/ed_internals.c:361 +#: src/evdev-plug/ed_internals.c:360 msgid "" "event-device-plugin: an error occurred while reading /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" @@ -2291,13 +2305,13 @@ "event-device-plugin: произошла ошибка при чтении /proc/bus/input/devices , " "автоматическое распознавание устройств событий не будет работать.\n" -#: src/evdev-plug/ed_internals.c:424 +#: src/evdev-plug/ed_internals.c:423 #, c-format msgid "event-device-plugin: device %s not found in /dev/input , skipping.\n" msgstr "" "event-device-plugin: устройство %s не найдено в /dev/input , пропускаю.\n" -#: src/evdev-plug/ed_internals.c:489 src/evdev-plug/ed_internals.c:583 +#: src/evdev-plug/ed_internals.c:488 src/evdev-plug/ed_internals.c:582 #, c-format msgid "" "event-device-plugin: unable to load config file %s , default settings will " @@ -2306,7 +2320,7 @@ "event-device-plugin: невозможно загрузить конфигурационный файл %s , будут " "использованы настройки по-умолчанию.\n" -#: src/evdev-plug/ed_internals.c:535 +#: src/evdev-plug/ed_internals.c:534 #, c-format msgid "" "event-device-plugin: incomplete information in config file for device \"%s" @@ -2315,7 +2329,7 @@ "event-device-plugin: неполная информация в конфигурационном файле для " "устройства \"%s\" , пропускаю.\n" -#: src/evdev-plug/ed_internals.c:604 src/evdev-plug/ed_internals.c:936 +#: src/evdev-plug/ed_internals.c:603 src/evdev-plug/ed_internals.c:935 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_active value for device " @@ -2324,7 +2338,7 @@ "event-device-plugin: настройка, невозможно получить значение is_active для " "устройства \"%s\", пропускаю.\n" -#: src/evdev-plug/ed_internals.c:840 +#: src/evdev-plug/ed_internals.c:839 #, c-format msgid "" "event-device-plugin: unable to access local directory %s , settings will not " @@ -2333,7 +2347,7 @@ "event-device-plugin: невозможно получить доступ к локальному каталогу %s , " "настройки не будут сохранены.\n" -#: src/evdev-plug/ed_internals.c:890 +#: src/evdev-plug/ed_internals.c:889 #, c-format msgid "" "event-device-plugin: configuration, unable to get filename value for device " @@ -2342,7 +2356,7 @@ "event-device-plugin: настройка, невозможно получить имя файла для устройства " "\"%s\", пропускаю.\n" -#: src/evdev-plug/ed_internals.c:906 +#: src/evdev-plug/ed_internals.c:905 #, c-format msgid "" "event-device-plugin: configuration, unable to get phys value for device \"%s" @@ -2351,7 +2365,7 @@ "event-device-plugin: настройка, невозможно получить физическое значение для " "устройства \"%s\", пропускаю.\n" -#: src/evdev-plug/ed_internals.c:922 +#: src/evdev-plug/ed_internals.c:921 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_custom value for device " @@ -2360,7 +2374,7 @@ "event-device-plugin: настройка, невозможно получить значение is_custom для " "устройства \"%s\", пропускаю.\n" -#: src/evdev-plug/ed_internals.c:946 +#: src/evdev-plug/ed_internals.c:945 #, c-format msgid "" "event-device-plugin: configuration, unexpected value for device \"%s\", " @@ -2382,7 +2396,7 @@ "Невозможно открыть окно для неопознанного устройства.\n" "Убедитесь, что устройство правильно подключено." -#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:566 +#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:703 msgid "Error" msgstr "Ошибка" @@ -2447,7 +2461,7 @@ msgid "Active" msgstr "Активное" -#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:488 +#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:486 msgid "Status" msgstr "Статус" @@ -2575,7 +2589,7 @@ msgid "Output file format:" msgstr "Выходной формат файла:" -#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:960 +#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:959 msgid "Configure" msgstr "Настроить" @@ -2799,11 +2813,11 @@ msgid "Quality level (0 - 10):" msgstr "" -#: src/flacng/plugin.c:698 +#: src/flacng/plugin.c:697 msgid "FLAC Audio Plugin " msgstr "Модуль поддержки FLAC " -#: src/flacng/plugin.c:699 +#: src/flacng/plugin.c:698 msgid "" "\n" "\n" @@ -2813,15 +2827,15 @@ "http://www.skytale.net/projects/bmp-flac2/" msgstr "" -#: src/flacng/plugin.c:704 +#: src/flacng/plugin.c:703 msgid "About FLAC Audio Plugin" msgstr "О модуле поддержки FLAC" +#: src/gnomeshortcuts/gnomeshortcuts.c:305 +msgid "About Gnome Shortcut Plugin" +msgstr "О модуле горячих клавиш для Gnome" + #: src/gnomeshortcuts/gnomeshortcuts.c:306 -msgid "About Gnome Shortcut Plugin" -msgstr "О модуле горячих клавиш для Gnome" - -#: src/gnomeshortcuts/gnomeshortcuts.c:307 #, fuzzy msgid "" "Gnome Shortcut Plugin\n" @@ -2842,7 +2856,7 @@ msgid "Previous Track" msgstr "Предыдущая дорожка:" -#: src/hotkey/gui.c:69 +#: src/hotkey/gui.c:69 src/skins/ui_manager.c:177 src/skins/ui_manager.c:178 #, fuzzy msgid "Play" msgstr "Играть:" @@ -2852,7 +2866,7 @@ msgid "Pause/Resume" msgstr "Приостановить / Возобновить:" -#: src/hotkey/gui.c:71 +#: src/hotkey/gui.c:71 src/skins/ui_manager.c:183 src/skins/ui_manager.c:184 #, fuzzy msgid "Stop" msgstr "Остановить:" @@ -2887,7 +2901,7 @@ msgid "Volume Down" msgstr "Тише:" -#: src/hotkey/gui.c:78 +#: src/hotkey/gui.c:78 src/skins/ui_manager.c:422 src/skins/ui_manager.c:423 #, fuzzy msgid "Jump to File" msgstr "Перескочить на дорожку:" @@ -2943,11 +2957,11 @@ msgid "Key Binding:" msgstr "" -#: src/hotkey/gui.c:660 +#: src/hotkey/gui.c:659 msgid "About Global Hotkey Plugin" msgstr "О модуле горячих клавиш" -#: src/hotkey/gui.c:661 +#: src/hotkey/gui.c:660 msgid "" "Global Hotkey Plugin\n" "Control the player with global key combinations or multimedia keys.\n" @@ -2976,35 +2990,35 @@ "\t\t\tJeremy Tan \n" "\n" -#: src/jack/configure.c:70 +#: src/jack/configure.c:69 msgid "Connect to all available jack ports" msgstr "" -#: src/jack/configure.c:77 +#: src/jack/configure.c:76 msgid "Connect only the output ports" msgstr "" -#: src/jack/configure.c:84 +#: src/jack/configure.c:83 msgid "Connect to no ports" msgstr "" -#: src/jack/configure.c:99 +#: src/jack/configure.c:98 msgid "jack Plugin configuration" msgstr "Настройка модуля Jack" -#: src/jack/configure.c:117 +#: src/jack/configure.c:116 msgid "Connection mode:" msgstr "" -#: src/jack/configure.c:129 +#: src/jack/configure.c:128 msgid "Enable debug printing" msgstr "Выводить отладочную информацию" -#: src/jack/jack.c:84 +#: src/jack/jack.c:82 msgid "Sample rate mismatch" msgstr "Некорректная частота сэмплирования" -#: src/jack/jack.c:87 +#: src/jack/jack.c:85 msgid "" "Xmms is asking for a sample rate that differs from\n" " that of the jack server. Xmms 1.2.8 or later\n" @@ -3018,15 +3032,15 @@ "Chris Morgan \n" msgstr "" -#: src/jack/jack.c:100 src/wma/wma.c:148 +#: src/jack/jack.c:98 src/wma/wma.c:145 msgid " Close " msgstr " Закрыть " -#: src/jack/jack.c:452 +#: src/jack/jack.c:450 msgid "About JACK Output Plugin 0.17" msgstr "О модуле вывода JACK 0.17" -#: src/jack/jack.c:453 +#: src/jack/jack.c:451 msgid "" "XMMS jack Driver 0.17\n" "\n" @@ -3044,39 +3058,39 @@ "Портирование для Audacious:\n" "Giacomo Lozito из develia.org" -#: src/ladspa/ladspa.c:722 +#: src/ladspa/ladspa.c:721 msgid "This LADSPA plugin has no user controls" msgstr "Этот модуль LADSPA не допускает настройку" -#: src/ladspa/ladspa.c:767 src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:766 src/ladspa/ladspa.c:852 msgid "Name" msgstr "Имя" -#: src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:852 msgid "UID" msgstr "UID" -#: src/ladspa/ladspa.c:928 +#: src/ladspa/ladspa.c:927 msgid "Installed plugins" msgstr "Установленные модули" -#: src/ladspa/ladspa.c:937 +#: src/ladspa/ladspa.c:936 msgid "Running plugins" msgstr "Активные модули" -#: src/ladspa/ladspa.c:952 +#: src/ladspa/ladspa.c:951 msgid "Add" msgstr "Добавить" -#: src/ladspa/ladspa.c:956 +#: src/ladspa/ladspa.c:955 msgid "Remove" msgstr "Удалить" -#: src/ladspa/ladspa.c:969 +#: src/ladspa/ladspa.c:968 msgid "LADSPA Plugin Catalog" msgstr "Каталог модулей LADSPA" -#: src/lastfm/lastfm.c:96 +#: src/lastfm/lastfm.c:94 msgid "" "Couldn't initialize the last.fm radio plugin.\n" "\n" @@ -3178,60 +3192,60 @@ msgid "%s: will try reconnect every %d seconds...\n" msgstr "" -#: src/madplug/configure.c:209 +#: src/madplug/configure.c:208 msgid "MPEG Audio Plugin Configuration" msgstr "Настройка модуля поддержки MPEG" -#: src/madplug/configure.c:226 +#: src/madplug/configure.c:225 #, fuzzy msgid "Audio Settings" msgstr "Настройки будильника" -#: src/madplug/configure.c:234 +#: src/madplug/configure.c:233 msgid "Force reopen audio when audio type changed" msgstr "Принудительно пере-открывать аудио-вывод при смене типа аудио" -#: src/madplug/configure.c:243 +#: src/madplug/configure.c:242 #, fuzzy msgid "Metadata Settings" msgstr "Настройки микшера:" -#: src/madplug/configure.c:252 +#: src/madplug/configure.c:251 msgid "Enable fast play-length calculation" msgstr "Включить быстрое определение длительности" -#: src/madplug/configure.c:259 +#: src/madplug/configure.c:258 msgid "Parse XING headers" msgstr "Обрабатывать заголовки XING" -#: src/madplug/configure.c:266 +#: src/madplug/configure.c:265 #, fuzzy msgid "Use SJIS to write ID3 tags (not recommended)" msgstr "Использовать SJIS для записи тегов ID3 вместо UTF-8" -#: src/madplug/configure.c:273 +#: src/madplug/configure.c:272 #, fuzzy msgid "Miscellaneous Settings" msgstr "Настройки микшера:" -#: src/madplug/configure.c:282 +#: src/madplug/configure.c:281 msgid "Display average bitrate for VBR" msgstr "Отображать средний битрейт для VBR" -#: src/madplug/configure.c:296 src/vorbis/configure.c:102 +#: src/madplug/configure.c:295 src/vorbis/configure.c:100 msgid "Override generic titles" msgstr "Не использовать стандартные названия" -#: src/madplug/configure.c:308 +#: src/madplug/configure.c:307 msgid "ID3 format:" msgstr "Формат ID3-тега:" -#: src/madplug/configure.c:320 src/sid/xmms-sid.glade:2540 -#: src/sid/xs_interface.c:1070 +#: src/madplug/configure.c:319 src/sid/xmms-sid.glade:2610 +#: src/sid/xs_interface.c:1102 msgid "Title" msgstr "Название" -#: src/madplug/plugin.c:524 +#: src/madplug/plugin.c:661 #, c-format msgid "" "Audacious MPEG Audio Plugin\n" @@ -3262,15 +3276,15 @@ "Поддержка ReplayGain:\n" " Samuel Krempp" -#: src/madplug/plugin.c:540 +#: src/madplug/plugin.c:677 msgid "About MPEG Audio Plugin" msgstr "О модуле поддержки MPEG" +#: src/metronom/metronom.c:86 +msgid "About Metronom" +msgstr "О модуле \"метроном\"" + #: src/metronom/metronom.c:87 -msgid "About Metronom" -msgstr "О модуле \"метроном\"" - -#: src/metronom/metronom.c:88 msgid "" "A Tact Generator by Martin Strauss \n" "\n" @@ -3285,12 +3299,12 @@ "или tact://60*3/4 для воспроизведения 60и тактов в минуту\n" "в размере 3/4" -#: src/metronom/metronom.c:198 src/metronom/metronom.c:262 +#: src/metronom/metronom.c:197 src/metronom/metronom.c:261 #, c-format msgid "Tact generator: %d bpm" msgstr "Генератор тактов: %d тактов/с" -#: src/metronom/metronom.c:200 src/metronom/metronom.c:264 +#: src/metronom/metronom.c:199 src/metronom/metronom.c:263 #, c-format msgid "Tact generator: %d bpm %d/%d" msgstr "Тактовый генератор: %d такт/мин %d/%d" @@ -3485,11 +3499,11 @@ msgid "Message" msgstr "" -#: src/modplug/gui/main.cxx:45 +#: src/modplug/gui/main.cxx:48 msgid "Modplug Input Plugin for Audacious ver" msgstr "" -#: src/modplug/gui/main.cxx:46 +#: src/modplug/gui/main.cxx:49 msgid "" "\n" "Modplug sound engine written by Olivier Lapicque.\n" @@ -3499,7 +3513,7 @@ "Ported to BMP by Theofilos Intzoglou." msgstr "" -#: src/modplug/gui/main.cxx:49 +#: src/modplug/gui/main.cxx:52 msgid "About Modplug" msgstr "О модуле Modplug" @@ -3509,27 +3523,27 @@ msgid "Couldn't find pixmap file: %s" msgstr "Не удалось найти файл изображения: %s" -#: src/mtp_up/mtp.c:35 +#: src/mtp_up/mtp.c:33 msgid "Upload selected track(s)" msgstr "" -#: src/mtp_up/mtp.c:296 +#: src/mtp_up/mtp.c:294 msgid "Upload in progress..." msgstr "" -#: src/mtp_up/mtp.c:305 +#: src/mtp_up/mtp.c:303 msgid "MTP device handler" msgstr "" -#: src/mtp_up/mtp.c:309 +#: src/mtp_up/mtp.c:307 msgid "Disconnect the device" msgstr "" -#: src/musepack/libmpc.cxx:146 +#: src/musepack/libmpc.cxx:142 msgid "Musepack Decoder Plugin 1.2" msgstr "" -#: src/musepack/libmpc.cxx:147 +#: src/musepack/libmpc.cxx:143 msgid "" "Plugin code by\n" "Benoit Amiaux\n" @@ -3539,174 +3553,175 @@ "Get latest version at http://musepack.net\n" msgstr "" -#: src/musepack/libmpc.cxx:148 +#: src/musepack/libmpc.cxx:144 msgid "Nevermind" msgstr "" -#: src/musepack/libmpc.cxx:166 +#: src/musepack/libmpc.cxx:162 msgid "Musepack Decoder Configuration" msgstr "Настройка декодера Musepack" -#: src/musepack/libmpc.cxx:176 +#: src/musepack/libmpc.cxx:172 msgid "General Settings" msgstr "Общие параметры" -#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:492 +#: src/musepack/libmpc.cxx:179 src/wavpack/ui.cxx:490 msgid "Enable Dynamic Bitrate Display" msgstr "Включить динамическое отображение битрейта" -#: src/musepack/libmpc.cxx:187 src/wavpack/ui.cxx:498 +#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:496 msgid "Plugin" msgstr "Модуль" -#: src/musepack/libmpc.cxx:190 +#: src/musepack/libmpc.cxx:186 msgid "ReplayGain Settings" msgstr "Настройки ReplayGain" -#: src/musepack/libmpc.cxx:197 src/wavpack/ui.cxx:510 +#: src/musepack/libmpc.cxx:193 src/wavpack/ui.cxx:508 msgid "Enable Clipping Prevention" msgstr "Включить предотвращение срезания" -#: src/musepack/libmpc.cxx:202 src/wavpack/ui.cxx:515 +#: src/musepack/libmpc.cxx:198 src/wavpack/ui.cxx:513 msgid "Enable ReplayGain" msgstr "Включить ReplayGain" -#: src/musepack/libmpc.cxx:207 +#: src/musepack/libmpc.cxx:203 msgid "ReplayGain Type" msgstr "Тип ReplayGain" -#: src/musepack/libmpc.cxx:215 +#: src/musepack/libmpc.cxx:211 msgid "Use Track Gain" msgstr "Использовать Gain/Peak дорожки" -#: src/musepack/libmpc.cxx:219 +#: src/musepack/libmpc.cxx:215 msgid "Use Album Gain" msgstr "Использовать Gain/Peak альбома" -#: src/musepack/libmpc.cxx:224 src/wavpack/ui.cxx:547 +#: src/musepack/libmpc.cxx:220 src/wavpack/ui.cxx:545 msgid "ReplayGain" msgstr "ReplayGain" -#: src/musepack/libmpc.cxx:491 src/sid/xmms-sid.glade:3144 -#: src/sid/xs_interface.c:1564 src/tta/libtta.c:304 src/wavpack/ui.cxx:152 +#: src/musepack/libmpc.cxx:487 src/sid/xmms-sid.glade:3338 +#: src/sid/xs_interface.c:1648 src/tta/libtta.c:301 src/wavpack/ui.cxx:150 msgid "Filename:" msgstr "Имя файла:" -#: src/musepack/libmpc.cxx:506 +#: src/musepack/libmpc.cxx:502 msgid "Musepack Tag" msgstr "" -#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:323 src/wavpack/ui.cxx:172 +#: src/musepack/libmpc.cxx:510 src/tta/libtta.c:320 src/wavpack/ui.cxx:170 msgid "Title:" msgstr "Название:" -#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:333 src/wavpack/ui.cxx:184 +#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:330 src/wavpack/ui.cxx:182 msgid "Artist:" msgstr "Исполнитель:" -#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:344 src/wavpack/ui.cxx:196 +#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:341 src/wavpack/ui.cxx:194 msgid "Album:" msgstr "Альбом:" -#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:355 src/wavpack/ui.cxx:208 +#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:352 src/wavpack/ui.cxx:206 msgid "Comment:" msgstr "Комментарий:" -#: src/musepack/libmpc.cxx:530 src/tta/libtta.c:366 src/wavpack/ui.cxx:221 +#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:363 src/wavpack/ui.cxx:219 msgid "Year:" msgstr "" -#: src/musepack/libmpc.cxx:535 +#: src/musepack/libmpc.cxx:531 msgid "Track:" msgstr "Дорожка:" -#: src/musepack/libmpc.cxx:540 src/tta/libtta.c:390 src/wavpack/ui.cxx:248 +#: src/musepack/libmpc.cxx:536 src/tta/libtta.c:387 src/wavpack/ui.cxx:246 msgid "Genre:" msgstr "Стиль:" -#: src/musepack/libmpc.cxx:551 src/sid/xmms-sid.glade:1732 -#: src/sid/xs_interface.c:820 src/wavpack/ui.cxx:267 +#: src/musepack/libmpc.cxx:547 src/sid/xmms-sid.glade:1732 +#: src/sid/xs_interface.c:832 src/skins/ui_manager.c:438 +#: src/wavpack/ui.cxx:265 msgid "Save" msgstr "Сохранить" -#: src/musepack/libmpc.cxx:554 src/wavpack/ui.cxx:273 +#: src/musepack/libmpc.cxx:550 src/wavpack/ui.cxx:271 msgid "Remove Tag" msgstr "Удалить тэг" -#: src/musepack/libmpc.cxx:562 +#: src/musepack/libmpc.cxx:558 msgid "Musepack Info" msgstr "" +#: src/musepack/libmpc.cxx:591 +#, c-format +msgid "Streamversion %d" +msgstr "" + +#: src/musepack/libmpc.cxx:592 +#, c-format +msgid "Encoder: %s" +msgstr "" + +#: src/musepack/libmpc.cxx:593 +#, c-format +msgid "Profile: %s" +msgstr "" + +#: src/musepack/libmpc.cxx:594 +#, c-format +msgid "Average bitrate: %6.1f kbps" +msgstr "" + #: src/musepack/libmpc.cxx:595 #, c-format -msgid "Streamversion %d" -msgstr "" +msgid "Samplerate: %d Hz" +msgstr "Частота: %d Гц" #: src/musepack/libmpc.cxx:596 #, c-format -msgid "Encoder: %s" -msgstr "" +msgid "Channels: %d" +msgstr "Каналы: %d" #: src/musepack/libmpc.cxx:597 #, c-format -msgid "Profile: %s" -msgstr "" - -#: src/musepack/libmpc.cxx:598 -#, c-format -msgid "Average bitrate: %6.1f kbps" -msgstr "" - -#: src/musepack/libmpc.cxx:599 -#, c-format -msgid "Samplerate: %d Hz" -msgstr "Частота: %d Гц" - -#: src/musepack/libmpc.cxx:600 -#, c-format -msgid "Channels: %d" -msgstr "Каналы: %d" - -#: src/musepack/libmpc.cxx:601 -#, c-format msgid "Length: %d:\\%.2d" msgstr "Длительность: %d:\\%.2d" -#: src/musepack/libmpc.cxx:602 +#: src/musepack/libmpc.cxx:598 #, c-format msgid "File size: %d Bytes" msgstr "Размер файла: %d Байт" -#: src/musepack/libmpc.cxx:603 +#: src/musepack/libmpc.cxx:599 #, c-format msgid "Track Peak: %5u" msgstr "Пик дорожки: %5u" -#: src/musepack/libmpc.cxx:604 +#: src/musepack/libmpc.cxx:600 #, c-format msgid "Track Gain: %-+2.2f dB" msgstr "Усиление дорожки: %-+2.2f dB" -#: src/musepack/libmpc.cxx:605 +#: src/musepack/libmpc.cxx:601 #, c-format msgid "Album Peak: %5u" msgstr "Пик альбома: %5u" -#: src/musepack/libmpc.cxx:606 +#: src/musepack/libmpc.cxx:602 #, c-format msgid "Album Gain: %-+5.2f dB" msgstr "Усиление альбома: %-+5.2f dB" -#: src/musepack/libmpc.cxx:634 src/tta/libtta.c:413 src/wavpack/ui.cxx:409 +#: src/musepack/libmpc.cxx:630 src/tta/libtta.c:410 src/wavpack/ui.cxx:407 #, c-format msgid "File Info - %s" msgstr "Инфрмация о файле - %s" -#: src/null/null.c:61 +#: src/null/null.c:58 msgid "Null output plugin " msgstr "Модуль Ноль-вывод " -#: src/null/null.c:62 +#: src/null/null.c:59 msgid "" " by Christian Birchinger \n" "based on the XMMS plugin by Håvard Kvål " @@ -3714,23 +3729,52 @@ " автор Christian Birchinger \n" " основано на модуле для XMMS, от Håvard Kvål " -#: src/null/null.c:65 +#: src/null/null.c:62 msgid "About Null Output" msgstr "О модуле Ноль-вывод" -#: src/null/null.c:94 +#: src/null/null.c:91 msgid "Null output preferences" msgstr "Настройка Ноль-вывода" -#: src/null/null.c:103 +#: src/null/null.c:100 msgid "Run in real time" msgstr "" -#: src/OSS4/about.c:42 +#: src/OSS4/configure.c:118 src/OSS/configure.c:150 +#, c-format +msgid "Default (%s)" +msgstr "По умолчанию (%s)" + +#: src/OSS4/configure.c:168 src/OSS/configure.c:200 +msgid "OSS Driver configuration" +msgstr "Настройка драйвера OSS" + +#: src/OSS4/configure.c:206 src/OSS/configure.c:238 src/OSS/configure.c:279 +msgid "Use alternate device:" +msgstr "Использовать альтернативное устройство:" + +#: src/OSS4/configure.c:228 src/OSS/configure.c:301 src/sun/configure.c:246 +msgid "Devices" +msgstr "Устройства" + +#: src/OSS4/configure.c:270 src/OSS/configure.c:342 +msgid "Mixer Settings:" +msgstr "Настройки микшера:" + +#: src/OSS4/configure.c:276 +msgid "Save VMIX volume between sessions" +msgstr "" + +#: src/OSS4/configure.c:282 src/OSS/configure.c:354 src/sun/configure.c:392 +msgid "Mixer" +msgstr "Микшер" + +#: src/OSS4/OSS4.c:38 msgid "About OSSv4 Driver" msgstr "О драйвере OSSv4" -#: src/OSS4/about.c:43 +#: src/OSS4/OSS4.c:39 msgid "" "Audacious OSSv4 Driver\n" "\n" @@ -3773,40 +3817,15 @@ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,\n" "USA." -#: src/OSS4/configure.c:120 src/OSS/configure.c:151 -#, c-format -msgid "Default (%s)" -msgstr "По умолчанию (%s)" - -#: src/OSS4/configure.c:170 src/OSS/configure.c:201 -msgid "OSS Driver configuration" -msgstr "Настройка драйвера OSS" - -#: src/OSS4/configure.c:208 src/OSS/configure.c:239 src/OSS/configure.c:280 -msgid "Use alternate device:" -msgstr "Использовать альтернативное устройство:" - -#: src/OSS4/configure.c:230 src/OSS/configure.c:302 src/sun/configure.c:248 -msgid "Devices" -msgstr "Устройства" - -#: src/OSS4/configure.c:272 src/OSS/configure.c:343 -msgid "Mixer Settings:" -msgstr "Настройки микшера:" - -#: src/OSS4/configure.c:278 -msgid "Save VMIX volume between sessions" -msgstr "" - -#: src/OSS4/configure.c:284 src/OSS/configure.c:355 src/sun/configure.c:394 -msgid "Mixer" -msgstr "Микшер" - -#: src/OSS/about.c:39 +#: src/OSS/configure.c:348 +msgid "Volume controls Master not PCM" +msgstr "Громкость регулирует Мастер, а не PCM" + +#: src/OSS/OSS.c:37 msgid "About OSS Driver" msgstr "О драйвере OSS" -#: src/OSS/about.c:40 +#: src/OSS/OSS.c:38 msgid "" "Audacious OSS Driver\n" "\n" @@ -3844,19 +3863,15 @@ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,\n" "USA." -#: src/OSS/configure.c:349 -msgid "Volume controls Master not PCM" -msgstr "Громкость регулирует Мастер, а не PCM" - #: src/projectm-1.0/main.c:70 msgid "_Random" msgstr "" -#: src/pulse_audio/pulse_audio.c:722 +#: src/pulse_audio/pulse_audio.c:720 msgid "About Audacious PulseAudio Output Plugin" msgstr "О модуле вывода PulseAudio" -#: src/pulse_audio/pulse_audio.c:723 +#: src/pulse_audio/pulse_audio.c:721 msgid "" "Audacious PulseAudio Output Plugin\n" "\n" @@ -3894,27 +3909,27 @@ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307,\n" "USA." -#: src/scrobbler/configure.c:138 +#: src/scrobbler/configure.c:134 msgid "Services" msgstr "Сервис" -#: src/scrobbler/configure.c:160 src/scrobbler/configure.c:199 +#: src/scrobbler/configure.c:156 src/scrobbler/configure.c:195 msgid "Username:" msgstr "Имя пользователя:" -#: src/scrobbler/configure.c:166 src/scrobbler/configure.c:205 +#: src/scrobbler/configure.c:162 src/scrobbler/configure.c:201 msgid "Password:" msgstr "Пароль:" -#: src/scrobbler/configure.c:183 +#: src/scrobbler/configure.c:179 msgid "Last.FM" msgstr "Last.FM" -#: src/scrobbler/configure.c:222 +#: src/scrobbler/configure.c:218 msgid "Gerpok" msgstr "Gerpok" -#: src/scrobbler/gtkstuff.c:21 +#: src/scrobbler/gtkstuff.c:18 msgid "" "Audacious AudioScrobbler Plugin\n" "\n" @@ -3926,11 +3941,11 @@ "Первоначальные создатели: Audun Hove и Pipian \n" -#: src/scrobbler/gtkstuff.c:23 +#: src/scrobbler/gtkstuff.c:20 msgid "About Scrobbler Plugin" msgstr "О модуле Scrobbler" -#: src/scrobbler/gtkstuff.c:36 +#: src/scrobbler/gtkstuff.c:33 #, c-format msgid "" "There has been an error that may require your attention.\n" @@ -3940,106 +3955,106 @@ "%s\n" msgstr "" -#: src/scrobbler/gtkstuff.c:43 +#: src/scrobbler/gtkstuff.c:40 msgid "Scrobbler Error" msgstr "Ошибка Scrobbler" -#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:221 +#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:233 msgid "Audacious-SID configuration" msgstr "Настройка Audacious-SID" -#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:257 +#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:269 msgid "8-bit" msgstr "8 бит" -#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:264 +#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:276 msgid "16-bit" msgstr "16 бит" -#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:271 +#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:283 msgid "Resolution:" msgstr "Разрешение:" -#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:302 +#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:314 msgid "Autopanning" msgstr "" -#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:309 +#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:321 msgid "Channels:" msgstr "Каналы:" -#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:353 +#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:365 msgid "Samplerate:" msgstr "Частота:" -#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:370 +#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:382 msgid "Use oversampling" msgstr "Использовать оверсемплинг" -#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:381 +#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:393 msgid "Factor:" msgstr "" -#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:393 +#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:405 msgid "Large factors require more CPU-power" msgstr "" -#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:399 +#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:411 msgid "Oversampling:" msgstr "Оверсемплинг" -#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:404 +#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:416 msgid "Audio" msgstr "" -#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:436 +#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:448 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "clock speed/frequency. Otherwise the speed is determined from played file " "itself." msgstr "" -#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:432 +#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:444 msgid "Force speed" msgstr "" -#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:442 +#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:454 msgid "" "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. " "Most of SID-tunes have been made for PAL computers." msgstr "" -#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:438 +#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:450 msgid "PAL (50 Hz)" msgstr "" -#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:450 +#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:462 msgid "" "NTSC is the TV standard with 60Hz vertical refresh rate (and other features " "that differ from PAL). It is mainly used in United States, Japan and certain " "other countries." msgstr "" -#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:446 +#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:458 msgid "NTSC (60 Hz)" msgstr "" -#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:454 +#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:466 msgid "Clock speed:" msgstr "Скорость часов:" -#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:475 +#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:487 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "SID-chip model. Otherwise the preferred SID model is determined from the " "file (if PSIDv2NG type) or if not available, this setting is used." msgstr "" -#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:471 +#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:483 msgid "Force model" msgstr "Принудительно задать модель" -#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:481 +#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:493 msgid "" "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 " "in few ways, having much fuller filter (which, due to design error, is never " @@ -4047,89 +4062,89 @@ "which enables playing of digital samples." msgstr "" -#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:477 +#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:489 msgid "MOS 6581" msgstr "MOS 6581" -#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:485 +#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:497 msgid "MOS 8580" msgstr "MOS 8580" -#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:492 +#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:504 msgid "SID model:" msgstr "Модель SID:" -#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:513 +#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:525 msgid "" "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most " "cases, though." msgstr "" -#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:509 +#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:521 msgid "SIDPlay 1 (frame-based)" msgstr "" -#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:521 +#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:533 msgid "" "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact " "emulation." msgstr "" -#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:517 +#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:529 msgid "SIDPlay 2 (cycle-based)" msgstr "" -#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:525 +#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:537 msgid "Emulation library selection:" msgstr "" -#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:542 +#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:554 msgid "Real C64 (SIDPlay 2 only)" msgstr "" -#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:549 +#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:561 msgid "Bank switching" msgstr "" -#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:556 +#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:568 msgid "Transparent ROM" msgstr "Прозрачное ПЗУ" -#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:563 +#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:575 msgid "PlaySID environment" msgstr "" -#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:570 +#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:582 msgid "Memory mode:" msgstr "Режим памяти:" -#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:575 +#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:587 msgid "Emu#1" msgstr "" -#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:602 +#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:614 msgid "" "This setting can be used to enable libSIDPlay2's \"optimization mode\", " "which in downgrades the emulation from cycle-exact to something similar to " "frame-exact. The result is lower CPU usage, but worse accuracy." msgstr "" -#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:598 +#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:610 msgid "Optimization mode (faster, inaccurate)" msgstr "" -#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:608 +#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:620 msgid "" "reSID is the software SID-chip simulator based on SID reverse-engineering, " "created by Dag Lem. It is probably the closest thing to real SID available " "as software-only emulation." msgstr "" -#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:604 +#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:616 msgid "reSID-emulation" msgstr "" -#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:616 +#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:628 msgid "" "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a " "real SID-chip. Software can be used to control the HardSID and combined with " @@ -4138,47 +4153,47 @@ "http://www.hardsid.com/" msgstr "" -#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:612 +#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:624 msgid "HardSID" msgstr "" -#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:620 +#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:632 msgid "SIDPlay 2 options:" msgstr "" -#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:641 +#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:653 msgid "" "Fastest and also worst sounding sampling method, simply picks nearest " "neighbouring sample." msgstr "" -#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:637 +#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:649 msgid "Fast (nearest neighbour)" msgstr "" -#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:649 +#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:661 msgid "" "Uses linear interpolation between samples, yielding higher audio quality " "with less sampling noise." msgstr "" -#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:645 +#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:657 msgid "Linear interpolation" msgstr "" -#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:660 +#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:672 msgid "Resampling (FIR)" msgstr "Преобразование частоты (КИХ)" -#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:667 +#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:679 msgid "reSID sampling options:" msgstr "Параметры reSID" -#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:672 +#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:684 msgid "Emu#2" msgstr "" -#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:688 +#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:700 msgid "" "This option enables emulation of SID filter. The filter is an essential part " "of SID's sound capacity, but accurate emulation of it may require quite much " @@ -4186,294 +4201,305 @@ "authentic at all if they utilize the filter." msgstr "" -#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:684 +#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:696 msgid "Emulate filters" msgstr "" -#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:713 +#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:725 msgid "FS" msgstr "" -#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:730 +#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:742 msgid "FM" msgstr "" -#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:747 +#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:759 msgid "FT" msgstr "" -#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:758 +#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:770 msgid "Reset values" msgstr "" -#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:763 +#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:775 msgid "SIDPlay1" msgstr "" -#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:804 +#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:816 msgid "Export" msgstr "Экспорт" -#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:812 +#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:824 msgid "Use" msgstr "" -#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:828 +#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:840 +#: src/skins/ui_manager.c:437 msgid "Import" msgstr "Импорт" -#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:836 +#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:848 +#: src/skins/ui_manager.c:439 msgid "Delete" msgstr "Удалить" -#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:850 +#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:862 msgid "Filter curve:" msgstr "Кривая фильтра:" -#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:855 +#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:867 msgid "SIDPlay2" msgstr "" -#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:861 +#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:873 msgid "Filters" msgstr "" -#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:888 +#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:900 msgid "" "If enabled, the tune is played at least for the specified time, adding " "silence to the end if necessary." msgstr "" -#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:884 +#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:896 msgid "Play at least for specified time" msgstr "Воспроизводить как минимум указанное время" #: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133 -#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:895 -#: src/sid/xs_interface.c:949 src/sid/xs_interface.c:1109 +#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:907 +#: src/sid/xs_interface.c:961 src/sid/xs_interface.c:1141 msgid "Playtime:" msgstr "Время воспроизведения:" -#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:915 +#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:927 msgid "Minimum playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:936 +#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:948 msgid "" "If enabled, tune is played until specified duration is reached (aka maximum " "playtime)." msgstr "" -#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:932 +#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:944 msgid "Play for specified time maximum" msgstr "" -#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:942 +#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:954 msgid "" "If enabled, the maximum playtime is applied only if song/tune length is not " "known." msgstr "" -#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:938 +#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:950 msgid "Only when song length is unknown" msgstr "" -#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:969 +#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:981 msgid "Maximum playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:990 +#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:1002 msgid "" "This option enables using of XSIDPLAY compatible song length database. " "(Refer to Audacious-SID documentation for more information)" msgstr "" -#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:986 +#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:998 msgid "Use XSIDPLAY-compatible database" msgstr "" -#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:997 +#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:1009 msgid "DB-file:" msgstr "DB-файл:" -#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1007 +#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1019 msgid "Database path and filename" msgstr "" -#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1014 +#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1026 msgid "Browse for song length-database file" msgstr "" -#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1016 +#: src/sid/xmms-sid.glade:2418 src/sid/xs_interface.c:1048 msgid "Song length database:" msgstr "" -#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1021 +#: src/sid/xmms-sid.glade:2454 src/sid/xs_interface.c:1053 msgid "Songlength" msgstr "Длительность" -#: src/sid/xmms-sid.glade:2430 src/sid/xs_interface.c:1043 +#: src/sid/xmms-sid.glade:2492 src/sid/xs_interface.c:1075 msgid "" "By enabling this option you can specify a custom Tuplez formatting string " "for SID-files. The SID-plugin specific Tuplez tags are described shortly " "below." msgstr "" -#: src/sid/xmms-sid.glade:2432 src/sid/xs_interface.c:1039 +#: src/sid/xmms-sid.glade:2494 src/sid/xs_interface.c:1071 msgid "Override generic Tuplez format string" msgstr "Переопределить стандартную строку формата" -#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1054 +#: src/sid/xmms-sid.glade:2519 src/sid/xs_interface.c:1086 msgid "Tuplez format string for SID-files" msgstr "" -#: src/sid/xmms-sid.glade:2477 src/sid/xs_interface.c:1057 -msgid "Descriptions of SID-specific Tuplez fields go here. :D" -msgstr "" - -#: src/sid/xmms-sid.glade:2511 src/sid/xs_interface.c:1065 +#: src/sid/xmms-sid.glade:2539 src/sid/xs_interface.c:1089 +msgid "" +"SID-specific Tuplez fields:\n" +"\n" +"sid-format\t\t- Specific fileformat\n" +"sid-model\t\t- 6581 or 8580\n" +"sid-speed\t\t- Timing or speed: PAL/NTSC/etc.\n" +"\n" +"Other \"special\" fields set:\n" +"\n" +"subsong-num, subsong-id" +msgstr "" + +#: src/sid/xmms-sid.glade:2581 src/sid/xs_interface.c:1097 msgid "Song title format:" msgstr "Формат названия:" -#: src/sid/xmms-sid.glade:2584 src/sid/xs_interface.c:1096 +#: src/sid/xmms-sid.glade:2654 src/sid/xs_interface.c:1128 msgid "" "If enabled, sub-tunes of each file will be added to playlist. If disabled, " "only the default sub-tune will be added." msgstr "" -#: src/sid/xmms-sid.glade:2586 src/sid/xs_interface.c:1092 +#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1124 msgid "Add sub-tunes to playlist" msgstr "" -#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1102 +#: src/sid/xmms-sid.glade:2675 src/sid/xs_interface.c:1134 msgid "Only add sub-tunes that have a duration of at least specified time." msgstr "" -#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1098 +#: src/sid/xmms-sid.glade:2677 src/sid/xs_interface.c:1130 msgid "Only tunes with specified minimum duration" msgstr "" -#: src/sid/xmms-sid.glade:2710 src/sid/xs_interface.c:1129 +#: src/sid/xmms-sid.glade:2780 src/sid/xs_interface.c:1161 msgid "Sub-tune handling:" msgstr "Обработка под-дорожек:" -#: src/sid/xmms-sid.glade:2755 src/sid/xs_interface.c:1150 +#: src/sid/xmms-sid.glade:2825 src/sid/xs_interface.c:1182 msgid "" "If this option is enabled (and the database & HVSC settings below are " "correctly set), Audacious-SID will use and display additional information " "from STIL database when HVSC SIDs are played." msgstr "" -#: src/sid/xmms-sid.glade:2757 src/sid/xs_interface.c:1146 +#: src/sid/xmms-sid.glade:2827 src/sid/xs_interface.c:1178 msgid "Use STIL database" msgstr "" -#: src/sid/xmms-sid.glade:2782 src/sid/xs_interface.c:1157 +#: src/sid/xmms-sid.glade:2852 src/sid/xs_interface.c:1189 msgid "STIL file:" msgstr "STIL файл:" -#: src/sid/xmms-sid.glade:2819 src/sid/xs_interface.c:1173 +#: src/sid/xmms-sid.glade:2889 src/sid/xs_interface.c:1205 msgid "" "Path and filename of STIL database file (STIL.txt), usually found from " "HVSC's DOCUMENTS-subdirectory." msgstr "" -#: src/sid/xmms-sid.glade:2854 src/sid/xs_interface.c:1186 +#: src/sid/xmms-sid.glade:2924 src/sid/xs_interface.c:1218 msgid "Browse for STIL-database file" msgstr "" -#: src/sid/xmms-sid.glade:2888 src/sid/xs_interface.c:1193 +#: src/sid/xmms-sid.glade:3020 src/sid/xs_interface.c:1245 msgid "HVSC path:" msgstr "" -#: src/sid/xmms-sid.glade:2925 src/sid/xs_interface.c:1209 +#: src/sid/xmms-sid.glade:3057 src/sid/xs_interface.c:1261 msgid "" "Path to base-directory of your High Voltage SID Collection (HVSC), for " "example /media/C64Music/" msgstr "" -#: src/sid/xmms-sid.glade:2960 src/sid/xs_interface.c:1222 +#: src/sid/xmms-sid.glade:3092 src/sid/xs_interface.c:1274 msgid "Browse for HVSC path" msgstr "" -#: src/sid/xmms-sid.glade:2990 src/sid/xs_interface.c:1224 +#: src/sid/xmms-sid.glade:3184 src/sid/xs_interface.c:1296 msgid "SID Tune Information List (STIL) database:" msgstr "" -#: src/sid/xmms-sid.glade:3063 src/sid/xs_interface.c:1248 +#: src/sid/xmms-sid.glade:3257 src/sid/xs_interface.c:1320 msgid "Accept and update changes" msgstr "" -#: src/sid/xmms-sid.glade:3077 src/sid/xs_interface.c:1255 +#: src/sid/xmms-sid.glade:3271 src/sid/xs_interface.c:1327 msgid "Cancel any changes" msgstr "" -#: src/sid/xmms-sid.glade:3102 src/sid/xs_interface.c:1543 +#: src/sid/xmms-sid.glade:3296 src/sid/xs_interface.c:1627 msgid "Audacious-SID Fileinfo" msgstr "Audacious-SID: Информация о файле" -#: src/sid/xmms-sid.glade:3172 src/sid/xs_interface.c:1572 +#: src/sid/xmms-sid.glade:3366 src/sid/xs_interface.c:1656 msgid "Songname:" msgstr "" -#: src/sid/xmms-sid.glade:3200 src/sid/xs_interface.c:1580 +#: src/sid/xmms-sid.glade:3394 src/sid/xs_interface.c:1664 msgid "Composer:" msgstr "" -#: src/sid/xmms-sid.glade:3228 src/sid/xs_interface.c:1588 +#: src/sid/xmms-sid.glade:3422 src/sid/xs_interface.c:1672 msgid "Copyright:" msgstr "Авторское право:" -#: src/sid/xmms-sid.glade:3342 src/sid/xs_interface.c:1632 +#: src/sid/xmms-sid.glade:3536 src/sid/xs_interface.c:1716 msgid "Song Information:" msgstr "Информация о дорожке" -#: src/sid/xmms-sid.glade:3416 src/sid/xs_interface.c:1667 +#: src/sid/xmms-sid.glade:3610 src/sid/xs_interface.c:1751 msgid "Author:" msgstr "" -#: src/sid/xmms-sid.glade:3514 src/sid/xs_interface.c:1701 +#: src/sid/xmms-sid.glade:3708 src/sid/xs_interface.c:1785 msgid "Duration:" msgstr "Длительность:" -#: src/sid/xmms-sid.glade:3608 src/sid/xs_interface.c:1735 +#: src/sid/xmms-sid.glade:3802 src/sid/xs_interface.c:1819 msgid "Sub-tune Information:" msgstr "Информация о под-дорожке:" -#: src/sid/xmms-sid.glade:3662 src/sid/xs_interface.c:1796 +#: src/sid/xmms-sid.glade:3856 src/sid/xs_interface.c:1880 msgid "Select HVSC song length database" msgstr "" -#: src/sid/xmms-sid.glade:3704 src/sid/xs_interface.c:1837 +#: src/sid/xmms-sid.glade:3898 src/sid/xs_interface.c:1921 msgid "Select STIL-database" msgstr "" -#: src/sid/xmms-sid.glade:3746 src/sid/xs_interface.c:1878 +#: src/sid/xmms-sid.glade:3940 src/sid/xs_interface.c:1962 msgid "Select HVSC location prefix" msgstr "" -#: src/sid/xmms-sid.glade:3788 src/sid/xs_interface.c:1919 +#: src/sid/xmms-sid.glade:3982 src/sid/xs_interface.c:2003 msgid "Select SIDPlay2 filters file for importing" msgstr "" -#: src/sid/xmms-sid.glade:3830 src/sid/xs_interface.c:1960 +#: src/sid/xmms-sid.glade:4024 src/sid/xs_interface.c:2044 msgid "Select SIDPlay2 filters file for exporting" msgstr "" -#: src/sid/xmms-sid.glade:3871 src/sid/xmms-sid.glade:3953 -#: src/sid/xs_interface.c:2008 src/sid/xs_interface.c:2021 +#: src/sid/xmms-sid.glade:4065 src/sid/xmms-sid.glade:4147 +#: src/sid/xs_interface.c:2092 src/sid/xs_interface.c:2105 msgid "Confirm selected action" msgstr "Подтвердить выбранное действие" -#: src/sid/xmms-sid.glade:3909 src/sid/xs_interface.c:2038 +#: src/sid/xmms-sid.glade:4103 src/sid/xs_interface.c:2122 msgid "Yes" msgstr "Да" -#: src/sid/xmms-sid.glade:3921 src/sid/xs_interface.c:2044 +#: src/sid/xmms-sid.glade:4115 src/sid/xs_interface.c:2128 msgid "No" msgstr "No" -#: src/sid/xs_about.c:84 src/wma/wma.c:121 +#: src/sid/xs_about.c:84 src/wma/wma.c:118 #, c-format msgid "About %s" msgstr "О программе %s" @@ -4487,12 +4513,1133 @@ msgid "Tune #%i: " msgstr "" -#: src/sndfile/plugin.c:548 +#: src/skins/plugin.c:128 +msgid "About Skinned GUI" +msgstr "" + +#: src/skins/plugin.c:129 +msgid "" +"Copyright (c) 2008, by Tomasz Moń \n" +"\n" +msgstr "" + +#: src/skins/skins_cfg.c:329 +#, fuzzy +msgid "_Fonts" +msgstr "Hatena" + +#: src/skins/skins_cfg.c:330 +#, fuzzy +msgid "_Player:" +msgstr "Время воспроизведения:" + +#: src/skins/skins_cfg.c:330 +msgid "Select main player window font:" +msgstr "" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "_Playlist:" +msgstr "Время воспроизведения:" + +#: src/skins/skins_cfg.c:331 +msgid "Select playlist font:" +msgstr "" + +#: src/skins/skins_cfg.c:332 +#, fuzzy +msgid "Use Bitmap fonts if available" +msgstr "Использовать CDDB, если возможно" + +#: src/skins/skins_cfg.c:332 +msgid "" +"Use bitmap fonts if they are available. Bitmap fonts do not support Unicode " +"strings." +msgstr "" + +#: src/skins/skins_cfg.c:333 +#, fuzzy +msgid "_Miscellaneous" +msgstr "Сервис" + +#: src/skins/skins_cfg.c:334 +msgid "Show track numbers in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:336 +msgid "Show separators in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:338 +msgid "Show window manager decoration" +msgstr "" + +#: src/skins/skins_cfg.c:339 +msgid "This enables the window manager to show decorations for windows." +msgstr "" + +#: src/skins/skins_cfg.c:340 +msgid "Use two-way text scroller" +msgstr "" + +#: src/skins/skins_cfg.c:341 +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 "" + +#: src/skins/skins_cfg.c:342 +msgid "Disable inline gtk theme" +msgstr "" + +#: src/skins/skins_cfg.c:343 +msgid "Allow loading incomplete skins" +msgstr "" + +#: src/skins/skins_cfg.c:344 +msgid "" +"If selected, audacious won't refuse loading broken skins. Use only if your " +"favourite skin doesn't work" +msgstr "" + +#: src/skins/skins_cfg.c:410 +msgid "Color Adjustment" +msgstr "" + +#: src/skins/skins_cfg.c:417 +msgid "" +"Audacious allows you to alter the color balance of the skinned UI. The " +"sliders below will allow you to do this." +msgstr "" + +#: src/skins/skins_cfg.c:427 +#, fuzzy +msgid "Blue" +msgstr "Блюз" + +#: src/skins/skins_cfg.c:434 +msgid "Green" +msgstr "" + +#: src/skins/skins_cfg.c:441 +msgid "Red" +msgstr "" + +#: src/skins/skins_cfg.c:571 +#, fuzzy +msgid "Audacious Skinned GUI Configuration" +msgstr "Настройка Audacious OSD" + +#: src/skins/skins_cfg.c:596 +#, fuzzy +msgid "_Skin" +msgstr "Hatena" + +#: src/skins/ui_equalizer.c:494 +#, fuzzy +msgid "Audacious Equalizer" +msgstr "Оксно->Еквалайзер" + +#: src/skins/ui_equalizer.c:794 +#, c-format +msgid "Error importing Winamp EQF file '%s'" +msgstr "" + +#: src/skins/ui_equalizer.c:1172 +msgid "Presets" +msgstr "" + +#: src/skins/ui_main.c:392 +#, c-format +msgid "%s - Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:394 src/skins/ui_main.c:2397 +#, fuzzy +msgid "Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:641 +msgid "VBR" +msgstr "" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "stereo" +msgstr "Стерео" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "mono" +msgstr "Моно" + +#: src/skins/ui_main.c:957 +msgid "Can't jump to time when no track is being played.\n" +msgstr "" + +#: src/skins/ui_main.c:972 src/skins/ui_manager.c:425 +#: src/skins/ui_manager.c:426 +#, fuzzy +msgid "Jump to Time" +msgstr "Перескочить на дорожку:" + +#: src/skins/ui_main.c:993 +#, fuzzy +msgid "minutes:seconds" +msgstr "секунд" + +#: src/skins/ui_main.c:1003 +#, fuzzy +msgid "Track length:" +msgstr "Усиление дорожки:" + +#: src/skins/ui_main.c:1149 +msgid "Audacious - visibility warning" +msgstr "" + +#: src/skins/ui_main.c:1152 +#, fuzzy +msgid "Show main player window" +msgstr "Показать окно сети" + +#: src/skins/ui_main.c:1153 +msgid "Ignore" +msgstr "" + +#: src/skins/ui_main.c:1159 +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)." +msgstr "" + +#: src/skins/ui_main.c:1165 +msgid "Always ignore, show/hide is controlled remotely" +msgstr "" + +#: src/skins/ui_main.c:1210 +msgid "Audacious - broken GTK engine usage warning" +msgstr "" + +#: src/skins/ui_main.c:1218 +#, c-format +msgid "" +"Broken GTK engine in use\n" +"\n" +"Audacious has detected that you are using a broken GTK engine.\n" +"\n" +"The theme engine you are using, %s, is incompatible with some of the " +"features used by modern skins. The incompatible features have been disabled " +"for this session.\n" +"\n" +"To use these features, please consider using a different GTK theme engine." +msgstr "" + +#: src/skins/ui_main.c:1229 +msgid "Do not display this warning again" +msgstr "" + +#: src/skins/ui_main.c:1253 +msgid "Enter location to play:" +msgstr "" + +#: src/skins/ui_main.c:1497 +#, c-format +msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" +msgstr "" + +#: src/skins/ui_main.c:1527 +#, fuzzy, c-format +msgid "Volume: %d%%" +msgstr "Громкость: (%)" + +#: src/skins/ui_main.c:1555 +#, c-format +msgid "Balance: %d%% left" +msgstr "" + +#: src/skins/ui_main.c:1559 +msgid "Balance: center" +msgstr "" + +#: src/skins/ui_main.c:1563 +#, c-format +msgid "Balance: %d%% right" +msgstr "" + +#: src/skins/ui_main.c:1881 +#, fuzzy +msgid "Options Menu" +msgstr "Параметры" + +#: src/skins/ui_main.c:1885 +msgid "Disable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1887 +msgid "Enable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1890 +#, fuzzy +msgid "File Info Box" +msgstr "Инфрмация о файле - %s" + +#: src/skins/ui_main.c:1894 +msgid "Disable 'GUI Scaling'" +msgstr "" + +#: src/skins/ui_main.c:1896 +#, fuzzy +msgid "Enable 'GUI Scaling'" +msgstr "Включить преобразование" + +#: src/skins/ui_main.c:1899 +msgid "Visualization Menu" +msgstr "" + +#: src/skins/ui_main.c:1946 +msgid "" +"Couldn't open audio.\n" +"\n" +"Please check that:\n" +"1. You have the correct output plugin selected.\n" +"2. No other programs is blocking the soundcard.\n" +"3. Your soundcard is configured properly.\n" +msgstr "" + +#: src/skins/ui_manager.c:53 src/skins/ui_manager.c:54 +msgid "Autoscroll Songname" +msgstr "" + +#: src/skins/ui_manager.c:56 src/skins/ui_manager.c:57 +msgid "Stop after Current Song" +msgstr "" + +#: src/skins/ui_manager.c:59 src/skins/ui_manager.c:60 +#, fuzzy +msgid "Peaks" +msgstr "Шалость" + +#: src/skins/ui_manager.c:62 src/skins/ui_manager.c:63 +#, fuzzy +msgid "Repeat" +msgstr "Бит" + +#: src/skins/ui_manager.c:65 src/skins/ui_manager.c:66 +msgid "Shuffle" +msgstr "" + +#: src/skins/ui_manager.c:68 src/skins/ui_manager.c:69 +msgid "No Playlist Advance" +msgstr "" + +#: src/skins/ui_manager.c:71 src/skins/ui_manager.c:72 +msgid "Show Player" +msgstr "" + +#: src/skins/ui_manager.c:74 src/skins/ui_manager.c:75 +msgid "Show Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:77 src/skins/ui_manager.c:78 +#, fuzzy +msgid "Show Equalizer" +msgstr "Оксно->Еквалайзер" + +#: src/skins/ui_manager.c:80 src/skins/ui_manager.c:81 +msgid "Always on Top" +msgstr "" + +#: src/skins/ui_manager.c:83 src/skins/ui_manager.c:84 +msgid "Put on All Workspaces" +msgstr "" + +#: src/skins/ui_manager.c:86 src/skins/ui_manager.c:87 +msgid "Roll up Player" +msgstr "" + +#: src/skins/ui_manager.c:89 src/skins/ui_manager.c:90 +msgid "Roll up Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:92 src/skins/ui_manager.c:93 +msgid "Roll up Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:95 src/sndstretch/sndstretch_xmms.c:375 +msgid "Scale" +msgstr "Масштабирование" + +#: src/skins/ui_manager.c:96 +msgid "DoubleSize" +msgstr "" + +#: src/skins/ui_manager.c:98 src/skins/ui_manager.c:99 +msgid "Easy Move" +msgstr "" + +#: src/skins/ui_manager.c:107 +msgid "Analyzer" +msgstr "" + +#: src/skins/ui_manager.c:108 +#, fuzzy +msgid "Scope" +msgstr "Остановить:" + +#: src/skins/ui_manager.c:109 +msgid "Voiceprint" +msgstr "" + +#: src/skins/ui_manager.c:110 +msgid "Off" +msgstr "" + +#: src/skins/ui_manager.c:114 src/skins/ui_manager.c:131 +#: src/skins/ui_manager.c:137 +#, fuzzy +msgid "Normal" +msgstr "Формат" + +#: src/skins/ui_manager.c:115 src/skins/ui_manager.c:132 +#, fuzzy +msgid "Fire" +msgstr "Сатира" + +#: src/skins/ui_manager.c:116 +msgid "Vertical Lines" +msgstr "" + +#: src/skins/ui_manager.c:120 +#, fuzzy +msgid "Lines" +msgstr "Латиноамериканская" + +#: src/skins/ui_manager.c:121 +#, fuzzy +msgid "Bars" +msgstr "Бас" + +#: src/skins/ui_manager.c:125 +msgid "Dot Scope" +msgstr "" + +#: src/skins/ui_manager.c:126 +msgid "Line Scope" +msgstr "" + +#: src/skins/ui_manager.c:127 +msgid "Solid Scope" +msgstr "" + +#: src/skins/ui_manager.c:133 +msgid "Ice" +msgstr "" + +#: src/skins/ui_manager.c:138 +msgid "Smooth" +msgstr "" + +#: src/skins/ui_manager.c:142 +msgid "Full (~50 fps)" +msgstr "" + +#: src/skins/ui_manager.c:143 +msgid "Half (~25 fps)" +msgstr "" + +#: src/skins/ui_manager.c:144 +msgid "Quarter (~13 fps)" +msgstr "" + +#: src/skins/ui_manager.c:145 +msgid "Eighth (~6 fps)" +msgstr "" + +#: src/skins/ui_manager.c:149 src/skins/ui_manager.c:157 +#, fuzzy +msgid "Slowest" +msgstr "Импровизация" + +#: src/skins/ui_manager.c:150 src/skins/ui_manager.c:158 +#, fuzzy +msgid "Slow" +msgstr "низкое" + +#: src/skins/ui_manager.c:151 src/skins/ui_manager.c:159 +#, fuzzy +msgid "Medium" +msgstr "среднее" + +#: src/skins/ui_manager.c:152 src/skins/ui_manager.c:160 +#, fuzzy +msgid "Fast" +msgstr "Формат" + +#: src/skins/ui_manager.c:153 src/skins/ui_manager.c:161 +msgid "Fastest" +msgstr "" + +#: src/skins/ui_manager.c:165 +msgid "Time Elapsed" +msgstr "" + +#: src/skins/ui_manager.c:166 +msgid "Time Remaining" +msgstr "" + +#: src/skins/ui_manager.c:180 src/skins/ui_manager.c:181 +#, fuzzy +msgid "Pause" +msgstr "Воспроизведение->Приостановить" + +#: src/skins/ui_manager.c:186 src/skins/ui_manager.c:187 +#, fuzzy +msgid "Previous" +msgstr "Предыдущая дорожка:" + +#: src/skins/ui_manager.c:189 src/skins/ui_manager.c:190 +#, fuzzy +msgid "Next" +msgstr "Текст" + +#: src/skins/ui_manager.c:195 +#, fuzzy +msgid "Visualization" +msgstr "Организация:" + +#: src/skins/ui_manager.c:196 +msgid "Visualization Mode" +msgstr "" + +#: src/skins/ui_manager.c:197 +msgid "Analyzer Mode" +msgstr "" + +#: src/skins/ui_manager.c:198 +msgid "Scope Mode" +msgstr "" + +#: src/skins/ui_manager.c:199 +msgid "Voiceprint Mode" +msgstr "" + +#: src/skins/ui_manager.c:200 +msgid "WindowShade VU Mode" +msgstr "" + +#: src/skins/ui_manager.c:201 +msgid "Refresh Rate" +msgstr "" + +#: src/skins/ui_manager.c:202 +msgid "Analyzer Falloff" +msgstr "" + +#: src/skins/ui_manager.c:203 +msgid "Peaks Falloff" +msgstr "" + +#: src/skins/ui_manager.c:208 +#, fuzzy +msgid "Playlist" +msgstr "Список->Повторять" + +#: src/skins/ui_manager.c:210 src/skins/ui_manager.c:211 +#, fuzzy +msgid "New Playlist" +msgstr "Окно->Список" + +#: src/skins/ui_manager.c:213 src/skins/ui_manager.c:214 +msgid "Select Next Playlist" +msgstr "" + +#: src/skins/ui_manager.c:216 src/skins/ui_manager.c:217 +msgid "Select Previous Playlist" +msgstr "" + +#: src/skins/ui_manager.c:219 src/skins/ui_manager.c:220 +msgid "Delete Playlist" +msgstr "" + +#: src/skins/ui_manager.c:222 +msgid "Load List" +msgstr "" + +#: src/skins/ui_manager.c:223 +msgid "Loads a playlist file into the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:225 +#, fuzzy +msgid "Save List" +msgstr "Сохранить" + +#: src/skins/ui_manager.c:226 +msgid "Saves the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:228 +#, fuzzy +msgid "Save Default List" +msgstr "По умолчанию (%s)" + +#: src/skins/ui_manager.c:229 +msgid "Saves the selected playlist to the default location." +msgstr "" + +#: src/skins/ui_manager.c:232 +msgid "Refresh List" +msgstr "" + +#: src/skins/ui_manager.c:233 +msgid "Refreshes metadata associated with a playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:236 +msgid "List Manager" +msgstr "" + +#: src/skins/ui_manager.c:237 +msgid "Opens the playlist manager." +msgstr "" + +#: src/skins/ui_manager.c:243 +msgid "View" +msgstr "" + +#: src/skins/ui_manager.c:247 +msgid "Add Internet Address..." +msgstr "" + +#: src/skins/ui_manager.c:248 +msgid "Adds a remote track to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:251 +msgid "Add Files..." +msgstr "" + +#: src/skins/ui_manager.c:252 +msgid "Adds files to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:257 +msgid "Search and Select" +msgstr "" + +#: src/skins/ui_manager.c:258 +msgid "" +"Searches the playlist and selects playlist entries based on specific " +"criteria." +msgstr "" + +#: src/skins/ui_manager.c:261 +#, fuzzy +msgid "Invert Selection" +msgstr "Выбор формата" + +#: src/skins/ui_manager.c:262 +msgid "Inverts the selected and unselected entries." +msgstr "" + +#: src/skins/ui_manager.c:265 +#, fuzzy +msgid "Select All" +msgstr "Выберите файл темы" + +#: src/skins/ui_manager.c:266 +msgid "Selects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:269 +#, fuzzy +msgid "Select None" +msgstr "Выберите файл темы" + +#: src/skins/ui_manager.c:270 +msgid "Deselects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:275 +#, fuzzy +msgid "Remove All" +msgstr "Удалить" + +#: src/skins/ui_manager.c:276 +msgid "Removes all entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:279 +msgid "Clear Queue" +msgstr "" + +#: src/skins/ui_manager.c:280 +msgid "Clears the queue associated with this playlist." +msgstr "" + +#: src/skins/ui_manager.c:283 +msgid "Remove Unavailable Files" +msgstr "" + +#: src/skins/ui_manager.c:284 +msgid "Removes unavailable files from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:287 +#, fuzzy +msgid "Remove Duplicates" +msgstr "Удалить привод" + +#: src/skins/ui_manager.c:289 src/skins/ui_manager.c:321 +#: src/skins/ui_manager.c:351 +#, fuzzy +msgid "By Title" +msgstr "Название" + +#: src/skins/ui_manager.c:290 +msgid "Removes duplicate entries from the playlist by title." +msgstr "" + +#: src/skins/ui_manager.c:293 src/skins/ui_manager.c:329 +#: src/skins/ui_manager.c:359 +#, fuzzy +msgid "By Filename" +msgstr "Имя файла" + +#: src/skins/ui_manager.c:294 +msgid "Removes duplicate entries from the playlist by filename." +msgstr "" + +#: src/skins/ui_manager.c:297 src/skins/ui_manager.c:333 +#: src/skins/ui_manager.c:363 +#, fuzzy +msgid "By Path + Filename" +msgstr "Имя файла" + +#: src/skins/ui_manager.c:298 +msgid "Removes duplicate entries from the playlist by their full path." +msgstr "" + +#: src/skins/ui_manager.c:301 +msgid "Remove Unselected" +msgstr "" + +#: src/skins/ui_manager.c:302 +msgid "Remove unselected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:305 +msgid "Remove Selected" +msgstr "" + +#: src/skins/ui_manager.c:306 +msgid "Remove selected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:311 +msgid "Randomize List" +msgstr "" + +#: src/skins/ui_manager.c:312 +msgid "Randomizes the playlist." +msgstr "" + +#: src/skins/ui_manager.c:315 +msgid "Reverse List" +msgstr "" + +#: src/skins/ui_manager.c:316 +msgid "Reverses the playlist." +msgstr "" + +#: src/skins/ui_manager.c:319 +#, fuzzy +msgid "Sort List" +msgstr "Исполнитель:" + +#: src/skins/ui_manager.c:322 src/skins/ui_manager.c:352 +msgid "Sorts the list by title." +msgstr "" + +#: src/skins/ui_manager.c:325 src/skins/ui_manager.c:355 +#, fuzzy +msgid "By Artist" +msgstr "Исполнитель:" + +#: src/skins/ui_manager.c:326 src/skins/ui_manager.c:356 +msgid "Sorts the list by artist." +msgstr "" + +#: src/skins/ui_manager.c:330 src/skins/ui_manager.c:360 +msgid "Sorts the list by filename." +msgstr "" + +#: src/skins/ui_manager.c:334 src/skins/ui_manager.c:364 +msgid "Sorts the list by full pathname." +msgstr "" + +#: src/skins/ui_manager.c:337 src/skins/ui_manager.c:367 +#, fuzzy +msgid "By Date" +msgstr "Дата:" + +#: src/skins/ui_manager.c:338 src/skins/ui_manager.c:368 +msgid "Sorts the list by modification time." +msgstr "" + +#: src/skins/ui_manager.c:341 src/skins/ui_manager.c:371 +#, fuzzy +msgid "By Track Number" +msgstr "Номер дорожки:" + +#: src/skins/ui_manager.c:342 src/skins/ui_manager.c:372 +msgid "Sorts the list by track number." +msgstr "" + +#: src/skins/ui_manager.c:345 src/skins/ui_manager.c:375 +msgid "By Playlist Entry" +msgstr "" + +#: src/skins/ui_manager.c:346 src/skins/ui_manager.c:376 +msgid "Sorts the list by playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:349 +#, fuzzy +msgid "Sort Selected" +msgstr "Выбор формата" + +#: src/skins/ui_manager.c:385 +#, fuzzy +msgid "File" +msgstr "Имя файла" + +#: src/skins/ui_manager.c:388 +msgid "Plugin Services" +msgstr "" + +#: src/skins/ui_manager.c:390 src/skins/ui_manager.c:393 +#, fuzzy +msgid "View Track Details" +msgstr "Использовать Gain/Peak дорожки" + +#: src/skins/ui_manager.c:391 src/skins/ui_manager.c:394 +msgid "View track details" +msgstr "" + +#: src/skins/ui_manager.c:396 src/skins/ui_manager.c:397 +#, fuzzy +msgid "About Audacious" +msgstr "О модуле LIRC" + +#: src/skins/ui_manager.c:399 +#, fuzzy +msgid "Play File" +msgstr "Время воспроизведения:" + +#: src/skins/ui_manager.c:400 +#, fuzzy +msgid "Load and play a file" +msgstr "Загружать SF при запуске проигрывателя" + +#: src/skins/ui_manager.c:402 +msgid "Play Location" +msgstr "" + +#: src/skins/ui_manager.c:403 +#, fuzzy +msgid "Play media from the selected location" +msgstr "Подтвердить выбранное действие" + +#: src/skins/ui_manager.c:405 +msgid "Plugin services" +msgstr "" + +#: src/skins/ui_manager.c:407 +msgid "Preferences" +msgstr "" + +#: src/skins/ui_manager.c:408 +msgid "Open preferences window" +msgstr "" + +#: src/skins/ui_manager.c:410 +#, fuzzy +msgid "_Quit" +msgstr "Качество" + +#: src/skins/ui_manager.c:411 +#, fuzzy +msgid "Quit Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_manager.c:413 src/skins/ui_manager.c:414 +msgid "Set A-B" +msgstr "" + +#: src/skins/ui_manager.c:416 src/skins/ui_manager.c:417 +msgid "Clear A-B" +msgstr "" + +#: src/skins/ui_manager.c:419 src/skins/ui_manager.c:420 +msgid "Jump to Playlist Start" +msgstr "" + +#: src/skins/ui_manager.c:428 +msgid "Queue Toggle" +msgstr "" + +#: src/skins/ui_manager.c:429 +msgid "Enables/disables the entry in the playlist's queue." +msgstr "" + +#: src/skins/ui_manager.c:436 +msgid "Load" +msgstr "" + +#: src/skins/ui_manager.c:441 src/skins/ui_manager.c:462 +#: src/skins/ui_manager.c:477 +#, fuzzy +msgid "Preset" +msgstr "Порт" + +#: src/skins/ui_manager.c:442 +msgid "Load preset" +msgstr "" + +#: src/skins/ui_manager.c:444 src/skins/ui_manager.c:465 +#: src/skins/ui_manager.c:480 +msgid "Auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:445 +msgid "Load auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:448 +msgid "Load default preset into equalizer" +msgstr "" + +#: src/skins/ui_manager.c:450 +#, fuzzy +msgid "Zero" +msgstr "Ретро" + +#: src/skins/ui_manager.c:451 +msgid "Set equalizer preset levels to zero" +msgstr "" + +#: src/skins/ui_manager.c:453 +msgid "From file" +msgstr "" + +#: src/skins/ui_manager.c:454 +#, fuzzy +msgid "Load preset from file" +msgstr "Не могу прочитать файл\n" + +#: src/skins/ui_manager.c:456 +msgid "From WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:457 +msgid "Load preset from WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:459 +msgid "WinAMP Presets" +msgstr "" + +#: src/skins/ui_manager.c:460 +msgid "Import WinAMP presets" +msgstr "" + +#: src/skins/ui_manager.c:463 +msgid "Save preset" +msgstr "" + +#: src/skins/ui_manager.c:466 +msgid "Save auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:469 +#, fuzzy +msgid "Save default preset" +msgstr "по умолчанию" + +#: src/skins/ui_manager.c:471 +#, fuzzy +msgid "To file" +msgstr "STIL файл:" + +#: src/skins/ui_manager.c:472 +msgid "Save preset to file" +msgstr "" + +#: src/skins/ui_manager.c:474 +msgid "To WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:475 +msgid "Save preset to WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:478 +#, fuzzy +msgid "Delete preset" +msgstr "Удалить" + +#: src/skins/ui_manager.c:481 +msgid "Delete auto-load preset" +msgstr "" + +#: src/skins/ui_playlist.c:454 +msgid "Search entries in active playlist" +msgstr "" + +#: src/skins/ui_playlist.c:462 +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 "" + +#: src/skins/ui_playlist.c:477 +#, fuzzy +msgid "Album: " +msgstr "Альбом:" + +#: src/skins/ui_playlist.c:484 +#, fuzzy +msgid "Artist: " +msgstr "Исполнитель:" + +#: src/skins/ui_playlist.c:491 +#, fuzzy +msgid "Filename: " +msgstr "Имя файла:" + +#: src/skins/ui_playlist.c:499 +msgid "Clear previous selection before searching" +msgstr "" + +#: src/skins/ui_playlist.c:502 +msgid "Automatically toggle queue for matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:505 +msgid "Create a new playlist with matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:724 +#, c-format +msgid "Error writing playlist \"%s\": %s" +msgstr "" + +#: src/skins/ui_playlist.c:746 +#, c-format +msgid "%s already exist. Continue?" +msgstr "" + +#: src/skins/ui_playlist.c:761 +#, c-format +msgid "" +"Unable to save playlist.\n" +"\n" +"Unknown file type for '%s'.\n" +msgstr "" + +#: src/skins/ui_playlist.c:887 +msgid "Save as Static Playlist" +msgstr "" + +#: src/skins/ui_playlist.c:894 +msgid "Use Relative Path" +msgstr "" + +#: src/skins/ui_playlist.c:916 +#, fuzzy +msgid "Load Playlist" +msgstr "Окно->Список" + +#: src/skins/ui_playlist.c:929 +msgid "Save Playlist" +msgstr "" + +#: src/skins/ui_playlist.c:1497 +msgid "Audacious Playlist Editor" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "PREAMP" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "60HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "170HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "310HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +#, fuzzy +msgid "600HZ" +msgstr "11000 Гц" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "1KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "3KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "6KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "12KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "14KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "16KHZ" +msgstr "" + +#: src/skins/ui_skinselector.c:178 +msgid "Archived Winamp 2.x skin" +msgstr "" + +#: src/skins/ui_skinselector.c:183 +msgid "Unarchived Winamp 2.x skin" +msgstr "" + +#: src/skins/util.c:1132 +#, fuzzy, c-format +msgid "Could not create directory (%s): %s\n" +msgstr "" +"Не удалось проверить каталог %s\n" +"Ошибка: %s" + +#: src/sndfile/plugin.c:554 #, fuzzy msgid "About sndfile plugin" msgstr "модуль sndfile WAV" -#: src/sndfile/plugin.c:549 +#: src/sndfile/plugin.c:555 msgid "" "Adapted for Audacious usage by Tony Vroon \n" "from the xmms_sndfile plugin which is:\n" @@ -4536,63 +5683,59 @@ "51 Franklin Street, Fifth Floor, \n" "Boston, MA 02111-1307, USA." -#: src/sndstretch/sndstretch_xmms.c:159 +#: src/sndstretch/sndstretch_xmms.c:158 msgid "About SndStretch" msgstr "О модуле SndStretch" -#: src/sndstretch/sndstretch_xmms.c:319 +#: src/sndstretch/sndstretch_xmms.c:318 msgid "Volume corr." msgstr "Коррекция громкости" -#: src/sndstretch/sndstretch_xmms.c:320 +#: src/sndstretch/sndstretch_xmms.c:319 msgid "Short Overlap" msgstr "Короткое перекрытие" +#: src/sndstretch/sndstretch_xmms.c:373 +msgid "Speed" +msgstr "Скорость" + #: src/sndstretch/sndstretch_xmms.c:374 -msgid "Speed" -msgstr "Скорость" - -#: src/sndstretch/sndstretch_xmms.c:375 msgid "Pitch" msgstr "Смена высоты тона" -#: src/sndstretch/sndstretch_xmms.c:376 -msgid "Scale" -msgstr "Масштабирование" - -#: src/sndstretch/sndstretch_xmms.c:396 +#: src/sndstretch/sndstretch_xmms.c:395 msgid "SndStretch - Configuration" msgstr "SndStretch - Настройка" -#: src/song_change/song_change.c:312 +#: src/song_change/song_change.c:310 msgid "Commands" msgstr "Команды" -#: src/song_change/song_change.c:319 +#: src/song_change/song_change.c:317 msgid "Command to run when Audacious starts a new song." msgstr "Команда, запускаемая когда Audacious начинает новую песню." -#: src/song_change/song_change.c:328 src/song_change/song_change.c:350 -#: src/song_change/song_change.c:371 src/song_change/song_change.c:392 +#: src/song_change/song_change.c:326 src/song_change/song_change.c:348 +#: src/song_change/song_change.c:369 src/song_change/song_change.c:390 msgid "Command:" msgstr "Команда:" -#: src/song_change/song_change.c:342 +#: src/song_change/song_change.c:340 msgid "Command to run toward the end of a song." msgstr "Команда, запускаемая в конце песни." -#: src/song_change/song_change.c:362 +#: src/song_change/song_change.c:360 msgid "Command to run when Audacious reaches the end of the playlist." msgstr "Команда, запускаемая когда Audacious достигает конца списка." -#: src/song_change/song_change.c:383 +#: src/song_change/song_change.c:381 msgid "" "Command to run when title changes for a song (i.e. network streams titles)." msgstr "" "Команда, запускаемая, когда меняется только название (напр., в Интернет-" "потоках)." -#: src/song_change/song_change.c:404 +#: src/song_change/song_change.c:402 #, c-format msgid "" "You can use the following format strings which\n" @@ -4621,7 +5764,7 @@ "%%t: Позиция песни в списке (%%02d)\n" "%%p: Играет сейчас (1 или 0)" -#: src/song_change/song_change.c:429 +#: src/song_change/song_change.c:427 msgid "" "Parameters passed to the shell should be encapsulated in " "quotes. Doing otherwise is a security risk." @@ -4629,7 +5772,7 @@ "Параметры, передаваемые оболочке, должны быть заключены в " "кавычки. В противном случае возможны проблемы с безопасностью." -#: src/spectrum/spectrum.c:90 +#: src/spectrum/spectrum.c:89 msgid "Spectrum Analyzer" msgstr "" @@ -4641,11 +5784,11 @@ msgid "The orientation of the tray" msgstr "Положение системного лотка" -#: src/statusicon/si_ui.c:622 +#: src/statusicon/si_ui.c:620 msgid "About Status Icon Plugin" msgstr "О модуле Status Icon" -#: src/statusicon/si_ui.c:624 +#: src/statusicon/si_ui.c:622 msgid "" "\n" "written by Giacomo Lozito < james@develia.org >\n" @@ -4659,39 +5802,39 @@ "Этот модуль показывает значок программы\n" "в системном лотке.\n" -#: src/statusicon/si_ui.c:696 +#: src/statusicon/si_ui.c:694 msgid "Status Icon Plugin - Preferences" msgstr "Настройка модуля Status Icon" -#: src/statusicon/si_ui.c:707 +#: src/statusicon/si_ui.c:705 msgid "Right-Click Menu" msgstr "Меню вызываемое правой кнопкой мыши" -#: src/statusicon/si_ui.c:712 +#: src/statusicon/si_ui.c:710 msgid "Audacious standard menu" msgstr "Стандартное меню Audacious" -#: src/statusicon/si_ui.c:717 +#: src/statusicon/si_ui.c:715 msgid "Small playback menu #1" msgstr "Уменьшенное меню #1" -#: src/statusicon/si_ui.c:722 +#: src/statusicon/si_ui.c:720 msgid "Small playback menu #2" msgstr "Уменьшенное меню #2" -#: src/statusicon/si_ui.c:745 +#: src/statusicon/si_ui.c:743 msgid "Mouse Scroll Action" msgstr "Реакция на колёсико прокрутки" -#: src/statusicon/si_ui.c:750 +#: src/statusicon/si_ui.c:748 msgid "Change volume" msgstr "Изменить громкость" -#: src/statusicon/si_ui.c:755 +#: src/statusicon/si_ui.c:753 msgid "Change playing song" msgstr "Сменить текущую дорожку" -#: src/stereo_plugin/stereo.c:26 +#: src/stereo_plugin/stereo.c:25 msgid "" "Extra Stereo Plugin\n" "\n" @@ -4701,23 +5844,19 @@ "\n" "Johan Levin 1999." -#: src/stereo_plugin/stereo.c:52 +#: src/stereo_plugin/stereo.c:51 msgid "About Extra Stereo Plugin" msgstr "О модуле Extra Stereo" -#: src/stereo_plugin/stereo.c:93 +#: src/stereo_plugin/stereo.c:92 msgid "Configure Extra Stereo" msgstr "Настроить Extra Stereo" -#: src/stereo_plugin/stereo.c:95 -msgid "Effect intensity:" -msgstr "Интенсивность эффекта:" +#: src/sun/about.c:33 +msgid "About the Sun Driver" +msgstr "О драйвере Sun" #: src/sun/about.c:34 -msgid "About the Sun Driver" -msgstr "О драйвере Sun" - -#: src/sun/about.c:35 msgid "" "XMMS BSD Sun Driver\n" "\n" @@ -4729,19 +5868,19 @@ "Copyright (c) 2001 CubeSoft Communications, Inc.\n" "Поддержка: .\n" -#: src/sun/configure.c:201 +#: src/sun/configure.c:199 msgid "Audio control device:" msgstr "Устройство управления звуком:" -#: src/sun/configure.c:350 +#: src/sun/configure.c:348 msgid "Volume controls device:" msgstr "Устройство управления громкостью:" -#: src/sun/configure.c:363 +#: src/sun/configure.c:361 msgid "XMMS uses mixer exclusively." msgstr "XMMS использует микшер эксклюзивно." -#: src/sun/configure.c:538 +#: src/sun/configure.c:536 msgid "Sun driver configuration" msgstr "Настройка драйвера Sun" @@ -4769,7 +5908,7 @@ msgid "TiMidity Configuration File" msgstr "Конфигурационный файл TiMidity" -#: src/timidity/xmms-timidity.c:118 +#: src/timidity/xmms-timidity.c:115 msgid "" "TiMidity Plugin\n" "http://libtimidity.sourceforge.net\n" @@ -4779,20 +5918,20 @@ "http://libtimidity.sourceforge.net\n" "Konstantin Korikov" -#: src/timidity/xmms-timidity.c:119 +#: src/timidity/xmms-timidity.c:116 #, c-format msgid "TiMidity Plugin %s" msgstr "Модуль TiMidity %s" -#: src/timidity/xmms-timidity.c:336 +#: src/timidity/xmms-timidity.c:333 msgid "Couldn't load MIDI file" msgstr "Невозможно загрузить MIDI файл" -#: src/tonegen/tonegen.c:56 +#: src/tonegen/tonegen.c:55 msgid "About Tone Generator" msgstr "О генераторе сигналов" -#: src/tonegen/tonegen.c:58 +#: src/tonegen/tonegen.c:57 msgid "" "Sinus tone generator by Haavard Kvaalen \n" "Modified by Daniel J. Peng \n" @@ -4806,86 +5945,86 @@ "Для использования добавьте URL: tone://частота1;частота2;частота3;...\n" "Например tone://2000;2005 для воспроизведения сигналов 2000 Гц и 2005 Гц" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 #, c-format msgid "%s %.1f Hz" msgstr "%s %.1f Гц" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 msgid "Tone Generator: " msgstr "Генератор сигналов: " -#: src/tta/libtta.c:130 +#: src/tta/libtta.c:127 msgid "Can't open file\n" msgstr "Не могу открыть файл\n" +#: src/tta/libtta.c:130 +msgid "Not supported file format\n" +msgstr "Файл неподдерживаемого формата\n" + #: src/tta/libtta.c:133 -msgid "Not supported file format\n" -msgstr "Файл неподдерживаемого формата\n" +msgid "File is corrupted\n" +msgstr "Файл повреждён\n" #: src/tta/libtta.c:136 -msgid "File is corrupted\n" -msgstr "Файл повреждён\n" +msgid "Can't read from file\n" +msgstr "Не могу прочитать файл\n" #: src/tta/libtta.c:139 -msgid "Can't read from file\n" -msgstr "Не могу прочитать файл\n" +msgid "Insufficient memory available\n" +msgstr "Не хватает памяти\n" #: src/tta/libtta.c:142 -msgid "Insufficient memory available\n" -msgstr "Не хватает памяти\n" +msgid "Output plugin error\n" +msgstr "Ошибка модуля вывода\n" #: src/tta/libtta.c:145 -msgid "Output plugin error\n" -msgstr "Ошибка модуля вывода\n" - -#: src/tta/libtta.c:148 msgid "Unknown error\n" msgstr "Неизвестная ошибка\n" -#: src/tta/libtta.c:152 +#: src/tta/libtta.c:149 msgid "TTA Decoder Error" msgstr "Ошибка декодера TTA" -#: src/tta/libtta.c:261 +#: src/tta/libtta.c:258 msgid "TTA input plugin " msgstr "Модуль поддержки TTA" -#: src/tta/libtta.c:262 +#: src/tta/libtta.c:259 msgid "" " for BMP\n" "Copyright (c) 2004 True Audio Software\n" msgstr "" -#: src/tta/libtta.c:265 +#: src/tta/libtta.c:262 msgid "About True Audio Plugin" msgstr "О модуле поддержки True Audio" -#: src/tta/libtta.c:316 +#: src/tta/libtta.c:313 msgid "ID3 Tag:" msgstr "Тег ID3:" -#: src/tta/libtta.c:378 src/wavpack/ui.cxx:234 +#: src/tta/libtta.c:375 src/wavpack/ui.cxx:232 msgid "Track number:" msgstr "Номер дорожки:" -#: src/vorbis/configure.c:84 +#: src/vorbis/configure.c:82 msgid "Ogg Vorbis Audio Plugin Configuration" msgstr "Изменение настроек модуля Ogg Vorbis" -#: src/vorbis/configure.c:94 +#: src/vorbis/configure.c:92 msgid "Ogg Vorbis Tags:" msgstr "Теги Ogg Vorbis:" -#: src/vorbis/configure.c:115 +#: src/vorbis/configure.c:113 msgid "Title format:" msgstr "Формат названия:" -#: src/vorbis/vorbis.c:681 +#: src/vorbis/vorbis.c:677 msgid "About Ogg Vorbis Audio Plugin" msgstr "О модуле поддержки Ogg Vorbis" -#: src/vorbis/vorbis.c:687 +#: src/vorbis/vorbis.c:683 #, fuzzy msgid "" "Ogg Vorbis Plugin by the Xiph.org Foundation\n" @@ -4919,11 +6058,11 @@ "\n" "Посетите фонд Xiph.org по адресу http://www.xiph.org/\n" -#: src/vtx/about.c:23 +#: src/vtx/about.c:17 msgid "About Vortex Player" msgstr "" -#: src/vtx/about.c:25 +#: src/vtx/about.c:19 msgid "" "Vortex file format player by Sashnov Alexander \n" "Founded on original source in_vtx.dll by Roman Sherbakov " msgstr "" -#: src/wavpack/ui.cxx:52 +#: src/wavpack/ui.cxx:50 #, c-format msgid "Wavpack Decoder Plugin %s" msgstr "Модуль декодирования Wavpack %s" -#: src/wavpack/ui.cxx:53 +#: src/wavpack/ui.cxx:51 msgid "" "Copyright (c) 2006 William Pitcock \n" "\n" @@ -4948,90 +6087,90 @@ "Visit the Wavpack site at http://www.wavpack.com/\n" msgstr "" -#: src/wavpack/ui.cxx:165 +#: src/wavpack/ui.cxx:163 msgid "Ape2 Tag" msgstr "" -#: src/wavpack/ui.cxx:288 +#: src/wavpack/ui.cxx:286 msgid "Wavpack Info:" msgstr "" +#: src/wavpack/ui.cxx:379 +#, c-format +msgid "version %d" +msgstr "версия: %d" + +#: src/wavpack/ui.cxx:380 +#, c-format +msgid "average bitrate: %6.1f kbps" +msgstr "" + #: src/wavpack/ui.cxx:381 #, c-format -msgid "version %d" -msgstr "версия: %d" +msgid "samplerate: %d Hz" +msgstr "частота: %d Гц" #: src/wavpack/ui.cxx:382 #, c-format -msgid "average bitrate: %6.1f kbps" -msgstr "" +msgid "bits per sample: %d" +msgstr "бит / сэмпл: %d" #: src/wavpack/ui.cxx:383 #, c-format -msgid "samplerate: %d Hz" -msgstr "частота: %d Гц" +msgid "channels: %d" +msgstr "каналы: %d" #: src/wavpack/ui.cxx:384 #, c-format -msgid "bits per sample: %d" -msgstr "бит / сэмпл: %d" +msgid "length: %d:%.2d" +msgstr "длительность: %d:%.2d" #: src/wavpack/ui.cxx:385 #, c-format -msgid "channels: %d" -msgstr "каналы: %d" - -#: src/wavpack/ui.cxx:386 -#, c-format -msgid "length: %d:%.2d" -msgstr "длительность: %d:%.2d" - -#: src/wavpack/ui.cxx:387 -#, c-format msgid "file size: %d Bytes" msgstr "размер файла: %d Байт" -#: src/wavpack/ui.cxx:394 +#: src/wavpack/ui.cxx:392 msgid "Title Peak: ?" msgstr "Пик дорожки: ?" -#: src/wavpack/ui.cxx:395 +#: src/wavpack/ui.cxx:393 msgid "Album Peak: ?" msgstr "Пик альбома: ?" -#: src/wavpack/ui.cxx:396 +#: src/wavpack/ui.cxx:394 msgid "Title Gain: ?" msgstr "Усиление дорожки: ?" -#: src/wavpack/ui.cxx:397 +#: src/wavpack/ui.cxx:395 msgid "Album Gain: ?" msgstr "Усиление альбома: ?" -#: src/wavpack/ui.cxx:471 +#: src/wavpack/ui.cxx:469 msgid "Wavpack Configuration" msgstr "Настройка Wavpack" -#: src/wavpack/ui.cxx:484 +#: src/wavpack/ui.cxx:482 msgid "General Plugin Settings:" msgstr "Основные настройки модуля" -#: src/wavpack/ui.cxx:502 +#: src/wavpack/ui.cxx:500 msgid "ReplayGain Settings:" msgstr "Настройки ReplayGain:" -#: src/wavpack/ui.cxx:520 +#: src/wavpack/ui.cxx:518 msgid "ReplayGain Type:" msgstr "Тип ReplayGain:" -#: src/wavpack/ui.cxx:531 +#: src/wavpack/ui.cxx:529 msgid "use Track Gain/Peak" msgstr "использовать Gain/Peak Дорожки" -#: src/wavpack/ui.cxx:539 +#: src/wavpack/ui.cxx:537 msgid "use Album Gain/Peak" msgstr "использовать Gain/Peak Альбома" -#: src/wma/wma.c:123 +#: src/wma/wma.c:120 msgid "" "Adapted for use in Audacious by Tony Vroon (chainsaw@gentoo.org) from\n" "the BEEP-WMA plugin which is Copyright (C) 2004,2005 Mokrushin I.V. aka " @@ -5102,14 +6241,6 @@ #~ msgstr "О модуле поддержки WAV" #, fuzzy -#~ msgid "Play/Pause:" -#~ msgstr "Воспроизведение->Приостановить" - -#, fuzzy -#~ msgid "File Info" -#~ msgstr "Инфрмация о файле - %s" - -#, fuzzy #~ msgid "Couldn't open file!" #~ msgstr "Невозможно загрузить MIDI файл" @@ -5134,9 +6265,6 @@ #~ msgid "%d Hz" #~ msgstr "%d Гц" -#~ msgid "Blues" -#~ msgstr "Блюз" - #~ msgid "Classic Rock" #~ msgstr "Классический рок" @@ -5203,9 +6331,6 @@ #~ msgid "Death Metal" #~ msgstr "Дэз метал" -#~ msgid "Pranks" -#~ msgstr "Шалость" - #~ msgid "Soundtrack" #~ msgstr "Звуковая дорожка" @@ -5257,9 +6382,6 @@ #~ msgid "AlternRock" #~ msgstr "Альтернативный рок" -#~ msgid "Bass" -#~ msgstr "Бас" - #~ msgid "Soul" #~ msgstr "Душа" @@ -5341,9 +6463,6 @@ #~ msgid "Rave" #~ msgstr "Рэйв" -#~ msgid "Showtunes" -#~ msgstr "Импровизация" - #~ msgid "Trailer" #~ msgstr "Анонс" @@ -5362,9 +6481,6 @@ #~ msgid "Polka" #~ msgstr "Полька" -#~ msgid "Retro" -#~ msgstr "Ретро" - #~ msgid "Musical" #~ msgstr "Музыкальное" @@ -5392,9 +6508,6 @@ #~ msgid "Bebob" #~ msgstr "Бибоп" -#~ msgid "Latin" -#~ msgstr "Латиноамериканская" - #~ msgid "Revival" #~ msgstr "Возрождение" @@ -5464,9 +6577,6 @@ #~ msgid "Porn Groove" #~ msgstr "Порн грув" -#~ msgid "Satire" -#~ msgstr "Сатира" - #~ msgid "Slow Jam" #~ msgstr "Медленный джэм" @@ -5539,9 +6649,6 @@ #~ msgid "Polsk Punk" #~ msgstr "Польский панк" -#~ msgid "Beat" -#~ msgstr "Бит" - #~ msgid "Christian Gangsta Rap" #~ msgstr "Черный христианский рэп" @@ -5600,9 +6707,6 @@ #~ msgid " Ogg Vorbis Tag " #~ msgstr " Тег Ogg Vorbis " -#~ msgid "Date:" -#~ msgstr "Дата:" - #~ msgid "Description:" #~ msgstr "Описание:" @@ -5612,15 +6716,9 @@ #~ msgid "ISRC number:" #~ msgstr "Номер ISRC:" -#~ msgid "Organization:" -#~ msgstr "Организация:" - #~ msgid " Ogg Vorbis ReplayGain " #~ msgstr " Ogg Vorbis ReplayGain " -#~ msgid "Track gain:" -#~ msgstr "Усиление дорожки:" - #~ msgid "Track peak:" #~ msgstr "Пик дорожки:" @@ -5660,9 +6758,6 @@ #~ msgid "%d Bytes" #~ msgstr "%d байт" -#~ msgid "%s - Audacious" -#~ msgstr "%s - Audacious" - #~ msgid "Use software volume control" #~ msgstr "Использовать программный регулятор громкости" @@ -5699,10 +6794,6 @@ #~ msgstr "11000 Гц" #, fuzzy -#~ msgid "16000" -#~ msgstr "11000 Гц" - -#, fuzzy #~ msgid "24000" #~ msgstr "22000 Гц" @@ -5764,13 +6855,6 @@ #~ "Тестирование цифрового считывания неудачно: %s\n" #~ "\n" -#~ msgid "" -#~ "Failed to check directory %s\n" -#~ "Error: %s" -#~ msgstr "" -#~ "Не удалось проверить каталог %s\n" -#~ "Ошибка: %s" - #~ msgid "Error: %s exist, but is not a directory" #~ msgstr "Ошибка: %s существует, но не является каталогом" @@ -5801,9 +6885,6 @@ #~ msgid "Check drive..." #~ msgstr "Проверить привод" -#~ msgid "Remove drive" -#~ msgstr "Удалить привод" - #~ msgid "CD Audio Player Configuration" #~ msgstr "Настройка проигрывателя компакт дисков" @@ -5822,9 +6903,6 @@ #~ msgid "Get server list" #~ msgstr "Получить список серверов" -#~ msgid "Show network window" -#~ msgstr "Показать окно сети" - #~ msgid "CDDB server:" #~ msgstr "Cервер CDDB:" @@ -6159,12 +7237,6 @@ #~ msgid "Noise shaping" #~ msgstr "Подавление шума" -#~ msgid "low" -#~ msgstr "низкое" - -#~ msgid "medium" -#~ msgstr "среднее" - #~ msgid "high" #~ msgstr "высокое" diff -r c40585c57877 -r 7fc2c317d190 po/sk.po --- a/po/sk.po Thu Jul 03 17:23:34 2008 +0300 +++ b/po/sk.po Thu Jul 03 17:37:11 2008 +0300 @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: audacious-plugins\n" -"Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" -"POT-Creation-Date: 2008-03-30 17:25+0200\n" +"Report-Msgid-Bugs-To: http://bugzilla.atheme.org/\n" +"POT-Creation-Date: 2008-06-21 08:27+0300\n" "PO-Revision-Date: 2007-03-14 02:18+0100\n" "Last-Translator: Andrej Herceg \n" "Language-Team: \n" @@ -16,50 +16,50 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" -#: src/aac/libmp4.c:286 +#: src/aac/libmp4.c:283 msgid "Using libfaad2-" msgstr "" -#: src/aac/libmp4.c:287 +#: src/aac/libmp4.c:284 msgid "" " for decoding.\n" "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n" "Copyright (c) 2005-2006 Audacious team" msgstr "" -#: src/aac/libmp4.c:291 +#: src/aac/libmp4.c:288 #, fuzzy msgid "About MP4 AAC player plugin" msgstr "O module Flac" -#: src/aac/libmp4.c:293 src/adplug/adplug-xmms.cc:182 -#: src/adplug/adplug-xmms.cc:265 src/adplug/adplug-xmms.cc:526 -#: src/alac/plugin.c:77 src/arts/arts.c:26 src/arts/configure.c:90 -#: src/audiocompress/audacious-glue.c:102 -#: src/audiocompress/audacious-glue.c:552 src/cdaudio-ng/configure.c:228 -#: src/console/Audacious_Driver.cxx:449 src/demac/plugin.c:393 -#: src/echo_plugin/gui.c:26 src/echo_plugin/gui.c:137 src/esd/about.c:49 -#: src/filewriter/filewriter.c:183 src/jack/configure.c:141 -#: src/jack/jack.c:456 src/madplug/plugin.c:542 src/madplug/plugin.c:566 -#: src/metronom/metronom.c:88 src/modplug/gui/main.cxx:49 -#: src/musepack/libmpc.cxx:232 src/null/null.c:67 src/null/null.c:110 -#: src/OSS4/about.c:59 src/OSS/about.c:54 src/paranormal-ng/plugin.c:283 -#: src/paranormal/plugin.c:291 src/scrobbler/gtkstuff.c:25 -#: src/sndfile/plugin.c:565 src/statusicon/si_ui.c:628 -#: src/stereo_plugin/stereo.c:53 src/stereo_plugin/stereo.c:116 -#: src/sun/about.c:38 src/sun/configure.c:559 src/timidity/interface.c:222 -#: src/timidity/xmms-timidity.c:120 src/tonegen/tonegen.c:62 -#: src/tta/libtta.c:153 src/tta/libtta.c:267 src/tta/libtta.c:402 -#: src/vorbis/vorbis.c:700 src/vtx/about.c:32 src/vtx/info.c:43 -#: src/wavpack/ui.cxx:56 src/wavpack/ui.cxx:556 +#: src/aac/libmp4.c:290 src/adplug/adplug-xmms.cc:180 +#: src/adplug/adplug-xmms.cc:263 src/adplug/adplug-xmms.cc:524 +#: src/alac/plugin.c:74 src/arts/arts.c:25 src/arts/configure.c:90 +#: src/audiocompress/audacious-glue.c:110 +#: src/audiocompress/audacious-glue.c:560 src/cdaudio-ng/configure.c:242 +#: src/console/Audacious_Driver.cxx:447 src/crystalizer/crystalizer.c:113 +#: src/demac/plugin.c:364 src/echo_plugin/gui.c:24 src/echo_plugin/gui.c:135 +#: src/esd/about.c:48 src/filewriter/filewriter.c:183 src/jack/configure.c:140 +#: src/jack/jack.c:454 src/madplug/plugin.c:679 src/madplug/plugin.c:703 +#: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:52 +#: src/musepack/libmpc.cxx:228 src/null/null.c:64 src/null/null.c:107 +#: src/OSS4/OSS4.c:55 src/OSS/OSS.c:52 src/paranormal-ng/plugin.c:282 +#: src/paranormal/plugin.c:290 src/scrobbler/gtkstuff.c:22 +#: src/sndfile/plugin.c:571 src/statusicon/si_ui.c:626 +#: src/stereo_plugin/stereo.c:52 src/stereo_plugin/stereo.c:115 +#: src/sun/about.c:37 src/sun/configure.c:557 src/timidity/interface.c:222 +#: src/timidity/xmms-timidity.c:117 src/tonegen/tonegen.c:61 +#: src/tta/libtta.c:150 src/tta/libtta.c:264 src/tta/libtta.c:399 +#: src/vorbis/vorbis.c:696 src/vtx/about.c:26 src/vtx/info.c:38 +#: src/wavpack/ui.cxx:54 src/wavpack/ui.cxx:554 msgid "Ok" msgstr "OK" -#: src/adplug/adplug-xmms.cc:171 +#: src/adplug/adplug-xmms.cc:169 msgid "About " msgstr "O " -#: src/adplug/adplug-xmms.cc:175 +#: src/adplug/adplug-xmms.cc:173 msgid "" "\n" "Copyright (C) 2002, 2003 Simon Peter \n" @@ -80,212 +80,212 @@ "Modul používa knižnicu AdPlug, copyright (C) Simon Peter a iný.\n" "Zostavené s AdPlug knižnicou verzie: " -#: src/adplug/adplug-xmms.cc:256 +#: src/adplug/adplug-xmms.cc:254 #, fuzzy msgid "AdPlug :: Configuration" msgstr "AMIDI-Plug - nastavenie" -#: src/adplug/adplug-xmms.cc:275 src/alarm/interface.c:1398 +#: src/adplug/adplug-xmms.cc:273 src/alarm/interface.c:1398 #: src/alsa/configure.c:389 src/arts/configure.c:91 -#: src/audiocompress/audacious-glue.c:557 src/cdaudio-ng/configure.c:232 -#: src/echo_plugin/gui.c:145 src/jack/configure.c:148 -#: src/modplug/gui/interface.cxx:714 src/modplug/gui/modplug.glade:1668 -#: src/musepack/libmpc.cxx:237 src/musepack/libmpc.cxx:557 src/null/null.c:111 -#: src/sid/xmms-sid.glade:3080 src/sid/xs_interface.c:1250 -#: src/stereo_plugin/stereo.c:125 src/sun/configure.c:567 -#: src/timidity/interface.c:230 src/wavpack/ui.cxx:280 src/wavpack/ui.cxx:563 +#: src/audiocompress/audacious-glue.c:565 src/cdaudio-ng/configure.c:246 +#: src/crystalizer/crystalizer.c:122 src/echo_plugin/gui.c:143 +#: src/jack/configure.c:147 src/modplug/gui/interface.cxx:714 +#: src/modplug/gui/modplug.glade:1668 src/musepack/libmpc.cxx:233 +#: src/musepack/libmpc.cxx:553 src/null/null.c:108 +#: src/stereo_plugin/stereo.c:124 src/sun/configure.c:565 +#: src/timidity/interface.c:230 src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561 msgid "Cancel" msgstr "Zrušiť" -#: src/adplug/adplug-xmms.cc:291 src/console/Audacious_Config.cxx:145 -#: src/madplug/configure.c:290 src/modplug/gui/interface.cxx:628 +#: src/adplug/adplug-xmms.cc:289 src/console/Audacious_Config.cxx:144 +#: src/madplug/configure.c:289 src/modplug/gui/interface.cxx:628 #: src/modplug/gui/interface.cxx:887 src/modplug/gui/modplug.glade:1404 #: src/modplug/gui/modplug.glade:1804 msgid "General" msgstr "Všeobecné" -#: src/adplug/adplug-xmms.cc:303 +#: src/adplug/adplug-xmms.cc:301 #, fuzzy msgid "Sound quality" msgstr "Zvukový klip" -#: src/adplug/adplug-xmms.cc:308 src/modplug/gui/interface.cxx:187 +#: src/adplug/adplug-xmms.cc:306 src/modplug/gui/interface.cxx:187 #: src/modplug/gui/modplug.glade:113 msgid "Resolution" msgstr "Rozlíšenie" -#: src/adplug/adplug-xmms.cc:310 +#: src/adplug/adplug-xmms.cc:308 #, fuzzy msgid "8bit" msgstr "8 bitov" -#: src/adplug/adplug-xmms.cc:315 +#: src/adplug/adplug-xmms.cc:313 #, fuzzy msgid "16bit" msgstr "16 bitov" -#: src/adplug/adplug-xmms.cc:323 src/modplug/gui/interface.cxx:218 +#: src/adplug/adplug-xmms.cc:321 src/modplug/gui/interface.cxx:218 #: src/modplug/gui/modplug.glade:199 src/timidity/interface.c:148 msgid "Channels" msgstr "Počet kanálov" -#: src/adplug/adplug-xmms.cc:325 src/filewriter/mp3.c:900 -#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:288 +#: src/adplug/adplug-xmms.cc:323 src/filewriter/mp3.c:900 +#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:300 #: src/timidity/interface.c:165 msgid "Mono" msgstr "Mono" -#: src/adplug/adplug-xmms.cc:330 src/filewriter/mp3.c:895 +#: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:895 #: src/modplug/gui/interface.cxx:204 src/modplug/gui/modplug.glade:159 -#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:295 +#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:307 #: src/timidity/interface.c:173 msgid "Stereo" msgstr "Stereo" -#: src/adplug/adplug-xmms.cc:334 +#: src/adplug/adplug-xmms.cc:332 msgid "" "Setting stereo is not recommended, unless you need to. This won't add any " "stereo effects to the sound - OPL2 is just mono - but eats up more CPU power!" msgstr "" -#: src/adplug/adplug-xmms.cc:342 +#: src/adplug/adplug-xmms.cc:340 msgid "Frequency" msgstr "" -#: src/adplug/adplug-xmms.cc:378 src/adplug/adplug-xmms.cc:582 -#: src/console/Audacious_Config.cxx:147 +#: src/adplug/adplug-xmms.cc:376 src/adplug/adplug-xmms.cc:580 +#: src/console/Audacious_Config.cxx:146 src/skins/ui_manager.c:175 msgid "Playback" msgstr "Prehrať" -#: src/adplug/adplug-xmms.cc:382 +#: src/adplug/adplug-xmms.cc:380 msgid "Detect songend" msgstr "" -#: src/adplug/adplug-xmms.cc:386 +#: src/adplug/adplug-xmms.cc:384 msgid "" "If enabled, XMMS will detect a song's ending, stop it and advance in the " "playlist. If disabled, XMMS won't take notice of a song's ending and loop it " "all over again and again." msgstr "" -#: src/adplug/adplug-xmms.cc:397 +#: src/adplug/adplug-xmms.cc:395 #, fuzzy msgid "Formats" msgstr "Formát:" -#: src/adplug/adplug-xmms.cc:404 +#: src/adplug/adplug-xmms.cc:402 #, fuzzy msgid "Format selection" msgstr "Výber koncového zariadenia" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 #, fuzzy msgid "Format" msgstr "Formát:" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Extension" msgstr "" -#: src/adplug/adplug-xmms.cc:447 +#: src/adplug/adplug-xmms.cc:445 msgid "" "Selected file types will be recognized and played back by this plugin. " "Deselected types will be ignored to make room for other plugins to play " "these files." msgstr "" -#: src/adplug/adplug-xmms.cc:533 +#: src/adplug/adplug-xmms.cc:531 msgid "AdPlug :: File Info" msgstr "" -#: src/adplug/adplug-xmms.cc:555 src/amidi-plug/i_configure-fluidsynth.c:448 +#: src/adplug/adplug-xmms.cc:553 src/amidi-plug/i_configure-fluidsynth.c:448 msgid "Filename" msgstr "Meno súboru" -#: src/adplug/adplug-xmms.cc:559 +#: src/adplug/adplug-xmms.cc:557 src/skins/ui_playlist.c:470 #, fuzzy msgid "Title: " msgstr "Názov:" +#: src/adplug/adplug-xmms.cc:558 +msgid "Author: " +msgstr "" + +#: src/adplug/adplug-xmms.cc:559 +#, fuzzy +msgid "File Type: " +msgstr "Veľkosť súboru:" + #: src/adplug/adplug-xmms.cc:560 -msgid "Author: " +msgid "Subsongs: " msgstr "" #: src/adplug/adplug-xmms.cc:561 #, fuzzy -msgid "File Type: " -msgstr "Veľkosť súboru:" - -#: src/adplug/adplug-xmms.cc:562 -msgid "Subsongs: " -msgstr "" - -#: src/adplug/adplug-xmms.cc:563 -#, fuzzy msgid "Instruments: " msgstr "Inštrumentálna" -#: src/adplug/adplug-xmms.cc:568 +#: src/adplug/adplug-xmms.cc:566 msgid "Orders: " msgstr "" -#: src/adplug/adplug-xmms.cc:569 +#: src/adplug/adplug-xmms.cc:567 msgid "Patterns: " msgstr "" -#: src/adplug/adplug-xmms.cc:573 +#: src/adplug/adplug-xmms.cc:571 #, fuzzy msgid "Song" msgstr "Swing" -#: src/adplug/adplug-xmms.cc:599 +#: src/adplug/adplug-xmms.cc:597 #, fuzzy msgid "Instrument name" msgstr "Inštrumentálna" -#: src/adplug/adplug-xmms.cc:641 +#: src/adplug/adplug-xmms.cc:639 #, fuzzy msgid "Song message" msgstr "Zmena skladby %s" -#: src/adplug/adplug-xmms.cc:663 +#: src/adplug/adplug-xmms.cc:661 #, fuzzy msgid "Subsong selection" msgstr "Výber koncového zariadenia" -#: src/adplug/adplug-xmms.cc:727 +#: src/adplug/adplug-xmms.cc:725 msgid "Order: " msgstr "" +#: src/adplug/adplug-xmms.cc:726 +msgid "Pattern: " +msgstr "" + #: src/adplug/adplug-xmms.cc:728 -msgid "Pattern: " -msgstr "" - -#: src/adplug/adplug-xmms.cc:730 msgid "Row: " msgstr "" -#: src/adplug/adplug-xmms.cc:731 +#: src/adplug/adplug-xmms.cc:729 #, fuzzy msgid "Speed: " msgstr "Hovorené slovo" -#: src/adplug/adplug-xmms.cc:732 +#: src/adplug/adplug-xmms.cc:730 #, fuzzy msgid "Timer: " msgstr "Čas. pomer:" -#: src/adplug/adplug-xmms.cc:733 src/console/Audacious_Config.cxx:225 -#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:341 +#: src/adplug/adplug-xmms.cc:731 src/console/Audacious_Config.cxx:224 +#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:353 msgid "Hz" msgstr "Hz" -#: src/alac/plugin.c:74 +#: src/alac/plugin.c:71 #, fuzzy msgid "About Apple Lossless Audio Plugin" msgstr "O module Ogg Vorbis Audio" -#: src/alac/plugin.c:75 +#: src/alac/plugin.c:72 msgid "" "Copyright (c) 2006 Audacious team\n" "Portions (c) 2005-2006 David Hammerton " @@ -313,8 +313,8 @@ #: src/alarm/interface.c:71 src/lirc/about.c:115 #: src/modplug/gui/interface.cxx:971 src/modplug/gui/modplug.glade:2030 -#: src/sid/xmms-sid.glade:3643 src/sid/xs_about.c:214 -#: src/sid/xs_interface.c:1740 +#: src/sid/xmms-sid.glade:3837 src/sid/xs_about.c:214 +#: src/sid/xs_interface.c:1824 msgid "Close" msgstr "Zatvoriť" @@ -326,13 +326,12 @@ msgid "This is your wakeup call." msgstr "" -#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:46 +#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:45 #: src/alsa/configure.c:383 src/cdaudio-ng/cdaudio-ng.c:247 -#: src/flacng/plugin.c:706 src/gnomeshortcuts/gnomeshortcuts.c:311 -#: src/hotkey/gui.c:671 src/modplug/gui/interface.cxx:702 -#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:738 -#: src/scrobbler/gtkstuff.c:45 src/sid/xmms-sid.glade:3066 -#: src/sid/xs_interface.c:1243 +#: src/flacng/plugin.c:705 src/gnomeshortcuts/gnomeshortcuts.c:310 +#: src/hotkey/gui.c:670 src/modplug/gui/interface.cxx:702 +#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:736 +#: src/scrobbler/gtkstuff.c:42 src/skins/plugin.c:130 msgid "OK" msgstr "OK" @@ -405,7 +404,8 @@ #: src/alarm/interface.c:612 src/alarm/interface.c:660 #: src/alarm/interface.c:708 src/alarm/interface.c:756 #: src/alarm/interface.c:804 src/alarm/interface.c:852 -#: src/alarm/interface.c:900 src/OSS4/configure.c:138 src/OSS/configure.c:169 +#: src/alarm/interface.c:900 src/OSS4/configure.c:136 src/OSS/configure.c:168 +#: src/skins/ui_manager.c:447 src/skins/ui_manager.c:468 msgid "Default" msgstr "Štandardné" @@ -453,9 +453,9 @@ msgstr "Rozsvietenie:" #: src/alarm/interface.c:1087 src/sid/xmms-sid.glade:2007 -#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2676 -#: src/sid/xs_interface.c:908 src/sid/xs_interface.c:962 -#: src/sid/xs_interface.c:1122 +#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2746 +#: src/sid/xs_interface.c:920 src/sid/xs_interface.c:974 +#: src/sid/xs_interface.c:1154 #, fuzzy msgid "seconds" msgstr "sekúnd" @@ -516,7 +516,7 @@ msgid "Use reminder" msgstr "užívateľom definované" -#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:377 +#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:376 #, fuzzy msgid "Options" msgstr "Nastavenia:" @@ -580,7 +580,7 @@ " toggle button if you want it to be shown.\n" msgstr "" -#: src/alarm/interface.c:1366 +#: src/alarm/interface.c:1366 src/skins/ui_manager.c:386 msgid "Help" msgstr "" @@ -593,11 +593,11 @@ msgid "Thankyou" msgstr "Tango" -#: src/alsa/about.c:30 +#: src/alsa/about.c:29 msgid "About ALSA Driver" msgstr "O ovládači ALSA" -#: src/alsa/about.c:31 +#: src/alsa/about.c:30 msgid "" "Audacious ALSA Driver\n" "\n" @@ -646,8 +646,8 @@ msgid "ALSA Driver configuration" msgstr "Nastavenie ovládača ALSA" -#: src/alsa/configure.c:274 src/OSS4/configure.c:186 src/OSS/configure.c:217 -#: src/sun/configure.c:183 +#: src/alsa/configure.c:274 src/OSS4/configure.c:184 src/OSS/configure.c:216 +#: src/sun/configure.c:181 msgid "Audio device:" msgstr "Zvukové zariadenie:" @@ -659,7 +659,7 @@ msgid "Mixer card:" msgstr "Karta s mixérom:" -#: src/alsa/configure.c:313 src/OSS/configure.c:260 src/sun/configure.c:220 +#: src/alsa/configure.c:313 src/OSS/configure.c:259 src/sun/configure.c:218 msgid "Mixer device:" msgstr "Zariadenie mixéru:" @@ -1387,8 +1387,8 @@ "backend" msgstr "štd." -#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3465 -#: src/sid/xs_interface.c:1684 +#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3659 +#: src/sid/xs_interface.c:1768 msgid "Name:" msgstr "Meno:" @@ -1493,19 +1493,19 @@ msgid "None" msgstr "Žiadne" -#: src/aosd/aosd_trigger.c:75 +#: src/aosd/aosd_trigger.c:74 msgid "Playback Start" msgstr "Začiatok prehrávania" -#: src/aosd/aosd_trigger.c:76 +#: src/aosd/aosd_trigger.c:75 msgid "Triggers OSD when a playlist entry is played." msgstr "OSD sa zobrazí pri zahájení prehrávania položky zo zoznamu skladieb." -#: src/aosd/aosd_trigger.c:80 +#: src/aosd/aosd_trigger.c:79 msgid "Title Change" msgstr "Zmena názvu" -#: src/aosd/aosd_trigger.c:81 +#: src/aosd/aosd_trigger.c:80 #, fuzzy msgid "" "Triggers OSD when, during playback, the song title changes but the filename " @@ -1516,30 +1516,30 @@ "nezmenené. Vhodné je to hlavne na zobrazenie zmien názvov pri prehrávaní " "internetových prúdov." -#: src/aosd/aosd_trigger.c:87 +#: src/aosd/aosd_trigger.c:86 #, fuzzy msgid "Volume Change" msgstr "Zmena názvu" -#: src/aosd/aosd_trigger.c:88 +#: src/aosd/aosd_trigger.c:87 #, fuzzy msgid "Triggers OSD when volume is changed." msgstr "OSD sa zobrazí pri zahájení prehrávania položky zo zoznamu skladieb." -#: src/aosd/aosd_trigger.c:92 +#: src/aosd/aosd_trigger.c:91 msgid "Pause On" msgstr "" -#: src/aosd/aosd_trigger.c:93 +#: src/aosd/aosd_trigger.c:92 #, fuzzy msgid "Triggers OSD when playback is paused." msgstr "OSD sa zobrazí pri zahájení prehrávania položky zo zoznamu skladieb." -#: src/aosd/aosd_trigger.c:97 +#: src/aosd/aosd_trigger.c:96 msgid "Pause Off" msgstr "" -#: src/aosd/aosd_trigger.c:98 +#: src/aosd/aosd_trigger.c:97 #, fuzzy msgid "Triggers OSD when playback is unpaused." msgstr "OSD sa zobrazí pri zahájení prehrávania položky zo zoznamu skladieb." @@ -1640,10 +1640,10 @@ msgid "Skin file:" msgstr "Súbor s motívom:" -#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2331 -#: src/sid/xmms-sid.glade:2856 src/sid/xmms-sid.glade:2962 -#: src/sid/xs_interface.c:1010 src/sid/xs_interface.c:1182 -#: src/sid/xs_interface.c:1218 +#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2373 +#: src/sid/xmms-sid.glade:2968 src/sid/xmms-sid.glade:3136 +#: src/sid/xs_interface.c:1043 src/sid/xs_interface.c:1235 +#: src/sid/xs_interface.c:1291 msgid "Browse" msgstr "Prechádzať" @@ -1724,9 +1724,9 @@ msgid "Trigger" msgstr "Spúšťač" -#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:167 +#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:175 #: src/modplug/gui/interface.cxx:688 src/modplug/gui/modplug.glade:1603 -#: src/sid/xmms-sid.glade:3026 src/sid/xs_interface.c:1229 +#: src/sid/xmms-sid.glade:3220 src/sid/xs_interface.c:1301 #, fuzzy msgid "Misc" msgstr "Disko" @@ -1766,12 +1766,12 @@ "http://neugierig.org/software/ghosd/\n" "\n" -#: src/arts/arts.c:22 +#: src/arts/arts.c:21 #, fuzzy msgid "About aRts Output" msgstr "O slepom výstupnom module" -#: src/arts/arts.c:23 +#: src/arts/arts.c:22 msgid "" "aRts output plugin by Håvard Kvålen \n" "Audacious port by Giacomo Lozito from develia.org" @@ -1781,26 +1781,26 @@ msgid "aRts Driver configuration" msgstr "Nastavenia ovládača aRts" -#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:232 -#: src/OSS/configure.c:304 src/sun/configure.c:259 +#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:230 +#: src/OSS/configure.c:303 src/sun/configure.c:257 msgid "Buffering:" msgstr "Vyrovnávanie:" -#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:245 -#: src/OSS/configure.c:317 src/sun/configure.c:272 +#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:243 +#: src/OSS/configure.c:316 src/sun/configure.c:270 msgid "Buffer size (ms):" msgstr "Veľkosť vyrovnávacej pamäte (ms):" -#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:270 -#: src/OSS/configure.c:342 src/sun/configure.c:304 +#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:268 +#: src/OSS/configure.c:341 src/sun/configure.c:302 msgid "Buffering" msgstr "Vyrovnávanie" -#: src/audiocompress/audacious-glue.c:95 +#: src/audiocompress/audacious-glue.c:103 msgid "AudioCompress " msgstr "AudioKopresor" -#: src/audiocompress/audacious-glue.c:96 +#: src/audiocompress/audacious-glue.c:104 msgid "" "\n" "(c)2003 trikuare studios(http://trikuare.cx)\n" @@ -1816,111 +1816,111 @@ "Jednoduchý zhusťovač dynamického rozsahu udržujúci\n" "hlasitosť na viac-menej rovnakej úrovni" -#: src/audiocompress/audacious-glue.c:101 +#: src/audiocompress/audacious-glue.c:109 msgid "About AudioCompress" msgstr "O AudioKompresore" -#: src/audiocompress/audacious-glue.c:320 +#: src/audiocompress/audacious-glue.c:328 msgid "" "If checked, when the sound peaks the volume will be cut instantly; " "otherwise, it will ramp down just in time for the peak (but some minor " "clipping may still occur)." msgstr "" -#: src/audiocompress/audacious-glue.c:324 +#: src/audiocompress/audacious-glue.c:332 msgid "The maximum amount to amplify the audio by" msgstr "" -#: src/audiocompress/audacious-glue.c:326 +#: src/audiocompress/audacious-glue.c:334 msgid "Defines how smoothly the volume will ramp up" msgstr "" -#: src/audiocompress/audacious-glue.c:328 +#: src/audiocompress/audacious-glue.c:336 msgid "" "The target audio level for ramping up. Lowering the value gives a bit more " "dynamic range for peaks, but will make the overall sound quieter." msgstr "" -#: src/audiocompress/audacious-glue.c:331 +#: src/audiocompress/audacious-glue.c:339 msgid "How long of a window to maintain" msgstr "" -#: src/audiocompress/audacious-glue.c:372 +#: src/audiocompress/audacious-glue.c:380 #, fuzzy msgid "AudioCompress preferences" msgstr "AudioKopresor" -#: src/audiocompress/audacious-glue.c:389 +#: src/audiocompress/audacious-glue.c:397 msgid " Quality Options " msgstr "" -#: src/audiocompress/audacious-glue.c:394 +#: src/audiocompress/audacious-glue.c:402 msgid " Aggressively prevent clipping" msgstr "" -#: src/audiocompress/audacious-glue.c:406 +#: src/audiocompress/audacious-glue.c:414 msgid " Target & gain" msgstr "" -#: src/audiocompress/audacious-glue.c:417 -msgid "Target audio level:" -msgstr "" - #: src/audiocompress/audacious-glue.c:425 +msgid "Target audio level:" +msgstr "" + +#: src/audiocompress/audacious-glue.c:433 #, fuzzy msgid "Maximum gain:" msgstr "Zosilnenie albumu:" -#: src/audiocompress/audacious-glue.c:433 +#: src/audiocompress/audacious-glue.c:441 msgid "Gain smooth:" msgstr "" -#: src/audiocompress/audacious-glue.c:485 +#: src/audiocompress/audacious-glue.c:493 msgid " History " msgstr "" -#: src/audiocompress/audacious-glue.c:517 +#: src/audiocompress/audacious-glue.c:525 msgid "" "How long of a history to maintain. A higher number will make the volume " "changes less responsive." msgstr "" -#: src/audiocompress/audacious-glue.c:528 +#: src/audiocompress/audacious-glue.c:536 msgid "Load default values" msgstr "" -#: src/audiocompress/audacious-glue.c:533 +#: src/audiocompress/audacious-glue.c:541 #, fuzzy msgid "Audio values" msgstr "Zvukové zariadenie:" -#: src/audiocompress/audacious-glue.c:562 src/echo_plugin/gui.c:152 -#: src/modplug/gui/interface.cxx:708 src/modplug/gui/modplug.glade:1655 -#: src/stereo_plugin/stereo.c:132 +#: src/audiocompress/audacious-glue.c:570 src/crystalizer/crystalizer.c:129 +#: src/echo_plugin/gui.c:150 src/modplug/gui/interface.cxx:708 +#: src/modplug/gui/modplug.glade:1655 src/stereo_plugin/stereo.c:131 msgid "Apply" msgstr "Použiť" -#: src/blur_scope/blur_scope.c:54 +#: src/blur_scope/blur_scope.c:52 msgid "/Toggle Decorations" msgstr "/Prepnúť zobrazenie dekorácií" -#: src/blur_scope/blur_scope.c:56 +#: src/blur_scope/blur_scope.c:54 msgid "/-" msgstr "/-" -#: src/blur_scope/blur_scope.c:57 +#: src/blur_scope/blur_scope.c:55 msgid "/Close" msgstr "/Zatvoriť" -#: src/blur_scope/blur_scope.c:181 +#: src/blur_scope/blur_scope.c:179 msgid "Blur scope" msgstr "Blur scope" -#: src/blur_scope/config.c:72 +#: src/blur_scope/config.c:71 msgid "Blur Scope: Color selection" msgstr "Blur Scope: Výber farby" -#: src/blur_scope/config.c:82 src/jack/configure.c:108 +#: src/blur_scope/config.c:81 src/jack/configure.c:107 msgid "Options:" msgstr "Nastavenia:" @@ -1950,109 +1950,114 @@ "This was a Google Summer of Code 2007 project." msgstr "" -#: src/cdaudio-ng/cdaudio-ng.c:814 +#: src/cdaudio-ng/cdaudio-ng.c:815 msgid "" "No playable CD found.\n" "\n" "No CD inserted, or inserted CD is not an audio CD.\n" msgstr "" -#: src/cdaudio-ng/configure.c:147 +#: src/cdaudio-ng/configure.c:155 #, fuzzy msgid "CD Audio Plugin Configuration" msgstr "Nastavenie modulu MPEG Audio" -#: src/cdaudio-ng/configure.c:157 +#: src/cdaudio-ng/configure.c:165 msgid "Digital audio extraction" msgstr "Digitálne" -#: src/cdaudio-ng/configure.c:162 +#: src/cdaudio-ng/configure.c:170 #, fuzzy msgid "Title information" msgstr "Formát názvu:" -#: src/cdaudio-ng/configure.c:179 +#: src/cdaudio-ng/configure.c:187 msgid "Limit read speed to: " msgstr "" -#: src/cdaudio-ng/configure.c:186 -msgid "Use cd-text if available" -msgstr "" - -#: src/cdaudio-ng/configure.c:190 -msgid "Use CDDB if available" -msgstr "" - #: src/cdaudio-ng/configure.c:194 +msgid "Use cd-text if available" +msgstr "" + +#: src/cdaudio-ng/configure.c:198 +msgid "Use CDDB if available" +msgstr "" + +#: src/cdaudio-ng/configure.c:202 #, fuzzy msgid "Server: " msgstr "Server" -#: src/cdaudio-ng/configure.c:197 +#: src/cdaudio-ng/configure.c:205 +#, fuzzy +msgid "Path: " +msgstr "Port:" + +#: src/cdaudio-ng/configure.c:208 #, fuzzy msgid "Port: " msgstr "Port:" -#: src/cdaudio-ng/configure.c:203 +#: src/cdaudio-ng/configure.c:217 msgid "Use HTTP instead of CDDBP" msgstr "" -#: src/cdaudio-ng/configure.c:211 +#: src/cdaudio-ng/configure.c:225 msgid "Override default device: " msgstr "" -#: src/cdaudio-ng/configure.c:218 +#: src/cdaudio-ng/configure.c:232 msgid "Print debug information" msgstr "" -#: src/console/Audacious_Config.cxx:125 +#: src/console/Audacious_Config.cxx:124 msgid "Console Music Decoder" msgstr "Dekodér konzolovej hudby" -#: src/console/Audacious_Config.cxx:162 +#: src/console/Audacious_Config.cxx:161 msgid "Bass:" msgstr "Hĺbky:" -#: src/console/Audacious_Config.cxx:166 src/console/Audacious_Config.cxx:177 -#: src/console/Audacious_Config.cxx:198 +#: src/console/Audacious_Config.cxx:165 src/console/Audacious_Config.cxx:176 +#: src/console/Audacious_Config.cxx:197 msgid "secs" msgstr "sekúnd" -#: src/console/Audacious_Config.cxx:173 +#: src/console/Audacious_Config.cxx:172 msgid "Treble:" msgstr "Výšky:" -#: src/console/Audacious_Config.cxx:194 +#: src/console/Audacious_Config.cxx:193 msgid "Default song length:" msgstr "Štandardná dĺžka skladby:" -#: src/console/Audacious_Config.cxx:200 src/modplug/gui/interface.cxx:268 +#: src/console/Audacious_Config.cxx:199 src/modplug/gui/interface.cxx:268 #: src/modplug/gui/modplug.glade:338 src/sid/xmms-sid.glade:1243 -#: src/sid/xs_interface.c:653 +#: src/sid/xs_interface.c:665 msgid "Resampling" msgstr "Prevzorkovanie" -#: src/console/Audacious_Config.cxx:206 +#: src/console/Audacious_Config.cxx:205 msgid "Enable audio resampling" msgstr "Povoliť prevzorkovanie zvuku" -#: src/console/Audacious_Config.cxx:221 +#: src/console/Audacious_Config.cxx:220 msgid "Resampling rate:" msgstr "Prevzorkovať na:" -#: src/console/Audacious_Config.cxx:236 +#: src/console/Audacious_Config.cxx:235 msgid "SPC" msgstr "SPC" +#: src/console/Audacious_Config.cxx:236 +msgid "Ignore length from SPC tags" +msgstr "Ignorovať dĺžku z SPC značiak" + #: src/console/Audacious_Config.cxx:237 -msgid "Ignore length from SPC tags" -msgstr "Ignorovať dĺžku z SPC značiak" - -#: src/console/Audacious_Config.cxx:238 msgid "Increase reverb" msgstr "" -#: src/console/Audacious_Config.cxx:263 +#: src/console/Audacious_Config.cxx:262 #, fuzzy msgid "" "The default song length, expressed in seconds, is used for songs that do not " @@ -2062,11 +2067,11 @@ "Štandardná dĺžka skladby, vyjadrená v sekundách, je použitá pri skladbách, " "ktoré neposkytujú informáciu o dĺžke (napr. skladby s opakovaním)." -#: src/console/Audacious_Driver.cxx:444 +#: src/console/Audacious_Driver.cxx:442 msgid "About the Console Music Decoder" msgstr "O dekodéry konzolovej hudby" -#: src/console/Audacious_Driver.cxx:445 +#: src/console/Audacious_Driver.cxx:443 msgid "" "Console music decoder engine based on Game_Music_Emu 0.5.2.\n" "Supported formats: AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ\n" @@ -2078,12 +2083,21 @@ "Pre Audiacious upravili: William Pitcock ,\n" " Shay Green " -#: src/demac/plugin.c:388 +#: src/crystalizer/crystalizer.c:90 +#, fuzzy +msgid "Configure Crystalizer" +msgstr "Nastaviť Extra stereo" + +#: src/crystalizer/crystalizer.c:92 src/stereo_plugin/stereo.c:94 +msgid "Effect intensity:" +msgstr "Sila efektu:" + +#: src/demac/plugin.c:359 #, fuzzy msgid "About Monkey's Audio Plugin" msgstr "Modul MPEG Audio" -#: src/demac/plugin.c:389 +#: src/demac/plugin.c:360 msgid "" "Copyright (C) 2007 Eugene Zagidullin \n" "Based on ffape decoder, Copyright (C) 2007 Benjamin Zores\n" @@ -2092,7 +2106,7 @@ "ffape is a part of FFmpeg project, http://ffmpeg.mplayerhq.hu/" msgstr "" -#: src/echo_plugin/gui.c:11 +#: src/echo_plugin/gui.c:9 msgid "" "Echo Plugin\n" "By Johan Levin 1999.\n" @@ -2104,35 +2118,35 @@ "\n" "Priestorové echo napísal Carl van Shaik, 1999" -#: src/echo_plugin/gui.c:25 +#: src/echo_plugin/gui.c:23 msgid "About Echo Plugin" msgstr "O module Ozvena" -#: src/echo_plugin/gui.c:76 +#: src/echo_plugin/gui.c:74 msgid "Configure Echo" msgstr "Nastaviť ozvenu" -#: src/echo_plugin/gui.c:89 +#: src/echo_plugin/gui.c:87 msgid "Delay: (ms)" msgstr "Oneskorenie (ms):" -#: src/echo_plugin/gui.c:94 +#: src/echo_plugin/gui.c:92 msgid "Feedback: (%)" msgstr "Spätná väzba (%):" -#: src/echo_plugin/gui.c:99 +#: src/echo_plugin/gui.c:97 msgid "Volume: (%)" msgstr "Hlasitosť (%):" -#: src/echo_plugin/gui.c:122 +#: src/echo_plugin/gui.c:120 msgid "Surround echo" msgstr "Priestorová ozvena" -#: src/esd/about.c:34 +#: src/esd/about.c:33 msgid "About ESounD Plugin" msgstr "O module ESounD" -#: src/esd/about.c:35 +#: src/esd/about.c:34 msgid "" "Audacious ESounD Plugin\n" "\n" @@ -2191,8 +2205,8 @@ msgid "Server" msgstr "Server" -#: src/esd/configure.c:198 src/OSS4/configure.c:259 src/OSS/configure.c:331 -#: src/sun/configure.c:290 +#: src/esd/configure.c:198 src/OSS4/configure.c:257 src/OSS/configure.c:330 +#: src/sun/configure.c:288 msgid "Pre-buffer (percent):" msgstr "Dopredu načítať (v percentách):" @@ -2264,7 +2278,7 @@ msgid "Window->JumpToFile" msgstr "Okno->Presun na súbor" -#: src/evdev-plug/ed_internals.c:94 +#: src/evdev-plug/ed_internals.c:93 #, c-format msgid "" "event-device-plugin: unable to open device file %s , skipping this device; " @@ -2274,7 +2288,7 @@ "vynechá; skontrolujte, či súbor zariadenia existuje a či máte právo ho " "čítať\n" -#: src/evdev-plug/ed_internals.c:103 +#: src/evdev-plug/ed_internals.c:102 #, c-format msgid "" "event-device-plugin: unable to create a io_channel for device file %s ," @@ -2283,7 +2297,7 @@ "event-device-plugin: vstupno-výstupný kanál pre zariadenie %s sa nedá " "vytvoriť, zariadenie bude vynechané\n" -#: src/evdev-plug/ed_internals.c:342 +#: src/evdev-plug/ed_internals.c:341 msgid "" "event-device-plugin: unable to open /proc/bus/input/devices , automatic " "detection of event devices won't work.\n" @@ -2291,7 +2305,7 @@ "event-device-plugin: súbor /proc/bus/input/devices sa nedá otvoriť, " "automatické detekcia udalostných zariadení nebude fungovať.\n" -#: src/evdev-plug/ed_internals.c:351 +#: src/evdev-plug/ed_internals.c:350 msgid "" "event-device-plugin: unable to open a io_channel for /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" @@ -2299,7 +2313,7 @@ "event-device-plugin: vstupno-výstupný kanál pre /proc/bus/input/devices sa " "nedá otvoriť, automatické detekcia udalostných zariadení nebude fungovať.\n" -#: src/evdev-plug/ed_internals.c:361 +#: src/evdev-plug/ed_internals.c:360 msgid "" "event-device-plugin: an error occurred while reading /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" @@ -2307,14 +2321,14 @@ "event-device-plugin: pri čítaní /proc/bus/input/devices nastala chyba, " "automatické detekcia udalostných zariadení nebude fungovať.\n" -#: src/evdev-plug/ed_internals.c:424 +#: src/evdev-plug/ed_internals.c:423 #, c-format msgid "event-device-plugin: device %s not found in /dev/input , skipping.\n" msgstr "" "event-device-plugin: zariadenie %s nebolo nájdené v /dev/input; zariadenie " "bude vynechané.\n" -#: src/evdev-plug/ed_internals.c:489 src/evdev-plug/ed_internals.c:583 +#: src/evdev-plug/ed_internals.c:488 src/evdev-plug/ed_internals.c:582 #, c-format msgid "" "event-device-plugin: unable to load config file %s , default settings will " @@ -2323,7 +2337,7 @@ "event-device-plugin: konfiguračný súbor %s sa nedá načítať,budú použité " "štandardné nastavenia.\n" -#: src/evdev-plug/ed_internals.c:535 +#: src/evdev-plug/ed_internals.c:534 #, c-format msgid "" "event-device-plugin: incomplete information in config file for device \"%s" @@ -2332,7 +2346,7 @@ "event-device-plugin: v konfiguračnom súbore sú neúplné informácie pre " "zariadenie %s, zariadenie bude vynechané\n" -#: src/evdev-plug/ed_internals.c:604 src/evdev-plug/ed_internals.c:936 +#: src/evdev-plug/ed_internals.c:603 src/evdev-plug/ed_internals.c:935 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_active value for device " @@ -2341,7 +2355,7 @@ "event-device-plugin: konfigurácia: nedá sa získať hodnota is_active pre " "zariadenie %s, zariadenie bude vynechané\n" -#: src/evdev-plug/ed_internals.c:840 +#: src/evdev-plug/ed_internals.c:839 #, c-format msgid "" "event-device-plugin: unable to access local directory %s , settings will not " @@ -2350,7 +2364,7 @@ "event-device-plugin: prístup k lokálnemu adresáru %s bol odoprený, " "nastavenia nebudú uložené.\n" -#: src/evdev-plug/ed_internals.c:890 +#: src/evdev-plug/ed_internals.c:889 #, c-format msgid "" "event-device-plugin: configuration, unable to get filename value for device " @@ -2359,7 +2373,7 @@ "event-device-plugin: konfigurácia: hodnotu filename pre zariadenie %s sa " "nepodarilo získať, zariadenie bude vynechané\n" -#: src/evdev-plug/ed_internals.c:906 +#: src/evdev-plug/ed_internals.c:905 #, c-format msgid "" "event-device-plugin: configuration, unable to get phys value for device \"%s" @@ -2368,7 +2382,7 @@ "event-device-plugin: konfigurácia: hodnotu phys pre zariadenie %s sa " "nepodarilo získať, zariadenie bude vynechané\n" -#: src/evdev-plug/ed_internals.c:922 +#: src/evdev-plug/ed_internals.c:921 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_custom value for device " @@ -2377,7 +2391,7 @@ "event-device-plugin: konfigurácia: hodnotu is_custom pre zariadenie %s sa " "nepodarilo získať, zariadenie bude vynechané\n" -#: src/evdev-plug/ed_internals.c:946 +#: src/evdev-plug/ed_internals.c:945 #, c-format msgid "" "event-device-plugin: configuration, unexpected value for device \"%s\", " @@ -2399,7 +2413,7 @@ "Okno s prepojeniami pre nedetekované zariadenie sa nedá otvoriť.\n" "Uistite sa, že zariadenie je správne pripojené." -#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:566 +#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:703 msgid "Error" msgstr "Chyba" @@ -2464,7 +2478,7 @@ msgid "Active" msgstr "Aktívne" -#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:488 +#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:486 msgid "Status" msgstr "Stav" @@ -2594,7 +2608,7 @@ msgid "Output file format:" msgstr "Adresár s výstupnými súbormi:" -#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:960 +#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:959 #, fuzzy msgid "Configure" msgstr "Nastaviť ozvenu" @@ -2836,12 +2850,12 @@ msgid "Quality level (0 - 10):" msgstr "" -#: src/flacng/plugin.c:698 +#: src/flacng/plugin.c:697 #, fuzzy msgid "FLAC Audio Plugin " msgstr "Modul Flac Audio" -#: src/flacng/plugin.c:699 +#: src/flacng/plugin.c:698 msgid "" "\n" "\n" @@ -2851,17 +2865,17 @@ "http://www.skytale.net/projects/bmp-flac2/" msgstr "" -#: src/flacng/plugin.c:704 +#: src/flacng/plugin.c:703 #, fuzzy msgid "About FLAC Audio Plugin" msgstr "Modul Flac Audio" -#: src/gnomeshortcuts/gnomeshortcuts.c:306 +#: src/gnomeshortcuts/gnomeshortcuts.c:305 #, fuzzy msgid "About Gnome Shortcut Plugin" msgstr "O module ESounD" -#: src/gnomeshortcuts/gnomeshortcuts.c:307 +#: src/gnomeshortcuts/gnomeshortcuts.c:306 msgid "" "Gnome Shortcut Plugin\n" "Let's you control the player with Gnome's shortcuts.\n" @@ -2874,7 +2888,7 @@ msgid "Previous Track" msgstr "" -#: src/hotkey/gui.c:69 +#: src/hotkey/gui.c:69 src/skins/ui_manager.c:177 src/skins/ui_manager.c:178 #, fuzzy msgid "Play" msgstr "Spôsob prehrávania:" @@ -2884,7 +2898,7 @@ msgid "Pause/Resume" msgstr "hodnota:" -#: src/hotkey/gui.c:71 +#: src/hotkey/gui.c:71 src/skins/ui_manager.c:183 src/skins/ui_manager.c:184 #, fuzzy msgid "Stop" msgstr "na:" @@ -2917,7 +2931,7 @@ msgid "Volume Down" msgstr "Hlasitosť->Znížiť o 5" -#: src/hotkey/gui.c:78 +#: src/hotkey/gui.c:78 src/skins/ui_manager.c:422 src/skins/ui_manager.c:423 #, fuzzy msgid "Jump to File" msgstr "Okno->Presun na súbor" @@ -2973,12 +2987,12 @@ msgid "Key Binding:" msgstr "" -#: src/hotkey/gui.c:660 +#: src/hotkey/gui.c:659 #, fuzzy msgid "About Global Hotkey Plugin" msgstr "O module Scrobbler" -#: src/hotkey/gui.c:661 +#: src/hotkey/gui.c:660 msgid "" "Global Hotkey Plugin\n" "Control the player with global key combinations or multimedia keys.\n" @@ -2994,38 +3008,38 @@ "\n" msgstr "" -#: src/jack/configure.c:70 +#: src/jack/configure.c:69 msgid "Connect to all available jack ports" msgstr "" -#: src/jack/configure.c:77 +#: src/jack/configure.c:76 msgid "Connect only the output ports" msgstr "" -#: src/jack/configure.c:84 +#: src/jack/configure.c:83 msgid "Connect to no ports" msgstr "" -#: src/jack/configure.c:99 +#: src/jack/configure.c:98 #, fuzzy msgid "jack Plugin configuration" msgstr "Nastavenie výstupného modulu ESD" -#: src/jack/configure.c:117 +#: src/jack/configure.c:116 msgid "Connection mode:" msgstr "" -#: src/jack/configure.c:129 +#: src/jack/configure.c:128 #, fuzzy msgid "Enable debug printing" msgstr "Povoliť rozptýlenie" -#: src/jack/jack.c:84 +#: src/jack/jack.c:82 #, fuzzy msgid "Sample rate mismatch" msgstr "Vzorkovacia frekvencia:" -#: src/jack/jack.c:87 +#: src/jack/jack.c:85 msgid "" "Xmms is asking for a sample rate that differs from\n" " that of the jack server. Xmms 1.2.8 or later\n" @@ -3039,15 +3053,15 @@ "Chris Morgan \n" msgstr "" -#: src/jack/jack.c:100 src/wma/wma.c:148 +#: src/jack/jack.c:98 src/wma/wma.c:145 msgid " Close " msgstr " Zatvoriť " -#: src/jack/jack.c:452 +#: src/jack/jack.c:450 msgid "About JACK Output Plugin 0.17" msgstr "O výstupnom module JACK 0.17" -#: src/jack/jack.c:453 +#: src/jack/jack.c:451 msgid "" "XMMS jack Driver 0.17\n" "\n" @@ -3065,41 +3079,41 @@ "Pre Audacious upravil\n" "Giacomo Lozito z develia.org" -#: src/ladspa/ladspa.c:722 +#: src/ladspa/ladspa.c:721 msgid "This LADSPA plugin has no user controls" msgstr "" -#: src/ladspa/ladspa.c:767 src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:766 src/ladspa/ladspa.c:852 #, fuzzy msgid "Name" msgstr "Meno:" -#: src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:852 msgid "UID" msgstr "" -#: src/ladspa/ladspa.c:928 +#: src/ladspa/ladspa.c:927 msgid "Installed plugins" msgstr "" -#: src/ladspa/ladspa.c:937 +#: src/ladspa/ladspa.c:936 msgid "Running plugins" msgstr "" -#: src/ladspa/ladspa.c:952 +#: src/ladspa/ladspa.c:951 msgid "Add" msgstr "" -#: src/ladspa/ladspa.c:956 +#: src/ladspa/ladspa.c:955 #, fuzzy msgid "Remove" msgstr "Odstrániť značku" -#: src/ladspa/ladspa.c:969 +#: src/ladspa/ladspa.c:968 msgid "LADSPA Plugin Catalog" msgstr "" -#: src/lastfm/lastfm.c:96 +#: src/lastfm/lastfm.c:94 msgid "" "Couldn't initialize the last.fm radio plugin.\n" "\n" @@ -3198,59 +3212,59 @@ msgid "%s: will try reconnect every %d seconds...\n" msgstr "" -#: src/madplug/configure.c:209 +#: src/madplug/configure.c:208 msgid "MPEG Audio Plugin Configuration" msgstr "Nastavenie modulu MPEG Audio" -#: src/madplug/configure.c:226 +#: src/madplug/configure.c:225 #, fuzzy msgid "Audio Settings" msgstr "Nastavenia mixéru:" -#: src/madplug/configure.c:234 +#: src/madplug/configure.c:233 msgid "Force reopen audio when audio type changed" msgstr "" -#: src/madplug/configure.c:243 +#: src/madplug/configure.c:242 #, fuzzy msgid "Metadata Settings" msgstr "Nastavenia mixéru:" -#: src/madplug/configure.c:252 +#: src/madplug/configure.c:251 msgid "Enable fast play-length calculation" msgstr "Povoliť rýchly výpočet dĺžky hrania" -#: src/madplug/configure.c:259 +#: src/madplug/configure.c:258 msgid "Parse XING headers" msgstr "Spracovať XING hlavičky" -#: src/madplug/configure.c:266 +#: src/madplug/configure.c:265 msgid "Use SJIS to write ID3 tags (not recommended)" msgstr "" -#: src/madplug/configure.c:273 +#: src/madplug/configure.c:272 #, fuzzy msgid "Miscellaneous Settings" msgstr "Nastavenia mixéru:" -#: src/madplug/configure.c:282 +#: src/madplug/configure.c:281 msgid "Display average bitrate for VBR" msgstr "" -#: src/madplug/configure.c:296 src/vorbis/configure.c:102 +#: src/madplug/configure.c:295 src/vorbis/configure.c:100 msgid "Override generic titles" msgstr "Používať vlastný formát názvu" -#: src/madplug/configure.c:308 +#: src/madplug/configure.c:307 msgid "ID3 format:" msgstr "Formát ID3:" -#: src/madplug/configure.c:320 src/sid/xmms-sid.glade:2540 -#: src/sid/xs_interface.c:1070 +#: src/madplug/configure.c:319 src/sid/xmms-sid.glade:2610 +#: src/sid/xs_interface.c:1102 msgid "Title" msgstr "Názov" -#: src/madplug/plugin.c:524 +#: src/madplug/plugin.c:661 #, c-format msgid "" "Audacious MPEG Audio Plugin\n" @@ -3268,17 +3282,17 @@ " Samuel Krempp" msgstr "" -#: src/madplug/plugin.c:540 +#: src/madplug/plugin.c:677 #, fuzzy msgid "About MPEG Audio Plugin" msgstr "Modul MPEG Audio" -#: src/metronom/metronom.c:87 +#: src/metronom/metronom.c:86 #, fuzzy msgid "About Metronom" msgstr "O " -#: src/metronom/metronom.c:88 +#: src/metronom/metronom.c:87 msgid "" "A Tact Generator by Martin Strauss \n" "\n" @@ -3287,12 +3301,12 @@ "or tact://60*3/4 to play 60 bpm in 3/4 tacts" msgstr "" -#: src/metronom/metronom.c:198 src/metronom/metronom.c:262 +#: src/metronom/metronom.c:197 src/metronom/metronom.c:261 #, fuzzy, c-format msgid "Tact generator: %d bpm" msgstr "Generátor tónov:" -#: src/metronom/metronom.c:200 src/metronom/metronom.c:264 +#: src/metronom/metronom.c:199 src/metronom/metronom.c:263 #, c-format msgid "Tact generator: %d bpm %d/%d" msgstr "" @@ -3500,11 +3514,11 @@ msgid "Message" msgstr "" -#: src/modplug/gui/main.cxx:45 +#: src/modplug/gui/main.cxx:48 msgid "Modplug Input Plugin for Audacious ver" msgstr "" -#: src/modplug/gui/main.cxx:46 +#: src/modplug/gui/main.cxx:49 msgid "" "\n" "Modplug sound engine written by Olivier Lapicque.\n" @@ -3514,7 +3528,7 @@ "Ported to BMP by Theofilos Intzoglou." msgstr "" -#: src/modplug/gui/main.cxx:49 +#: src/modplug/gui/main.cxx:52 #, fuzzy msgid "About Modplug" msgstr "O module Ozvena" @@ -3525,27 +3539,27 @@ msgid "Couldn't find pixmap file: %s" msgstr "MIDI súbor sa nepodarilo načítať" -#: src/mtp_up/mtp.c:35 +#: src/mtp_up/mtp.c:33 msgid "Upload selected track(s)" msgstr "" -#: src/mtp_up/mtp.c:296 +#: src/mtp_up/mtp.c:294 msgid "Upload in progress..." msgstr "" -#: src/mtp_up/mtp.c:305 +#: src/mtp_up/mtp.c:303 msgid "MTP device handler" msgstr "" -#: src/mtp_up/mtp.c:309 +#: src/mtp_up/mtp.c:307 msgid "Disconnect the device" msgstr "" -#: src/musepack/libmpc.cxx:146 +#: src/musepack/libmpc.cxx:142 msgid "Musepack Decoder Plugin 1.2" msgstr "" -#: src/musepack/libmpc.cxx:147 +#: src/musepack/libmpc.cxx:143 msgid "" "Plugin code by\n" "Benoit Amiaux\n" @@ -3555,184 +3569,185 @@ "Get latest version at http://musepack.net\n" msgstr "" -#: src/musepack/libmpc.cxx:148 +#: src/musepack/libmpc.cxx:144 msgid "Nevermind" msgstr "" -#: src/musepack/libmpc.cxx:166 +#: src/musepack/libmpc.cxx:162 #, fuzzy msgid "Musepack Decoder Configuration" msgstr "Nastavenie Disk Writer" -#: src/musepack/libmpc.cxx:176 +#: src/musepack/libmpc.cxx:172 #, fuzzy msgid "General Settings" msgstr "Nastavenia mixéru:" -#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:492 +#: src/musepack/libmpc.cxx:179 src/wavpack/ui.cxx:490 msgid "Enable Dynamic Bitrate Display" msgstr "" -#: src/musepack/libmpc.cxx:187 src/wavpack/ui.cxx:498 +#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:496 #, fuzzy msgid "Plugin" msgstr "Modul LIRC" -#: src/musepack/libmpc.cxx:190 +#: src/musepack/libmpc.cxx:186 #, fuzzy msgid "ReplayGain Settings" msgstr "Nastavenia zosilnenia prehrávania:" -#: src/musepack/libmpc.cxx:197 src/wavpack/ui.cxx:510 +#: src/musepack/libmpc.cxx:193 src/wavpack/ui.cxx:508 msgid "Enable Clipping Prevention" msgstr "Povoliť prevenciu orezania" -#: src/musepack/libmpc.cxx:202 src/wavpack/ui.cxx:515 +#: src/musepack/libmpc.cxx:198 src/wavpack/ui.cxx:513 msgid "Enable ReplayGain" msgstr "Zapnúť zosilnenie pri prehrávaní" -#: src/musepack/libmpc.cxx:207 +#: src/musepack/libmpc.cxx:203 #, fuzzy msgid "ReplayGain Type" msgstr "Typ zosilnenia:" -#: src/musepack/libmpc.cxx:215 +#: src/musepack/libmpc.cxx:211 #, fuzzy msgid "Use Track Gain" msgstr "použiť zosilnenie podľa vrcholu v skladbe" -#: src/musepack/libmpc.cxx:219 +#: src/musepack/libmpc.cxx:215 #, fuzzy msgid "Use Album Gain" msgstr "použiť zosilnenie podľa vrcholu na albume" -#: src/musepack/libmpc.cxx:224 src/wavpack/ui.cxx:547 +#: src/musepack/libmpc.cxx:220 src/wavpack/ui.cxx:545 msgid "ReplayGain" msgstr "Zosilnenie prehrávanie" -#: src/musepack/libmpc.cxx:491 src/sid/xmms-sid.glade:3144 -#: src/sid/xs_interface.c:1564 src/tta/libtta.c:304 src/wavpack/ui.cxx:152 +#: src/musepack/libmpc.cxx:487 src/sid/xmms-sid.glade:3338 +#: src/sid/xs_interface.c:1648 src/tta/libtta.c:301 src/wavpack/ui.cxx:150 msgid "Filename:" msgstr "Meno súboru:" -#: src/musepack/libmpc.cxx:506 +#: src/musepack/libmpc.cxx:502 msgid "Musepack Tag" msgstr "" -#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:323 src/wavpack/ui.cxx:172 +#: src/musepack/libmpc.cxx:510 src/tta/libtta.c:320 src/wavpack/ui.cxx:170 msgid "Title:" msgstr "Názov:" -#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:333 src/wavpack/ui.cxx:184 +#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:330 src/wavpack/ui.cxx:182 msgid "Artist:" msgstr "Umelec:" -#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:344 src/wavpack/ui.cxx:196 +#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:341 src/wavpack/ui.cxx:194 msgid "Album:" msgstr "Album:" -#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:355 src/wavpack/ui.cxx:208 +#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:352 src/wavpack/ui.cxx:206 msgid "Comment:" msgstr "Komentár:" -#: src/musepack/libmpc.cxx:530 src/tta/libtta.c:366 src/wavpack/ui.cxx:221 +#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:363 src/wavpack/ui.cxx:219 msgid "Year:" msgstr "" -#: src/musepack/libmpc.cxx:535 +#: src/musepack/libmpc.cxx:531 #, fuzzy msgid "Track:" msgstr "Zosilnenie skladby:" -#: src/musepack/libmpc.cxx:540 src/tta/libtta.c:390 src/wavpack/ui.cxx:248 +#: src/musepack/libmpc.cxx:536 src/tta/libtta.c:387 src/wavpack/ui.cxx:246 msgid "Genre:" msgstr "Žáner:" -#: src/musepack/libmpc.cxx:551 src/sid/xmms-sid.glade:1732 -#: src/sid/xs_interface.c:820 src/wavpack/ui.cxx:267 +#: src/musepack/libmpc.cxx:547 src/sid/xmms-sid.glade:1732 +#: src/sid/xs_interface.c:832 src/skins/ui_manager.c:438 +#: src/wavpack/ui.cxx:265 msgid "Save" msgstr "Uložiť" -#: src/musepack/libmpc.cxx:554 src/wavpack/ui.cxx:273 +#: src/musepack/libmpc.cxx:550 src/wavpack/ui.cxx:271 msgid "Remove Tag" msgstr "Odstrániť značku" -#: src/musepack/libmpc.cxx:562 +#: src/musepack/libmpc.cxx:558 msgid "Musepack Info" msgstr "" +#: src/musepack/libmpc.cxx:591 +#, c-format +msgid "Streamversion %d" +msgstr "" + +#: src/musepack/libmpc.cxx:592 +#, c-format +msgid "Encoder: %s" +msgstr "" + +#: src/musepack/libmpc.cxx:593 +#, c-format +msgid "Profile: %s" +msgstr "" + +#: src/musepack/libmpc.cxx:594 +#, c-format +msgid "Average bitrate: %6.1f kbps" +msgstr "" + #: src/musepack/libmpc.cxx:595 #, c-format -msgid "Streamversion %d" -msgstr "" +msgid "Samplerate: %d Hz" +msgstr "Vzorkovacia frekvencia: %d Hz" #: src/musepack/libmpc.cxx:596 #, c-format -msgid "Encoder: %s" -msgstr "" +msgid "Channels: %d" +msgstr "Počet kanálov: %d" #: src/musepack/libmpc.cxx:597 -#, c-format -msgid "Profile: %s" -msgstr "" - -#: src/musepack/libmpc.cxx:598 -#, c-format -msgid "Average bitrate: %6.1f kbps" -msgstr "" - -#: src/musepack/libmpc.cxx:599 -#, c-format -msgid "Samplerate: %d Hz" -msgstr "Vzorkovacia frekvencia: %d Hz" - -#: src/musepack/libmpc.cxx:600 -#, c-format -msgid "Channels: %d" -msgstr "Počet kanálov: %d" - -#: src/musepack/libmpc.cxx:601 #, fuzzy, c-format msgid "Length: %d:\\%.2d" msgstr "" "Vzorkov: %llu\n" "Dĺžka: %d:%.2d" -#: src/musepack/libmpc.cxx:602 +#: src/musepack/libmpc.cxx:598 #, fuzzy, c-format msgid "File size: %d Bytes" msgstr "Veľkosť súboru: %ld B" -#: src/musepack/libmpc.cxx:603 +#: src/musepack/libmpc.cxx:599 #, fuzzy, c-format msgid "Track Peak: %5u" msgstr "Vrchol skladby:" -#: src/musepack/libmpc.cxx:604 +#: src/musepack/libmpc.cxx:600 #, fuzzy, c-format msgid "Track Gain: %-+2.2f dB" msgstr "Zosilnenie stopy: %+2.2f dB" -#: src/musepack/libmpc.cxx:605 +#: src/musepack/libmpc.cxx:601 #, fuzzy, c-format msgid "Album Peak: %5u" msgstr "Vrchol albumu:" -#: src/musepack/libmpc.cxx:606 +#: src/musepack/libmpc.cxx:602 #, fuzzy, c-format msgid "Album Gain: %-+5.2f dB" msgstr "Zosilnenie albumu: %+2.2f dB" -#: src/musepack/libmpc.cxx:634 src/tta/libtta.c:413 src/wavpack/ui.cxx:409 +#: src/musepack/libmpc.cxx:630 src/tta/libtta.c:410 src/wavpack/ui.cxx:407 #, c-format msgid "File Info - %s" msgstr "Informácie o súbore - %s" -#: src/null/null.c:61 +#: src/null/null.c:58 msgid "Null output plugin " msgstr "Slepý výstupný modul" -#: src/null/null.c:62 +#: src/null/null.c:59 #, fuzzy msgid "" " by Christian Birchinger \n" @@ -3742,25 +3757,54 @@ " založené na module pre XMMS, autorom ktorého je Håvard Kvål " -#: src/null/null.c:65 +#: src/null/null.c:62 msgid "About Null Output" msgstr "O slepom výstupnom module" -#: src/null/null.c:94 +#: src/null/null.c:91 #, fuzzy msgid "Null output preferences" msgstr "Slepý výstupný modul" -#: src/null/null.c:103 +#: src/null/null.c:100 msgid "Run in real time" msgstr "" -#: src/OSS4/about.c:42 +#: src/OSS4/configure.c:118 src/OSS/configure.c:150 +#, c-format +msgid "Default (%s)" +msgstr "Štandardné (%s)" + +#: src/OSS4/configure.c:168 src/OSS/configure.c:200 +msgid "OSS Driver configuration" +msgstr "Nastavenie ovládača OSS" + +#: src/OSS4/configure.c:206 src/OSS/configure.c:238 src/OSS/configure.c:279 +msgid "Use alternate device:" +msgstr "Použiť iné zariadenie:" + +#: src/OSS4/configure.c:228 src/OSS/configure.c:301 src/sun/configure.c:246 +msgid "Devices" +msgstr "Zariadenia" + +#: src/OSS4/configure.c:270 src/OSS/configure.c:342 +msgid "Mixer Settings:" +msgstr "Nastavenia mixéru:" + +#: src/OSS4/configure.c:276 +msgid "Save VMIX volume between sessions" +msgstr "" + +#: src/OSS4/configure.c:282 src/OSS/configure.c:354 src/sun/configure.c:392 +msgid "Mixer" +msgstr "Mixér" + +#: src/OSS4/OSS4.c:38 #, fuzzy msgid "About OSSv4 Driver" msgstr "O module OSS" -#: src/OSS4/about.c:43 +#: src/OSS4/OSS4.c:39 #, fuzzy msgid "" "Audacious OSSv4 Driver\n" @@ -3798,40 +3842,15 @@ "nestalo, požiadajte o ňu Free Software Foundation, Inc.,\n" "675 Mass Ave, Cambridge, MA 02139, USA." -#: src/OSS4/configure.c:120 src/OSS/configure.c:151 -#, c-format -msgid "Default (%s)" -msgstr "Štandardné (%s)" - -#: src/OSS4/configure.c:170 src/OSS/configure.c:201 -msgid "OSS Driver configuration" -msgstr "Nastavenie ovládača OSS" - -#: src/OSS4/configure.c:208 src/OSS/configure.c:239 src/OSS/configure.c:280 -msgid "Use alternate device:" -msgstr "Použiť iné zariadenie:" - -#: src/OSS4/configure.c:230 src/OSS/configure.c:302 src/sun/configure.c:248 -msgid "Devices" -msgstr "Zariadenia" - -#: src/OSS4/configure.c:272 src/OSS/configure.c:343 -msgid "Mixer Settings:" -msgstr "Nastavenia mixéru:" - -#: src/OSS4/configure.c:278 -msgid "Save VMIX volume between sessions" -msgstr "" - -#: src/OSS4/configure.c:284 src/OSS/configure.c:355 src/sun/configure.c:394 -msgid "Mixer" -msgstr "Mixér" - -#: src/OSS/about.c:39 +#: src/OSS/configure.c:348 +msgid "Volume controls Master not PCM" +msgstr "Hlasitosť je ovládaná kanálom Master a nie PCM" + +#: src/OSS/OSS.c:37 msgid "About OSS Driver" msgstr "O module OSS" -#: src/OSS/about.c:40 +#: src/OSS/OSS.c:38 msgid "" "Audacious OSS Driver\n" "\n" @@ -3865,20 +3884,16 @@ "nestalo, požiadajte o ňu Free Software Foundation, Inc.,\n" "675 Mass Ave, Cambridge, MA 02139, USA." -#: src/OSS/configure.c:349 -msgid "Volume controls Master not PCM" -msgstr "Hlasitosť je ovládaná kanálom Master a nie PCM" - #: src/projectm-1.0/main.c:70 msgid "_Random" msgstr "" -#: src/pulse_audio/pulse_audio.c:722 +#: src/pulse_audio/pulse_audio.c:720 #, fuzzy msgid "About Audacious PulseAudio Output Plugin" msgstr "Základný zvukový výstupný modul" -#: src/pulse_audio/pulse_audio.c:723 +#: src/pulse_audio/pulse_audio.c:721 #, fuzzy msgid "" "Audacious PulseAudio Output Plugin\n" @@ -3914,27 +3929,27 @@ "nestalo, požiadajte o ňu Free Software Foundation, Inc.,\n" "675 Mass Ave, Cambridge, MA 02139, USA." -#: src/scrobbler/configure.c:138 +#: src/scrobbler/configure.c:134 msgid "Services" msgstr "Služby" -#: src/scrobbler/configure.c:160 src/scrobbler/configure.c:199 +#: src/scrobbler/configure.c:156 src/scrobbler/configure.c:195 msgid "Username:" msgstr "Prístupové meno:" -#: src/scrobbler/configure.c:166 src/scrobbler/configure.c:205 +#: src/scrobbler/configure.c:162 src/scrobbler/configure.c:201 msgid "Password:" msgstr "Heslo:" -#: src/scrobbler/configure.c:183 +#: src/scrobbler/configure.c:179 msgid "Last.FM" msgstr "Last.FM" -#: src/scrobbler/configure.c:222 +#: src/scrobbler/configure.c:218 msgid "Gerpok" msgstr "Gerpok" -#: src/scrobbler/gtkstuff.c:21 +#: src/scrobbler/gtkstuff.c:18 msgid "" "Audacious AudioScrobbler Plugin\n" "\n" @@ -3942,11 +3957,11 @@ "com>\n" msgstr "" -#: src/scrobbler/gtkstuff.c:23 +#: src/scrobbler/gtkstuff.c:20 msgid "About Scrobbler Plugin" msgstr "O module Scrobbler" -#: src/scrobbler/gtkstuff.c:36 +#: src/scrobbler/gtkstuff.c:33 #, c-format msgid "" "There has been an error that may require your attention.\n" @@ -3956,116 +3971,116 @@ "%s\n" msgstr "" -#: src/scrobbler/gtkstuff.c:43 +#: src/scrobbler/gtkstuff.c:40 #, fuzzy msgid "Scrobbler Error" msgstr "Modul Scrobbler" -#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:221 +#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:233 #, fuzzy msgid "Audacious-SID configuration" msgstr "Nastavenia OSD pre Audacious" -#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:257 +#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:269 #, fuzzy msgid "8-bit" msgstr "8 bitov" -#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:264 +#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:276 #, fuzzy msgid "16-bit" msgstr "16 bitov" -#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:271 +#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:283 #, fuzzy msgid "Resolution:" msgstr "Rozlíšenie" -#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:302 +#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:314 msgid "Autopanning" msgstr "" -#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:309 +#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:321 msgid "Channels:" msgstr "Počet kanálov:" -#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:353 +#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:365 #, fuzzy msgid "Samplerate:" msgstr "Vzorkovacia frekvencia:" -#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:370 +#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:382 #, fuzzy msgid "Use oversampling" msgstr "Prevzorkovanie" -#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:381 +#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:393 msgid "Factor:" msgstr "" -#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:393 +#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:405 msgid "Large factors require more CPU-power" msgstr "" -#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:399 +#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:411 #, fuzzy msgid "Oversampling:" msgstr "Prevzorkovanie" -#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:404 +#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:416 msgid "Audio" msgstr "" -#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:436 +#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:448 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "clock speed/frequency. Otherwise the speed is determined from played file " "itself." msgstr "" -#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:432 +#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:444 msgid "Force speed" msgstr "" -#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:442 +#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:454 msgid "" "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. " "Most of SID-tunes have been made for PAL computers." msgstr "" -#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:438 +#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:450 msgid "PAL (50 Hz)" msgstr "" -#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:450 +#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:462 msgid "" "NTSC is the TV standard with 60Hz vertical refresh rate (and other features " "that differ from PAL). It is mainly used in United States, Japan and certain " "other countries." msgstr "" -#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:446 +#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:458 msgid "NTSC (60 Hz)" msgstr "" -#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:454 +#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:466 #, fuzzy msgid "Clock speed:" msgstr "Rýchlosť prehrávania" -#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:475 +#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:487 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "SID-chip model. Otherwise the preferred SID model is determined from the " "file (if PSIDv2NG type) or if not available, this setting is used." msgstr "" -#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:471 +#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:483 #, fuzzy msgid "Force model" msgstr "Režim stopy" -#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:481 +#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:493 msgid "" "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 " "in few ways, having much fuller filter (which, due to design error, is never " @@ -4073,92 +4088,92 @@ "which enables playing of digital samples." msgstr "" -#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:477 +#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:489 msgid "MOS 6581" msgstr "" -#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:485 +#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:497 msgid "MOS 8580" msgstr "" -#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:492 +#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:504 #, fuzzy msgid "SID model:" msgstr "Spôsob prehrávania:" -#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:513 +#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:525 msgid "" "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most " "cases, though." msgstr "" -#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:509 +#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:521 msgid "SIDPlay 1 (frame-based)" msgstr "" -#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:521 +#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:533 msgid "" "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact " "emulation." msgstr "" -#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:517 +#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:529 msgid "SIDPlay 2 (cycle-based)" msgstr "" -#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:525 +#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:537 msgid "Emulation library selection:" msgstr "" -#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:542 +#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:554 msgid "Real C64 (SIDPlay 2 only)" msgstr "" -#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:549 +#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:561 msgid "Bank switching" msgstr "" -#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:556 +#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:568 #, fuzzy msgid "Transparent ROM" msgstr "Transponovať: " -#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:563 +#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:575 msgid "PlaySID environment" msgstr "" -#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:570 +#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:582 #, fuzzy msgid "Memory mode:" msgstr "Spôsob prehrávania:" -#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:575 +#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:587 msgid "Emu#1" msgstr "" -#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:602 +#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:614 msgid "" "This setting can be used to enable libSIDPlay2's \"optimization mode\", " "which in downgrades the emulation from cycle-exact to something similar to " "frame-exact. The result is lower CPU usage, but worse accuracy." msgstr "" -#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:598 +#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:610 msgid "Optimization mode (faster, inaccurate)" msgstr "" -#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:608 +#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:620 msgid "" "reSID is the software SID-chip simulator based on SID reverse-engineering, " "created by Dag Lem. It is probably the closest thing to real SID available " "as software-only emulation." msgstr "" -#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:604 +#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:616 msgid "reSID-emulation" msgstr "" -#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:616 +#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:628 msgid "" "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a " "real SID-chip. Software can be used to control the HardSID and combined with " @@ -4167,49 +4182,49 @@ "http://www.hardsid.com/" msgstr "" -#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:612 +#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:624 msgid "HardSID" msgstr "" -#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:620 +#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:632 msgid "SIDPlay 2 options:" msgstr "" -#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:641 +#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:653 msgid "" "Fastest and also worst sounding sampling method, simply picks nearest " "neighbouring sample." msgstr "" -#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:637 +#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:649 msgid "Fast (nearest neighbour)" msgstr "" -#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:649 +#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:661 msgid "" "Uses linear interpolation between samples, yielding higher audio quality " "with less sampling noise." msgstr "" -#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:645 +#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:657 msgid "Linear interpolation" msgstr "" -#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:660 +#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:672 #, fuzzy msgid "Resampling (FIR)" msgstr "Prevzorkovanie" -#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:667 +#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:679 #, fuzzy msgid "reSID sampling options:" msgstr "Prevzorkovať na:" -#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:672 +#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:684 msgid "Emu#2" msgstr "" -#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:688 +#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:700 msgid "" "This option enables emulation of SID filter. The filter is an essential part " "of SID's sound capacity, but accurate emulation of it may require quite much " @@ -4217,315 +4232,326 @@ "authentic at all if they utilize the filter." msgstr "" -#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:684 +#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:696 msgid "Emulate filters" msgstr "" -#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:713 +#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:725 msgid "FS" msgstr "" -#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:730 +#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:742 msgid "FM" msgstr "" -#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:747 +#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:759 msgid "FT" msgstr "" -#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:758 +#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:770 msgid "Reset values" msgstr "" -#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:763 +#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:775 msgid "SIDPlay1" msgstr "" -#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:804 +#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:816 #, fuzzy msgid "Export" msgstr "Port" -#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:812 +#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:824 msgid "Use" msgstr "" -#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:828 +#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:840 +#: src/skins/ui_manager.c:437 #, fuzzy msgid "Import" msgstr "Port" -#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:836 +#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:848 +#: src/skins/ui_manager.c:439 #, fuzzy msgid "Delete" msgstr "Štandardné" -#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:850 +#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:862 #, fuzzy msgid "Filter curve:" msgstr "Veľkosť súboru:" -#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:855 +#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:867 msgid "SIDPlay2" msgstr "" -#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:861 +#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:873 msgid "Filters" msgstr "" -#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:888 +#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:900 msgid "" "If enabled, the tune is played at least for the specified time, adding " "silence to the end if necessary." msgstr "" -#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:884 +#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:896 #, fuzzy msgid "Play at least for specified time" msgstr "Prehrávať normálnou rýchlosťou" #: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133 -#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:895 -#: src/sid/xs_interface.c:949 src/sid/xs_interface.c:1109 +#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:907 +#: src/sid/xs_interface.c:961 src/sid/xs_interface.c:1141 #, fuzzy msgid "Playtime:" msgstr "Spôsob prehrávania:" -#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:915 +#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:927 msgid "Minimum playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:936 +#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:948 msgid "" "If enabled, tune is played until specified duration is reached (aka maximum " "playtime)." msgstr "" -#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:932 +#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:944 msgid "Play for specified time maximum" msgstr "" -#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:942 +#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:954 msgid "" "If enabled, the maximum playtime is applied only if song/tune length is not " "known." msgstr "" -#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:938 +#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:950 msgid "Only when song length is unknown" msgstr "" -#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:969 +#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:981 msgid "Maximum playtime:" msgstr "" -#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:990 +#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:1002 msgid "" "This option enables using of XSIDPLAY compatible song length database. " "(Refer to Audacious-SID documentation for more information)" msgstr "" -#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:986 +#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:998 msgid "Use XSIDPLAY-compatible database" msgstr "" -#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:997 +#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:1009 #, fuzzy msgid "DB-file:" msgstr "Meno súboru:" -#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1007 +#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1019 msgid "Database path and filename" msgstr "" -#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1014 +#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1026 msgid "Browse for song length-database file" msgstr "" -#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1016 +#: src/sid/xmms-sid.glade:2418 src/sid/xs_interface.c:1048 msgid "Song length database:" msgstr "" -#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1021 +#: src/sid/xmms-sid.glade:2454 src/sid/xs_interface.c:1053 #, fuzzy msgid "Songlength" msgstr "Štandardná dĺžka skladby:" -#: src/sid/xmms-sid.glade:2430 src/sid/xs_interface.c:1043 +#: src/sid/xmms-sid.glade:2492 src/sid/xs_interface.c:1075 msgid "" "By enabling this option you can specify a custom Tuplez formatting string " "for SID-files. The SID-plugin specific Tuplez tags are described shortly " "below." msgstr "" -#: src/sid/xmms-sid.glade:2432 src/sid/xs_interface.c:1039 +#: src/sid/xmms-sid.glade:2494 src/sid/xs_interface.c:1071 #, fuzzy msgid "Override generic Tuplez format string" msgstr "Používať vlastný formát názvu" -#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1054 +#: src/sid/xmms-sid.glade:2519 src/sid/xs_interface.c:1086 msgid "Tuplez format string for SID-files" msgstr "" -#: src/sid/xmms-sid.glade:2477 src/sid/xs_interface.c:1057 -msgid "Descriptions of SID-specific Tuplez fields go here. :D" -msgstr "" - -#: src/sid/xmms-sid.glade:2511 src/sid/xs_interface.c:1065 +#: src/sid/xmms-sid.glade:2539 src/sid/xs_interface.c:1089 +msgid "" +"SID-specific Tuplez fields:\n" +"\n" +"sid-format\t\t- Specific fileformat\n" +"sid-model\t\t- 6581 or 8580\n" +"sid-speed\t\t- Timing or speed: PAL/NTSC/etc.\n" +"\n" +"Other \"special\" fields set:\n" +"\n" +"subsong-num, subsong-id" +msgstr "" + +#: src/sid/xmms-sid.glade:2581 src/sid/xs_interface.c:1097 #, fuzzy msgid "Song title format:" msgstr "Formát názvu:" -#: src/sid/xmms-sid.glade:2584 src/sid/xs_interface.c:1096 +#: src/sid/xmms-sid.glade:2654 src/sid/xs_interface.c:1128 msgid "" "If enabled, sub-tunes of each file will be added to playlist. If disabled, " "only the default sub-tune will be added." msgstr "" -#: src/sid/xmms-sid.glade:2586 src/sid/xs_interface.c:1092 +#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1124 msgid "Add sub-tunes to playlist" msgstr "" -#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1102 +#: src/sid/xmms-sid.glade:2675 src/sid/xs_interface.c:1134 msgid "Only add sub-tunes that have a duration of at least specified time." msgstr "" -#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1098 +#: src/sid/xmms-sid.glade:2677 src/sid/xs_interface.c:1130 msgid "Only tunes with specified minimum duration" msgstr "" -#: src/sid/xmms-sid.glade:2710 src/sid/xs_interface.c:1129 +#: src/sid/xmms-sid.glade:2780 src/sid/xs_interface.c:1161 #, fuzzy msgid "Sub-tune handling:" msgstr "Ovládanie hlasitosti:" -#: src/sid/xmms-sid.glade:2755 src/sid/xs_interface.c:1150 +#: src/sid/xmms-sid.glade:2825 src/sid/xs_interface.c:1182 msgid "" "If this option is enabled (and the database & HVSC settings below are " "correctly set), Audacious-SID will use and display additional information " "from STIL database when HVSC SIDs are played." msgstr "" -#: src/sid/xmms-sid.glade:2757 src/sid/xs_interface.c:1146 +#: src/sid/xmms-sid.glade:2827 src/sid/xs_interface.c:1178 msgid "Use STIL database" msgstr "" -#: src/sid/xmms-sid.glade:2782 src/sid/xs_interface.c:1157 +#: src/sid/xmms-sid.glade:2852 src/sid/xs_interface.c:1189 #, fuzzy msgid "STIL file:" msgstr "Súbor s motívom:" -#: src/sid/xmms-sid.glade:2819 src/sid/xs_interface.c:1173 +#: src/sid/xmms-sid.glade:2889 src/sid/xs_interface.c:1205 msgid "" "Path and filename of STIL database file (STIL.txt), usually found from " "HVSC's DOCUMENTS-subdirectory." msgstr "" -#: src/sid/xmms-sid.glade:2854 src/sid/xs_interface.c:1186 +#: src/sid/xmms-sid.glade:2924 src/sid/xs_interface.c:1218 msgid "Browse for STIL-database file" msgstr "" -#: src/sid/xmms-sid.glade:2888 src/sid/xs_interface.c:1193 +#: src/sid/xmms-sid.glade:3020 src/sid/xs_interface.c:1245 msgid "HVSC path:" msgstr "" -#: src/sid/xmms-sid.glade:2925 src/sid/xs_interface.c:1209 +#: src/sid/xmms-sid.glade:3057 src/sid/xs_interface.c:1261 msgid "" "Path to base-directory of your High Voltage SID Collection (HVSC), for " "example /media/C64Music/" msgstr "" -#: src/sid/xmms-sid.glade:2960 src/sid/xs_interface.c:1222 +#: src/sid/xmms-sid.glade:3092 src/sid/xs_interface.c:1274 msgid "Browse for HVSC path" msgstr "" -#: src/sid/xmms-sid.glade:2990 src/sid/xs_interface.c:1224 +#: src/sid/xmms-sid.glade:3184 src/sid/xs_interface.c:1296 msgid "SID Tune Information List (STIL) database:" msgstr "" -#: src/sid/xmms-sid.glade:3063 src/sid/xs_interface.c:1248 +#: src/sid/xmms-sid.glade:3257 src/sid/xs_interface.c:1320 msgid "Accept and update changes" msgstr "" -#: src/sid/xmms-sid.glade:3077 src/sid/xs_interface.c:1255 +#: src/sid/xmms-sid.glade:3271 src/sid/xs_interface.c:1327 msgid "Cancel any changes" msgstr "" -#: src/sid/xmms-sid.glade:3102 src/sid/xs_interface.c:1543 +#: src/sid/xmms-sid.glade:3296 src/sid/xs_interface.c:1627 #, fuzzy msgid "Audacious-SID Fileinfo" msgstr "" "\n" "OSD pre Audacious" -#: src/sid/xmms-sid.glade:3172 src/sid/xs_interface.c:1572 +#: src/sid/xmms-sid.glade:3366 src/sid/xs_interface.c:1656 msgid "Songname:" msgstr "" -#: src/sid/xmms-sid.glade:3200 src/sid/xs_interface.c:1580 +#: src/sid/xmms-sid.glade:3394 src/sid/xs_interface.c:1664 msgid "Composer:" msgstr "" -#: src/sid/xmms-sid.glade:3228 src/sid/xs_interface.c:1588 +#: src/sid/xmms-sid.glade:3422 src/sid/xs_interface.c:1672 msgid "Copyright:" msgstr "Autorské práva:" -#: src/sid/xmms-sid.glade:3342 src/sid/xs_interface.c:1632 +#: src/sid/xmms-sid.glade:3536 src/sid/xs_interface.c:1716 #, fuzzy msgid "Song Information:" msgstr "Podrobnosti" -#: src/sid/xmms-sid.glade:3416 src/sid/xs_interface.c:1667 +#: src/sid/xmms-sid.glade:3610 src/sid/xs_interface.c:1751 msgid "Author:" msgstr "" -#: src/sid/xmms-sid.glade:3514 src/sid/xs_interface.c:1701 +#: src/sid/xmms-sid.glade:3708 src/sid/xs_interface.c:1785 #, fuzzy msgid "Duration:" msgstr "Výzdoba" -#: src/sid/xmms-sid.glade:3608 src/sid/xs_interface.c:1735 +#: src/sid/xmms-sid.glade:3802 src/sid/xs_interface.c:1819 #, fuzzy msgid "Sub-tune Information:" msgstr "Podrobnosti" -#: src/sid/xmms-sid.glade:3662 src/sid/xs_interface.c:1796 +#: src/sid/xmms-sid.glade:3856 src/sid/xs_interface.c:1880 msgid "Select HVSC song length database" msgstr "" -#: src/sid/xmms-sid.glade:3704 src/sid/xs_interface.c:1837 +#: src/sid/xmms-sid.glade:3898 src/sid/xs_interface.c:1921 msgid "Select STIL-database" msgstr "" -#: src/sid/xmms-sid.glade:3746 src/sid/xs_interface.c:1878 +#: src/sid/xmms-sid.glade:3940 src/sid/xs_interface.c:1962 msgid "Select HVSC location prefix" msgstr "" -#: src/sid/xmms-sid.glade:3788 src/sid/xs_interface.c:1919 +#: src/sid/xmms-sid.glade:3982 src/sid/xs_interface.c:2003 msgid "Select SIDPlay2 filters file for importing" msgstr "" -#: src/sid/xmms-sid.glade:3830 src/sid/xs_interface.c:1960 +#: src/sid/xmms-sid.glade:4024 src/sid/xs_interface.c:2044 msgid "Select SIDPlay2 filters file for exporting" msgstr "" -#: src/sid/xmms-sid.glade:3871 src/sid/xmms-sid.glade:3953 -#: src/sid/xs_interface.c:2008 src/sid/xs_interface.c:2021 +#: src/sid/xmms-sid.glade:4065 src/sid/xmms-sid.glade:4147 +#: src/sid/xs_interface.c:2092 src/sid/xs_interface.c:2105 #, fuzzy msgid "Confirm selected action" msgstr "Výber koncového zariadenia" -#: src/sid/xmms-sid.glade:3909 src/sid/xs_interface.c:2038 +#: src/sid/xmms-sid.glade:4103 src/sid/xs_interface.c:2122 #, fuzzy msgid "Yes" msgstr "áno" -#: src/sid/xmms-sid.glade:3921 src/sid/xs_interface.c:2044 +#: src/sid/xmms-sid.glade:4115 src/sid/xs_interface.c:2128 #, fuzzy msgid "No" msgstr "Žiadne" -#: src/sid/xs_about.c:84 src/wma/wma.c:121 +#: src/sid/xs_about.c:84 src/wma/wma.c:118 #, c-format msgid "About %s" msgstr "O %s" @@ -4540,12 +4566,1131 @@ msgid "Tune #%i: " msgstr "" -#: src/sndfile/plugin.c:548 +#: src/skins/plugin.c:128 +msgid "About Skinned GUI" +msgstr "" + +#: src/skins/plugin.c:129 +msgid "" +"Copyright (c) 2008, by Tomasz Moń \n" +"\n" +msgstr "" + +#: src/skins/skins_cfg.c:329 +#, fuzzy +msgid "_Fonts" +msgstr "Hatena" + +#: src/skins/skins_cfg.c:330 +#, fuzzy +msgid "_Player:" +msgstr "Spôsob prehrávania:" + +#: src/skins/skins_cfg.c:330 +msgid "Select main player window font:" +msgstr "" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "_Playlist:" +msgstr "Spôsob prehrávania:" + +#: src/skins/skins_cfg.c:331 +msgid "Select playlist font:" +msgstr "" + +#: src/skins/skins_cfg.c:332 +msgid "Use Bitmap fonts if available" +msgstr "" + +#: src/skins/skins_cfg.c:332 +msgid "" +"Use bitmap fonts if they are available. Bitmap fonts do not support Unicode " +"strings." +msgstr "" + +#: src/skins/skins_cfg.c:333 +#, fuzzy +msgid "_Miscellaneous" +msgstr "Služby" + +#: src/skins/skins_cfg.c:334 +msgid "Show track numbers in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:336 +msgid "Show separators in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:338 +msgid "Show window manager decoration" +msgstr "" + +#: src/skins/skins_cfg.c:339 +msgid "This enables the window manager to show decorations for windows." +msgstr "" + +#: src/skins/skins_cfg.c:340 +msgid "Use two-way text scroller" +msgstr "" + +#: src/skins/skins_cfg.c:341 +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 "" + +#: src/skins/skins_cfg.c:342 +msgid "Disable inline gtk theme" +msgstr "" + +#: src/skins/skins_cfg.c:343 +msgid "Allow loading incomplete skins" +msgstr "" + +#: src/skins/skins_cfg.c:344 +msgid "" +"If selected, audacious won't refuse loading broken skins. Use only if your " +"favourite skin doesn't work" +msgstr "" + +#: src/skins/skins_cfg.c:410 +msgid "Color Adjustment" +msgstr "" + +#: src/skins/skins_cfg.c:417 +msgid "" +"Audacious allows you to alter the color balance of the skinned UI. The " +"sliders below will allow you to do this." +msgstr "" + +#: src/skins/skins_cfg.c:427 +#, fuzzy +msgid "Blue" +msgstr "Blues" + +#: src/skins/skins_cfg.c:434 +msgid "Green" +msgstr "" + +#: src/skins/skins_cfg.c:441 +msgid "Red" +msgstr "" + +#: src/skins/skins_cfg.c:571 +#, fuzzy +msgid "Audacious Skinned GUI Configuration" +msgstr "Nastavenia OSD pre Audacious" + +#: src/skins/skins_cfg.c:596 +#, fuzzy +msgid "_Skin" +msgstr "Hatena" + +#: src/skins/ui_equalizer.c:494 +#, fuzzy +msgid "Audacious Equalizer" +msgstr "Okno->Ekvalizér" + +#: src/skins/ui_equalizer.c:794 +#, c-format +msgid "Error importing Winamp EQF file '%s'" +msgstr "" + +#: src/skins/ui_equalizer.c:1172 +msgid "Presets" +msgstr "" + +#: src/skins/ui_main.c:392 +#, c-format +msgid "%s - Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:394 src/skins/ui_main.c:2397 +#, fuzzy +msgid "Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:641 +msgid "VBR" +msgstr "" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "stereo" +msgstr "Stereo" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "mono" +msgstr "Mono" + +#: src/skins/ui_main.c:957 +msgid "Can't jump to time when no track is being played.\n" +msgstr "" + +#: src/skins/ui_main.c:972 src/skins/ui_manager.c:425 +#: src/skins/ui_manager.c:426 +#, fuzzy +msgid "Jump to Time" +msgstr "Okno->Presun na súbor" + +#: src/skins/ui_main.c:993 +#, fuzzy +msgid "minutes:seconds" +msgstr "sekúnd" + +#: src/skins/ui_main.c:1003 +#, fuzzy +msgid "Track length:" +msgstr "Zosilnenie skladby:" + +#: src/skins/ui_main.c:1149 +msgid "Audacious - visibility warning" +msgstr "" + +#: src/skins/ui_main.c:1152 +#, fuzzy +msgid "Show main player window" +msgstr "Zobraziť okno so sieťovým prenosom" + +#: src/skins/ui_main.c:1153 +msgid "Ignore" +msgstr "" + +#: src/skins/ui_main.c:1159 +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)." +msgstr "" + +#: src/skins/ui_main.c:1165 +msgid "Always ignore, show/hide is controlled remotely" +msgstr "" + +#: src/skins/ui_main.c:1210 +msgid "Audacious - broken GTK engine usage warning" +msgstr "" + +#: src/skins/ui_main.c:1218 +#, c-format +msgid "" +"Broken GTK engine in use\n" +"\n" +"Audacious has detected that you are using a broken GTK engine.\n" +"\n" +"The theme engine you are using, %s, is incompatible with some of the " +"features used by modern skins. The incompatible features have been disabled " +"for this session.\n" +"\n" +"To use these features, please consider using a different GTK theme engine." +msgstr "" + +#: src/skins/ui_main.c:1229 +msgid "Do not display this warning again" +msgstr "" + +#: src/skins/ui_main.c:1253 +msgid "Enter location to play:" +msgstr "" + +#: src/skins/ui_main.c:1497 +#, c-format +msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" +msgstr "" + +#: src/skins/ui_main.c:1527 +#, fuzzy, c-format +msgid "Volume: %d%%" +msgstr "Hlasitosť (%):" + +#: src/skins/ui_main.c:1555 +#, c-format +msgid "Balance: %d%% left" +msgstr "" + +#: src/skins/ui_main.c:1559 +msgid "Balance: center" +msgstr "" + +#: src/skins/ui_main.c:1563 +#, c-format +msgid "Balance: %d%% right" +msgstr "" + +#: src/skins/ui_main.c:1881 +#, fuzzy +msgid "Options Menu" +msgstr "Nastavenia:" + +#: src/skins/ui_main.c:1885 +msgid "Disable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1887 +msgid "Enable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1890 +#, fuzzy +msgid "File Info Box" +msgstr "Informácie o súbore - %s" + +#: src/skins/ui_main.c:1894 +msgid "Disable 'GUI Scaling'" +msgstr "" + +#: src/skins/ui_main.c:1896 +#, fuzzy +msgid "Enable 'GUI Scaling'" +msgstr "Povoliť prevzorkovanie zvuku" + +#: src/skins/ui_main.c:1899 +msgid "Visualization Menu" +msgstr "" + +#: src/skins/ui_main.c:1946 +msgid "" +"Couldn't open audio.\n" +"\n" +"Please check that:\n" +"1. You have the correct output plugin selected.\n" +"2. No other programs is blocking the soundcard.\n" +"3. Your soundcard is configured properly.\n" +msgstr "" + +#: src/skins/ui_manager.c:53 src/skins/ui_manager.c:54 +msgid "Autoscroll Songname" +msgstr "" + +#: src/skins/ui_manager.c:56 src/skins/ui_manager.c:57 +msgid "Stop after Current Song" +msgstr "" + +#: src/skins/ui_manager.c:59 src/skins/ui_manager.c:60 +#, fuzzy +msgid "Peaks" +msgstr "Žarty" + +#: src/skins/ui_manager.c:62 src/skins/ui_manager.c:63 +#, fuzzy +msgid "Repeat" +msgstr "Beat" + +#: src/skins/ui_manager.c:65 src/skins/ui_manager.c:66 +msgid "Shuffle" +msgstr "" + +#: src/skins/ui_manager.c:68 src/skins/ui_manager.c:69 +msgid "No Playlist Advance" +msgstr "" + +#: src/skins/ui_manager.c:71 src/skins/ui_manager.c:72 +msgid "Show Player" +msgstr "" + +#: src/skins/ui_manager.c:74 src/skins/ui_manager.c:75 +msgid "Show Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:77 src/skins/ui_manager.c:78 +#, fuzzy +msgid "Show Equalizer" +msgstr "Okno->Ekvalizér" + +#: src/skins/ui_manager.c:80 src/skins/ui_manager.c:81 +msgid "Always on Top" +msgstr "" + +#: src/skins/ui_manager.c:83 src/skins/ui_manager.c:84 +msgid "Put on All Workspaces" +msgstr "" + +#: src/skins/ui_manager.c:86 src/skins/ui_manager.c:87 +msgid "Roll up Player" +msgstr "" + +#: src/skins/ui_manager.c:89 src/skins/ui_manager.c:90 +msgid "Roll up Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:92 src/skins/ui_manager.c:93 +msgid "Roll up Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:95 src/sndstretch/sndstretch_xmms.c:375 +#, fuzzy +msgid "Scale" +msgstr "Uložiť" + +#: src/skins/ui_manager.c:96 +msgid "DoubleSize" +msgstr "" + +#: src/skins/ui_manager.c:98 src/skins/ui_manager.c:99 +msgid "Easy Move" +msgstr "" + +#: src/skins/ui_manager.c:107 +msgid "Analyzer" +msgstr "" + +#: src/skins/ui_manager.c:108 +#, fuzzy +msgid "Scope" +msgstr "na:" + +#: src/skins/ui_manager.c:109 +msgid "Voiceprint" +msgstr "" + +#: src/skins/ui_manager.c:110 +msgid "Off" +msgstr "" + +#: src/skins/ui_manager.c:114 src/skins/ui_manager.c:131 +#: src/skins/ui_manager.c:137 +#, fuzzy +msgid "Normal" +msgstr "Formát:" + +#: src/skins/ui_manager.c:115 src/skins/ui_manager.c:132 +#, fuzzy +msgid "Fire" +msgstr "Satira" + +#: src/skins/ui_manager.c:116 +msgid "Vertical Lines" +msgstr "" + +#: src/skins/ui_manager.c:120 +#, fuzzy +msgid "Lines" +msgstr "Latinská" + +#: src/skins/ui_manager.c:121 +#, fuzzy +msgid "Bars" +msgstr "Bass" + +#: src/skins/ui_manager.c:125 +msgid "Dot Scope" +msgstr "" + +#: src/skins/ui_manager.c:126 +msgid "Line Scope" +msgstr "" + +#: src/skins/ui_manager.c:127 +msgid "Solid Scope" +msgstr "" + +#: src/skins/ui_manager.c:133 +msgid "Ice" +msgstr "" + +#: src/skins/ui_manager.c:138 +msgid "Smooth" +msgstr "" + +#: src/skins/ui_manager.c:142 +msgid "Full (~50 fps)" +msgstr "" + +#: src/skins/ui_manager.c:143 +msgid "Half (~25 fps)" +msgstr "" + +#: src/skins/ui_manager.c:144 +msgid "Quarter (~13 fps)" +msgstr "" + +#: src/skins/ui_manager.c:145 +msgid "Eighth (~6 fps)" +msgstr "" + +#: src/skins/ui_manager.c:149 src/skins/ui_manager.c:157 +#, fuzzy +msgid "Slowest" +msgstr "Showtunes" + +#: src/skins/ui_manager.c:150 src/skins/ui_manager.c:158 +#, fuzzy +msgid "Slow" +msgstr "nízke" + +#: src/skins/ui_manager.c:151 src/skins/ui_manager.c:159 +#, fuzzy +msgid "Medium" +msgstr "stredné" + +#: src/skins/ui_manager.c:152 src/skins/ui_manager.c:160 +#, fuzzy +msgid "Fast" +msgstr "Formát:" + +#: src/skins/ui_manager.c:153 src/skins/ui_manager.c:161 +msgid "Fastest" +msgstr "" + +#: src/skins/ui_manager.c:165 +msgid "Time Elapsed" +msgstr "" + +#: src/skins/ui_manager.c:166 +msgid "Time Remaining" +msgstr "" + +#: src/skins/ui_manager.c:180 src/skins/ui_manager.c:181 +#, fuzzy +msgid "Pause" +msgstr "Prehrávanie->Pozastaviť" + +#: src/skins/ui_manager.c:186 src/skins/ui_manager.c:187 +#, fuzzy +msgid "Previous" +msgstr "Primus" + +#: src/skins/ui_manager.c:189 src/skins/ui_manager.c:190 +#, fuzzy +msgid "Next" +msgstr "Text" + +#: src/skins/ui_manager.c:195 +#, fuzzy +msgid "Visualization" +msgstr "Organizácia:" + +#: src/skins/ui_manager.c:196 +msgid "Visualization Mode" +msgstr "" + +#: src/skins/ui_manager.c:197 +msgid "Analyzer Mode" +msgstr "" + +#: src/skins/ui_manager.c:198 +msgid "Scope Mode" +msgstr "" + +#: src/skins/ui_manager.c:199 +msgid "Voiceprint Mode" +msgstr "" + +#: src/skins/ui_manager.c:200 +msgid "WindowShade VU Mode" +msgstr "" + +#: src/skins/ui_manager.c:201 +msgid "Refresh Rate" +msgstr "" + +#: src/skins/ui_manager.c:202 +msgid "Analyzer Falloff" +msgstr "" + +#: src/skins/ui_manager.c:203 +msgid "Peaks Falloff" +msgstr "" + +#: src/skins/ui_manager.c:208 +#, fuzzy +msgid "Playlist" +msgstr "Zoznam skladieb->Opakovať" + +#: src/skins/ui_manager.c:210 src/skins/ui_manager.c:211 +#, fuzzy +msgid "New Playlist" +msgstr "Okno->Zoznam skladieb" + +#: src/skins/ui_manager.c:213 src/skins/ui_manager.c:214 +msgid "Select Next Playlist" +msgstr "" + +#: src/skins/ui_manager.c:216 src/skins/ui_manager.c:217 +msgid "Select Previous Playlist" +msgstr "" + +#: src/skins/ui_manager.c:219 src/skins/ui_manager.c:220 +msgid "Delete Playlist" +msgstr "" + +#: src/skins/ui_manager.c:222 +msgid "Load List" +msgstr "" + +#: src/skins/ui_manager.c:223 +msgid "Loads a playlist file into the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:225 +#, fuzzy +msgid "Save List" +msgstr "Uložiť" + +#: src/skins/ui_manager.c:226 +msgid "Saves the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:228 +#, fuzzy +msgid "Save Default List" +msgstr "Štandardné (%s)" + +#: src/skins/ui_manager.c:229 +msgid "Saves the selected playlist to the default location." +msgstr "" + +#: src/skins/ui_manager.c:232 +msgid "Refresh List" +msgstr "" + +#: src/skins/ui_manager.c:233 +msgid "Refreshes metadata associated with a playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:236 +msgid "List Manager" +msgstr "" + +#: src/skins/ui_manager.c:237 +msgid "Opens the playlist manager." +msgstr "" + +#: src/skins/ui_manager.c:243 +msgid "View" +msgstr "" + +#: src/skins/ui_manager.c:247 +msgid "Add Internet Address..." +msgstr "" + +#: src/skins/ui_manager.c:248 +msgid "Adds a remote track to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:251 +msgid "Add Files..." +msgstr "" + +#: src/skins/ui_manager.c:252 +msgid "Adds files to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:257 +msgid "Search and Select" +msgstr "" + +#: src/skins/ui_manager.c:258 +msgid "" +"Searches the playlist and selects playlist entries based on specific " +"criteria." +msgstr "" + +#: src/skins/ui_manager.c:261 +#, fuzzy +msgid "Invert Selection" +msgstr "Výber koncového zariadenia" + +#: src/skins/ui_manager.c:262 +msgid "Inverts the selected and unselected entries." +msgstr "" + +#: src/skins/ui_manager.c:265 +#, fuzzy +msgid "Select All" +msgstr "Vyberte súbor s motívom" + +#: src/skins/ui_manager.c:266 +msgid "Selects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:269 +#, fuzzy +msgid "Select None" +msgstr "Vyberte súbor s motívom" + +#: src/skins/ui_manager.c:270 +msgid "Deselects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:275 +#, fuzzy +msgid "Remove All" +msgstr "Odstrániť značku" + +#: src/skins/ui_manager.c:276 +msgid "Removes all entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:279 +msgid "Clear Queue" +msgstr "" + +#: src/skins/ui_manager.c:280 +msgid "Clears the queue associated with this playlist." +msgstr "" + +#: src/skins/ui_manager.c:283 +msgid "Remove Unavailable Files" +msgstr "" + +#: src/skins/ui_manager.c:284 +msgid "Removes unavailable files from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:287 +#, fuzzy +msgid "Remove Duplicates" +msgstr "Odstrániť mechaniku" + +#: src/skins/ui_manager.c:289 src/skins/ui_manager.c:321 +#: src/skins/ui_manager.c:351 +#, fuzzy +msgid "By Title" +msgstr "Názov" + +#: src/skins/ui_manager.c:290 +msgid "Removes duplicate entries from the playlist by title." +msgstr "" + +#: src/skins/ui_manager.c:293 src/skins/ui_manager.c:329 +#: src/skins/ui_manager.c:359 +#, fuzzy +msgid "By Filename" +msgstr "Meno súboru" + +#: src/skins/ui_manager.c:294 +msgid "Removes duplicate entries from the playlist by filename." +msgstr "" + +#: src/skins/ui_manager.c:297 src/skins/ui_manager.c:333 +#: src/skins/ui_manager.c:363 +#, fuzzy +msgid "By Path + Filename" +msgstr "Meno súboru" + +#: src/skins/ui_manager.c:298 +msgid "Removes duplicate entries from the playlist by their full path." +msgstr "" + +#: src/skins/ui_manager.c:301 +msgid "Remove Unselected" +msgstr "" + +#: src/skins/ui_manager.c:302 +msgid "Remove unselected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:305 +msgid "Remove Selected" +msgstr "" + +#: src/skins/ui_manager.c:306 +msgid "Remove selected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:311 +msgid "Randomize List" +msgstr "" + +#: src/skins/ui_manager.c:312 +msgid "Randomizes the playlist." +msgstr "" + +#: src/skins/ui_manager.c:315 +msgid "Reverse List" +msgstr "" + +#: src/skins/ui_manager.c:316 +msgid "Reverses the playlist." +msgstr "" + +#: src/skins/ui_manager.c:319 +#, fuzzy +msgid "Sort List" +msgstr "Umelec:" + +#: src/skins/ui_manager.c:322 src/skins/ui_manager.c:352 +msgid "Sorts the list by title." +msgstr "" + +#: src/skins/ui_manager.c:325 src/skins/ui_manager.c:355 +#, fuzzy +msgid "By Artist" +msgstr "Umelec:" + +#: src/skins/ui_manager.c:326 src/skins/ui_manager.c:356 +msgid "Sorts the list by artist." +msgstr "" + +#: src/skins/ui_manager.c:330 src/skins/ui_manager.c:360 +msgid "Sorts the list by filename." +msgstr "" + +#: src/skins/ui_manager.c:334 src/skins/ui_manager.c:364 +msgid "Sorts the list by full pathname." +msgstr "" + +#: src/skins/ui_manager.c:337 src/skins/ui_manager.c:367 +#, fuzzy +msgid "By Date" +msgstr "Dátum:" + +#: src/skins/ui_manager.c:338 src/skins/ui_manager.c:368 +msgid "Sorts the list by modification time." +msgstr "" + +#: src/skins/ui_manager.c:341 src/skins/ui_manager.c:371 +#, fuzzy +msgid "By Track Number" +msgstr "Číslo stopy:" + +#: src/skins/ui_manager.c:342 src/skins/ui_manager.c:372 +msgid "Sorts the list by track number." +msgstr "" + +#: src/skins/ui_manager.c:345 src/skins/ui_manager.c:375 +msgid "By Playlist Entry" +msgstr "" + +#: src/skins/ui_manager.c:346 src/skins/ui_manager.c:376 +msgid "Sorts the list by playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:349 +#, fuzzy +msgid "Sort Selected" +msgstr "Výber koncového zariadenia" + +#: src/skins/ui_manager.c:385 +#, fuzzy +msgid "File" +msgstr "Meno súboru" + +#: src/skins/ui_manager.c:388 +msgid "Plugin Services" +msgstr "" + +#: src/skins/ui_manager.c:390 src/skins/ui_manager.c:393 +#, fuzzy +msgid "View Track Details" +msgstr "použiť zosilnenie podľa vrcholu v skladbe" + +#: src/skins/ui_manager.c:391 src/skins/ui_manager.c:394 +msgid "View track details" +msgstr "" + +#: src/skins/ui_manager.c:396 src/skins/ui_manager.c:397 +#, fuzzy +msgid "About Audacious" +msgstr "O module LIRC pre Audacious" + +#: src/skins/ui_manager.c:399 +#, fuzzy +msgid "Play File" +msgstr "Spôsob prehrávania:" + +#: src/skins/ui_manager.c:400 +#, fuzzy +msgid "Load and play a file" +msgstr "Nahrať SoundFont pri spustení prehrávača" + +#: src/skins/ui_manager.c:402 +msgid "Play Location" +msgstr "" + +#: src/skins/ui_manager.c:403 +#, fuzzy +msgid "Play media from the selected location" +msgstr "Výber koncového zariadenia" + +#: src/skins/ui_manager.c:405 +msgid "Plugin services" +msgstr "" + +#: src/skins/ui_manager.c:407 +msgid "Preferences" +msgstr "" + +#: src/skins/ui_manager.c:408 +msgid "Open preferences window" +msgstr "" + +#: src/skins/ui_manager.c:410 +msgid "_Quit" +msgstr "" + +#: src/skins/ui_manager.c:411 +#, fuzzy +msgid "Quit Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_manager.c:413 src/skins/ui_manager.c:414 +msgid "Set A-B" +msgstr "" + +#: src/skins/ui_manager.c:416 src/skins/ui_manager.c:417 +msgid "Clear A-B" +msgstr "" + +#: src/skins/ui_manager.c:419 src/skins/ui_manager.c:420 +msgid "Jump to Playlist Start" +msgstr "" + +#: src/skins/ui_manager.c:428 +msgid "Queue Toggle" +msgstr "" + +#: src/skins/ui_manager.c:429 +msgid "Enables/disables the entry in the playlist's queue." +msgstr "" + +#: src/skins/ui_manager.c:436 +msgid "Load" +msgstr "" + +#: src/skins/ui_manager.c:441 src/skins/ui_manager.c:462 +#: src/skins/ui_manager.c:477 +#, fuzzy +msgid "Preset" +msgstr "Port" + +#: src/skins/ui_manager.c:442 +msgid "Load preset" +msgstr "" + +#: src/skins/ui_manager.c:444 src/skins/ui_manager.c:465 +#: src/skins/ui_manager.c:480 +msgid "Auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:445 +msgid "Load auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:448 +msgid "Load default preset into equalizer" +msgstr "" + +#: src/skins/ui_manager.c:450 +#, fuzzy +msgid "Zero" +msgstr "Retro" + +#: src/skins/ui_manager.c:451 +msgid "Set equalizer preset levels to zero" +msgstr "" + +#: src/skins/ui_manager.c:453 +msgid "From file" +msgstr "" + +#: src/skins/ui_manager.c:454 +msgid "Load preset from file" +msgstr "" + +#: src/skins/ui_manager.c:456 +msgid "From WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:457 +msgid "Load preset from WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:459 +msgid "WinAMP Presets" +msgstr "" + +#: src/skins/ui_manager.c:460 +msgid "Import WinAMP presets" +msgstr "" + +#: src/skins/ui_manager.c:463 +msgid "Save preset" +msgstr "" + +#: src/skins/ui_manager.c:466 +msgid "Save auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:469 +#, fuzzy +msgid "Save default preset" +msgstr "použiť predvolené" + +#: src/skins/ui_manager.c:471 +#, fuzzy +msgid "To file" +msgstr "Súbor s motívom:" + +#: src/skins/ui_manager.c:472 +msgid "Save preset to file" +msgstr "" + +#: src/skins/ui_manager.c:474 +msgid "To WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:475 +msgid "Save preset to WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:478 +#, fuzzy +msgid "Delete preset" +msgstr "Štandardné" + +#: src/skins/ui_manager.c:481 +msgid "Delete auto-load preset" +msgstr "" + +#: src/skins/ui_playlist.c:454 +msgid "Search entries in active playlist" +msgstr "" + +#: src/skins/ui_playlist.c:462 +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 "" + +#: src/skins/ui_playlist.c:477 +#, fuzzy +msgid "Album: " +msgstr "Album:" + +#: src/skins/ui_playlist.c:484 +#, fuzzy +msgid "Artist: " +msgstr "Umelec:" + +#: src/skins/ui_playlist.c:491 +#, fuzzy +msgid "Filename: " +msgstr "Meno súboru:" + +#: src/skins/ui_playlist.c:499 +msgid "Clear previous selection before searching" +msgstr "" + +#: src/skins/ui_playlist.c:502 +msgid "Automatically toggle queue for matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:505 +msgid "Create a new playlist with matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:724 +#, c-format +msgid "Error writing playlist \"%s\": %s" +msgstr "" + +#: src/skins/ui_playlist.c:746 +#, c-format +msgid "%s already exist. Continue?" +msgstr "" + +#: src/skins/ui_playlist.c:761 +#, c-format +msgid "" +"Unable to save playlist.\n" +"\n" +"Unknown file type for '%s'.\n" +msgstr "" + +#: src/skins/ui_playlist.c:887 +msgid "Save as Static Playlist" +msgstr "" + +#: src/skins/ui_playlist.c:894 +msgid "Use Relative Path" +msgstr "" + +#: src/skins/ui_playlist.c:916 +#, fuzzy +msgid "Load Playlist" +msgstr "Okno->Zoznam skladieb" + +#: src/skins/ui_playlist.c:929 +msgid "Save Playlist" +msgstr "" + +#: src/skins/ui_playlist.c:1497 +msgid "Audacious Playlist Editor" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "PREAMP" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "60HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "170HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "310HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +#, fuzzy +msgid "600HZ" +msgstr "10000 Hz" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "1KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "3KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "6KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "12KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "14KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "16KHZ" +msgstr "" + +#: src/skins/ui_skinselector.c:178 +msgid "Archived Winamp 2.x skin" +msgstr "" + +#: src/skins/ui_skinselector.c:183 +msgid "Unarchived Winamp 2.x skin" +msgstr "" + +#: src/skins/util.c:1132 +#, fuzzy, c-format +msgid "Could not create directory (%s): %s\n" +msgstr "" +"Adresár %s sa nepodarilo otestovať\n" +"Chyba: %s" + +#: src/sndfile/plugin.c:554 #, fuzzy msgid "About sndfile plugin" msgstr "Modul sndfile WAV" -#: src/sndfile/plugin.c:549 +#: src/sndfile/plugin.c:555 msgid "" "Adapted for Audacious usage by Tony Vroon \n" "from the xmms_sndfile plugin which is:\n" @@ -4584,67 +5729,62 @@ "nestalo, požiadajte o ňu Free Software Foundation, Inc.,\n" "675 Mass Ave, Cambridge, MA 02139, USA." -#: src/sndstretch/sndstretch_xmms.c:159 +#: src/sndstretch/sndstretch_xmms.c:158 #, fuzzy msgid "About SndStretch" msgstr "O module OSS" -#: src/sndstretch/sndstretch_xmms.c:319 +#: src/sndstretch/sndstretch_xmms.c:318 #, fuzzy msgid "Volume corr." msgstr "Ovládanie hlasitosti:" -#: src/sndstretch/sndstretch_xmms.c:320 +#: src/sndstretch/sndstretch_xmms.c:319 msgid "Short Overlap" msgstr "" -#: src/sndstretch/sndstretch_xmms.c:374 +#: src/sndstretch/sndstretch_xmms.c:373 #, fuzzy msgid "Speed" msgstr "Hovorené slovo" -#: src/sndstretch/sndstretch_xmms.c:375 +#: src/sndstretch/sndstretch_xmms.c:374 msgid "Pitch" msgstr "" -#: src/sndstretch/sndstretch_xmms.c:376 -#, fuzzy -msgid "Scale" -msgstr "Uložiť" - -#: src/sndstretch/sndstretch_xmms.c:396 +#: src/sndstretch/sndstretch_xmms.c:395 #, fuzzy msgid "SndStretch - Configuration" msgstr "Nastavenie ovládača pre Sun" -#: src/song_change/song_change.c:312 +#: src/song_change/song_change.c:310 msgid "Commands" msgstr "Príkazy" -#: src/song_change/song_change.c:319 +#: src/song_change/song_change.c:317 msgid "Command to run when Audacious starts a new song." msgstr "Príkaz, ktorý sa vykoná keď Audacious začne prehrávať novú skladbu." -#: src/song_change/song_change.c:328 src/song_change/song_change.c:350 -#: src/song_change/song_change.c:371 src/song_change/song_change.c:392 +#: src/song_change/song_change.c:326 src/song_change/song_change.c:348 +#: src/song_change/song_change.c:369 src/song_change/song_change.c:390 msgid "Command:" msgstr "Príkaz:" -#: src/song_change/song_change.c:342 +#: src/song_change/song_change.c:340 msgid "Command to run toward the end of a song." msgstr "Príkaz, ktorý sa vykoná na konci skladby." -#: src/song_change/song_change.c:362 +#: src/song_change/song_change.c:360 msgid "Command to run when Audacious reaches the end of the playlist." msgstr "" "Príkaz, ktorý sa vykoná, keď Audacious dosiahne koniec zoznamu skladieb." -#: src/song_change/song_change.c:383 +#: src/song_change/song_change.c:381 msgid "" "Command to run when title changes for a song (i.e. network streams titles)." msgstr "" -#: src/song_change/song_change.c:404 +#: src/song_change/song_change.c:402 #, c-format msgid "" "You can use the following format strings which\n" @@ -4673,7 +5813,7 @@ "%%t: pozícia v zozname skladieb (%%02d)\n" "%%p: práve sa hrá (1 alebo 0)" -#: src/song_change/song_change.c:429 +#: src/song_change/song_change.c:427 msgid "" "Parameters passed to the shell should be encapsulated in " "quotes. Doing otherwise is a security risk." @@ -4682,7 +5822,7 @@ "úvodzoviek. Nerešpektovanie tejto rady predstavuje bezpečnostné riziko." -#: src/spectrum/spectrum.c:90 +#: src/spectrum/spectrum.c:89 msgid "Spectrum Analyzer" msgstr "" @@ -4694,11 +5834,11 @@ msgid "The orientation of the tray" msgstr "Orientácia oznamovacej oblasti" -#: src/statusicon/si_ui.c:622 +#: src/statusicon/si_ui.c:620 msgid "About Status Icon Plugin" msgstr "O module Stavová ikona" -#: src/statusicon/si_ui.c:624 +#: src/statusicon/si_ui.c:622 msgid "" "\n" "written by Giacomo Lozito < james@develia.org >\n" @@ -4712,40 +5852,40 @@ "Tento modul poskytuje stavovú ikonu umiestnenú\n" "v oznamovacej oblasti správcu okien.\n" -#: src/statusicon/si_ui.c:696 +#: src/statusicon/si_ui.c:694 #, fuzzy msgid "Status Icon Plugin - Preferences" msgstr "O module Stavová ikona" -#: src/statusicon/si_ui.c:707 +#: src/statusicon/si_ui.c:705 msgid "Right-Click Menu" msgstr "" -#: src/statusicon/si_ui.c:712 +#: src/statusicon/si_ui.c:710 msgid "Audacious standard menu" msgstr "" -#: src/statusicon/si_ui.c:717 +#: src/statusicon/si_ui.c:715 msgid "Small playback menu #1" msgstr "" -#: src/statusicon/si_ui.c:722 +#: src/statusicon/si_ui.c:720 msgid "Small playback menu #2" msgstr "" -#: src/statusicon/si_ui.c:745 +#: src/statusicon/si_ui.c:743 msgid "Mouse Scroll Action" msgstr "" -#: src/statusicon/si_ui.c:750 +#: src/statusicon/si_ui.c:748 msgid "Change volume" msgstr "" -#: src/statusicon/si_ui.c:755 +#: src/statusicon/si_ui.c:753 msgid "Change playing song" msgstr "" -#: src/stereo_plugin/stereo.c:26 +#: src/stereo_plugin/stereo.c:25 msgid "" "Extra Stereo Plugin\n" "\n" @@ -4755,23 +5895,19 @@ "\n" "Napísal Johan Levin, 1999" -#: src/stereo_plugin/stereo.c:52 +#: src/stereo_plugin/stereo.c:51 msgid "About Extra Stereo Plugin" msgstr "O module Extra stereo" -#: src/stereo_plugin/stereo.c:93 +#: src/stereo_plugin/stereo.c:92 msgid "Configure Extra Stereo" msgstr "Nastaviť Extra stereo" -#: src/stereo_plugin/stereo.c:95 -msgid "Effect intensity:" -msgstr "Sila efektu:" +#: src/sun/about.c:33 +msgid "About the Sun Driver" +msgstr "O ovládači pre Sun" #: src/sun/about.c:34 -msgid "About the Sun Driver" -msgstr "O ovládači pre Sun" - -#: src/sun/about.c:35 msgid "" "XMMS BSD Sun Driver\n" "\n" @@ -4783,19 +5919,19 @@ "Copyright (c) 2001 CubeSoft Communications, Inc.\n" "Správca: .\n" -#: src/sun/configure.c:201 +#: src/sun/configure.c:199 msgid "Audio control device:" msgstr "Zariadenie na ovládanie zvuku:" -#: src/sun/configure.c:350 +#: src/sun/configure.c:348 msgid "Volume controls device:" msgstr "Zariadenie na ovládanie hlasitosti:" -#: src/sun/configure.c:363 +#: src/sun/configure.c:361 msgid "XMMS uses mixer exclusively." msgstr "XMMS používa výlučný prístup k mixéru" -#: src/sun/configure.c:538 +#: src/sun/configure.c:536 msgid "Sun driver configuration" msgstr "Nastavenie ovládača pre Sun" @@ -4823,7 +5959,7 @@ msgid "TiMidity Configuration File" msgstr "Konfiguračný súbor TiMidity" -#: src/timidity/xmms-timidity.c:118 +#: src/timidity/xmms-timidity.c:115 msgid "" "TiMidity Plugin\n" "http://libtimidity.sourceforge.net\n" @@ -4833,20 +5969,20 @@ "http://libtimidity.sourceforge.net\n" "napísal Konstantin Korikov" -#: src/timidity/xmms-timidity.c:119 +#: src/timidity/xmms-timidity.c:116 #, c-format msgid "TiMidity Plugin %s" msgstr "Modul TiMidity %s" -#: src/timidity/xmms-timidity.c:336 +#: src/timidity/xmms-timidity.c:333 msgid "Couldn't load MIDI file" msgstr "MIDI súbor sa nepodarilo načítať" -#: src/tonegen/tonegen.c:56 +#: src/tonegen/tonegen.c:55 msgid "About Tone Generator" msgstr "O generátore tónov" -#: src/tonegen/tonegen.c:58 +#: src/tonegen/tonegen.c:57 msgid "" "Sinus tone generator by Haavard Kvaalen \n" "Modified by Daniel J. Peng \n" @@ -4862,91 +5998,91 @@ "napr. na prehranie tónov o frekvencii 2000Hz a 2005Hz zadajte " "tone://2000;2005" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 #, c-format msgid "%s %.1f Hz" msgstr "" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 msgid "Tone Generator: " msgstr "Generátor tónov:" +#: src/tta/libtta.c:127 +msgid "Can't open file\n" +msgstr "" + #: src/tta/libtta.c:130 -msgid "Can't open file\n" +msgid "Not supported file format\n" msgstr "" #: src/tta/libtta.c:133 -msgid "Not supported file format\n" +msgid "File is corrupted\n" msgstr "" #: src/tta/libtta.c:136 -msgid "File is corrupted\n" +msgid "Can't read from file\n" msgstr "" #: src/tta/libtta.c:139 -msgid "Can't read from file\n" +msgid "Insufficient memory available\n" msgstr "" #: src/tta/libtta.c:142 -msgid "Insufficient memory available\n" -msgstr "" - -#: src/tta/libtta.c:145 #, fuzzy msgid "Output plugin error\n" msgstr "Slepý výstupný modul" -#: src/tta/libtta.c:148 +#: src/tta/libtta.c:145 #, fuzzy msgid "Unknown error\n" msgstr "Neznáma zvuková karta" -#: src/tta/libtta.c:152 +#: src/tta/libtta.c:149 msgid "TTA Decoder Error" msgstr "" -#: src/tta/libtta.c:261 +#: src/tta/libtta.c:258 #, fuzzy msgid "TTA input plugin " msgstr "Slepý výstupný modul" -#: src/tta/libtta.c:262 +#: src/tta/libtta.c:259 msgid "" " for BMP\n" "Copyright (c) 2004 True Audio Software\n" msgstr "" -#: src/tta/libtta.c:265 +#: src/tta/libtta.c:262 #, fuzzy msgid "About True Audio Plugin" msgstr "O module Ogg Vorbis Audio" -#: src/tta/libtta.c:316 +#: src/tta/libtta.c:313 #, fuzzy msgid "ID3 Tag:" msgstr " ID3 značka " -#: src/tta/libtta.c:378 src/wavpack/ui.cxx:234 +#: src/tta/libtta.c:375 src/wavpack/ui.cxx:232 msgid "Track number:" msgstr "Číslo stopy:" -#: src/vorbis/configure.c:84 +#: src/vorbis/configure.c:82 msgid "Ogg Vorbis Audio Plugin Configuration" msgstr "Nastavenie modulu Ogg Vorbis" -#: src/vorbis/configure.c:94 +#: src/vorbis/configure.c:92 msgid "Ogg Vorbis Tags:" msgstr "Značky Ogg Vorbis:" -#: src/vorbis/configure.c:115 +#: src/vorbis/configure.c:113 msgid "Title format:" msgstr "Formát názvu:" -#: src/vorbis/vorbis.c:681 +#: src/vorbis/vorbis.c:677 msgid "About Ogg Vorbis Audio Plugin" msgstr "O module Ogg Vorbis Audio" -#: src/vorbis/vorbis.c:687 +#: src/vorbis/vorbis.c:683 #, fuzzy msgid "" "Ogg Vorbis Plugin by the Xiph.org Foundation\n" @@ -4980,11 +6116,11 @@ "\n" "Navštívte stránky Xiph.org Foundation na http://www.xiph.org/\n" -#: src/vtx/about.c:23 +#: src/vtx/about.c:17 msgid "About Vortex Player" msgstr "" -#: src/vtx/about.c:25 +#: src/vtx/about.c:19 msgid "" "Vortex file format player by Sashnov Alexander \n" "Founded on original source in_vtx.dll by Roman Sherbakov " msgstr "" -#: src/wavpack/ui.cxx:52 +#: src/wavpack/ui.cxx:50 #, fuzzy, c-format msgid "Wavpack Decoder Plugin %s" msgstr "Modul Ozvena %s" -#: src/wavpack/ui.cxx:53 +#: src/wavpack/ui.cxx:51 msgid "" "Copyright (c) 2006 William Pitcock \n" "\n" @@ -5009,98 +6145,98 @@ "Visit the Wavpack site at http://www.wavpack.com/\n" msgstr "" -#: src/wavpack/ui.cxx:165 +#: src/wavpack/ui.cxx:163 msgid "Ape2 Tag" msgstr "" -#: src/wavpack/ui.cxx:288 +#: src/wavpack/ui.cxx:286 msgid "Wavpack Info:" msgstr "" +#: src/wavpack/ui.cxx:379 +#, fuzzy, c-format +msgid "version %d" +msgstr "Verzia:" + +#: src/wavpack/ui.cxx:380 +#, c-format +msgid "average bitrate: %6.1f kbps" +msgstr "" + #: src/wavpack/ui.cxx:381 #, fuzzy, c-format -msgid "version %d" -msgstr "Verzia:" +msgid "samplerate: %d Hz" +msgstr "Vzorkovacia frekvencia: %d Hz" #: src/wavpack/ui.cxx:382 -#, c-format -msgid "average bitrate: %6.1f kbps" -msgstr "" +#, fuzzy, c-format +msgid "bits per sample: %d" +msgstr "Bitov na vzorku: %d" #: src/wavpack/ui.cxx:383 #, fuzzy, c-format -msgid "samplerate: %d Hz" -msgstr "Vzorkovacia frekvencia: %d Hz" +msgid "channels: %d" +msgstr "Počet kanálov: %d" #: src/wavpack/ui.cxx:384 #, fuzzy, c-format -msgid "bits per sample: %d" -msgstr "Bitov na vzorku: %d" - -#: src/wavpack/ui.cxx:385 -#, fuzzy, c-format -msgid "channels: %d" -msgstr "Počet kanálov: %d" - -#: src/wavpack/ui.cxx:386 -#, fuzzy, c-format msgid "length: %d:%.2d" msgstr "" "\n" "Celková dĺžka: %d:%d\n" -#: src/wavpack/ui.cxx:387 +#: src/wavpack/ui.cxx:385 #, fuzzy, c-format msgid "file size: %d Bytes" msgstr "Veľkosť súboru: %ld B" -#: src/wavpack/ui.cxx:394 +#: src/wavpack/ui.cxx:392 #, fuzzy msgid "Title Peak: ?" msgstr "Názov:" -#: src/wavpack/ui.cxx:395 +#: src/wavpack/ui.cxx:393 #, fuzzy msgid "Album Peak: ?" msgstr "Vrchol albumu:" -#: src/wavpack/ui.cxx:396 +#: src/wavpack/ui.cxx:394 #, fuzzy msgid "Title Gain: ?" msgstr "Zmena názvu" -#: src/wavpack/ui.cxx:397 +#: src/wavpack/ui.cxx:395 #, fuzzy msgid "Album Gain: ?" msgstr "Zosilnenie albumu:" -#: src/wavpack/ui.cxx:471 +#: src/wavpack/ui.cxx:469 #, fuzzy msgid "Wavpack Configuration" msgstr "Nastavenia Flac" -#: src/wavpack/ui.cxx:484 +#: src/wavpack/ui.cxx:482 #, fuzzy msgid "General Plugin Settings:" msgstr "Nastavenia zosilnenia prehrávania:" -#: src/wavpack/ui.cxx:502 +#: src/wavpack/ui.cxx:500 msgid "ReplayGain Settings:" msgstr "Nastavenia zosilnenia prehrávania:" -#: src/wavpack/ui.cxx:520 +#: src/wavpack/ui.cxx:518 msgid "ReplayGain Type:" msgstr "Typ zosilnenia:" -#: src/wavpack/ui.cxx:531 +#: src/wavpack/ui.cxx:529 msgid "use Track Gain/Peak" msgstr "použiť zosilnenie podľa vrcholu v skladbe" -#: src/wavpack/ui.cxx:539 +#: src/wavpack/ui.cxx:537 msgid "use Album Gain/Peak" msgstr "použiť zosilnenie podľa vrcholu na albume" -#: src/wma/wma.c:123 +#: src/wma/wma.c:120 msgid "" "Adapted for use in Audacious by Tony Vroon (chainsaw@gentoo.org) from\n" "the BEEP-WMA plugin which is Copyright (C) 2004,2005 Mokrushin I.V. aka " @@ -5160,14 +6296,6 @@ #~ msgstr "O podpore sndfile WAV" #, fuzzy -#~ msgid "Play/Pause:" -#~ msgstr "Prehrávanie->Pozastaviť" - -#, fuzzy -#~ msgid "File Info" -#~ msgstr "Informácie o súbore - %s" - -#, fuzzy #~ msgid "Couldn't open file!" #~ msgstr "MIDI súbor sa nepodarilo načítať" @@ -5192,9 +6320,6 @@ #~ msgid "%d Hz" #~ msgstr "%d Hz" -#~ msgid "Blues" -#~ msgstr "Blues" - #~ msgid "Classic Rock" #~ msgstr "Klasický rok" @@ -5261,9 +6386,6 @@ #~ msgid "Death Metal" #~ msgstr "Death Metal" -#~ msgid "Pranks" -#~ msgstr "Žarty" - #~ msgid "Soundtrack" #~ msgstr "Soundtrack" @@ -5315,9 +6437,6 @@ #~ msgid "AlternRock" #~ msgstr "Alternatívny rock" -#~ msgid "Bass" -#~ msgstr "Bass" - #~ msgid "Soul" #~ msgstr "Soul" @@ -5399,9 +6518,6 @@ #~ msgid "Rave" #~ msgstr "Rave" -#~ msgid "Showtunes" -#~ msgstr "Showtunes" - #~ msgid "Trailer" #~ msgstr "Upútavka" @@ -5420,9 +6536,6 @@ #~ msgid "Polka" #~ msgstr "Polka" -#~ msgid "Retro" -#~ msgstr "Retro" - #~ msgid "Musical" #~ msgstr "Muzikál" @@ -5450,9 +6563,6 @@ #~ msgid "Bebob" #~ msgstr "Bebob" -#~ msgid "Latin" -#~ msgstr "Latinská" - #~ msgid "Revival" #~ msgstr "Revival" @@ -5516,15 +6626,9 @@ #~ msgid "Booty Bass" #~ msgstr "Booty Bass" -#~ msgid "Primus" -#~ msgstr "Primus" - #~ msgid "Porn Groove" #~ msgstr "Porn Groove" -#~ msgid "Satire" -#~ msgstr "Satira" - #~ msgid "Slow Jam" #~ msgstr "Slow Jam" @@ -5597,9 +6701,6 @@ #~ msgid "Polsk Punk" #~ msgstr "Polsk Punk" -#~ msgid "Beat" -#~ msgstr "Beat" - #~ msgid "Christian Gangsta Rap" #~ msgstr "Kresťanský Gangsta Rap" @@ -5658,9 +6759,6 @@ #~ msgid " Ogg Vorbis Tag " #~ msgstr " Popis súboru Ogg Vorbis " -#~ msgid "Date:" -#~ msgstr "Dátum:" - #~ msgid "Description:" #~ msgstr "Popis:" @@ -5670,15 +6768,9 @@ #~ msgid "ISRC number:" #~ msgstr "ISRC číslo:" -#~ msgid "Organization:" -#~ msgstr "Organizácia:" - #~ msgid " Ogg Vorbis ReplayGain " #~ msgstr " Zosilnenie Ogg Vorbis " -#~ msgid "Track gain:" -#~ msgstr "Zosilnenie skladby:" - #~ msgid "Track peak:" #~ msgstr "Vrchol skladby:" @@ -5718,9 +6810,6 @@ #~ msgid "%d Bytes" #~ msgstr "%d bajtov" -#~ msgid "%s - Audacious" -#~ msgstr "%s - Audacious" - #~ msgid "Use software volume control" #~ msgstr "Softvérové ovládanie hlasitosti" @@ -5757,10 +6846,6 @@ #~ msgstr "10000 Hz" #, fuzzy -#~ msgid "16000" -#~ msgstr "10000 Hz" - -#, fuzzy #~ msgid "24000" #~ msgstr "22000 Hz" @@ -5822,13 +6907,6 @@ #~ "Test digitálneho čítania zvuku zlyhal: %s\n" #~ "\n" -#~ msgid "" -#~ "Failed to check directory %s\n" -#~ "Error: %s" -#~ msgstr "" -#~ "Adresár %s sa nepodarilo otestovať\n" -#~ "Chyba: %s" - #~ msgid "Error: %s exist, but is not a directory" #~ msgstr "Chyba: %s existuje, ale nie je to adresár" @@ -5859,9 +6937,6 @@ #~ msgid "Check drive..." #~ msgstr "Skontrolovať mechaniku..." -#~ msgid "Remove drive" -#~ msgstr "Odstrániť mechaniku" - #~ msgid "CD Audio Player Configuration" #~ msgstr "Nastavenie prehrávača Audio CD" @@ -5880,9 +6955,6 @@ #~ msgid "Get server list" #~ msgstr "Získať zoznam serverov" -#~ msgid "Show network window" -#~ msgstr "Zobraziť okno so sieťovým prenosom" - #~ msgid "CDDB server:" #~ msgstr "CDDB server:" @@ -6217,12 +7289,6 @@ #~ msgid "Noise shaping" #~ msgstr "Tvarovanie šumu" -#~ msgid "low" -#~ msgstr "nízke" - -#~ msgid "medium" -#~ msgstr "stredné" - #~ msgid "high" #~ msgstr "vysoké" diff -r c40585c57877 -r 7fc2c317d190 po/tr.po --- a/po/tr.po Thu Jul 03 17:23:34 2008 +0300 +++ b/po/tr.po Thu Jul 03 17:37:11 2008 +0300 @@ -14,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: audacious-plugins\n" -"Report-Msgid-Bugs-To: http://bugs.audacious-media-player.org\n" -"POT-Creation-Date: 2008-03-30 17:25+0200\n" +"Report-Msgid-Bugs-To: http://bugzilla.atheme.org/\n" +"POT-Creation-Date: 2008-06-21 08:27+0300\n" "PO-Revision-Date: 2007-12-22 23:09+0200\n" "Last-Translator: Onur Küçük \n" "Language-Team: Turkish\n" @@ -24,11 +24,11 @@ "Content-Transfer-Encoding: 8bit\n" "X-Generator: KBabel 1.11.4\n" -#: src/aac/libmp4.c:286 +#: src/aac/libmp4.c:283 msgid "Using libfaad2-" msgstr "Çözme işlemi için libfaad2-" -#: src/aac/libmp4.c:287 +#: src/aac/libmp4.c:284 msgid "" " for decoding.\n" "FAAD2 AAC/HE-AAC/HE-AACv2/DRM decoder (c) Nero AG, www.nero.com\n" @@ -38,38 +38,38 @@ "FAAD2 AAC/HE-AAC/HE-AACv2/DRM çözücüsü (c) Nero AG, www.nero.com\n" "Telif Hakkı (c) 2005-2006 Audacious ekibi" -#: src/aac/libmp4.c:291 +#: src/aac/libmp4.c:288 msgid "About MP4 AAC player plugin" msgstr "MP4 AAC oynatıcı eklentisi hakkında" -#: src/aac/libmp4.c:293 src/adplug/adplug-xmms.cc:182 -#: src/adplug/adplug-xmms.cc:265 src/adplug/adplug-xmms.cc:526 -#: src/alac/plugin.c:77 src/arts/arts.c:26 src/arts/configure.c:90 -#: src/audiocompress/audacious-glue.c:102 -#: src/audiocompress/audacious-glue.c:552 src/cdaudio-ng/configure.c:228 -#: src/console/Audacious_Driver.cxx:449 src/demac/plugin.c:393 -#: src/echo_plugin/gui.c:26 src/echo_plugin/gui.c:137 src/esd/about.c:49 -#: src/filewriter/filewriter.c:183 src/jack/configure.c:141 -#: src/jack/jack.c:456 src/madplug/plugin.c:542 src/madplug/plugin.c:566 -#: src/metronom/metronom.c:88 src/modplug/gui/main.cxx:49 -#: src/musepack/libmpc.cxx:232 src/null/null.c:67 src/null/null.c:110 -#: src/OSS4/about.c:59 src/OSS/about.c:54 src/paranormal-ng/plugin.c:283 -#: src/paranormal/plugin.c:291 src/scrobbler/gtkstuff.c:25 -#: src/sndfile/plugin.c:565 src/statusicon/si_ui.c:628 -#: src/stereo_plugin/stereo.c:53 src/stereo_plugin/stereo.c:116 -#: src/sun/about.c:38 src/sun/configure.c:559 src/timidity/interface.c:222 -#: src/timidity/xmms-timidity.c:120 src/tonegen/tonegen.c:62 -#: src/tta/libtta.c:153 src/tta/libtta.c:267 src/tta/libtta.c:402 -#: src/vorbis/vorbis.c:700 src/vtx/about.c:32 src/vtx/info.c:43 -#: src/wavpack/ui.cxx:56 src/wavpack/ui.cxx:556 +#: src/aac/libmp4.c:290 src/adplug/adplug-xmms.cc:180 +#: src/adplug/adplug-xmms.cc:263 src/adplug/adplug-xmms.cc:524 +#: src/alac/plugin.c:74 src/arts/arts.c:25 src/arts/configure.c:90 +#: src/audiocompress/audacious-glue.c:110 +#: src/audiocompress/audacious-glue.c:560 src/cdaudio-ng/configure.c:242 +#: src/console/Audacious_Driver.cxx:447 src/crystalizer/crystalizer.c:113 +#: src/demac/plugin.c:364 src/echo_plugin/gui.c:24 src/echo_plugin/gui.c:135 +#: src/esd/about.c:48 src/filewriter/filewriter.c:183 src/jack/configure.c:140 +#: src/jack/jack.c:454 src/madplug/plugin.c:679 src/madplug/plugin.c:703 +#: src/metronom/metronom.c:87 src/modplug/gui/main.cxx:52 +#: src/musepack/libmpc.cxx:228 src/null/null.c:64 src/null/null.c:107 +#: src/OSS4/OSS4.c:55 src/OSS/OSS.c:52 src/paranormal-ng/plugin.c:282 +#: src/paranormal/plugin.c:290 src/scrobbler/gtkstuff.c:22 +#: src/sndfile/plugin.c:571 src/statusicon/si_ui.c:626 +#: src/stereo_plugin/stereo.c:52 src/stereo_plugin/stereo.c:115 +#: src/sun/about.c:37 src/sun/configure.c:557 src/timidity/interface.c:222 +#: src/timidity/xmms-timidity.c:117 src/tonegen/tonegen.c:61 +#: src/tta/libtta.c:150 src/tta/libtta.c:264 src/tta/libtta.c:399 +#: src/vorbis/vorbis.c:696 src/vtx/about.c:26 src/vtx/info.c:38 +#: src/wavpack/ui.cxx:54 src/wavpack/ui.cxx:554 msgid "Ok" msgstr "Tamam" -#: src/adplug/adplug-xmms.cc:171 +#: src/adplug/adplug-xmms.cc:169 msgid "About " msgstr "Hakkında" -#: src/adplug/adplug-xmms.cc:175 +#: src/adplug/adplug-xmms.cc:173 msgid "" "\n" "Copyright (C) 2002, 2003 Simon Peter \n" @@ -92,65 +92,65 @@ "kütüphanesini kullanmaktadır.\n" "AdPlug kitaplık sürümü: " -#: src/adplug/adplug-xmms.cc:256 +#: src/adplug/adplug-xmms.cc:254 msgid "AdPlug :: Configuration" msgstr "AdPlug :: Yapılandırması" -#: src/adplug/adplug-xmms.cc:275 src/alarm/interface.c:1398 +#: src/adplug/adplug-xmms.cc:273 src/alarm/interface.c:1398 #: src/alsa/configure.c:389 src/arts/configure.c:91 -#: src/audiocompress/audacious-glue.c:557 src/cdaudio-ng/configure.c:232 -#: src/echo_plugin/gui.c:145 src/jack/configure.c:148 -#: src/modplug/gui/interface.cxx:714 src/modplug/gui/modplug.glade:1668 -#: src/musepack/libmpc.cxx:237 src/musepack/libmpc.cxx:557 src/null/null.c:111 -#: src/sid/xmms-sid.glade:3080 src/sid/xs_interface.c:1250 -#: src/stereo_plugin/stereo.c:125 src/sun/configure.c:567 -#: src/timidity/interface.c:230 src/wavpack/ui.cxx:280 src/wavpack/ui.cxx:563 +#: src/audiocompress/audacious-glue.c:565 src/cdaudio-ng/configure.c:246 +#: src/crystalizer/crystalizer.c:122 src/echo_plugin/gui.c:143 +#: src/jack/configure.c:147 src/modplug/gui/interface.cxx:714 +#: src/modplug/gui/modplug.glade:1668 src/musepack/libmpc.cxx:233 +#: src/musepack/libmpc.cxx:553 src/null/null.c:108 +#: src/stereo_plugin/stereo.c:124 src/sun/configure.c:565 +#: src/timidity/interface.c:230 src/wavpack/ui.cxx:278 src/wavpack/ui.cxx:561 msgid "Cancel" msgstr "İptal" -#: src/adplug/adplug-xmms.cc:291 src/console/Audacious_Config.cxx:145 -#: src/madplug/configure.c:290 src/modplug/gui/interface.cxx:628 +#: src/adplug/adplug-xmms.cc:289 src/console/Audacious_Config.cxx:144 +#: src/madplug/configure.c:289 src/modplug/gui/interface.cxx:628 #: src/modplug/gui/interface.cxx:887 src/modplug/gui/modplug.glade:1404 #: src/modplug/gui/modplug.glade:1804 msgid "General" msgstr "Genel" -#: src/adplug/adplug-xmms.cc:303 +#: src/adplug/adplug-xmms.cc:301 msgid "Sound quality" msgstr "Ses kalitesi" -#: src/adplug/adplug-xmms.cc:308 src/modplug/gui/interface.cxx:187 +#: src/adplug/adplug-xmms.cc:306 src/modplug/gui/interface.cxx:187 #: src/modplug/gui/modplug.glade:113 msgid "Resolution" msgstr "Çözünürlük" -#: src/adplug/adplug-xmms.cc:310 +#: src/adplug/adplug-xmms.cc:308 msgid "8bit" msgstr "8bit" -#: src/adplug/adplug-xmms.cc:315 +#: src/adplug/adplug-xmms.cc:313 msgid "16bit" msgstr "16bit" -#: src/adplug/adplug-xmms.cc:323 src/modplug/gui/interface.cxx:218 +#: src/adplug/adplug-xmms.cc:321 src/modplug/gui/interface.cxx:218 #: src/modplug/gui/modplug.glade:199 src/timidity/interface.c:148 msgid "Channels" msgstr "Kanallar" -#: src/adplug/adplug-xmms.cc:325 src/filewriter/mp3.c:900 -#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:288 +#: src/adplug/adplug-xmms.cc:323 src/filewriter/mp3.c:900 +#: src/sid/xmms-sid.glade:157 src/sid/xs_interface.c:300 #: src/timidity/interface.c:165 msgid "Mono" msgstr "Mono" -#: src/adplug/adplug-xmms.cc:330 src/filewriter/mp3.c:895 +#: src/adplug/adplug-xmms.cc:328 src/filewriter/mp3.c:895 #: src/modplug/gui/interface.cxx:204 src/modplug/gui/modplug.glade:159 -#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:295 +#: src/sid/xmms-sid.glade:176 src/sid/xs_interface.c:307 #: src/timidity/interface.c:173 msgid "Stereo" msgstr "Stereo" -#: src/adplug/adplug-xmms.cc:334 +#: src/adplug/adplug-xmms.cc:332 msgid "" "Setting stereo is not recommended, unless you need to. This won't add any " "stereo effects to the sound - OPL2 is just mono - but eats up more CPU power!" @@ -158,20 +158,20 @@ "Eğer, ihtyacınız yoksa, stereoyu seçmeyin. Çünkü, sese stereo etkisi " "eklenmeyecektir. OPL2 sadece mono kullanır fakat daha fazla CPU gücü harcar!" -#: src/adplug/adplug-xmms.cc:342 +#: src/adplug/adplug-xmms.cc:340 msgid "Frequency" msgstr "Sıklık" -#: src/adplug/adplug-xmms.cc:378 src/adplug/adplug-xmms.cc:582 -#: src/console/Audacious_Config.cxx:147 +#: src/adplug/adplug-xmms.cc:376 src/adplug/adplug-xmms.cc:580 +#: src/console/Audacious_Config.cxx:146 src/skins/ui_manager.c:175 msgid "Playback" msgstr "Çal" -#: src/adplug/adplug-xmms.cc:382 +#: src/adplug/adplug-xmms.cc:380 msgid "Detect songend" msgstr "Şarkı sonunu tespit et" -#: src/adplug/adplug-xmms.cc:386 +#: src/adplug/adplug-xmms.cc:384 msgid "" "If enabled, XMMS will detect a song's ending, stop it and advance in the " "playlist. If disabled, XMMS won't take notice of a song's ending and loop it " @@ -182,23 +182,23 @@ "Audacious şarkı sonunu tespit edemeyecek ve şarkıyı tekrar tekrar çalmaya " "devam edecek." -#: src/adplug/adplug-xmms.cc:397 +#: src/adplug/adplug-xmms.cc:395 msgid "Formats" msgstr "Biçimler" -#: src/adplug/adplug-xmms.cc:404 +#: src/adplug/adplug-xmms.cc:402 msgid "Format selection" msgstr "Biçim seçimi" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Format" msgstr "Biçim" -#: src/adplug/adplug-xmms.cc:407 +#: src/adplug/adplug-xmms.cc:405 msgid "Extension" msgstr "Dosya uzantısı" -#: src/adplug/adplug-xmms.cc:447 +#: src/adplug/adplug-xmms.cc:445 msgid "" "Selected file types will be recognized and played back by this plugin. " "Deselected types will be ignored to make room for other plugins to play " @@ -208,88 +208,88 @@ "Seçilmemiş türler, diğer eklentilerin bu dosyaları çalması için, dikkate " "alınmayacak." -#: src/adplug/adplug-xmms.cc:533 +#: src/adplug/adplug-xmms.cc:531 msgid "AdPlug :: File Info" msgstr "AdPlug :: Dosya Bilgisi" -#: src/adplug/adplug-xmms.cc:555 src/amidi-plug/i_configure-fluidsynth.c:448 +#: src/adplug/adplug-xmms.cc:553 src/amidi-plug/i_configure-fluidsynth.c:448 msgid "Filename" msgstr "Dosya adı" +#: src/adplug/adplug-xmms.cc:557 src/skins/ui_playlist.c:470 +msgid "Title: " +msgstr "Başlık: " + +#: src/adplug/adplug-xmms.cc:558 +msgid "Author: " +msgstr "Yazar: " + #: src/adplug/adplug-xmms.cc:559 -msgid "Title: " -msgstr "Başlık: " - -#: src/adplug/adplug-xmms.cc:560 -msgid "Author: " -msgstr "Yazar: " - -#: src/adplug/adplug-xmms.cc:561 msgid "File Type: " msgstr "Dosya Türü: " -#: src/adplug/adplug-xmms.cc:562 +#: src/adplug/adplug-xmms.cc:560 msgid "Subsongs: " msgstr "Alt şarkılar: " -#: src/adplug/adplug-xmms.cc:563 +#: src/adplug/adplug-xmms.cc:561 msgid "Instruments: " msgstr "Enstrumanlar: " -#: src/adplug/adplug-xmms.cc:568 +#: src/adplug/adplug-xmms.cc:566 msgid "Orders: " msgstr "Sıralar: " -#: src/adplug/adplug-xmms.cc:569 +#: src/adplug/adplug-xmms.cc:567 msgid "Patterns: " msgstr "Örnekler: " -#: src/adplug/adplug-xmms.cc:573 +#: src/adplug/adplug-xmms.cc:571 msgid "Song" msgstr "Şarkı" -#: src/adplug/adplug-xmms.cc:599 +#: src/adplug/adplug-xmms.cc:597 msgid "Instrument name" msgstr "Enstruman adı" -#: src/adplug/adplug-xmms.cc:641 +#: src/adplug/adplug-xmms.cc:639 msgid "Song message" msgstr "Şarkı mesajı" -#: src/adplug/adplug-xmms.cc:663 +#: src/adplug/adplug-xmms.cc:661 msgid "Subsong selection" msgstr "Arkayüz bölümü" -#: src/adplug/adplug-xmms.cc:727 +#: src/adplug/adplug-xmms.cc:725 msgid "Order: " msgstr "Sıra: " -#: src/adplug/adplug-xmms.cc:728 +#: src/adplug/adplug-xmms.cc:726 msgid "Pattern: " msgstr "Örnek: " +#: src/adplug/adplug-xmms.cc:728 +msgid "Row: " +msgstr "Satır: " + +#: src/adplug/adplug-xmms.cc:729 +msgid "Speed: " +msgstr "Hız: " + #: src/adplug/adplug-xmms.cc:730 -msgid "Row: " -msgstr "Satır: " - -#: src/adplug/adplug-xmms.cc:731 -msgid "Speed: " -msgstr "Hız: " - -#: src/adplug/adplug-xmms.cc:732 msgid "Timer: " msgstr "Sayaç: " -#: src/adplug/adplug-xmms.cc:733 src/console/Audacious_Config.cxx:225 -#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:341 +#: src/adplug/adplug-xmms.cc:731 src/console/Audacious_Config.cxx:224 +#: src/sid/xmms-sid.glade:332 src/sid/xs_interface.c:353 msgid "Hz" msgstr "Hz" -#: src/alac/plugin.c:74 +#: src/alac/plugin.c:71 msgid "About Apple Lossless Audio Plugin" msgstr "Apple Kayıpsız Ses Eklentisi Hakkında" -#: src/alac/plugin.c:75 +#: src/alac/plugin.c:72 msgid "" "Copyright (c) 2006 Audacious team\n" "Portions (c) 2005-2006 David Hammerton " @@ -327,8 +327,8 @@ #: src/alarm/interface.c:71 src/lirc/about.c:115 #: src/modplug/gui/interface.cxx:971 src/modplug/gui/modplug.glade:2030 -#: src/sid/xmms-sid.glade:3643 src/sid/xs_about.c:214 -#: src/sid/xs_interface.c:1740 +#: src/sid/xmms-sid.glade:3837 src/sid/xs_about.c:214 +#: src/sid/xs_interface.c:1824 msgid "Close" msgstr "Kapat" @@ -340,13 +340,12 @@ msgid "This is your wakeup call." msgstr "Bu sizin uyandırma çağrınız." -#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:46 +#: src/alarm/interface.c:124 src/alarm/interface.c:1389 src/alsa/about.c:45 #: src/alsa/configure.c:383 src/cdaudio-ng/cdaudio-ng.c:247 -#: src/flacng/plugin.c:706 src/gnomeshortcuts/gnomeshortcuts.c:311 -#: src/hotkey/gui.c:671 src/modplug/gui/interface.cxx:702 -#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:738 -#: src/scrobbler/gtkstuff.c:45 src/sid/xmms-sid.glade:3066 -#: src/sid/xs_interface.c:1243 +#: src/flacng/plugin.c:705 src/gnomeshortcuts/gnomeshortcuts.c:310 +#: src/hotkey/gui.c:670 src/modplug/gui/interface.cxx:702 +#: src/modplug/gui/modplug.glade:1642 src/pulse_audio/pulse_audio.c:736 +#: src/scrobbler/gtkstuff.c:42 src/skins/plugin.c:130 msgid "OK" msgstr "Tamam" @@ -417,7 +416,8 @@ #: src/alarm/interface.c:612 src/alarm/interface.c:660 #: src/alarm/interface.c:708 src/alarm/interface.c:756 #: src/alarm/interface.c:804 src/alarm/interface.c:852 -#: src/alarm/interface.c:900 src/OSS4/configure.c:138 src/OSS/configure.c:169 +#: src/alarm/interface.c:900 src/OSS4/configure.c:136 src/OSS/configure.c:168 +#: src/skins/ui_manager.c:447 src/skins/ui_manager.c:468 msgid "Default" msgstr "Öntanımlı" @@ -462,9 +462,9 @@ msgstr "Yavaş geçiş" #: src/alarm/interface.c:1087 src/sid/xmms-sid.glade:2007 -#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2676 -#: src/sid/xs_interface.c:908 src/sid/xs_interface.c:962 -#: src/sid/xs_interface.c:1122 +#: src/sid/xmms-sid.glade:2178 src/sid/xmms-sid.glade:2746 +#: src/sid/xs_interface.c:920 src/sid/xs_interface.c:974 +#: src/sid/xs_interface.c:1154 msgid "seconds" msgstr "saniye" @@ -517,7 +517,7 @@ msgid "Use reminder" msgstr "Hatırlatıcıyı kullan" -#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:377 +#: src/alarm/interface.c:1328 src/sndstretch/sndstretch_xmms.c:376 msgid "Options" msgstr "Seçenekler" @@ -631,7 +631,7 @@ " type the reminder in the box and turn on the\n" " toggle button if you want it to be shown.\n" -#: src/alarm/interface.c:1366 +#: src/alarm/interface.c:1366 src/skins/ui_manager.c:386 msgid "Help" msgstr "Yardım" @@ -643,11 +643,11 @@ msgid "Thankyou" msgstr "Teşekkürler" -#: src/alsa/about.c:30 +#: src/alsa/about.c:29 msgid "About ALSA Driver" msgstr "ALSA Sürücüsü Hakkında" -#: src/alsa/about.c:31 +#: src/alsa/about.c:30 msgid "" "Audacious ALSA Driver\n" "\n" @@ -698,8 +698,8 @@ msgid "ALSA Driver configuration" msgstr "ALSA Sürücüsü ayarları" -#: src/alsa/configure.c:274 src/OSS4/configure.c:186 src/OSS/configure.c:217 -#: src/sun/configure.c:183 +#: src/alsa/configure.c:274 src/OSS4/configure.c:184 src/OSS/configure.c:216 +#: src/sun/configure.c:181 msgid "Audio device:" msgstr "Ses aygıtı:" @@ -711,7 +711,7 @@ msgid "Mixer card:" msgstr "Karıştırıcı kart:" -#: src/alsa/configure.c:313 src/OSS/configure.c:260 src/sun/configure.c:220 +#: src/alsa/configure.c:313 src/OSS/configure.c:259 src/sun/configure.c:218 msgid "Mixer device:" msgstr "Karıştırıcı aygıt:" @@ -1430,8 +1430,8 @@ "TiMidity\n" "arkayüzü" -#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3465 -#: src/sid/xs_interface.c:1684 +#: src/amidi-plug/i_fileinfo.c:169 src/sid/xmms-sid.glade:3659 +#: src/sid/xs_interface.c:1768 msgid "Name:" msgstr "İsim:" @@ -1557,19 +1557,19 @@ msgid "None" msgstr "Hiçbiri" -#: src/aosd/aosd_trigger.c:75 +#: src/aosd/aosd_trigger.c:74 msgid "Playback Start" msgstr "Çalmayı Başlat" -#: src/aosd/aosd_trigger.c:76 +#: src/aosd/aosd_trigger.c:75 msgid "Triggers OSD when a playlist entry is played." msgstr "Parça listesindeki girdi oynatıldığında OSD'yi başlatır." -#: src/aosd/aosd_trigger.c:80 +#: src/aosd/aosd_trigger.c:79 msgid "Title Change" msgstr "Başlık Değiştirme" -#: src/aosd/aosd_trigger.c:81 +#: src/aosd/aosd_trigger.c:80 msgid "" "Triggers OSD when, during playback, the song title changes but the filename " "is the same. This is mostly useful to display title changes in internet " @@ -1579,27 +1579,27 @@ "ise OSD'yi tetikler. Bu yetenek özellikle İnternet üzerinden dinlenen " "yayınlarda başlık değişikliği olduğunda bu ayar faydalı oluyor." -#: src/aosd/aosd_trigger.c:87 +#: src/aosd/aosd_trigger.c:86 msgid "Volume Change" msgstr "Ses Değiştirme" -#: src/aosd/aosd_trigger.c:88 +#: src/aosd/aosd_trigger.c:87 msgid "Triggers OSD when volume is changed." msgstr "Ses değiştiğinde OSD'yi başlatır." -#: src/aosd/aosd_trigger.c:92 +#: src/aosd/aosd_trigger.c:91 msgid "Pause On" msgstr "Bekletme Açık" -#: src/aosd/aosd_trigger.c:93 +#: src/aosd/aosd_trigger.c:92 msgid "Triggers OSD when playback is paused." msgstr "Çalma bekletildiğinde OSD'yi başlatır." +#: src/aosd/aosd_trigger.c:96 +msgid "Pause Off" +msgstr "Bekletme Kapalı" + #: src/aosd/aosd_trigger.c:97 -msgid "Pause Off" -msgstr "Bekletme Kapalı" - -#: src/aosd/aosd_trigger.c:98 msgid "Triggers OSD when playback is unpaused." msgstr "Çalmaya yeniden başladığında OSD'yi başlatır." @@ -1698,10 +1698,10 @@ msgid "Skin file:" msgstr "Deri dosyası:" -#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2331 -#: src/sid/xmms-sid.glade:2856 src/sid/xmms-sid.glade:2962 -#: src/sid/xs_interface.c:1010 src/sid/xs_interface.c:1182 -#: src/sid/xs_interface.c:1218 +#: src/aosd/aosd_ui.c:644 src/sid/xmms-sid.glade:2373 +#: src/sid/xmms-sid.glade:2968 src/sid/xmms-sid.glade:3136 +#: src/sid/xs_interface.c:1043 src/sid/xs_interface.c:1235 +#: src/sid/xs_interface.c:1291 msgid "Browse" msgstr "Gözat" @@ -1784,9 +1784,9 @@ msgid "Trigger" msgstr "Başlat" -#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:167 +#: src/aosd/aosd_ui.c:1076 src/cdaudio-ng/configure.c:175 #: src/modplug/gui/interface.cxx:688 src/modplug/gui/modplug.glade:1603 -#: src/sid/xmms-sid.glade:3026 src/sid/xs_interface.c:1229 +#: src/sid/xmms-sid.glade:3220 src/sid/xs_interface.c:1301 msgid "Misc" msgstr "Çeşitli" @@ -1825,11 +1825,11 @@ "Ghosd kütüphanesini hazırlayan Evan Martin\n" "\n" -#: src/arts/arts.c:22 +#: src/arts/arts.c:21 msgid "About aRts Output" msgstr "aRts Çıkışı Hakkında" -#: src/arts/arts.c:23 +#: src/arts/arts.c:22 msgid "" "aRts output plugin by Håvard Kvålen \n" "Audacious port by Giacomo Lozito from develia.org" @@ -1841,26 +1841,26 @@ msgid "aRts Driver configuration" msgstr "aRTS Ses Sürücüsü ayarları" -#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:232 -#: src/OSS/configure.c:304 src/sun/configure.c:259 +#: src/arts/configure.c:61 src/esd/configure.c:171 src/OSS4/configure.c:230 +#: src/OSS/configure.c:303 src/sun/configure.c:257 msgid "Buffering:" msgstr "Tamponlama:" -#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:245 -#: src/OSS/configure.c:317 src/sun/configure.c:272 +#: src/arts/configure.c:73 src/esd/configure.c:184 src/OSS4/configure.c:243 +#: src/OSS/configure.c:316 src/sun/configure.c:270 msgid "Buffer size (ms):" msgstr "Tampon boyutu (ms):" -#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:270 -#: src/OSS/configure.c:342 src/sun/configure.c:304 +#: src/arts/configure.c:83 src/esd/configure.c:209 src/OSS4/configure.c:268 +#: src/OSS/configure.c:341 src/sun/configure.c:302 msgid "Buffering" msgstr "Tamponlanıyor" -#: src/audiocompress/audacious-glue.c:95 +#: src/audiocompress/audacious-glue.c:103 msgid "AudioCompress " msgstr "AudioCompress " -#: src/audiocompress/audacious-glue.c:96 +#: src/audiocompress/audacious-glue.c:104 msgid "" "\n" "(c)2003 trikuare studios(http://trikuare.cx)\n" @@ -1876,11 +1876,11 @@ "Temiz sıkıştırma için kullanabileceğiniz\n" "ses seviyesini normal değerlerde tutan bir işleyici" -#: src/audiocompress/audacious-glue.c:101 +#: src/audiocompress/audacious-glue.c:109 msgid "About AudioCompress" msgstr "AudioCompress Hakkında" -#: src/audiocompress/audacious-glue.c:320 +#: src/audiocompress/audacious-glue.c:328 msgid "" "If checked, when the sound peaks the volume will be cut instantly; " "otherwise, it will ramp down just in time for the peak (but some minor " @@ -1890,15 +1890,15 @@ "tepe noktasına çok az kala basamaklanarak azaltılır (ancak bu da cıırtıya " "sebep olabilir)." -#: src/audiocompress/audacious-glue.c:324 +#: src/audiocompress/audacious-glue.c:332 msgid "The maximum amount to amplify the audio by" msgstr "Sesi yükseltmek için en fazla miktar" -#: src/audiocompress/audacious-glue.c:326 +#: src/audiocompress/audacious-glue.c:334 msgid "Defines how smoothly the volume will ramp up" msgstr "Ses seviyesinin ne kadar akıcı artacağını belirler" -#: src/audiocompress/audacious-glue.c:328 +#: src/audiocompress/audacious-glue.c:336 msgid "" "The target audio level for ramping up. Lowering the value gives a bit more " "dynamic range for peaks, but will make the overall sound quieter." @@ -1907,43 +1907,43 @@ "biraz daha esneklik sağlar ancak genel olarak sesin daha düşük seviyede " "olmasına sebep olur." -#: src/audiocompress/audacious-glue.c:331 +#: src/audiocompress/audacious-glue.c:339 msgid "How long of a window to maintain" msgstr "Bir pencerenin ne kadar saklanacağı" -#: src/audiocompress/audacious-glue.c:372 +#: src/audiocompress/audacious-glue.c:380 msgid "AudioCompress preferences" msgstr "AudioCompress seçenekleri" -#: src/audiocompress/audacious-glue.c:389 +#: src/audiocompress/audacious-glue.c:397 msgid " Quality Options " msgstr " Kalite Seçenekleri " -#: src/audiocompress/audacious-glue.c:394 +#: src/audiocompress/audacious-glue.c:402 msgid " Aggressively prevent clipping" msgstr " Yoğun kırpmayı önle" -#: src/audiocompress/audacious-glue.c:406 +#: src/audiocompress/audacious-glue.c:414 msgid " Target & gain" msgstr " Hedef & kazanç" -#: src/audiocompress/audacious-glue.c:417 +#: src/audiocompress/audacious-glue.c:425 msgid "Target audio level:" msgstr "Hedef ses seviyesi:" -#: src/audiocompress/audacious-glue.c:425 -msgid "Maximum gain:" -msgstr "Azami kazanç:" - #: src/audiocompress/audacious-glue.c:433 +msgid "Maximum gain:" +msgstr "Azami kazanç:" + +#: src/audiocompress/audacious-glue.c:441 msgid "Gain smooth:" msgstr "Kazanç yumuşaklığı:" -#: src/audiocompress/audacious-glue.c:485 +#: src/audiocompress/audacious-glue.c:493 msgid " History " msgstr " Geçmiş " -#: src/audiocompress/audacious-glue.c:517 +#: src/audiocompress/audacious-glue.c:525 msgid "" "How long of a history to maintain. A higher number will make the volume " "changes less responsive." @@ -1951,41 +1951,41 @@ "Geçmişin ne kadarının saklanacağı. Değeri yükseldikçe ses seviyesi " "değişikliklerinin tepki hızı azalır." -#: src/audiocompress/audacious-glue.c:528 +#: src/audiocompress/audacious-glue.c:536 msgid "Load default values" msgstr "Öntanımlı değerleri yükle" -#: src/audiocompress/audacious-glue.c:533 +#: src/audiocompress/audacious-glue.c:541 msgid "Audio values" msgstr "Ses değerleri:" -#: src/audiocompress/audacious-glue.c:562 src/echo_plugin/gui.c:152 -#: src/modplug/gui/interface.cxx:708 src/modplug/gui/modplug.glade:1655 -#: src/stereo_plugin/stereo.c:132 +#: src/audiocompress/audacious-glue.c:570 src/crystalizer/crystalizer.c:129 +#: src/echo_plugin/gui.c:150 src/modplug/gui/interface.cxx:708 +#: src/modplug/gui/modplug.glade:1655 src/stereo_plugin/stereo.c:131 msgid "Apply" msgstr "Uygula" -#: src/blur_scope/blur_scope.c:54 +#: src/blur_scope/blur_scope.c:52 msgid "/Toggle Decorations" msgstr "/Geçiş Dekorasyonları" -#: src/blur_scope/blur_scope.c:56 +#: src/blur_scope/blur_scope.c:54 msgid "/-" msgstr "/-" -#: src/blur_scope/blur_scope.c:57 +#: src/blur_scope/blur_scope.c:55 msgid "/Close" msgstr "/Kapat" -#: src/blur_scope/blur_scope.c:181 +#: src/blur_scope/blur_scope.c:179 msgid "Blur scope" msgstr "Bulanık Alan" -#: src/blur_scope/config.c:72 +#: src/blur_scope/config.c:71 msgid "Blur Scope: Color selection" msgstr "Bulanık alan: Renk seçimi" -#: src/blur_scope/config.c:82 src/jack/configure.c:108 +#: src/blur_scope/config.c:81 src/jack/configure.c:107 msgid "Options:" msgstr "Seçenekler:" @@ -2025,7 +2025,7 @@ "\n" "Bu bir Google Summer of Code 2007 projesidir." -#: src/cdaudio-ng/cdaudio-ng.c:814 +#: src/cdaudio-ng/cdaudio-ng.c:815 msgid "" "No playable CD found.\n" "\n" @@ -2035,98 +2035,103 @@ "\n" "CD yok veya CD ses CD'si deği.\n" -#: src/cdaudio-ng/configure.c:147 +#: src/cdaudio-ng/configure.c:155 msgid "CD Audio Plugin Configuration" msgstr "CD Audio Eklentisi Yapılandırması" -#: src/cdaudio-ng/configure.c:157 +#: src/cdaudio-ng/configure.c:165 msgid "Digital audio extraction" msgstr "Sayısal ses elde etme" -#: src/cdaudio-ng/configure.c:162 +#: src/cdaudio-ng/configure.c:170 msgid "Title information" msgstr "Başlık bilgisi" -#: src/cdaudio-ng/configure.c:179 +#: src/cdaudio-ng/configure.c:187 msgid "Limit read speed to: " msgstr "Okuma hızını sınırla: " -#: src/cdaudio-ng/configure.c:186 +#: src/cdaudio-ng/configure.c:194 msgid "Use cd-text if available" msgstr "Varsa CD Bilgisini kullan" -#: src/cdaudio-ng/configure.c:190 +#: src/cdaudio-ng/configure.c:198 msgid "Use CDDB if available" msgstr "Varsa CDDB kullan" -#: src/cdaudio-ng/configure.c:194 +#: src/cdaudio-ng/configure.c:202 msgid "Server: " msgstr "Sunucu: " -#: src/cdaudio-ng/configure.c:197 +#: src/cdaudio-ng/configure.c:205 +#, fuzzy +msgid "Path: " +msgstr "Örnek: " + +#: src/cdaudio-ng/configure.c:208 msgid "Port: " msgstr "Port: " -#: src/cdaudio-ng/configure.c:203 +#: src/cdaudio-ng/configure.c:217 msgid "Use HTTP instead of CDDBP" msgstr "" -#: src/cdaudio-ng/configure.c:211 +#: src/cdaudio-ng/configure.c:225 msgid "Override default device: " msgstr "Öntanımlı aygıtın üstüne yaz: " -#: src/cdaudio-ng/configure.c:218 +#: src/cdaudio-ng/configure.c:232 msgid "Print debug information" msgstr "Hata ayıklama bilgisini yazdır" -#: src/console/Audacious_Config.cxx:125 +#: src/console/Audacious_Config.cxx:124 msgid "Console Music Decoder" msgstr "Konsol Müzik Çözücüsü" -#: src/console/Audacious_Config.cxx:162 +#: src/console/Audacious_Config.cxx:161 msgid "Bass:" msgstr "Bas:" -#: src/console/Audacious_Config.cxx:166 src/console/Audacious_Config.cxx:177 -#: src/console/Audacious_Config.cxx:198 +#: src/console/Audacious_Config.cxx:165 src/console/Audacious_Config.cxx:176 +#: src/console/Audacious_Config.cxx:197 msgid "secs" msgstr "saniye" -#: src/console/Audacious_Config.cxx:173 +#: src/console/Audacious_Config.cxx:172 msgid "Treble:" msgstr "Tiz:" -#: src/console/Audacious_Config.cxx:194 +#: src/console/Audacious_Config.cxx:193 msgid "Default song length:" msgstr "Varsayılan şarkı uzunluğu:" -#: src/console/Audacious_Config.cxx:200 src/modplug/gui/interface.cxx:268 +#: src/console/Audacious_Config.cxx:199 src/modplug/gui/interface.cxx:268 #: src/modplug/gui/modplug.glade:338 src/sid/xmms-sid.glade:1243 -#: src/sid/xs_interface.c:653 +#: src/sid/xs_interface.c:665 msgid "Resampling" msgstr "Yeniden örnekleme" -#: src/console/Audacious_Config.cxx:206 +#: src/console/Audacious_Config.cxx:205 msgid "Enable audio resampling" msgstr "Ses örneklemesini etkinleştir" -#: src/console/Audacious_Config.cxx:221 +#: src/console/Audacious_Config.cxx:220 msgid "Resampling rate:" msgstr "Örnekleme oranı:" -#: src/console/Audacious_Config.cxx:236 +#: src/console/Audacious_Config.cxx:235 msgid "SPC" msgstr "SPC" -#: src/console/Audacious_Config.cxx:237 +#: src/console/Audacious_Config.cxx:236 msgid "Ignore length from SPC tags" msgstr "SPC etiketlerindeki uzunluğu gözardı et" -#: src/console/Audacious_Config.cxx:238 +#: src/console/Audacious_Config.cxx:237 msgid "Increase reverb" msgstr "Derinliği artır" -#: src/console/Audacious_Config.cxx:263 +#: src/console/Audacious_Config.cxx:262 msgid "" "The default song length, expressed in seconds, is used for songs that do not " "provide length information (i.e. looping tracks)." @@ -2134,11 +2139,11 @@ "Saniyelerle belirtilen varsayılan şarkı uzunluğu, uzunluk bilgisi bulunmayan " "parçalar için kullanılır (örneğin özyinelenen izler)." -#: src/console/Audacious_Driver.cxx:444 +#: src/console/Audacious_Driver.cxx:442 msgid "About the Console Music Decoder" msgstr "Konsol Müzik Çözücüsü Hakkında" -#: src/console/Audacious_Driver.cxx:445 +#: src/console/Audacious_Driver.cxx:443 msgid "" "Console music decoder engine based on Game_Music_Emu 0.5.2.\n" "Supported formats: AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, VGM, VGZ\n" @@ -2150,12 +2155,21 @@ "Audacious için uyarlayan: William Pitcock , \n" " Shay Green " -#: src/demac/plugin.c:388 +#: src/crystalizer/crystalizer.c:90 +#, fuzzy +msgid "Configure Crystalizer" +msgstr "Ekstra Stereo Eklentisini Yapılandır" + +#: src/crystalizer/crystalizer.c:92 src/stereo_plugin/stereo.c:94 +msgid "Effect intensity:" +msgstr "Efekt yoğunluğu:" + +#: src/demac/plugin.c:359 #, fuzzy msgid "About Monkey's Audio Plugin" msgstr "MPEG Ses Eklentisi Hakkında" -#: src/demac/plugin.c:389 +#: src/demac/plugin.c:360 msgid "" "Copyright (C) 2007 Eugene Zagidullin \n" "Based on ffape decoder, Copyright (C) 2007 Benjamin Zores\n" @@ -2164,7 +2178,7 @@ "ffape is a part of FFmpeg project, http://ffmpeg.mplayerhq.hu/" msgstr "" -#: src/echo_plugin/gui.c:11 +#: src/echo_plugin/gui.c:9 msgid "" "Echo Plugin\n" "By Johan Levin 1999.\n" @@ -2176,35 +2190,35 @@ "\n" "Surround Eko - Carl van Schaik 1999" -#: src/echo_plugin/gui.c:25 +#: src/echo_plugin/gui.c:23 msgid "About Echo Plugin" msgstr "Yankı (Eko) Eklentisi Hakkında" -#: src/echo_plugin/gui.c:76 +#: src/echo_plugin/gui.c:74 msgid "Configure Echo" msgstr "Yankı (Eko) Eklentisini Yapılandır" -#: src/echo_plugin/gui.c:89 +#: src/echo_plugin/gui.c:87 msgid "Delay: (ms)" msgstr "Gecikme: (ms )" -#: src/echo_plugin/gui.c:94 +#: src/echo_plugin/gui.c:92 msgid "Feedback: (%)" msgstr "Geribesleme: (%)" -#: src/echo_plugin/gui.c:99 +#: src/echo_plugin/gui.c:97 msgid "Volume: (%)" msgstr "Ses: (%)" -#: src/echo_plugin/gui.c:122 +#: src/echo_plugin/gui.c:120 msgid "Surround echo" msgstr "Çevresel Yankı" -#: src/esd/about.c:34 +#: src/esd/about.c:33 msgid "About ESounD Plugin" msgstr "ESounD Eklentisi Hakkında" -#: src/esd/about.c:35 +#: src/esd/about.c:34 msgid "" "Audacious ESounD Plugin\n" "\n" @@ -2266,8 +2280,8 @@ msgid "Server" msgstr "Sunucu" -#: src/esd/configure.c:198 src/OSS4/configure.c:259 src/OSS/configure.c:331 -#: src/sun/configure.c:290 +#: src/esd/configure.c:198 src/OSS4/configure.c:257 src/OSS/configure.c:330 +#: src/sun/configure.c:288 msgid "Pre-buffer (percent):" msgstr "Ön tampon (yüzde):" @@ -2339,7 +2353,7 @@ msgid "Window->JumpToFile" msgstr "Dosya Çal" -#: src/evdev-plug/ed_internals.c:94 +#: src/evdev-plug/ed_internals.c:93 #, c-format msgid "" "event-device-plugin: unable to open device file %s , skipping this device; " @@ -2349,7 +2363,7 @@ "Cihaz durduruldu. Dosya yolunun, adının doğruluğunu\n" "ve erişim haklarınızı kontrol edin.\n" -#: src/evdev-plug/ed_internals.c:103 +#: src/evdev-plug/ed_internals.c:102 #, c-format msgid "" "event-device-plugin: unable to create a io_channel for device file %s ," @@ -2358,7 +2372,7 @@ "event-device-plugin: %s aygıt dosyası okunurken giriş-çıkış hatası\n" "meydana geldi. Aygıt okuma işlemi durduruldu.\n" -#: src/evdev-plug/ed_internals.c:342 +#: src/evdev-plug/ed_internals.c:341 msgid "" "event-device-plugin: unable to open /proc/bus/input/devices , automatic " "detection of event devices won't work.\n" @@ -2366,7 +2380,7 @@ "event-device-plugin: /proc/bus/input/devices açılamıyor.\n" "Otomatik başlatma yapılamıyor.\n" -#: src/evdev-plug/ed_internals.c:351 +#: src/evdev-plug/ed_internals.c:350 msgid "" "event-device-plugin: unable to open a io_channel for /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" @@ -2374,7 +2388,7 @@ "event-device-plugin: /proc/bus/input/devices için girdi-çıktı hatası, " "otomatik tanımlama yapılamıyor.\n" -#: src/evdev-plug/ed_internals.c:361 +#: src/evdev-plug/ed_internals.c:360 msgid "" "event-device-plugin: an error occurred while reading /proc/bus/input/" "devices , automatic detection of event devices won't work.\n" @@ -2382,14 +2396,14 @@ "event-device-plugin: /proc/bus/input/devices okunurken hata oluştu, otomatik " "tanımlama çalışmayacak.\n" -#: src/evdev-plug/ed_internals.c:424 +#: src/evdev-plug/ed_internals.c:423 #, c-format msgid "event-device-plugin: device %s not found in /dev/input , skipping.\n" msgstr "" "event-device-plugin: /dev/input içerisinde aygıt %s bulunamadı, es " "geçiliyor.\n" -#: src/evdev-plug/ed_internals.c:489 src/evdev-plug/ed_internals.c:583 +#: src/evdev-plug/ed_internals.c:488 src/evdev-plug/ed_internals.c:582 #, c-format msgid "" "event-device-plugin: unable to load config file %s , default settings will " @@ -2398,7 +2412,7 @@ "event-device-plugin: ayar dosyası %s yüklenemiyor, öntanımlı ayarlar " "kullanılacak.\n" -#: src/evdev-plug/ed_internals.c:535 +#: src/evdev-plug/ed_internals.c:534 #, c-format msgid "" "event-device-plugin: incomplete information in config file for device \"%s" @@ -2407,7 +2421,7 @@ "event-device-plugin: ayar dosyasında \"%s\" aygıtı için yetersiz bilgi " "bulundu, es geçiliyor.\n" -#: src/evdev-plug/ed_internals.c:604 src/evdev-plug/ed_internals.c:936 +#: src/evdev-plug/ed_internals.c:603 src/evdev-plug/ed_internals.c:935 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_active value for device " @@ -2416,7 +2430,7 @@ "event-device-plugin: ayarlar, \"%s\" aygıtının çalıştığı bilgisine " "ulaşılamadı, es geçiliyor.\n" -#: src/evdev-plug/ed_internals.c:840 +#: src/evdev-plug/ed_internals.c:839 #, c-format msgid "" "event-device-plugin: unable to access local directory %s , settings will not " @@ -2424,7 +2438,7 @@ msgstr "" "event-device-plugin: yerel dizin %s erişilemiyor, ayarlar kaydedilmeyecek.\n" -#: src/evdev-plug/ed_internals.c:890 +#: src/evdev-plug/ed_internals.c:889 #, c-format msgid "" "event-device-plugin: configuration, unable to get filename value for device " @@ -2433,7 +2447,7 @@ "event-device-plugn: ayarlar, aygıt \"%s\" için filename değeri alınamıyor, " "es geçiliyor.\n" -#: src/evdev-plug/ed_internals.c:906 +#: src/evdev-plug/ed_internals.c:905 #, c-format msgid "" "event-device-plugin: configuration, unable to get phys value for device \"%s" @@ -2442,7 +2456,7 @@ "event-device-plugin: ayarlar, aygıt \"%s\" için phys değeri alınamıyor, es " "geçiliyor.\n" -#: src/evdev-plug/ed_internals.c:922 +#: src/evdev-plug/ed_internals.c:921 #, c-format msgid "" "event-device-plugin: configuration, unable to get is_custom value for device " @@ -2451,7 +2465,7 @@ "event-device-plugin: ayarlar, aygıt \"%s\" için is_custom değeri alınamıyor, " "es geçiliyor.\n" -#: src/evdev-plug/ed_internals.c:946 +#: src/evdev-plug/ed_internals.c:945 #, c-format msgid "" "event-device-plugin: configuration, unexpected value for device \"%s\", " @@ -2473,7 +2487,7 @@ "Tanınmamış bir aygıt için ilişkilendirme penceresi açılamıyor.\n" "Aygıtın düzgün bir şekilde sisteme takılı olduğundan emin olun." -#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:566 +#: src/evdev-plug/ed_ui.c:319 src/madplug/plugin.c:703 msgid "Error" msgstr "Hata" @@ -2539,7 +2553,7 @@ msgid "Active" msgstr "Etkin" -#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:488 +#: src/evdev-plug/ed_ui.c:655 src/sun/configure.c:486 msgid "Status" msgstr "Durum" @@ -2666,7 +2680,7 @@ msgid "Output file format:" msgstr "Çıktı dosya biçimi:" -#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:960 +#: src/filewriter/filewriter.c:511 src/ladspa/ladspa.c:959 msgid "Configure" msgstr "Yapılandır" @@ -2901,11 +2915,11 @@ msgid "Quality level (0 - 10):" msgstr "Kalite seviyesi (0 - 10):" -#: src/flacng/plugin.c:698 +#: src/flacng/plugin.c:697 msgid "FLAC Audio Plugin " msgstr "FLAC Ses Eklentisi " -#: src/flacng/plugin.c:699 +#: src/flacng/plugin.c:698 msgid "" "\n" "\n" @@ -2921,15 +2935,15 @@ "\n" "http://www.skytale.net/projects/bmp-flac2/" -#: src/flacng/plugin.c:704 +#: src/flacng/plugin.c:703 msgid "About FLAC Audio Plugin" msgstr "FLAC Ses Eklentisi Hakkında" +#: src/gnomeshortcuts/gnomeshortcuts.c:305 +msgid "About Gnome Shortcut Plugin" +msgstr "Gnome Kısayol Eklentisi Hakkında" + #: src/gnomeshortcuts/gnomeshortcuts.c:306 -msgid "About Gnome Shortcut Plugin" -msgstr "Gnome Kısayol Eklentisi Hakkında" - -#: src/gnomeshortcuts/gnomeshortcuts.c:307 #, fuzzy msgid "" "Gnome Shortcut Plugin\n" @@ -2949,7 +2963,7 @@ msgid "Previous Track" msgstr "Önceki Parça:" -#: src/hotkey/gui.c:69 +#: src/hotkey/gui.c:69 src/skins/ui_manager.c:177 src/skins/ui_manager.c:178 #, fuzzy msgid "Play" msgstr "Oynatma süresi:" @@ -2959,7 +2973,7 @@ msgid "Pause/Resume" msgstr "Beklet:" -#: src/hotkey/gui.c:71 +#: src/hotkey/gui.c:71 src/skins/ui_manager.c:183 src/skins/ui_manager.c:184 #, fuzzy msgid "Stop" msgstr "Durdur:" @@ -2994,7 +3008,7 @@ msgid "Volume Down" msgstr "Sesi alçalt:" -#: src/hotkey/gui.c:78 +#: src/hotkey/gui.c:78 src/skins/ui_manager.c:422 src/skins/ui_manager.c:423 #, fuzzy msgid "Jump to File" msgstr "Dosyaya Atla:" @@ -3049,11 +3063,11 @@ msgid "Key Binding:" msgstr "" -#: src/hotkey/gui.c:660 +#: src/hotkey/gui.c:659 msgid "About Global Hotkey Plugin" msgstr "Genel Kısayol Eklentisi Hakkında" -#: src/hotkey/gui.c:661 +#: src/hotkey/gui.c:660 #, fuzzy msgid "" "Global Hotkey Plugin\n" @@ -3083,35 +3097,35 @@ "\t\t\tJeremy Tan \n" "\n" -#: src/jack/configure.c:70 +#: src/jack/configure.c:69 msgid "Connect to all available jack ports" msgstr "Uygun bütün jack portlarına bağlan" -#: src/jack/configure.c:77 +#: src/jack/configure.c:76 msgid "Connect only the output ports" msgstr "Sadece çıkış portlarını bağla" -#: src/jack/configure.c:84 +#: src/jack/configure.c:83 msgid "Connect to no ports" msgstr "Hiç bir porta bağlanma" -#: src/jack/configure.c:99 +#: src/jack/configure.c:98 msgid "jack Plugin configuration" msgstr "Jack Eklentisi Eklentisi yapılandırması" -#: src/jack/configure.c:117 +#: src/jack/configure.c:116 msgid "Connection mode:" msgstr "Bağlantı modu:" -#: src/jack/configure.c:129 +#: src/jack/configure.c:128 msgid "Enable debug printing" msgstr "Hata ayıklama yazdırmasını etkinleştir" -#: src/jack/jack.c:84 +#: src/jack/jack.c:82 msgid "Sample rate mismatch" msgstr "Örnekleme oranı uyumsuzluğu" -#: src/jack/jack.c:87 +#: src/jack/jack.c:85 msgid "" "Xmms is asking for a sample rate that differs from\n" " that of the jack server. Xmms 1.2.8 or later\n" @@ -3135,15 +3149,15 @@ "\n" "Chris Morgan \n" -#: src/jack/jack.c:100 src/wma/wma.c:148 +#: src/jack/jack.c:98 src/wma/wma.c:145 msgid " Close " msgstr " Kapat " -#: src/jack/jack.c:452 +#: src/jack/jack.c:450 msgid "About JACK Output Plugin 0.17" msgstr "JACK Çıkış Eklentisi 0.17 Hakkında" -#: src/jack/jack.c:453 +#: src/jack/jack.c:451 msgid "" "XMMS jack Driver 0.17\n" "\n" @@ -3161,39 +3175,39 @@ "Audacious uyarlaması\n" "develia.org'tan Giacomo Lozito" -#: src/ladspa/ladspa.c:722 +#: src/ladspa/ladspa.c:721 msgid "This LADSPA plugin has no user controls" msgstr "Bu LADSPA eklentisi kullanıcı ayarı içermiyor" -#: src/ladspa/ladspa.c:767 src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:766 src/ladspa/ladspa.c:852 msgid "Name" msgstr "İsim" -#: src/ladspa/ladspa.c:853 +#: src/ladspa/ladspa.c:852 msgid "UID" msgstr "UID" -#: src/ladspa/ladspa.c:928 +#: src/ladspa/ladspa.c:927 msgid "Installed plugins" msgstr "Yüklü eklentiler" -#: src/ladspa/ladspa.c:937 +#: src/ladspa/ladspa.c:936 msgid "Running plugins" msgstr "Çalışan eklentiler" -#: src/ladspa/ladspa.c:952 +#: src/ladspa/ladspa.c:951 msgid "Add" msgstr "Ekle" -#: src/ladspa/ladspa.c:956 +#: src/ladspa/ladspa.c:955 msgid "Remove" msgstr "Kaldır" -#: src/ladspa/ladspa.c:969 +#: src/ladspa/ladspa.c:968 msgid "LADSPA Plugin Catalog" msgstr "LADSPA Eklenti Kataloğu" -#: src/lastfm/lastfm.c:96 +#: src/lastfm/lastfm.c:94 msgid "" "Couldn't initialize the last.fm radio plugin.\n" "\n" @@ -3295,60 +3309,60 @@ msgid "%s: will try reconnect every %d seconds...\n" msgstr "" -#: src/madplug/configure.c:209 +#: src/madplug/configure.c:208 msgid "MPEG Audio Plugin Configuration" msgstr "MPEG Ses Eklentisi Yapılandırması" -#: src/madplug/configure.c:226 +#: src/madplug/configure.c:225 #, fuzzy msgid "Audio Settings" msgstr "Alarm Ayarları" -#: src/madplug/configure.c:234 +#: src/madplug/configure.c:233 msgid "Force reopen audio when audio type changed" msgstr "Ses tipi değişince sesi tekrar yüklemeye zorla" -#: src/madplug/configure.c:243 +#: src/madplug/configure.c:242 #, fuzzy msgid "Metadata Settings" msgstr "Karıştırıcı Ayarları:" -#: src/madplug/configure.c:252 +#: src/madplug/configure.c:251 msgid "Enable fast play-length calculation" msgstr "Hızlı parça uzunluğu hesaplamayı etkinleştir" -#: src/madplug/configure.c:259 +#: src/madplug/configure.c:258 msgid "Parse XING headers" msgstr "XING başlıklarını işle" -#: src/madplug/configure.c:266 +#: src/madplug/configure.c:265 #, fuzzy msgid "Use SJIS to write ID3 tags (not recommended)" msgstr "ID3 etiketini yazarken UTF-8 yerine SjIS kullan" -#: src/madplug/configure.c:273 +#: src/madplug/configure.c:272 #, fuzzy msgid "Miscellaneous Settings" msgstr "Karıştırıcı Ayarları:" -#: src/madplug/configure.c:282 +#: src/madplug/configure.c:281 msgid "Display average bitrate for VBR" msgstr "VBR için ortalama bitoranını göster" -#: src/madplug/configure.c:296 src/vorbis/configure.c:102 +#: src/madplug/configure.c:295 src/vorbis/configure.c:100 msgid "Override generic titles" msgstr "Genel başlıkları geçersiz kıl" -#: src/madplug/configure.c:308 +#: src/madplug/configure.c:307 msgid "ID3 format:" msgstr "ID3 biçimi:" -#: src/madplug/configure.c:320 src/sid/xmms-sid.glade:2540 -#: src/sid/xs_interface.c:1070 +#: src/madplug/configure.c:319 src/sid/xmms-sid.glade:2610 +#: src/sid/xs_interface.c:1102 msgid "Title" msgstr "Başlık" -#: src/madplug/plugin.c:524 +#: src/madplug/plugin.c:661 #, c-format msgid "" "Audacious MPEG Audio Plugin\n" @@ -3379,15 +3393,15 @@ "ReplayGain desteği:\n" " Samuel Krempp" -#: src/madplug/plugin.c:540 +#: src/madplug/plugin.c:677 msgid "About MPEG Audio Plugin" msgstr "MPEG Ses Eklentisi Hakkında" +#: src/metronom/metronom.c:86 +msgid "About Metronom" +msgstr "Metronom Hakkında" + #: src/metronom/metronom.c:87 -msgid "About Metronom" -msgstr "Metronom Hakkında" - -#: src/metronom/metronom.c:88 msgid "" "A Tact Generator by Martin Strauss \n" "\n" @@ -3401,12 +3415,12 @@ "örneğin tact://77 ile dakikada 77 vurgu ya da\n" "tact://60*3/4 ile 60 bpm yi 3/4 tact ile" -#: src/metronom/metronom.c:198 src/metronom/metronom.c:262 +#: src/metronom/metronom.c:197 src/metronom/metronom.c:261 #, c-format msgid "Tact generator: %d bpm" msgstr "Takt oluşturucu: %d bpm" -#: src/metronom/metronom.c:200 src/metronom/metronom.c:264 +#: src/metronom/metronom.c:199 src/metronom/metronom.c:263 #, c-format msgid "Tact generator: %d bpm %d/%d" msgstr "Takt oluşturucu: %d bpm %d/%d" @@ -3622,11 +3636,11 @@ msgid "Message" msgstr "Mesaj" -#: src/modplug/gui/main.cxx:45 +#: src/modplug/gui/main.cxx:48 msgid "Modplug Input Plugin for Audacious ver" msgstr "Modplug Girdi Eklentisi Audacious sürüm" -#: src/modplug/gui/main.cxx:46 +#: src/modplug/gui/main.cxx:49 msgid "" "\n" "Modplug sound engine written by Olivier Lapicque.\n" @@ -3642,7 +3656,7 @@ "Güncelleme ve bakım Konstanty Bialkowski.\n" "BMP uyarlaması Theofilos Intzoglou." -#: src/modplug/gui/main.cxx:49 +#: src/modplug/gui/main.cxx:52 msgid "About Modplug" msgstr "Modplug Hakkında" @@ -3652,27 +3666,27 @@ msgid "Couldn't find pixmap file: %s" msgstr "Resim dosyası bulunamadı: %s" -#: src/mtp_up/mtp.c:35 +#: src/mtp_up/mtp.c:33 msgid "Upload selected track(s)" msgstr "" -#: src/mtp_up/mtp.c:296 +#: src/mtp_up/mtp.c:294 msgid "Upload in progress..." msgstr "" -#: src/mtp_up/mtp.c:305 +#: src/mtp_up/mtp.c:303 msgid "MTP device handler" msgstr "" -#: src/mtp_up/mtp.c:309 +#: src/mtp_up/mtp.c:307 msgid "Disconnect the device" msgstr "" -#: src/musepack/libmpc.cxx:146 +#: src/musepack/libmpc.cxx:142 msgid "Musepack Decoder Plugin 1.2" msgstr "Musepack Dekoder Eklentisi 1.2" -#: src/musepack/libmpc.cxx:147 +#: src/musepack/libmpc.cxx:143 msgid "" "Plugin code by\n" "Benoit Amiaux\n" @@ -3688,174 +3702,175 @@ "\n" "Son sürümüne http://musepack.net adresinden ulaşabilirsiniz\n" -#: src/musepack/libmpc.cxx:148 +#: src/musepack/libmpc.cxx:144 msgid "Nevermind" msgstr "Boşver" -#: src/musepack/libmpc.cxx:166 +#: src/musepack/libmpc.cxx:162 msgid "Musepack Decoder Configuration" msgstr "Musepack Çözücüsü Yapılandırması" -#: src/musepack/libmpc.cxx:176 +#: src/musepack/libmpc.cxx:172 msgid "General Settings" msgstr "Genel Ayarlar" -#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:492 +#: src/musepack/libmpc.cxx:179 src/wavpack/ui.cxx:490 msgid "Enable Dynamic Bitrate Display" msgstr "Dinamik Bitoranı Görüntülemeyi Etkinleştir" -#: src/musepack/libmpc.cxx:187 src/wavpack/ui.cxx:498 +#: src/musepack/libmpc.cxx:183 src/wavpack/ui.cxx:496 msgid "Plugin" msgstr "Eklenti" -#: src/musepack/libmpc.cxx:190 +#: src/musepack/libmpc.cxx:186 msgid "ReplayGain Settings" msgstr "ReplayGain Ayarları" -#: src/musepack/libmpc.cxx:197 src/wavpack/ui.cxx:510 +#: src/musepack/libmpc.cxx:193 src/wavpack/ui.cxx:508 msgid "Enable Clipping Prevention" msgstr " Çatlama Korumasını Etkinleştir" -#: src/musepack/libmpc.cxx:202 src/wavpack/ui.cxx:515 +#: src/musepack/libmpc.cxx:198 src/wavpack/ui.cxx:513 msgid "Enable ReplayGain" msgstr "ReplayGain Etkinleştir" -#: src/musepack/libmpc.cxx:207 +#: src/musepack/libmpc.cxx:203 msgid "ReplayGain Type" msgstr "ReplayGain Türü" -#: src/musepack/libmpc.cxx:215 +#: src/musepack/libmpc.cxx:211 msgid "Use Track Gain" msgstr "Parça Kazancı Kullan" -#: src/musepack/libmpc.cxx:219 +#: src/musepack/libmpc.cxx:215 msgid "Use Album Gain" msgstr "Albüm Kazancı Kullan" -#: src/musepack/libmpc.cxx:224 src/wavpack/ui.cxx:547 +#: src/musepack/libmpc.cxx:220 src/wavpack/ui.cxx:545 msgid "ReplayGain" msgstr "ReplayGain" -#: src/musepack/libmpc.cxx:491 src/sid/xmms-sid.glade:3144 -#: src/sid/xs_interface.c:1564 src/tta/libtta.c:304 src/wavpack/ui.cxx:152 +#: src/musepack/libmpc.cxx:487 src/sid/xmms-sid.glade:3338 +#: src/sid/xs_interface.c:1648 src/tta/libtta.c:301 src/wavpack/ui.cxx:150 msgid "Filename:" msgstr "Dosya adı:" -#: src/musepack/libmpc.cxx:506 +#: src/musepack/libmpc.cxx:502 msgid "Musepack Tag" msgstr "Musepack Etiketi" -#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:323 src/wavpack/ui.cxx:172 +#: src/musepack/libmpc.cxx:510 src/tta/libtta.c:320 src/wavpack/ui.cxx:170 msgid "Title:" msgstr "Başlık:" -#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:333 src/wavpack/ui.cxx:184 +#: src/musepack/libmpc.cxx:514 src/tta/libtta.c:330 src/wavpack/ui.cxx:182 msgid "Artist:" msgstr "Sanatçı:" -#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:344 src/wavpack/ui.cxx:196 +#: src/musepack/libmpc.cxx:518 src/tta/libtta.c:341 src/wavpack/ui.cxx:194 msgid "Album:" msgstr "Albüm:" -#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:355 src/wavpack/ui.cxx:208 +#: src/musepack/libmpc.cxx:522 src/tta/libtta.c:352 src/wavpack/ui.cxx:206 msgid "Comment:" msgstr "Yorum:" -#: src/musepack/libmpc.cxx:530 src/tta/libtta.c:366 src/wavpack/ui.cxx:221 +#: src/musepack/libmpc.cxx:526 src/tta/libtta.c:363 src/wavpack/ui.cxx:219 msgid "Year:" msgstr "Yıl:" -#: src/musepack/libmpc.cxx:535 +#: src/musepack/libmpc.cxx:531 msgid "Track:" msgstr "Parça:" -#: src/musepack/libmpc.cxx:540 src/tta/libtta.c:390 src/wavpack/ui.cxx:248 +#: src/musepack/libmpc.cxx:536 src/tta/libtta.c:387 src/wavpack/ui.cxx:246 msgid "Genre:" msgstr "Tür:" -#: src/musepack/libmpc.cxx:551 src/sid/xmms-sid.glade:1732 -#: src/sid/xs_interface.c:820 src/wavpack/ui.cxx:267 +#: src/musepack/libmpc.cxx:547 src/sid/xmms-sid.glade:1732 +#: src/sid/xs_interface.c:832 src/skins/ui_manager.c:438 +#: src/wavpack/ui.cxx:265 msgid "Save" msgstr "Kaydet" -#: src/musepack/libmpc.cxx:554 src/wavpack/ui.cxx:273 +#: src/musepack/libmpc.cxx:550 src/wavpack/ui.cxx:271 msgid "Remove Tag" msgstr "Etiketi kaldır" -#: src/musepack/libmpc.cxx:562 +#: src/musepack/libmpc.cxx:558 msgid "Musepack Info" msgstr "Musepack Bilgi" +#: src/musepack/libmpc.cxx:591 +#, c-format +msgid "Streamversion %d" +msgstr "Yayın sürümü %d" + +#: src/musepack/libmpc.cxx:592 +#, c-format +msgid "Encoder: %s" +msgstr "Enkoder: %s" + +#: src/musepack/libmpc.cxx:593 +#, c-format +msgid "Profile: %s" +msgstr "Profil: %s" + +#: src/musepack/libmpc.cxx:594 +#, c-format +msgid "Average bitrate: %6.1f kbps" +msgstr "Ortalama bitoranı: %6.1f kbps" + #: src/musepack/libmpc.cxx:595 #, c-format -msgid "Streamversion %d" -msgstr "Yayın sürümü %d" +msgid "Samplerate: %d Hz" +msgstr "Örnekleme oranı: %d Hz" #: src/musepack/libmpc.cxx:596 #, c-format -msgid "Encoder: %s" -msgstr "Enkoder: %s" +msgid "Channels: %d" +msgstr "Kanallar: %d" #: src/musepack/libmpc.cxx:597 #, c-format -msgid "Profile: %s" -msgstr "Profil: %s" - -#: src/musepack/libmpc.cxx:598 -#, c-format -msgid "Average bitrate: %6.1f kbps" -msgstr "Ortalama bitoranı: %6.1f kbps" - -#: src/musepack/libmpc.cxx:599 -#, c-format -msgid "Samplerate: %d Hz" -msgstr "Örnekleme oranı: %d Hz" - -#: src/musepack/libmpc.cxx:600 -#, c-format -msgid "Channels: %d" -msgstr "Kanallar: %d" - -#: src/musepack/libmpc.cxx:601 -#, c-format msgid "Length: %d:\\%.2d" msgstr "Uzunluk: %d:\\%.2d" -#: src/musepack/libmpc.cxx:602 +#: src/musepack/libmpc.cxx:598 #, c-format msgid "File size: %d Bytes" msgstr "Dosya boyutu: %d Bayt" -#: src/musepack/libmpc.cxx:603 +#: src/musepack/libmpc.cxx:599 #, c-format msgid "Track Peak: %5u" msgstr "Parça Zirvesi: %5u" -#: src/musepack/libmpc.cxx:604 +#: src/musepack/libmpc.cxx:600 #, c-format msgid "Track Gain: %-+2.2f dB" msgstr "Paça Kazancı: %-+2.2f dB" -#: src/musepack/libmpc.cxx:605 +#: src/musepack/libmpc.cxx:601 #, c-format msgid "Album Peak: %5u" msgstr "Albüm Zirvesi: %5u" -#: src/musepack/libmpc.cxx:606 +#: src/musepack/libmpc.cxx:602 #, c-format msgid "Album Gain: %-+5.2f dB" msgstr "Albüm Kazancı: %-+5.2f dB" -#: src/musepack/libmpc.cxx:634 src/tta/libtta.c:413 src/wavpack/ui.cxx:409 +#: src/musepack/libmpc.cxx:630 src/tta/libtta.c:410 src/wavpack/ui.cxx:407 #, c-format msgid "File Info - %s" msgstr "Dosya Bilgisi - %s" -#: src/null/null.c:61 +#: src/null/null.c:58 msgid "Null output plugin " msgstr "Null Çıkış eklentisi" -#: src/null/null.c:62 +#: src/null/null.c:59 msgid "" " by Christian Birchinger \n" "based on the XMMS plugin by Håvard Kvål " @@ -3863,23 +3878,52 @@ "Christian Birchinger \n" "Esinlenilen XMMS eklentisi - Håvard Kvål " -#: src/null/null.c:65 +#: src/null/null.c:62 msgid "About Null Output" msgstr "Null Çıkışı Hakkında" -#: src/null/null.c:94 +#: src/null/null.c:91 msgid "Null output preferences" msgstr "Boşl çıktı eklentisi" -#: src/null/null.c:103 +#: src/null/null.c:100 msgid "Run in real time" msgstr "Gerçekzamanlı çalış" -#: src/OSS4/about.c:42 +#: src/OSS4/configure.c:118 src/OSS/configure.c:150 +#, c-format +msgid "Default (%s)" +msgstr "Varsayılan (%s)" + +#: src/OSS4/configure.c:168 src/OSS/configure.c:200 +msgid "OSS Driver configuration" +msgstr "OSS Sürücüsü ayarları" + +#: src/OSS4/configure.c:206 src/OSS/configure.c:238 src/OSS/configure.c:279 +msgid "Use alternate device:" +msgstr "Farklı aygıt kullan:" + +#: src/OSS4/configure.c:228 src/OSS/configure.c:301 src/sun/configure.c:246 +msgid "Devices" +msgstr "Aygıtlar" + +#: src/OSS4/configure.c:270 src/OSS/configure.c:342 +msgid "Mixer Settings:" +msgstr "Karıştırıcı Ayarları:" + +#: src/OSS4/configure.c:276 +msgid "Save VMIX volume between sessions" +msgstr "Oturumlar arası VMIX ses seviyesini kaydet" + +#: src/OSS4/configure.c:282 src/OSS/configure.c:354 src/sun/configure.c:392 +msgid "Mixer" +msgstr "Karıştırıcı" + +#: src/OSS4/OSS4.c:38 msgid "About OSSv4 Driver" msgstr "OSSv4 Sürücüsü Hakkında" -#: src/OSS4/about.c:43 +#: src/OSS4/OSS4.c:39 msgid "" "Audacious OSSv4 Driver\n" "\n" @@ -3920,40 +3964,15 @@ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,\n" "USA." -#: src/OSS4/configure.c:120 src/OSS/configure.c:151 -#, c-format -msgid "Default (%s)" -msgstr "Varsayılan (%s)" - -#: src/OSS4/configure.c:170 src/OSS/configure.c:201 -msgid "OSS Driver configuration" -msgstr "OSS Sürücüsü ayarları" - -#: src/OSS4/configure.c:208 src/OSS/configure.c:239 src/OSS/configure.c:280 -msgid "Use alternate device:" -msgstr "Farklı aygıt kullan:" - -#: src/OSS4/configure.c:230 src/OSS/configure.c:302 src/sun/configure.c:248 -msgid "Devices" -msgstr "Aygıtlar" - -#: src/OSS4/configure.c:272 src/OSS/configure.c:343 -msgid "Mixer Settings:" -msgstr "Karıştırıcı Ayarları:" - -#: src/OSS4/configure.c:278 -msgid "Save VMIX volume between sessions" -msgstr "Oturumlar arası VMIX ses seviyesini kaydet" - -#: src/OSS4/configure.c:284 src/OSS/configure.c:355 src/sun/configure.c:394 -msgid "Mixer" -msgstr "Karıştırıcı" - -#: src/OSS/about.c:39 +#: src/OSS/configure.c:348 +msgid "Volume controls Master not PCM" +msgstr "Ses ayarı PCM değil, ana kanalı ayarlasın" + +#: src/OSS/OSS.c:37 msgid "About OSS Driver" msgstr "OSS Sürücüsü Hakkında" -#: src/OSS/about.c:40 +#: src/OSS/OSS.c:38 msgid "" "Audacious OSS Driver\n" "\n" @@ -3991,19 +4010,15 @@ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,\n" "USA." -#: src/OSS/configure.c:349 -msgid "Volume controls Master not PCM" -msgstr "Ses ayarı PCM değil, ana kanalı ayarlasın" - #: src/projectm-1.0/main.c:70 msgid "_Random" msgstr "" -#: src/pulse_audio/pulse_audio.c:722 +#: src/pulse_audio/pulse_audio.c:720 msgid "About Audacious PulseAudio Output Plugin" msgstr "Audacious PulseAudio Çıktı Eklentisi Hakkında" -#: src/pulse_audio/pulse_audio.c:723 +#: src/pulse_audio/pulse_audio.c:721 msgid "" "Audacious PulseAudio Output Plugin\n" "\n" @@ -4041,27 +4056,27 @@ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,\n" "USA." -#: src/scrobbler/configure.c:138 +#: src/scrobbler/configure.c:134 msgid "Services" msgstr "Hizmetler" -#: src/scrobbler/configure.c:160 src/scrobbler/configure.c:199 +#: src/scrobbler/configure.c:156 src/scrobbler/configure.c:195 msgid "Username:" msgstr "Kullanıcı adı:" -#: src/scrobbler/configure.c:166 src/scrobbler/configure.c:205 +#: src/scrobbler/configure.c:162 src/scrobbler/configure.c:201 msgid "Password:" msgstr "Şifre:" -#: src/scrobbler/configure.c:183 +#: src/scrobbler/configure.c:179 msgid "Last.FM" msgstr "Last.FM" -#: src/scrobbler/configure.c:222 +#: src/scrobbler/configure.c:218 msgid "Gerpok" msgstr "Gerpok" -#: src/scrobbler/gtkstuff.c:21 +#: src/scrobbler/gtkstuff.c:18 msgid "" "Audacious AudioScrobbler Plugin\n" "\n" @@ -4072,11 +4087,11 @@ "\n" "İlk geliştiricileri Audun Hove ve Pipian \n" -#: src/scrobbler/gtkstuff.c:23 +#: src/scrobbler/gtkstuff.c:20 msgid "About Scrobbler Plugin" msgstr "Scrobbler Eklentisi Hakkında" -#: src/scrobbler/gtkstuff.c:36 +#: src/scrobbler/gtkstuff.c:33 #, c-format msgid "" "There has been an error that may require your attention.\n" @@ -4091,59 +4106,59 @@ "\n" "%s\n" -#: src/scrobbler/gtkstuff.c:43 +#: src/scrobbler/gtkstuff.c:40 msgid "Scrobbler Error" msgstr "Scrobbler Hatası" -#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:221 +#: src/sid/xmms-sid.glade:8 src/sid/xs_interface.c:233 msgid "Audacious-SID configuration" msgstr "Audacious-SID - yapılandırması" -#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:257 +#: src/sid/xmms-sid.glade:71 src/sid/xs_interface.c:269 msgid "8-bit" msgstr "8-bit" -#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:264 +#: src/sid/xmms-sid.glade:90 src/sid/xs_interface.c:276 msgid "16-bit" msgstr "16-bit" -#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:271 +#: src/sid/xmms-sid.glade:111 src/sid/xs_interface.c:283 msgid "Resolution:" msgstr "Çözünürlük:" -#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:302 +#: src/sid/xmms-sid.glade:196 src/sid/xs_interface.c:314 msgid "Autopanning" msgstr "Otomatik Pan" -#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:309 +#: src/sid/xmms-sid.glade:217 src/sid/xs_interface.c:321 msgid "Channels:" msgstr "Kanallar:" -#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:353 +#: src/sid/xmms-sid.glade:384 src/sid/xs_interface.c:365 msgid "Samplerate:" msgstr "Örnekleme oranı:" -#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:370 +#: src/sid/xmms-sid.glade:430 src/sid/xs_interface.c:382 msgid "Use oversampling" msgstr "Yeniden örnekleme kullan" -#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:381 +#: src/sid/xmms-sid.glade:456 src/sid/xs_interface.c:393 msgid "Factor:" msgstr "Oran:" -#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:393 +#: src/sid/xmms-sid.glade:500 src/sid/xs_interface.c:405 msgid "Large factors require more CPU-power" msgstr "yüksek oran değerleri daha çok işlemci gücü gerektirir" -#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:399 +#: src/sid/xmms-sid.glade:534 src/sid/xs_interface.c:411 msgid "Oversampling:" msgstr "Yeniden örnekleme:" -#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:404 +#: src/sid/xmms-sid.glade:570 src/sid/xs_interface.c:416 msgid "Audio" msgstr "Ses" -#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:436 +#: src/sid/xmms-sid.glade:620 src/sid/xs_interface.c:448 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "clock speed/frequency. Otherwise the speed is determined from played file " @@ -4153,11 +4168,11 @@ "\"zorlar\". Bu seçenek seçili değilse hız oynatılan dosya bilgilerinden " "ayarlanır." -#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:432 +#: src/sid/xmms-sid.glade:622 src/sid/xs_interface.c:444 msgid "Force speed" msgstr "Zorlanan hız" -#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:442 +#: src/sid/xmms-sid.glade:640 src/sid/xs_interface.c:454 msgid "" "PAL is the european TV standard, which uses 50Hz vertical refresh frequency. " "Most of SID-tunes have been made for PAL computers." @@ -4165,11 +4180,11 @@ "PAL 50Hz dikey tazeleme frekansına sahip Avrupa Televizyon Standardıdır. SID-" "tınılarının çoğu PAL bilgisayarlar için üretilmiştir." -#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:438 +#: src/sid/xmms-sid.glade:642 src/sid/xs_interface.c:450 msgid "PAL (50 Hz)" msgstr "PAL (50 Hz)" -#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:450 +#: src/sid/xmms-sid.glade:660 src/sid/xs_interface.c:462 msgid "" "NTSC is the TV standard with 60Hz vertical refresh rate (and other features " "that differ from PAL). It is mainly used in United States, Japan and certain " @@ -4179,15 +4194,15 @@ "özelliğe) sahip bir standarttır. En çok Amerika Birleşik Devletleri, Japonya " "ve belli başkı bazı ülkelerde kullanılmaktadır." -#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:446 +#: src/sid/xmms-sid.glade:662 src/sid/xs_interface.c:458 msgid "NTSC (60 Hz)" msgstr "NTSC (60 Hz)" -#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:454 +#: src/sid/xmms-sid.glade:683 src/sid/xs_interface.c:466 msgid "Clock speed:" msgstr "Saat hızı:" -#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:475 +#: src/sid/xmms-sid.glade:728 src/sid/xs_interface.c:487 msgid "" "If enabled, this option \"forces\" the emulation engine to use the selected " "SID-chip model. Otherwise the preferred SID model is determined from the " @@ -4197,11 +4212,11 @@ "\"zorlanır\". Seçili değilse tercih edilen SID modeli dosyadan (PSIDv2NG " "tipinde ise) belirlenir, dosya mevcut değilse bu ayar kullanılır." -#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:471 +#: src/sid/xmms-sid.glade:730 src/sid/xs_interface.c:483 msgid "Force model" msgstr "Zorlama modeli" -#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:481 +#: src/sid/xmms-sid.glade:748 src/sid/xs_interface.c:493 msgid "" "MOS/CSG 6581 is the earlier major version of SID chip. It differs from 8580 " "in few ways, having much fuller filter (which, due to design error, is never " @@ -4213,19 +4228,19 @@ "sebebiyle asla iki farklı SID entegresinde aynı olmaz) ve \"ses ayarlama " "hatası\" ile dijital örneklerin oynatılmasına olanak verir." -#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:477 +#: src/sid/xmms-sid.glade:750 src/sid/xs_interface.c:489 msgid "MOS 6581" msgstr "MOS 6581" -#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:485 +#: src/sid/xmms-sid.glade:769 src/sid/xs_interface.c:497 msgid "MOS 8580" msgstr "MOS 8580" -#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:492 +#: src/sid/xmms-sid.glade:790 src/sid/xs_interface.c:504 msgid "SID model:" msgstr "SID modeli:" -#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:513 +#: src/sid/xmms-sid.glade:842 src/sid/xs_interface.c:525 msgid "" "Use libSIDPlay 1.x emulation, faster but not so accurate. Good in most " "cases, though." @@ -4233,11 +4248,11 @@ "Daha az hassas fakat daha hızlı olan libSIDPlay 1.x emülasyonu kullan. Çoğu " "durum için yeterlidir." -#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:509 +#: src/sid/xmms-sid.glade:844 src/sid/xs_interface.c:521 msgid "SIDPlay 1 (frame-based)" msgstr "SIDPLAY 1 (çerçeve tabanlı)" -#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:521 +#: src/sid/xmms-sid.glade:863 src/sid/xs_interface.c:533 msgid "" "Use libSIDPlay 2.x emulation, which requires powerful CPU due to more exact " "emulation." @@ -4245,39 +4260,39 @@ "libSIDPlay 2.x emülasyonu kullan. Daha hassas çalıştığı için güçlü bir " "işlemci gerektirir." -#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:517 +#: src/sid/xmms-sid.glade:865 src/sid/xs_interface.c:529 msgid "SIDPlay 2 (cycle-based)" msgstr "SIDPlay 2 (tur-tabanlı)" -#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:525 +#: src/sid/xmms-sid.glade:887 src/sid/xs_interface.c:537 msgid "Emulation library selection:" msgstr "Emülasyon kütüphanesi seçimi:" -#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:542 +#: src/sid/xmms-sid.glade:933 src/sid/xs_interface.c:554 msgid "Real C64 (SIDPlay 2 only)" msgstr "Real C64 (sadece SIDPlay 2 ile)" -#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:549 +#: src/sid/xmms-sid.glade:952 src/sid/xs_interface.c:561 msgid "Bank switching" msgstr "Banka değişimi" -#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:556 +#: src/sid/xmms-sid.glade:972 src/sid/xs_interface.c:568 msgid "Transparent ROM" msgstr "Saydam ROM" -#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:563 +#: src/sid/xmms-sid.glade:992 src/sid/xs_interface.c:575 msgid "PlaySID environment" msgstr "PlaySID ortamı" -#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:570 +#: src/sid/xmms-sid.glade:1013 src/sid/xs_interface.c:582 msgid "Memory mode:" msgstr "Hafıza modu:" -#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:575 +#: src/sid/xmms-sid.glade:1049 src/sid/xs_interface.c:587 msgid "Emu#1" msgstr "Emu#1" -#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:602 +#: src/sid/xmms-sid.glade:1093 src/sid/xs_interface.c:614 msgid "" "This setting can be used to enable libSIDPlay2's \"optimization mode\", " "which in downgrades the emulation from cycle-exact to something similar to " @@ -4287,11 +4302,11 @@ "bu ayar emülasyonun tam-tur yerine tam-çerçeve çalışmasını sağlar. Sonuçta " "daha az işlemci gücü kullanılır ama daha az hassasiyet elde edilir." -#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:598 +#: src/sid/xmms-sid.glade:1095 src/sid/xs_interface.c:610 msgid "Optimization mode (faster, inaccurate)" msgstr "Optimizasyon modu (hassas değil ama hızlı)" -#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:608 +#: src/sid/xmms-sid.glade:1113 src/sid/xs_interface.c:620 msgid "" "reSID is the software SID-chip simulator based on SID reverse-engineering, " "created by Dag Lem. It is probably the closest thing to real SID available " @@ -4301,11 +4316,11 @@ "engineering) yöntemiyle üretilen simulatör yazılımıdır. Büyük ihtimalle " "yazılım emülatörü olarak gerçek SID'e en yakın araçtır." -#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:604 +#: src/sid/xmms-sid.glade:1115 src/sid/xs_interface.c:616 msgid "reSID-emulation" msgstr "reSID-emülasyonu" -#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:616 +#: src/sid/xmms-sid.glade:1133 src/sid/xs_interface.c:628 msgid "" "HardSID is a EISA/PCI card for PC-compatibles, which can be fitted with a " "real SID-chip. Software can be used to control the HardSID and combined with " @@ -4319,15 +4334,15 @@ "edildiğinde gerçek bir C64 \"neredeyse %100\" başarıyla taklit edilebilir." "Daha fazla bilgi için http://www.hardsid.com/" -#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:612 +#: src/sid/xmms-sid.glade:1135 src/sid/xs_interface.c:624 msgid "HardSID" msgstr "HardSID" -#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:620 +#: src/sid/xmms-sid.glade:1156 src/sid/xs_interface.c:632 msgid "SIDPlay 2 options:" msgstr "SIDPlay 2 options:" -#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:641 +#: src/sid/xmms-sid.glade:1201 src/sid/xs_interface.c:653 msgid "" "Fastest and also worst sounding sampling method, simply picks nearest " "neighbouring sample." @@ -4335,11 +4350,11 @@ "En hızlı ama en kötü ses örnekleme metodu, basitce en yakın örneği seçerek " "çalışır." -#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:637 +#: src/sid/xmms-sid.glade:1203 src/sid/xs_interface.c:649 msgid "Fast (nearest neighbour)" msgstr "Hızlı (en yakın örnek)" -#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:649 +#: src/sid/xmms-sid.glade:1221 src/sid/xs_interface.c:661 msgid "" "Uses linear interpolation between samples, yielding higher audio quality " "with less sampling noise." @@ -4347,23 +4362,23 @@ "Az örnekleme gürültüsü ile yüksek ses kalitesi elde etmek için örnekler " "arası doğrusal ortalama kullanır." -#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:645 +#: src/sid/xmms-sid.glade:1223 src/sid/xs_interface.c:657 msgid "Linear interpolation" msgstr "Doğrusal ortalama" -#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:660 +#: src/sid/xmms-sid.glade:1263 src/sid/xs_interface.c:672 msgid "Resampling (FIR)" msgstr "Yeniden örnekleme (FIR)" -#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:667 +#: src/sid/xmms-sid.glade:1284 src/sid/xs_interface.c:679 msgid "reSID sampling options:" msgstr "reSID örnekleme seçenekleri:" -#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:672 +#: src/sid/xmms-sid.glade:1320 src/sid/xs_interface.c:684 msgid "Emu#2" msgstr "Emu#2" -#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:688 +#: src/sid/xmms-sid.glade:1350 src/sid/xs_interface.c:700 msgid "" "This option enables emulation of SID filter. The filter is an essential part " "of SID's sound capacity, but accurate emulation of it may require quite much " @@ -4375,59 +4390,61 @@ "işlemci gücü isteyebilir. Yine de, filtre emülasyonu kapatılırsa, duyulan " "sesler filtreyi çağırdıkları kadar otantik üretilmeyecektir." -#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:684 +#: src/sid/xmms-sid.glade:1352 src/sid/xs_interface.c:696 msgid "Emulate filters" msgstr "Emülasyon filtreleri" -#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:713 +#: src/sid/xmms-sid.glade:1409 src/sid/xs_interface.c:725 msgid "FS" msgstr "FS" -#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:730 +#: src/sid/xmms-sid.glade:1460 src/sid/xs_interface.c:742 msgid "FM" msgstr "FM" -#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:747 +#: src/sid/xmms-sid.glade:1511 src/sid/xs_interface.c:759 msgid "FT" msgstr "FT" -#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:758 +#: src/sid/xmms-sid.glade:1549 src/sid/xs_interface.c:770 msgid "Reset values" msgstr "Değerleri sıfırla" -#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:763 +#: src/sid/xmms-sid.glade:1578 src/sid/xs_interface.c:775 msgid "SIDPlay1" msgstr "SIDPlay1" -#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:804 +#: src/sid/xmms-sid.glade:1690 src/sid/xs_interface.c:816 msgid "Export" msgstr "Dışa aktar" -#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:812 +#: src/sid/xmms-sid.glade:1711 src/sid/xs_interface.c:824 msgid "Use" msgstr "Kullan" -#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:828 +#: src/sid/xmms-sid.glade:1753 src/sid/xs_interface.c:840 +#: src/skins/ui_manager.c:437 msgid "Import" msgstr "İçe aktar" -#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:836 +#: src/sid/xmms-sid.glade:1774 src/sid/xs_interface.c:848 +#: src/skins/ui_manager.c:439 msgid "Delete" msgstr "Sil" -#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:850 +#: src/sid/xmms-sid.glade:1819 src/sid/xs_interface.c:862 msgid "Filter curve:" msgstr "Filtre eğrisi" -#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:855 +#: src/sid/xmms-sid.glade:1855 src/sid/xs_interface.c:867 msgid "SIDPlay2" msgstr "SIDPlay2" -#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:861 +#: src/sid/xmms-sid.glade:1891 src/sid/xs_interface.c:873 msgid "Filters" msgstr "Filtreler" -#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:888 +#: src/sid/xmms-sid.glade:1935 src/sid/xs_interface.c:900 msgid "" "If enabled, the tune is played at least for the specified time, adding " "silence to the end if necessary." @@ -4435,21 +4452,21 @@ "Seçildiğinde tını belirlenen süre kadar oynatılır, gerekli olursa sonuna " "sessizlik eklenir." -#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:884 +#: src/sid/xmms-sid.glade:1937 src/sid/xs_interface.c:896 msgid "Play at least for specified time" msgstr "En az belirlenen süre kadar oynat" #: src/sid/xmms-sid.glade:1962 src/sid/xmms-sid.glade:2133 -#: src/sid/xmms-sid.glade:2632 src/sid/xs_interface.c:895 -#: src/sid/xs_interface.c:949 src/sid/xs_interface.c:1109 +#: src/sid/xmms-sid.glade:2702 src/sid/xs_interface.c:907 +#: src/sid/xs_interface.c:961 src/sid/xs_interface.c:1141 msgid "Playtime:" msgstr "Oynatma süresi:" -#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:915 +#: src/sid/xmms-sid.glade:2041 src/sid/xs_interface.c:927 msgid "Minimum playtime:" msgstr "En az oynatma süresi:" -#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:936 +#: src/sid/xmms-sid.glade:2086 src/sid/xs_interface.c:948 msgid "" "If enabled, tune is played until specified duration is reached (aka maximum " "playtime)." @@ -4457,11 +4474,11 @@ "Seçildiğinde tını belirlenen süreye kadar oynatılır (maksimum oynatma " "süresi)." -#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:932 +#: src/sid/xmms-sid.glade:2088 src/sid/xs_interface.c:944 msgid "Play for specified time maximum" msgstr "En fazla belirlenen süre kadar oynat" -#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:942 +#: src/sid/xmms-sid.glade:2107 src/sid/xs_interface.c:954 msgid "" "If enabled, the maximum playtime is applied only if song/tune length is not " "known." @@ -4469,15 +4486,15 @@ "Seçildiğinde en fazla oynatma süresi sadece şarkının/tınının süresi " "bilinmiyorsa uygulanır." -#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:938 +#: src/sid/xmms-sid.glade:2109 src/sid/xs_interface.c:950 msgid "Only when song length is unknown" msgstr "Sadece şarkı süresi bilinmiyorsa" -#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:969 +#: src/sid/xmms-sid.glade:2212 src/sid/xs_interface.c:981 msgid "Maximum playtime:" msgstr "En fazla oynatma süresi:" -#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:990 +#: src/sid/xmms-sid.glade:2257 src/sid/xs_interface.c:1002 msgid "" "This option enables using of XSIDPLAY compatible song length database. " "(Refer to Audacious-SID documentation for more information)" @@ -4485,31 +4502,31 @@ "Bu seçenek XSIDPLAY uyumlu şarkı uzunluğu veritabanının kullanımını açar. " "(Daha fazla bilgi için Audacious-SID belgelerine başvurunuz)" -#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:986 +#: src/sid/xmms-sid.glade:2259 src/sid/xs_interface.c:998 msgid "Use XSIDPLAY-compatible database" msgstr "XSIDPLAY-uyumlu veritabanı kullan" -#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:997 +#: src/sid/xmms-sid.glade:2284 src/sid/xs_interface.c:1009 msgid "DB-file:" msgstr "DB-dosyası:" -#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1007 +#: src/sid/xmms-sid.glade:2309 src/sid/xs_interface.c:1019 msgid "Database path and filename" msgstr "Veritabanı dizini ve dosya adı" -#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1014 +#: src/sid/xmms-sid.glade:2329 src/sid/xs_interface.c:1026 msgid "Browse for song length-database file" msgstr "Şarkı uzunluğu veritabanı dosyasını seç" -#: src/sid/xmms-sid.glade:2356 src/sid/xs_interface.c:1016 +#: src/sid/xmms-sid.glade:2418 src/sid/xs_interface.c:1048 msgid "Song length database:" msgstr "Şarkı uzunluğu veritabanı:" -#: src/sid/xmms-sid.glade:2392 src/sid/xs_interface.c:1021 +#: src/sid/xmms-sid.glade:2454 src/sid/xs_interface.c:1053 msgid "Songlength" msgstr "Şarkı uzunluğu" -#: src/sid/xmms-sid.glade:2430 src/sid/xs_interface.c:1043 +#: src/sid/xmms-sid.glade:2492 src/sid/xs_interface.c:1075 msgid "" "By enabling this option you can specify a custom Tuplez formatting string " "for SID-files. The SID-plugin specific Tuplez tags are described shortly " @@ -4519,23 +4536,32 @@ "belirleyebilirsiniz. SID eklentisine özel Tuplez etiketleri kısa bir şekilde " "aşağıda açıklanmıştır." -#: src/sid/xmms-sid.glade:2432 src/sid/xs_interface.c:1039 +#: src/sid/xmms-sid.glade:2494 src/sid/xs_interface.c:1071 msgid "Override generic Tuplez format string" msgstr "Genel Tuplez biçimindeki metni kullanma" -#: src/sid/xmms-sid.glade:2457 src/sid/xs_interface.c:1054 +#: src/sid/xmms-sid.glade:2519 src/sid/xs_interface.c:1086 msgid "Tuplez format string for SID-files" msgstr "SID dosyaları için Tuplez biçim metni" -#: src/sid/xmms-sid.glade:2477 src/sid/xs_interface.c:1057 -msgid "Descriptions of SID-specific Tuplez fields go here. :D" -msgstr "SID'e özel Tuplez alanlarının tanımı buraya gelecek. :D" - -#: src/sid/xmms-sid.glade:2511 src/sid/xs_interface.c:1065 +#: src/sid/xmms-sid.glade:2539 src/sid/xs_interface.c:1089 +msgid "" +"SID-specific Tuplez fields:\n" +"\n" +"sid-format\t\t- Specific fileformat\n" +"sid-model\t\t- 6581 or 8580\n" +"sid-speed\t\t- Timing or speed: PAL/NTSC/etc.\n" +"\n" +"Other \"special\" fields set:\n" +"\n" +"subsong-num, subsong-id" +msgstr "" + +#: src/sid/xmms-sid.glade:2581 src/sid/xs_interface.c:1097 msgid "Song title format:" msgstr "Şarkı adı biçimi:" -#: src/sid/xmms-sid.glade:2584 src/sid/xs_interface.c:1096 +#: src/sid/xmms-sid.glade:2654 src/sid/xs_interface.c:1128 msgid "" "If enabled, sub-tunes of each file will be added to playlist. If disabled, " "only the default sub-tune will be added." @@ -4543,23 +4569,23 @@ "Seçildiğinde, her dosyanın alt tınısı parça listesine eklenecektir. Kapalı " "ise, sadece öntanımlı alt tını eklenecektir." -#: src/sid/xmms-sid.glade:2586 src/sid/xs_interface.c:1092 +#: src/sid/xmms-sid.glade:2656 src/sid/xs_interface.c:1124 msgid "Add sub-tunes to playlist" msgstr "Parça listesine alttınılar ekle" -#: src/sid/xmms-sid.glade:2605 src/sid/xs_interface.c:1102 +#: src/sid/xmms-sid.glade:2675 src/sid/xs_interface.c:1134 msgid "Only add sub-tunes that have a duration of at least specified time." msgstr "Sadece en az belirlenen süre uzunluğunda alttınıları ekle." -#: src/sid/xmms-sid.glade:2607 src/sid/xs_interface.c:1098 +#: src/sid/xmms-sid.glade:2677 src/sid/xs_interface.c:1130 msgid "Only tunes with specified minimum duration" msgstr "Sadece belirlenen en az süreye sahip tınılar" -#: src/sid/xmms-sid.glade:2710 src/sid/xs_interface.c:1129 +#: src/sid/xmms-sid.glade:2780 src/sid/xs_interface.c:1161 msgid "Sub-tune handling:" msgstr "Alttını yönetimi:" -#: src/sid/xmms-sid.glade:2755 src/sid/xs_interface.c:1150 +#: src/sid/xmms-sid.glade:2825 src/sid/xs_interface.c:1182 msgid "" "If this option is enabled (and the database & HVSC settings below are " "correctly set), Audacious-SID will use and display additional information " @@ -4569,15 +4595,15 @@ "ayarlandıysa), Audacious-SID HVSC SID dosyaları oynatılırken STIL " "veritabanından aldığını bilgileri kullanacak ve gösterecek." -#: src/sid/xmms-sid.glade:2757 src/sid/xs_interface.c:1146 +#: src/sid/xmms-sid.glade:2827 src/sid/xs_interface.c:1178 msgid "Use STIL database" msgstr "STIL veritabanını kullan" -#: src/sid/xmms-sid.glade:2782 src/sid/xs_interface.c:1157 +#: src/sid/xmms-sid.glade:2852 src/sid/xs_interface.c:1189 msgid "STIL file:" msgstr "STIL dosyası:" -#: src/sid/xmms-sid.glade:2819 src/sid/xs_interface.c:1173 +#: src/sid/xmms-sid.glade:2889 src/sid/xs_interface.c:1205 msgid "" "Path and filename of STIL database file (STIL.txt), usually found from " "HVSC's DOCUMENTS-subdirectory." @@ -4585,15 +4611,15 @@ "STIL veritabanı dosyasının (STIL.txt) dizini ve dosya adı. Genellikle " "HVSC'nin DOCUMENTS dizininden bulunabilir." -#: src/sid/xmms-sid.glade:2854 src/sid/xs_interface.c:1186 +#: src/sid/xmms-sid.glade:2924 src/sid/xs_interface.c:1218 msgid "Browse for STIL-database file" msgstr "STIL veritabanı dosyasını seç" -#: src/sid/xmms-sid.glade:2888 src/sid/xs_interface.c:1193 +#: src/sid/xmms-sid.glade:3020 src/sid/xs_interface.c:1245 msgid "HVSC path:" msgstr "HVSC yolu:" -#: src/sid/xmms-sid.glade:2925 src/sid/xs_interface.c:1209 +#: src/sid/xmms-sid.glade:3057 src/sid/xs_interface.c:1261 msgid "" "Path to base-directory of your High Voltage SID Collection (HVSC), for " "example /media/C64Music/" @@ -4601,88 +4627,88 @@ "Yüksek Voltaj SID Koleksiyonu (HVSC) aranacağı dizin, örnek olarak /media/" "C64Music/" -#: src/sid/xmms-sid.glade:2960 src/sid/xs_interface.c:1222 +#: src/sid/xmms-sid.glade:3092 src/sid/xs_interface.c:1274 msgid "Browse for HVSC path" msgstr "HVSC dizinini seç" -#: src/sid/xmms-sid.glade:2990 src/sid/xs_interface.c:1224 +#: src/sid/xmms-sid.glade:3184 src/sid/xs_interface.c:1296 msgid "SID Tune Information List (STIL) database:" msgstr "SID Tını Bilgisi Listesi (STIL) veritabanı:" -#: src/sid/xmms-sid.glade:3063 src/sid/xs_interface.c:1248 +#: src/sid/xmms-sid.glade:3257 src/sid/xs_interface.c:1320 msgid "Accept and update changes" msgstr "Değişiklikleri kabul et ve güncelle" -#: src/sid/xmms-sid.glade:3077 src/sid/xs_interface.c:1255 +#: src/sid/xmms-sid.glade:3271 src/sid/xs_interface.c:1327 msgid "Cancel any changes" msgstr "Değişiklikleri kabul etme" -#: src/sid/xmms-sid.glade:3102 src/sid/xs_interface.c:1543 +#: src/sid/xmms-sid.glade:3296 src/sid/xs_interface.c:1627 msgid "Audacious-SID Fileinfo" msgstr "Audacious SID Dosya Bilgisi" -#: src/sid/xmms-sid.glade:3172 src/sid/xs_interface.c:1572 +#: src/sid/xmms-sid.glade:3366 src/sid/xs_interface.c:1656 msgid "Songname:" msgstr "Şarkı adı:" -#: src/sid/xmms-sid.glade:3200 src/sid/xs_interface.c:1580 +#: src/sid/xmms-sid.glade:3394 src/sid/xs_interface.c:1664 msgid "Composer:" msgstr "Besteci:" -#: src/sid/xmms-sid.glade:3228 src/sid/xs_interface.c:1588 +#: src/sid/xmms-sid.glade:3422 src/sid/xs_interface.c:1672 msgid "Copyright:" msgstr "Telif Hakkı:" -#: src/sid/xmms-sid.glade:3342 src/sid/xs_interface.c:1632 +#: src/sid/xmms-sid.glade:3536 src/sid/xs_interface.c:1716 msgid "Song Information:" msgstr "Şarkı Bilgisi:" -#: src/sid/xmms-sid.glade:3416 src/sid/xs_interface.c:1667 +#: src/sid/xmms-sid.glade:3610 src/sid/xs_interface.c:1751 msgid "Author:" msgstr "Yazar:" -#: src/sid/xmms-sid.glade:3514 src/sid/xs_interface.c:1701 +#: src/sid/xmms-sid.glade:3708 src/sid/xs_interface.c:1785 msgid "Duration:" msgstr "Süre:" -#: src/sid/xmms-sid.glade:3608 src/sid/xs_interface.c:1735 +#: src/sid/xmms-sid.glade:3802 src/sid/xs_interface.c:1819 msgid "Sub-tune Information:" msgstr "Alt Tını Bilgisi:" -#: src/sid/xmms-sid.glade:3662 src/sid/xs_interface.c:1796 +#: src/sid/xmms-sid.glade:3856 src/sid/xs_interface.c:1880 msgid "Select HVSC song length database" msgstr "HVSC şarkı uzunluğu veritabanını seç" -#: src/sid/xmms-sid.glade:3704 src/sid/xs_interface.c:1837 +#: src/sid/xmms-sid.glade:3898 src/sid/xs_interface.c:1921 msgid "Select STIL-database" msgstr "STIL veritabanını seç" -#: src/sid/xmms-sid.glade:3746 src/sid/xs_interface.c:1878 +#: src/sid/xmms-sid.glade:3940 src/sid/xs_interface.c:1962 msgid "Select HVSC location prefix" msgstr "HVSC konum bilgisini seç" -#: src/sid/xmms-sid.glade:3788 src/sid/xs_interface.c:1919 +#: src/sid/xmms-sid.glade:3982 src/sid/xs_interface.c:2003 msgid "Select SIDPlay2 filters file for importing" msgstr "İçe aktarmak için SIDPlay2 filtre dosyasını seç" -#: src/sid/xmms-sid.glade:3830 src/sid/xs_interface.c:1960 +#: src/sid/xmms-sid.glade:4024 src/sid/xs_interface.c:2044 msgid "Select SIDPlay2 filters file for exporting" msgstr "Dışa aktarmak için SIDPlay2 filtre dosyasını seç" -#: src/sid/xmms-sid.glade:3871 src/sid/xmms-sid.glade:3953 -#: src/sid/xs_interface.c:2008 src/sid/xs_interface.c:2021 +#: src/sid/xmms-sid.glade:4065 src/sid/xmms-sid.glade:4147 +#: src/sid/xs_interface.c:2092 src/sid/xs_interface.c:2105 msgid "Confirm selected action" msgstr "Seçilen eylemi onayla" -#: src/sid/xmms-sid.glade:3909 src/sid/xs_interface.c:2038 +#: src/sid/xmms-sid.glade:4103 src/sid/xs_interface.c:2122 msgid "Yes" msgstr "Evet" -#: src/sid/xmms-sid.glade:3921 src/sid/xs_interface.c:2044 +#: src/sid/xmms-sid.glade:4115 src/sid/xs_interface.c:2128 msgid "No" msgstr "Hayır" -#: src/sid/xs_about.c:84 src/wma/wma.c:121 +#: src/sid/xs_about.c:84 src/wma/wma.c:118 #, c-format msgid "About %s" msgstr "%s Hakkında" @@ -4696,12 +4722,1143 @@ msgid "Tune #%i: " msgstr "Tını #%i: " -#: src/sndfile/plugin.c:548 +#: src/skins/plugin.c:128 +msgid "About Skinned GUI" +msgstr "" + +#: src/skins/plugin.c:129 +msgid "" +"Copyright (c) 2008, by Tomasz Moń \n" +"\n" +msgstr "" + +#: src/skins/skins_cfg.c:329 +#, fuzzy +msgid "_Fonts" +msgstr "Dosya ismi: " + +#: src/skins/skins_cfg.c:330 +#, fuzzy +msgid "_Player:" +msgstr "Oynatma süresi:" + +#: src/skins/skins_cfg.c:330 +msgid "Select main player window font:" +msgstr "" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "_Playlist:" +msgstr "Parça Listesini Seç" + +#: src/skins/skins_cfg.c:331 +#, fuzzy +msgid "Select playlist font:" +msgstr "Parça Listesini Seç" + +#: src/skins/skins_cfg.c:332 +#, fuzzy +msgid "Use Bitmap fonts if available" +msgstr "Varsa CDDB kullan" + +#: src/skins/skins_cfg.c:332 +msgid "" +"Use bitmap fonts if they are available. Bitmap fonts do not support Unicode " +"strings." +msgstr "" + +#: src/skins/skins_cfg.c:333 +#, fuzzy +msgid "_Miscellaneous" +msgstr "Hizmetler" + +#: src/skins/skins_cfg.c:334 +msgid "Show track numbers in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:336 +msgid "Show separators in playlist" +msgstr "" + +#: src/skins/skins_cfg.c:338 +msgid "Show window manager decoration" +msgstr "" + +#: src/skins/skins_cfg.c:339 +msgid "This enables the window manager to show decorations for windows." +msgstr "" + +#: src/skins/skins_cfg.c:340 +msgid "Use two-way text scroller" +msgstr "" + +#: src/skins/skins_cfg.c:341 +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 "" + +#: src/skins/skins_cfg.c:342 +msgid "Disable inline gtk theme" +msgstr "" + +#: src/skins/skins_cfg.c:343 +msgid "Allow loading incomplete skins" +msgstr "" + +#: src/skins/skins_cfg.c:344 +msgid "" +"If selected, audacious won't refuse loading broken skins. Use only if your " +"favourite skin doesn't work" +msgstr "" + +#: src/skins/skins_cfg.c:410 +msgid "Color Adjustment" +msgstr "" + +#: src/skins/skins_cfg.c:417 +msgid "" +"Audacious allows you to alter the color balance of the skinned UI. The " +"sliders below will allow you to do this." +msgstr "" + +#: src/skins/skins_cfg.c:427 +#, fuzzy +msgid "Blue" +msgstr "Blues" + +#: src/skins/skins_cfg.c:434 +msgid "Green" +msgstr "" + +#: src/skins/skins_cfg.c:441 +msgid "Red" +msgstr "" + +#: src/skins/skins_cfg.c:571 +#, fuzzy +msgid "Audacious Skinned GUI Configuration" +msgstr "Audacious OSD - yapılandırması" + +#: src/skins/skins_cfg.c:596 +#, fuzzy +msgid "_Skin" +msgstr "Dosya ismi: " + +#: src/skins/ui_equalizer.c:494 +#, fuzzy +msgid "Audacious Equalizer" +msgstr "Ekolayzır" + +#: src/skins/ui_equalizer.c:794 +#, c-format +msgid "Error importing Winamp EQF file '%s'" +msgstr "" + +#: src/skins/ui_equalizer.c:1172 +msgid "Presets" +msgstr "" + +#: src/skins/ui_main.c:392 +#, c-format +msgid "%s - Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:394 src/skins/ui_main.c:2397 +#, fuzzy +msgid "Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_main.c:641 +#, fuzzy +msgid "VBR" +msgstr "VBR/ABR" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "stereo" +msgstr "Stereo" + +#: src/skins/ui_main.c:659 src/skins/ui_main.c:663 +#, fuzzy +msgid "mono" +msgstr "Mono" + +#: src/skins/ui_main.c:957 +msgid "Can't jump to time when no track is being played.\n" +msgstr "" + +#: src/skins/ui_main.c:972 src/skins/ui_manager.c:425 +#: src/skins/ui_manager.c:426 +#, fuzzy +msgid "Jump to Time" +msgstr "Dosyaya Atla:" + +#: src/skins/ui_main.c:993 +#, fuzzy +msgid "minutes:seconds" +msgstr "dakika" + +#: src/skins/ui_main.c:1003 +#, fuzzy +msgid "Track length:" +msgstr "Parça ses yüksekliği:" + +#: src/skins/ui_main.c:1149 +msgid "Audacious - visibility warning" +msgstr "" + +#: src/skins/ui_main.c:1152 +msgid "Show main player window" +msgstr "" + +#: src/skins/ui_main.c:1153 +msgid "Ignore" +msgstr "" + +#: src/skins/ui_main.c:1159 +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)." +msgstr "" + +#: src/skins/ui_main.c:1165 +msgid "Always ignore, show/hide is controlled remotely" +msgstr "" + +#: src/skins/ui_main.c:1210 +msgid "Audacious - broken GTK engine usage warning" +msgstr "" + +#: src/skins/ui_main.c:1218 +#, c-format +msgid "" +"Broken GTK engine in use\n" +"\n" +"Audacious has detected that you are using a broken GTK engine.\n" +"\n" +"The theme engine you are using, %s, is incompatible with some of the " +"features used by modern skins. The incompatible features have been disabled " +"for this session.\n" +"\n" +"To use these features, please consider using a different GTK theme engine." +msgstr "" + +#: src/skins/ui_main.c:1229 +msgid "Do not display this warning again" +msgstr "" + +#: src/skins/ui_main.c:1253 +msgid "Enter location to play:" +msgstr "" + +#: src/skins/ui_main.c:1497 +#, c-format +msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)" +msgstr "" + +#: src/skins/ui_main.c:1527 +#, fuzzy, c-format +msgid "Volume: %d%%" +msgstr "Ses: (%)" + +#: src/skins/ui_main.c:1555 +#, c-format +msgid "Balance: %d%% left" +msgstr "" + +#: src/skins/ui_main.c:1559 +msgid "Balance: center" +msgstr "" + +#: src/skins/ui_main.c:1563 +#, c-format +msgid "Balance: %d%% right" +msgstr "" + +#: src/skins/ui_main.c:1881 +#, fuzzy +msgid "Options Menu" +msgstr "Seçenekler" + +#: src/skins/ui_main.c:1885 +msgid "Disable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1887 +msgid "Enable 'Always On Top'" +msgstr "" + +#: src/skins/ui_main.c:1890 +#, fuzzy +msgid "File Info Box" +msgstr "Dosya Bilgisi" + +#: src/skins/ui_main.c:1894 +msgid "Disable 'GUI Scaling'" +msgstr "" + +#: src/skins/ui_main.c:1896 +#, fuzzy +msgid "Enable 'GUI Scaling'" +msgstr "Ses örneklemesini etkinleştir" + +#: src/skins/ui_main.c:1899 +msgid "Visualization Menu" +msgstr "" + +#: src/skins/ui_main.c:1946 +msgid "" +"Couldn't open audio.\n" +"\n" +"Please check that:\n" +"1. You have the correct output plugin selected.\n" +"2. No other programs is blocking the soundcard.\n" +"3. Your soundcard is configured properly.\n" +msgstr "" + +#: src/skins/ui_manager.c:53 src/skins/ui_manager.c:54 +msgid "Autoscroll Songname" +msgstr "" + +#: src/skins/ui_manager.c:56 src/skins/ui_manager.c:57 +msgid "Stop after Current Song" +msgstr "" + +#: src/skins/ui_manager.c:59 src/skins/ui_manager.c:60 +#, fuzzy +msgid "Peaks" +msgstr "Pranks" + +#: src/skins/ui_manager.c:62 src/skins/ui_manager.c:63 +#, fuzzy +msgid "Repeat" +msgstr "Beat" + +#: src/skins/ui_manager.c:65 src/skins/ui_manager.c:66 +msgid "Shuffle" +msgstr "" + +#: src/skins/ui_manager.c:68 src/skins/ui_manager.c:69 +msgid "No Playlist Advance" +msgstr "" + +#: src/skins/ui_manager.c:71 src/skins/ui_manager.c:72 +msgid "Show Player" +msgstr "" + +#: src/skins/ui_manager.c:74 src/skins/ui_manager.c:75 +msgid "Show Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:77 src/skins/ui_manager.c:78 +#, fuzzy +msgid "Show Equalizer" +msgstr "Ekolayzır" + +#: src/skins/ui_manager.c:80 src/skins/ui_manager.c:81 +msgid "Always on Top" +msgstr "" + +#: src/skins/ui_manager.c:83 src/skins/ui_manager.c:84 +msgid "Put on All Workspaces" +msgstr "" + +#: src/skins/ui_manager.c:86 src/skins/ui_manager.c:87 +msgid "Roll up Player" +msgstr "" + +#: src/skins/ui_manager.c:89 src/skins/ui_manager.c:90 +msgid "Roll up Playlist Editor" +msgstr "" + +#: src/skins/ui_manager.c:92 src/skins/ui_manager.c:93 +msgid "Roll up Equalizer" +msgstr "" + +#: src/skins/ui_manager.c:95 src/sndstretch/sndstretch_xmms.c:375 +msgid "Scale" +msgstr "Yayılma" + +#: src/skins/ui_manager.c:96 +msgid "DoubleSize" +msgstr "" + +#: src/skins/ui_manager.c:98 src/skins/ui_manager.c:99 +msgid "Easy Move" +msgstr "" + +#: src/skins/ui_manager.c:107 +#, fuzzy +msgid "Analyzer" +msgstr "Spektrum Analizi" + +#: src/skins/ui_manager.c:108 +#, fuzzy +msgid "Scope" +msgstr "Durdur:" + +#: src/skins/ui_manager.c:109 +msgid "Voiceprint" +msgstr "" + +#: src/skins/ui_manager.c:110 +msgid "Off" +msgstr "" + +#: src/skins/ui_manager.c:114 src/skins/ui_manager.c:131 +#: src/skins/ui_manager.c:137 +#, fuzzy +msgid "Normal" +msgstr "Biçim" + +#: src/skins/ui_manager.c:115 src/skins/ui_manager.c:132 +#, fuzzy +msgid "Fire" +msgstr "Taşlama" + +#: src/skins/ui_manager.c:116 +msgid "Vertical Lines" +msgstr "" + +#: src/skins/ui_manager.c:120 +#, fuzzy +msgid "Lines" +msgstr "dakika" + +#: src/skins/ui_manager.c:121 +#, fuzzy +msgid "Bars" +msgstr "Bas" + +#: src/skins/ui_manager.c:125 +#, fuzzy +msgid "Dot Scope" +msgstr "Tekrarlama yapma" + +#: src/skins/ui_manager.c:126 +msgid "Line Scope" +msgstr "" + +#: src/skins/ui_manager.c:127 +msgid "Solid Scope" +msgstr "" + +#: src/skins/ui_manager.c:133 +msgid "Ice" +msgstr "" + +#: src/skins/ui_manager.c:138 +msgid "Smooth" +msgstr "" + +#: src/skins/ui_manager.c:142 +msgid "Full (~50 fps)" +msgstr "" + +#: src/skins/ui_manager.c:143 +msgid "Half (~25 fps)" +msgstr "" + +#: src/skins/ui_manager.c:144 +msgid "Quarter (~13 fps)" +msgstr "" + +#: src/skins/ui_manager.c:145 +msgid "Eighth (~6 fps)" +msgstr "" + +#: src/skins/ui_manager.c:149 src/skins/ui_manager.c:157 +#, fuzzy +msgid "Slowest" +msgstr "Showtunes" + +#: src/skins/ui_manager.c:150 src/skins/ui_manager.c:158 +#, fuzzy +msgid "Slow" +msgstr "Slow Jam" + +#: src/skins/ui_manager.c:151 src/skins/ui_manager.c:159 +msgid "Medium" +msgstr "" + +#: src/skins/ui_manager.c:152 src/skins/ui_manager.c:160 +#, fuzzy +msgid "Fast" +msgstr "Biçim" + +#: src/skins/ui_manager.c:153 src/skins/ui_manager.c:161 +msgid "Fastest" +msgstr "" + +#: src/skins/ui_manager.c:165 +msgid "Time Elapsed" +msgstr "" + +#: src/skins/ui_manager.c:166 +msgid "Time Remaining" +msgstr "" + +#: src/skins/ui_manager.c:180 src/skins/ui_manager.c:181 +#, fuzzy +msgid "Pause" +msgstr "Bekletme Açık" + +#: src/skins/ui_manager.c:186 src/skins/ui_manager.c:187 +#, fuzzy +msgid "Previous" +msgstr "Önceki Parça:" + +#: src/skins/ui_manager.c:189 src/skins/ui_manager.c:190 +#, fuzzy +msgid "Next" +msgstr "Metin" + +#: src/skins/ui_manager.c:195 +#, fuzzy +msgid "Visualization" +msgstr "Kurum:" + +#: src/skins/ui_manager.c:196 +msgid "Visualization Mode" +msgstr "" + +#: src/skins/ui_manager.c:197 +msgid "Analyzer Mode" +msgstr "" + +#: src/skins/ui_manager.c:198 +msgid "Scope Mode" +msgstr "" + +#: src/skins/ui_manager.c:199 +msgid "Voiceprint Mode" +msgstr "" + +#: src/skins/ui_manager.c:200 +msgid "WindowShade VU Mode" +msgstr "" + +#: src/skins/ui_manager.c:201 +msgid "Refresh Rate" +msgstr "" + +#: src/skins/ui_manager.c:202 +msgid "Analyzer Falloff" +msgstr "" + +#: src/skins/ui_manager.c:203 +msgid "Peaks Falloff" +msgstr "" + +#: src/skins/ui_manager.c:208 +#, fuzzy +msgid "Playlist" +msgstr "Parça Listesini Seç" + +#: src/skins/ui_manager.c:210 src/skins/ui_manager.c:211 +#, fuzzy +msgid "New Playlist" +msgstr "Parça Listesini Seç" + +#: src/skins/ui_manager.c:213 src/skins/ui_manager.c:214 +#, fuzzy +msgid "Select Next Playlist" +msgstr "Parça Listesini Seç" + +#: src/skins/ui_manager.c:216 src/skins/ui_manager.c:217 +#, fuzzy +msgid "Select Previous Playlist" +msgstr "Parça Listesini Seç" + +#: src/skins/ui_manager.c:219 src/skins/ui_manager.c:220 +#, fuzzy +msgid "Delete Playlist" +msgstr "Parça Listesini Seç" + +#: src/skins/ui_manager.c:222 +msgid "Load List" +msgstr "" + +#: src/skins/ui_manager.c:223 +msgid "Loads a playlist file into the selected playlist." +msgstr "" + +#: src/skins/ui_manager.c:225 +#, fuzzy +msgid "Save List" +msgstr "Kaydet" + +#: src/skins/ui_manager.c:226 +#, fuzzy +msgid "Saves the selected playlist." +msgstr "Parça Listesini Seç" + +#: src/skins/ui_manager.c:228 +#, fuzzy +msgid "Save Default List" +msgstr "Varsayılan (%s)" + +#: src/skins/ui_manager.c:229 +msgid "Saves the selected playlist to the default location." +msgstr "" + +#: src/skins/ui_manager.c:232 +msgid "Refresh List" +msgstr "" + +#: src/skins/ui_manager.c:233 +msgid "Refreshes metadata associated with a playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:236 +msgid "List Manager" +msgstr "" + +#: src/skins/ui_manager.c:237 +msgid "Opens the playlist manager." +msgstr "" + +#: src/skins/ui_manager.c:243 +msgid "View" +msgstr "" + +#: src/skins/ui_manager.c:247 +msgid "Add Internet Address..." +msgstr "" + +#: src/skins/ui_manager.c:248 +msgid "Adds a remote track to the playlist." +msgstr "" + +#: src/skins/ui_manager.c:251 +msgid "Add Files..." +msgstr "" + +#: src/skins/ui_manager.c:252 +#, fuzzy +msgid "Adds files to the playlist." +msgstr "Parça listesine alttınılar ekle" + +#: src/skins/ui_manager.c:257 +msgid "Search and Select" +msgstr "" + +#: src/skins/ui_manager.c:258 +msgid "" +"Searches the playlist and selects playlist entries based on specific " +"criteria." +msgstr "" + +#: src/skins/ui_manager.c:261 +#, fuzzy +msgid "Invert Selection" +msgstr "Biçim seçimi" + +#: src/skins/ui_manager.c:262 +msgid "Inverts the selected and unselected entries." +msgstr "" + +#: src/skins/ui_manager.c:265 +#, fuzzy +msgid "Select All" +msgstr "Parça Listesini Seç" + +#: src/skins/ui_manager.c:266 +msgid "Selects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:269 +#, fuzzy +msgid "Select None" +msgstr "Deri Dosyasını Seçin" + +#: src/skins/ui_manager.c:270 +msgid "Deselects all of the playlist entries." +msgstr "" + +#: src/skins/ui_manager.c:275 +#, fuzzy +msgid "Remove All" +msgstr "Kaldır" + +#: src/skins/ui_manager.c:276 +msgid "Removes all entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:279 +msgid "Clear Queue" +msgstr "" + +#: src/skins/ui_manager.c:280 +msgid "Clears the queue associated with this playlist." +msgstr "" + +#: src/skins/ui_manager.c:283 +msgid "Remove Unavailable Files" +msgstr "" + +#: src/skins/ui_manager.c:284 +msgid "Removes unavailable files from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:287 +msgid "Remove Duplicates" +msgstr "" + +#: src/skins/ui_manager.c:289 src/skins/ui_manager.c:321 +#: src/skins/ui_manager.c:351 +#, fuzzy +msgid "By Title" +msgstr "Başlık" + +#: src/skins/ui_manager.c:290 +msgid "Removes duplicate entries from the playlist by title." +msgstr "" + +#: src/skins/ui_manager.c:293 src/skins/ui_manager.c:329 +#: src/skins/ui_manager.c:359 +#, fuzzy +msgid "By Filename" +msgstr "Dosya adı" + +#: src/skins/ui_manager.c:294 +msgid "Removes duplicate entries from the playlist by filename." +msgstr "" + +#: src/skins/ui_manager.c:297 src/skins/ui_manager.c:333 +#: src/skins/ui_manager.c:363 +#, fuzzy +msgid "By Path + Filename" +msgstr "Dosya adı" + +#: src/skins/ui_manager.c:298 +msgid "Removes duplicate entries from the playlist by their full path." +msgstr "" + +#: src/skins/ui_manager.c:301 +msgid "Remove Unselected" +msgstr "" + +#: src/skins/ui_manager.c:302 +msgid "Remove unselected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:305 +msgid "Remove Selected" +msgstr "" + +#: src/skins/ui_manager.c:306 +msgid "Remove selected entries from the playlist." +msgstr "" + +#: src/skins/ui_manager.c:311 +msgid "Randomize List" +msgstr "" + +#: src/skins/ui_manager.c:312 +msgid "Randomizes the playlist." +msgstr "" + +#: src/skins/ui_manager.c:315 +msgid "Reverse List" +msgstr "" + +#: src/skins/ui_manager.c:316 +msgid "Reverses the playlist." +msgstr "" + +#: src/skins/ui_manager.c:319 +#, fuzzy +msgid "Sort List" +msgstr "Sanatçı:" + +#: src/skins/ui_manager.c:322 src/skins/ui_manager.c:352 +msgid "Sorts the list by title." +msgstr "" + +#: src/skins/ui_manager.c:325 src/skins/ui_manager.c:355 +#, fuzzy +msgid "By Artist" +msgstr "Sanatçı:" + +#: src/skins/ui_manager.c:326 src/skins/ui_manager.c:356 +msgid "Sorts the list by artist." +msgstr "" + +#: src/skins/ui_manager.c:330 src/skins/ui_manager.c:360 +msgid "Sorts the list by filename." +msgstr "" + +#: src/skins/ui_manager.c:334 src/skins/ui_manager.c:364 +msgid "Sorts the list by full pathname." +msgstr "" + +#: src/skins/ui_manager.c:337 src/skins/ui_manager.c:367 +#, fuzzy +msgid "By Date" +msgstr "Tarih:" + +#: src/skins/ui_manager.c:338 src/skins/ui_manager.c:368 +msgid "Sorts the list by modification time." +msgstr "" + +#: src/skins/ui_manager.c:341 src/skins/ui_manager.c:371 +#, fuzzy +msgid "By Track Number" +msgstr "Parça numarası:" + +#: src/skins/ui_manager.c:342 src/skins/ui_manager.c:372 +msgid "Sorts the list by track number." +msgstr "" + +#: src/skins/ui_manager.c:345 src/skins/ui_manager.c:375 +#, fuzzy +msgid "By Playlist Entry" +msgstr "Hızlı Parça Listesi Bilgisi" + +#: src/skins/ui_manager.c:346 src/skins/ui_manager.c:376 +msgid "Sorts the list by playlist entry." +msgstr "" + +#: src/skins/ui_manager.c:349 +#, fuzzy +msgid "Sort Selected" +msgstr "Biçim seçimi" + +#: src/skins/ui_manager.c:385 +#, fuzzy +msgid "File" +msgstr "Filtreler" + +#: src/skins/ui_manager.c:388 +msgid "Plugin Services" +msgstr "" + +#: src/skins/ui_manager.c:390 src/skins/ui_manager.c:393 +#, fuzzy +msgid "View Track Details" +msgstr "Parça Kazancı Kullan" + +#: src/skins/ui_manager.c:391 src/skins/ui_manager.c:394 +msgid "View track details" +msgstr "" + +#: src/skins/ui_manager.c:396 src/skins/ui_manager.c:397 +#, fuzzy +msgid "About Audacious" +msgstr "LIRC Audacious Eklentisi Hakkında" + +#: src/skins/ui_manager.c:399 +#, fuzzy +msgid "Play File" +msgstr "Oynatma süresi:" + +#: src/skins/ui_manager.c:400 +#, fuzzy +msgid "Load and play a file" +msgstr "Çalıcı başladığında SF'yi yükle" + +#: src/skins/ui_manager.c:402 +#, fuzzy +msgid "Play Location" +msgstr "Yer:" + +#: src/skins/ui_manager.c:403 +#, fuzzy +msgid "Play media from the selected location" +msgstr "Seçilen eylemi onayla" + +#: src/skins/ui_manager.c:405 +msgid "Plugin services" +msgstr "" + +#: src/skins/ui_manager.c:407 +msgid "Preferences" +msgstr "" + +#: src/skins/ui_manager.c:408 +msgid "Open preferences window" +msgstr "" + +#: src/skins/ui_manager.c:410 +#, fuzzy +msgid "_Quit" +msgstr "Kalite" + +#: src/skins/ui_manager.c:411 +#, fuzzy +msgid "Quit Audacious" +msgstr "%s - Audacious" + +#: src/skins/ui_manager.c:413 src/skins/ui_manager.c:414 +msgid "Set A-B" +msgstr "" + +#: src/skins/ui_manager.c:416 src/skins/ui_manager.c:417 +msgid "Clear A-B" +msgstr "" + +#: src/skins/ui_manager.c:419 src/skins/ui_manager.c:420 +msgid "Jump to Playlist Start" +msgstr "" + +#: src/skins/ui_manager.c:428 +msgid "Queue Toggle" +msgstr "" + +#: src/skins/ui_manager.c:429 +msgid "Enables/disables the entry in the playlist's queue." +msgstr "" + +#: src/skins/ui_manager.c:436 +msgid "Load" +msgstr "" + +#: src/skins/ui_manager.c:441 src/skins/ui_manager.c:462 +#: src/skins/ui_manager.c:477 +#, fuzzy +msgid "Preset" +msgstr "Port" + +#: src/skins/ui_manager.c:442 +msgid "Load preset" +msgstr "" + +#: src/skins/ui_manager.c:444 src/skins/ui_manager.c:465 +#: src/skins/ui_manager.c:480 +msgid "Auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:445 +msgid "Load auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:448 +#, fuzzy +msgid "Load default preset into equalizer" +msgstr "Öntanımlı değerleri yükle" + +#: src/skins/ui_manager.c:450 +#, fuzzy +msgid "Zero" +msgstr "Retro" + +#: src/skins/ui_manager.c:451 +msgid "Set equalizer preset levels to zero" +msgstr "" + +#: src/skins/ui_manager.c:453 +#, fuzzy +msgid "From file" +msgstr "Profil: %s" + +#: src/skins/ui_manager.c:454 +#, fuzzy +msgid "Load preset from file" +msgstr "Dosya okunamıyor\n" + +#: src/skins/ui_manager.c:456 +msgid "From WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:457 +msgid "Load preset from WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:459 +msgid "WinAMP Presets" +msgstr "" + +#: src/skins/ui_manager.c:460 +msgid "Import WinAMP presets" +msgstr "" + +#: src/skins/ui_manager.c:463 +msgid "Save preset" +msgstr "" + +#: src/skins/ui_manager.c:466 +msgid "Save auto-load preset" +msgstr "" + +#: src/skins/ui_manager.c:469 +#, fuzzy +msgid "Save default preset" +msgstr "Öntanımlı değerleri yükle" + +#: src/skins/ui_manager.c:471 +#, fuzzy +msgid "To file" +msgstr "STIL dosyası:" + +#: src/skins/ui_manager.c:472 +msgid "Save preset to file" +msgstr "" + +#: src/skins/ui_manager.c:474 +msgid "To WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:475 +msgid "Save preset to WinAMP EQF file" +msgstr "" + +#: src/skins/ui_manager.c:478 +#, fuzzy +msgid "Delete preset" +msgstr "Sil" + +#: src/skins/ui_manager.c:481 +msgid "Delete auto-load preset" +msgstr "" + +#: src/skins/ui_playlist.c:454 +msgid "Search entries in active playlist" +msgstr "" + +#: src/skins/ui_playlist.c:462 +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 "" + +#: src/skins/ui_playlist.c:477 +#, fuzzy +msgid "Album: " +msgstr "Albüm:" + +#: src/skins/ui_playlist.c:484 +#, fuzzy +msgid "Artist: " +msgstr "Sanatçı:" + +#: src/skins/ui_playlist.c:491 +#, fuzzy +msgid "Filename: " +msgstr "Dosya adı:" + +#: src/skins/ui_playlist.c:499 +msgid "Clear previous selection before searching" +msgstr "" + +#: src/skins/ui_playlist.c:502 +msgid "Automatically toggle queue for matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:505 +msgid "Create a new playlist with matching entries" +msgstr "" + +#: src/skins/ui_playlist.c:724 +#, c-format +msgid "Error writing playlist \"%s\": %s" +msgstr "" + +#: src/skins/ui_playlist.c:746 +#, c-format +msgid "%s already exist. Continue?" +msgstr "" + +#: src/skins/ui_playlist.c:761 +#, c-format +msgid "" +"Unable to save playlist.\n" +"\n" +"Unknown file type for '%s'.\n" +msgstr "" + +#: src/skins/ui_playlist.c:887 +#, fuzzy +msgid "Save as Static Playlist" +msgstr "Parça Listesini Seç" + +#: src/skins/ui_playlist.c:894 +msgid "Use Relative Path" +msgstr "" + +#: src/skins/ui_playlist.c:916 +#, fuzzy +msgid "Load Playlist" +msgstr "Hızlı Parça Listesi Bilgisi" + +#: src/skins/ui_playlist.c:929 +#, fuzzy +msgid "Save Playlist" +msgstr "Parça Listesini Seç" + +#: src/skins/ui_playlist.c:1497 +#, fuzzy +msgid "Audacious Playlist Editor" +msgstr "Hızlı Parça Listesi Bilgisi" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "PREAMP" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "60HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:377 +msgid "170HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "310HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "600HZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:378 +msgid "1KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "3KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "6KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:379 +msgid "12KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "14KHZ" +msgstr "" + +#: src/skins/ui_skinned_equalizer_slider.c:380 +msgid "16KHZ" +msgstr "" + +#: src/skins/ui_skinselector.c:178 +msgid "Archived Winamp 2.x skin" +msgstr "" + +#: src/skins/ui_skinselector.c:183 +msgid "Unarchived Winamp 2.x skin" +msgstr "" + +#: src/skins/util.c:1132 +#, fuzzy, c-format +msgid "Could not create directory (%s): %s\n" +msgstr "sidFilename ('%s') ayrılamadı\n" + +#: src/sndfile/plugin.c:554 #, fuzzy msgid "About sndfile plugin" msgstr "sndfile WAV eklentisi" -#: src/sndfile/plugin.c:549 +#: src/sndfile/plugin.c:555 msgid "" "Adapted for Audacious usage by Tony Vroon \n" "from the xmms_sndfile plugin which is:\n" @@ -4744,63 +5901,59 @@ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,\n" "USA." -#: src/sndstretch/sndstretch_xmms.c:159 +#: src/sndstretch/sndstretch_xmms.c:158 msgid "About SndStretch" msgstr "SndStretch Hakkında" -#: src/sndstretch/sndstretch_xmms.c:319 +#: src/sndstretch/sndstretch_xmms.c:318 msgid "Volume corr." msgstr "Ses düzeltme" -#: src/sndstretch/sndstretch_xmms.c:320 +#: src/sndstretch/sndstretch_xmms.c:319 msgid "Short Overlap" msgstr "Kısa Bindirme" +#: src/sndstretch/sndstretch_xmms.c:373 +msgid "Speed" +msgstr "Hız" + #: src/sndstretch/sndstretch_xmms.c:374 -msgid "Speed" -msgstr "Hız" - -#: src/sndstretch/sndstretch_xmms.c:375 msgid "Pitch" msgstr "Tizlik" -#: src/sndstretch/sndstretch_xmms.c:376 -msgid "Scale" -msgstr "Yayılma" - -#: src/sndstretch/sndstretch_xmms.c:396 +#: src/sndstretch/sndstretch_xmms.c:395 msgid "SndStretch - Configuration" msgstr "SndStretch Ayarları" -#: src/song_change/song_change.c:312 +#: src/song_change/song_change.c:310 msgid "Commands" msgstr "Komutlar" -#: src/song_change/song_change.c:319 +#: src/song_change/song_change.c:317 msgid "Command to run when Audacious starts a new song." msgstr "Audacious yeni bir şarkı başlattığında çalışacak komut." -#: src/song_change/song_change.c:328 src/song_change/song_change.c:350 -#: src/song_change/song_change.c:371 src/song_change/song_change.c:392 +#: src/song_change/song_change.c:326 src/song_change/song_change.c:348 +#: src/song_change/song_change.c:369 src/song_change/song_change.c:390 msgid "Command:" msgstr "Komut:" -#: src/song_change/song_change.c:342 +#: src/song_change/song_change.c:340 msgid "Command to run toward the end of a song." msgstr "Bir şarkının sonuna doğru çalışacak komut." -#: src/song_change/song_change.c:362 +#: src/song_change/song_change.c:360 msgid "Command to run when Audacious reaches the end of the playlist." msgstr "Audacious parça listesinin sonuna ulaştığında çalıştırılacak komut." -#: src/song_change/song_change.c:383 +#: src/song_change/song_change.c:381 msgid "" "Command to run when title changes for a song (i.e. network streams titles)." msgstr "" "Bir şarkı için başlık değiştiğinde çalıştırılacak komut (örneğin ağ yayını " "başlıkları)." -#: src/song_change/song_change.c:404 +#: src/song_change/song_change.c:402 #, c-format msgid "" "You can use the following format strings which\n" @@ -4829,7 +5982,7 @@ "%%t: Çalma listesi durumu (%%02d)\n" "%%p: Şu an oynatılan (1 or 0)" -#: src/song_change/song_change.c:429 +#: src/song_change/song_change.c:427 msgid "" "Parameters passed to the shell should be encapsulated in " "quotes. Doing otherwise is a security risk." @@ -4837,7 +5990,7 @@ "Kabuğa yollanan parametreler tırnak içinde belirtilmeli. " "Aksi takdirde güvenlik sorunu yaratır. " -#: src/spectrum/spectrum.c:90 +#: src/spectrum/spectrum.c:89 msgid "Spectrum Analyzer" msgstr "Spektrum Analizi" @@ -4849,11 +6002,11 @@ msgid "The orientation of the tray" msgstr "Sistem ikonu canlandırması" -#: src/statusicon/si_ui.c:622 +#: src/statusicon/si_ui.c:620 msgid "About Status Icon Plugin" msgstr "Durum Simgesi Eklentisi Hakkında" -#: src/statusicon/si_ui.c:624 +#: src/statusicon/si_ui.c:622 msgid "" "\n" "written by Giacomo Lozito < james@develia.org >\n" @@ -4866,39 +6019,39 @@ "\n" "Bu eklenti durum simgesinin sistem araç cubuğunda görüntülenmesini sağlar.\n" -#: src/statusicon/si_ui.c:696 +#: src/statusicon/si_ui.c:694 msgid "Status Icon Plugin - Preferences" msgstr "Durum Simgesi Eklentisi - Tercihler" -#: src/statusicon/si_ui.c:707 +#: src/statusicon/si_ui.c:705 msgid "Right-Click Menu" msgstr "Sağ-Tık Menüsü" -#: src/statusicon/si_ui.c:712 +#: src/statusicon/si_ui.c:710 msgid "Audacious standard menu" msgstr "Audacious standart menü" -#: src/statusicon/si_ui.c:717 +#: src/statusicon/si_ui.c:715 msgid "Small playback menu #1" msgstr "Küçük oynatma menüsü #1" -#: src/statusicon/si_ui.c:722 +#: src/statusicon/si_ui.c:720 msgid "Small playback menu #2" msgstr "Küçük oynatma menüsü #2" -#: src/statusicon/si_ui.c:745 +#: src/statusicon/si_ui.c:743 msgid "Mouse Scroll Action" msgstr "Fare Tekerleği Eylemi" -#: src/statusicon/si_ui.c:750 +#: src/statusicon/si_ui.c:748 msgid "Change volume" msgstr "Ses seviyesini değiştir" -#: src/statusicon/si_ui.c:755 +#: src/statusicon/si_ui.c:753 msgid "Change playing song" msgstr "Çalan şarkıyı değiştir" -#: src/stereo_plugin/stereo.c:26 +#: src/stereo_plugin/stereo.c:25 msgid "" "Extra Stereo Plugin\n" "\n" @@ -4908,23 +6061,19 @@ "\n" "Johan Levin 1999." -#: src/stereo_plugin/stereo.c:52 +#: src/stereo_plugin/stereo.c:51 msgid "About Extra Stereo Plugin" msgstr "Ekstra Stereo Eklentisi Hakkında" -#: src/stereo_plugin/stereo.c:93 +#: src/stereo_plugin/stereo.c:92 msgid "Configure Extra Stereo" msgstr "Ekstra Stereo Eklentisini Yapılandır" -#: src/stereo_plugin/stereo.c:95 -msgid "Effect intensity:" -msgstr "Efekt yoğunluğu:" +#: src/sun/about.c:33 +msgid "About the Sun Driver" +msgstr "Sun Sürücüsü Hakkında" #: src/sun/about.c:34 -msgid "About the Sun Driver" -msgstr "Sun Sürücüsü Hakkında" - -#: src/sun/about.c:35 msgid "" "XMMS BSD Sun Driver\n" "\n" @@ -4936,19 +6085,19 @@ "Telif Hakkı (c) 2001 CubeSoft Communications, Inc.\n" "Sorumlu: .\n" -#: src/sun/configure.c:201 +#: src/sun/configure.c:199 msgid "Audio control device:" msgstr "Ses kontrol aygıtı:" -#: src/sun/configure.c:350 +#: src/sun/configure.c:348 msgid "Volume controls device:" msgstr "Ses kontrolleri aygıtı:" -#: src/sun/configure.c:363 +#: src/sun/configure.c:361 msgid "XMMS uses mixer exclusively." msgstr "XMMS, sadece karıştırıcıyı kullanıyor." -#: src/sun/configure.c:538 +#: src/sun/configure.c:536 msgid "Sun driver configuration" msgstr "Sun sürücüsü yapılandırması" @@ -4976,7 +6125,7 @@ msgid "TiMidity Configuration File" msgstr "TiMidity Yapılandırma Dosyası" -#: src/timidity/xmms-timidity.c:118 +#: src/timidity/xmms-timidity.c:115 msgid "" "TiMidity Plugin\n" "http://libtimidity.sourceforge.net\n" @@ -4986,20 +6135,20 @@ "http://libtimidity.sourceforge.net\n" "Konstantin Korikov" -#: src/timidity/xmms-timidity.c:119 +#: src/timidity/xmms-timidity.c:116 #, c-format msgid "TiMidity Plugin %s" msgstr "TiMidity Eklentisi %s" -#: src/timidity/xmms-timidity.c:336 +#: src/timidity/xmms-timidity.c:333 msgid "Couldn't load MIDI file" msgstr "MIDI dosyası yüklenemedi" -#: src/tonegen/tonegen.c:56 +#: src/tonegen/tonegen.c:55 msgid "About Tone Generator" msgstr "Ton Oluşturucusu Hakkında" -#: src/tonegen/tonegen.c:58 +#: src/tonegen/tonegen.c:57 msgid "" "Sinus tone generator by Haavard Kvaalen \n" "Modified by Daniel J. Peng \n" @@ -5013,52 +6162,52 @@ "Kullanmak için bir URL ekleyin: tone://frequency1;frequency2;frequency3;...\n" "ör: 2000Hz ton ve 2005Hz ton çalmak için tone://2000;2005" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 #, c-format msgid "%s %.1f Hz" msgstr "%s %.1f Hz" -#: src/tonegen/tonegen.c:167 +#: src/tonegen/tonegen.c:166 msgid "Tone Generator: " msgstr "Ton Oluşturucu: " -#: src/tta/libtta.c:130 +#: src/tta/libtta.c:127 msgid "Can't open file\n" msgstr "Dosya açılamıyor\n" +#: src/tta/libtta.c:130 +msgid "Not supported file format\n" +msgstr "Desteklenmeyen dosya biçimi\n" + #: src/tta/libtta.c:133 -msgid "Not supported file format\n" -msgstr "Desteklenmeyen dosya biçimi\n" +msgid "File is corrupted\n" +msgstr "Dosya bozuk\n" #: src/tta/libtta.c:136 -msgid "File is corrupted\n" -msgstr "Dosya bozuk\n" +msgid "Can't read from file\n" +msgstr "Dosya okunamıyor\n" #: src/tta/libtta.c:139 -msgid "Can't read from file\n" -msgstr "Dosya okunamıyor\n" +msgid "Insufficient memory available\n" +msgstr "Hafıza yetersiz\n" #: src/tta/libtta.c:142 -msgid "Insufficient memory available\n" -msgstr "Hafıza yetersiz\n" +msgid "Output plugin error\n" +msgstr "Çıktı eklentisi hatası\n" #: src/tta/libtta.c:145 -msgid "Output plugin error\n" -msgstr "Çıktı eklentisi hatası\n" - -#: src/tta/libtta.c:148 msgid "Unknown error\n" msgstr "Bilinmeyen hata\n" -#: src/tta/libtta.c:152 +#: src/tta/libtta.c:149 msgid "TTA Decoder Error" msgstr "TTA Dekoder Hatası" -#: src/tta/libtta.c:261 +#: src/tta/libtta.c:258 msgid "TTA input plugin " msgstr "TTA girdi eklentisi" -#: src/tta/libtta.c:262 +#: src/tta/libtta.c:259 msgid "" " for BMP\n" "Copyright (c) 2004 True Audio Software\n" @@ -5066,35 +6215,35 @@ " BMP eklentisi\n" "Copyright (c) 2004 True Audio Software\n" -#: src/tta/libtta.c:265 +#: src/tta/libtta.c:262 msgid "About True Audio Plugin" msgstr "True Audio Eklentisi Hakkında" -#: src/tta/libtta.c:316 +#: src/tta/libtta.c:313 msgid "ID3 Tag:" msgstr "ID3 Etiketi:" -#: src/tta/libtta.c:378 src/wavpack/ui.cxx:234 +#: src/tta/libtta.c:375 src/wavpack/ui.cxx:232 msgid "Track number:" msgstr "Parça numarası:" -#: src/vorbis/configure.c:84 +#: src/vorbis/configure.c:82 msgid "Ogg Vorbis Audio Plugin Configuration" msgstr "Ogg Vorbis Ses Eklentisi Yapılandırması" -#: src/vorbis/configure.c:94 +#: src/vorbis/configure.c:92 msgid "Ogg Vorbis Tags:" msgstr "Ogg Vorbis Etiketleri:" -#: src/vorbis/configure.c:115 +#: src/vorbis/configure.c:113 msgid "Title format:" msgstr "Başlık biçimi:" -#: src/vorbis/vorbis.c:681 +#: src/vorbis/vorbis.c:677 msgid "About Ogg Vorbis Audio Plugin" msgstr "OGG Vorbis Ses Eklentisi Hakkında" -#: src/vorbis/vorbis.c:687 +#: src/vorbis/vorbis.c:683 #, fuzzy msgid "" "Ogg Vorbis Plugin by the Xiph.org Foundation\n" @@ -5128,11 +6277,11 @@ "\n" "Xiph.org Vakfını buradan ziyaret edebilirsiniz http://www.xiph.org/\n" -#: src/vtx/about.c:23 +#: src/vtx/about.c:17 msgid "About Vortex Player" msgstr "Vortex Player Hakkında" -#: src/vtx/about.c:25 +#: src/vtx/about.c:19 msgid "" "Vortex file format player by Sashnov Alexander \n" "Founded on original source in_vtx.dll by Roman Sherbakov " -#: src/wavpack/ui.cxx:52 +#: src/wavpack/ui.cxx:50 #, c-format msgid "Wavpack Decoder Plugin %s" msgstr "Wavpack Dekoder Eklentisi %s" -#: src/wavpack/ui.cxx:53 +#: src/wavpack/ui.cxx:51 msgid "" "Copyright (c) 2006 William Pitcock \n" "\n" @@ -5170,90 +6319,90 @@ "Eklenti kodunun bir kısmı Miles Egan tarafından hazırlanmıştır\n" "Wavpack sitesine http://www.wavpack.com/ adresinden ulaşabilirsiniz\n" -#: src/wavpack/ui.cxx:165 +#: src/wavpack/ui.cxx:163 msgid "Ape2 Tag" msgstr "Ape2 Etiketi" -#: src/wavpack/ui.cxx:288 +#: src/wavpack/ui.cxx:286 msgid "Wavpack Info:" msgstr "Wavpack Bilgisi:" +#: src/wavpack/ui.cxx:379 +#, c-format +msgid "version %d" +msgstr "sürüm %d" + +#: src/wavpack/ui.cxx:380 +#, c-format +msgid "average bitrate: %6.1f kbps" +msgstr "ortalama bitoranı: %6.1f kbps" + #: src/wavpack/ui.cxx:381 #, c-format -msgid "version %d" -msgstr "sürüm %d" +msgid "samplerate: %d Hz" +msgstr "örnekleme oranı: %d Hz" #: src/wavpack/ui.cxx:382 #, c-format -msgid "average bitrate: %6.1f kbps" -msgstr "ortalama bitoranı: %6.1f kbps" +msgid "bits per sample: %d" +msgstr "bit/örnekleme: %d" #: src/wavpack/ui.cxx:383 #, c-format -msgid "samplerate: %d Hz" -msgstr "örnekleme oranı: %d Hz" +msgid "channels: %d" +msgstr "kanallar: %d" #: src/wavpack/ui.cxx:384 #, c-format -msgid "bits per sample: %d" -msgstr "bit/örnekleme: %d" +msgid "length: %d:%.2d" +msgstr "uzunluk: %d:%.2d" #: src/wavpack/ui.cxx:385 #, c-format -msgid "channels: %d" -msgstr "kanallar: %d" - -#: src/wavpack/ui.cxx:386 -#, c-format -msgid "length: %d:%.2d" -msgstr "uzunluk: %d:%.2d" - -#: src/wavpack/ui.cxx:387 -#, c-format msgid "file size: %d Bytes" msgstr "dosya boyutu: %d Byte" -#: src/wavpack/ui.cxx:394 +#: src/wavpack/ui.cxx:392 msgid "Title Peak: ?" msgstr "Başlık Doruğu: ?" -#: src/wavpack/ui.cxx:395 +#: src/wavpack/ui.cxx:393 msgid "Album Peak: ?" msgstr "Albüm Doruğu: ?" -#: src/wavpack/ui.cxx:396 +#: src/wavpack/ui.cxx:394 msgid "Title Gain: ?" msgstr "Başlık Kazancı: ?" -#: src/wavpack/ui.cxx:397 +#: src/wavpack/ui.cxx:395 msgid "Album Gain: ?" msgstr "Albüm Kazancı: ?" -#: src/wavpack/ui.cxx:471 +#: src/wavpack/ui.cxx:469 msgid "Wavpack Configuration" msgstr "Wavpack Yapılandırması" -#: src/wavpack/ui.cxx:484 +#: src/wavpack/ui.cxx:482 msgid "General Plugin Settings:" msgstr "Genel Eklenti Ayarları:" -#: src/wavpack/ui.cxx:502 +#: src/wavpack/ui.cxx:500 msgid "ReplayGain Settings:" msgstr "ReplayGain Ayarları:" -#: src/wavpack/ui.cxx:520 +#: src/wavpack/ui.cxx:518 msgid "ReplayGain Type:" msgstr "ReplayGain Türü:" -#: src/wavpack/ui.cxx:531 +#: src/wavpack/ui.cxx:529 msgid "use Track Gain/Peak" msgstr "Parçada Gain/Peak kullan" -#: src/wavpack/ui.cxx:539 +#: src/wavpack/ui.cxx:537 msgid "use Album Gain/Peak" msgstr "Albümde Gain/Peak kullan" -#: src/wma/wma.c:123 +#: src/wma/wma.c:120 msgid "" "Adapted for use in Audacious by Tony Vroon (chainsaw@gentoo.org) from\n" "the BEEP-WMA plugin which is Copyright (C) 2004,2005 Mokrushin I.V. aka " @@ -5270,6 +6419,10 @@ "ru>. baz alınarak hazırlanmıştır\n" "Bu eklenti hazırlanırken kaynak kod baz alınmıştır" +#~ msgid "Descriptions of SID-specific Tuplez fields go here. :D" +#~ msgstr "" +#~ "SID'e özel Tuplez alanlarının tanımı buraya gelecek. :D" + #~ msgid "Error initializing song-length database!\n" #~ msgstr "Şarkı-uzunluğu veritabanını başlatırken hata oluştu!\n" @@ -5401,9 +6554,6 @@ #~ msgid "Could not allocate memory for t_xs_tuneinfo ('%s')\n" #~ msgstr "t_xs_tuneinfo ('%s') için hafıza ayrılamadı\n" -#~ msgid "Could not allocate sidFilename ('%s')\n" -#~ msgstr "sidFilename ('%s') ayrılamadı\n" - #~ msgid "Could not allocate memory for t_xs_subtuneinfo ('%s', %i)\n" #~ msgstr "t_xs_subtuneinfo ('%s', %i) için hafıza ayrılamadı\n" @@ -5471,9 +6621,6 @@ #~ msgid "Play/Pause:" #~ msgstr "Çal/Beklet:" -#~ msgid "File Info" -#~ msgstr "Dosya Bilgisi" - #~ msgid "Couldn't open file!" #~ msgstr "DIDI açılamadı!emedi" @@ -5525,9 +6672,6 @@ #~ msgid "mp3gain minmax=%4s (max-min=%+6.3fdB)" #~ msgstr "mp3gain minmax=%4s (max-min=%+6.3fdB)" -#~ msgid "Blues" -#~ msgstr "Blues" - #~ msgid "Classic Rock" #~ msgstr "Klasik Rock" @@ -5594,9 +6738,6 @@ #~ msgid "Death Metal" #~ msgstr "Death Metal" -#~ msgid "Pranks" -#~ msgstr "Pranks" - #~ msgid "Soundtrack" #~ msgstr "Soundtrack" @@ -5648,9 +6789,6 @@ #~ msgid "AlternRock" #~ msgstr "Alternatif Rock" -#~ msgid "Bass" -#~ msgstr "Bas" - #~ msgid "Soul" #~ msgstr "Soul" @@ -5732,9 +6870,6 @@ #~ msgid "Rave" #~ msgstr "Rave" -#~ msgid "Showtunes" -#~ msgstr "Showtunes" - #~ msgid "Trailer" #~ msgstr "Trailer" @@ -5753,9 +6888,6 @@ #~ msgid "Polka" #~ msgstr "Polka" -#~ msgid "Retro" -#~ msgstr "Retro" - #~ msgid "Musical" #~ msgstr "Müzikal" @@ -5855,12 +6987,6 @@ #~ msgid "Porn Groove" #~ msgstr "Porn Groove" -#~ msgid "Satire" -#~ msgstr "Taşlama" - -#~ msgid "Slow Jam" -#~ msgstr "Slow Jam" - #~ msgid "Club" #~ msgstr "Club" @@ -5930,9 +7056,6 @@ #~ msgid "Polsk Punk" #~ msgstr "Polsk Punk" -#~ msgid "Beat" -#~ msgstr "Beat" - #~ msgid "Christian Gangsta Rap" #~ msgstr "Christian Gangsta Rap" @@ -5991,30 +7114,18 @@ #~ msgid " Ogg Vorbis Tag " #~ msgstr " Ogg Vorbis Etiketi " -#~ msgid "Date:" -#~ msgstr "Tarih:" - #~ msgid "Description:" #~ msgstr "Açıklama:" -#~ msgid "Location:" -#~ msgstr "Yer:" - #~ msgid "Version:" #~ msgstr "Sürüm:" #~ msgid "ISRC number:" #~ msgstr "ISRC numarası:" -#~ msgid "Organization:" -#~ msgstr "Kurum:" - #~ msgid " Ogg Vorbis ReplayGain " #~ msgstr " Ogg Vorbis ReplayGain " -#~ msgid "Track gain:" -#~ msgstr "Parça ses yüksekliği:" - #~ msgid "Track peak:" #~ msgstr "Parça doruğu:" @@ -6053,6 +7164,3 @@ #~ msgid "%d Bytes" #~ msgstr "%d Byte" - -#~ msgid "%s - Audacious" -#~ msgstr "%s - Audacious" diff -r c40585c57877 -r 7fc2c317d190 src/adplug/adplug-xmms.cc --- a/src/adplug/adplug-xmms.cc Thu Jul 03 17:23:34 2008 +0300 +++ b/src/adplug/adplug-xmms.cc Thu Jul 03 17:37:11 2008 +0300 @@ -913,29 +913,6 @@ } static int -adplug_is_our_file (char *filename) -{ - CSilentopl tmpopl; - VFSFile *fd = aud_vfs_buffered_file_new_from_uri (filename); - if (!fd) - return FALSE; - - CPlayer *p = factory (fd, &tmpopl); - - dbg_printf ("adplug_is_our_file(\"%s\"): returned ", filename); - - if (p) - { - delete p; - dbg_printf ("TRUE\n"); - return TRUE; - } - - dbg_printf ("FALSE\n"); - return FALSE; -} - -static int adplug_get_time (InputPlayback * data) { if (audio_error) @@ -1140,13 +1117,12 @@ adplug_about, adplug_config, FALSE, - adplug_is_our_file, - NULL, // scan_dir (look in Input/cdaudio/cdaudio.c) + NULL, + NULL, adplug_play, adplug_stop, adplug_pause, adplug_seek, - NULL, // set_eq adplug_get_time, NULL, // get_volume (handled by output plugin) NULL, // set_volume (...) @@ -1156,7 +1132,6 @@ NULL, // set_info_text (filled by XMMS) adplug_song_info, adplug_info_box, - NULL, // output plugin (filled by XMMS) adplug_get_tuple, adplug_is_our_fd, (gchar **)fmts, diff -r c40585c57877 -r 7fc2c317d190 src/alsa/alsa.h --- a/src/alsa/alsa.h Thu Jul 03 17:23:34 2008 +0300 +++ b/src/alsa/alsa.h Thu Jul 03 17:37:11 2008 +0300 @@ -41,15 +41,15 @@ struct alsa_config { - char *pcm_device; - int mixer_card; - char *mixer_device; - int buffer_time; - int period_time; + gchar *pcm_device; + gint mixer_card; + gchar *mixer_device; + gint buffer_time; + gint period_time; gboolean debug; struct { - int left, right; + gint left, right; } vol; }; @@ -57,21 +57,21 @@ void alsa_about(void); void alsa_configure(void); -int alsa_get_mixer(snd_mixer_t **mixer, int card); +gint alsa_get_mixer(snd_mixer_t **mixer, gint card); void alsa_save_config(void); -void alsa_get_volume(int *l, int *r); -void alsa_set_volume(int l, int r); +void alsa_get_volume(gint *l, gint *r); +void alsa_set_volume(gint l, gint r); -int alsa_playing(void); -int alsa_free(void); -void alsa_write(void *ptr, int length); +gint alsa_playing(void); +gint alsa_free(void); +void alsa_write(void *ptr, gint length); void alsa_close(void); -void alsa_flush(int time); -void alsa_pause(short p); -int alsa_open(AFormat fmt, int rate, int nch); -int alsa_get_output_time(void); -int alsa_get_written_time(void); +void alsa_flush(gint time); +void alsa_pause(gshort p); +gint alsa_open(AFormat fmt, gint rate, gint nch); +gint alsa_get_output_time(void); +gint alsa_get_written_time(void); void alsa_tell(AFormat * fmt, gint * rate, gint * nch); extern GStaticMutex alsa_mutex; diff -r c40585c57877 -r 7fc2c317d190 src/alsa/audio.c --- a/src/alsa/audio.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/alsa/audio.c Thu Jul 03 17:37:11 2008 +0300 @@ -46,8 +46,8 @@ static guint64 output_time_offset; /* device buffer/period sizes in bytes */ -static int hw_buffer_size, hw_period_size; /* in output bytes */ -static int hw_buffer_size_in, hw_period_size_in; /* in input bytes */ +static gint hw_buffer_size, hw_period_size; /* in output bytes */ +static gint hw_buffer_size_in, hw_period_size_in; /* in input bytes */ /* Set/Get volume */ static snd_mixer_elem_t *pcm_element; @@ -60,32 +60,32 @@ /* for audio thread */ static GThread *audio_thread; /* audio loop thread */ -static int thread_buffer_size; /* size of intermediate buffer in bytes */ -static char *thread_buffer; /* audio intermediate buffer */ -static int rd_index, wr_index; /* current read/write position in int-buffer */ +static gint thread_buffer_size; /* size of intermediate buffer in bytes */ +static gchar *thread_buffer; /* audio intermediate buffer */ +static gint rd_index, wr_index; /* current read/write position in int-buffer */ static gboolean pause_request; /* pause status currently requested */ -static int flush_request; /* flush status (time) currently requested */ -static int prebuffer_size; +static gint flush_request; /* flush status (time) currently requested */ +static gint prebuffer_size; GStaticMutex alsa_mutex = G_STATIC_MUTEX_INIT; struct snd_format { - unsigned int rate; - unsigned int channels; + guint rate; + guint channels; snd_pcm_format_t format; AFormat xmms_format; - int sample_bits; - int bps; + gint sample_bits; + gint bps; }; static struct snd_format *inputf = NULL; static struct snd_format *outputf = NULL; -static int alsa_setup(struct snd_format *f); -static void alsa_write_audio(char *data, int length); +static gint alsa_setup(struct snd_format *f); +static void alsa_write_audio(gchar *data, gint length); static void alsa_cleanup_mixer(void); -static int get_thread_buffer_filled(void); +static gint get_thread_buffer_filled(void); -static struct snd_format * snd_format_from_xmms(AFormat fmt, int rate, int channels); +static struct snd_format * snd_format_from_xmms(AFormat fmt, gint rate, gint channels); static const struct { AFormat xmms; @@ -115,9 +115,9 @@ }; -static void debug(char *str, ...) G_GNUC_PRINTF(1, 2); +static void debug(gchar *str, ...) G_GNUC_PRINTF(1, 2); -static void debug(char *str, ...) +static void debug(gchar *str, ...) { va_list args; @@ -140,10 +140,10 @@ get_thread_buffer_filled() > hw_period_size_in; } -static int -alsa_recovery(int err) +static gint +alsa_recovery(gint err) { - int err2; + gint err2; /* if debug mode is enabled, dump ALSA state to console */ if (alsa_cfg.debug) @@ -298,7 +298,7 @@ /* reopen ALSA PCM */ #if 0 -static int alsa_reopen(struct snd_format *f) +static gint alsa_reopen(struct snd_format *f) { /* remember the current position */ output_time_offset += (alsa_hw_written * 1000) / outputf->bps; @@ -311,7 +311,7 @@ #endif /* do flush (drop) operation */ -static void alsa_do_flush(int time) +static void alsa_do_flush(gint time) { if (alsa_pcm) { @@ -324,16 +324,16 @@ rd_index = wr_index = alsa_hw_written = 0; } -void alsa_flush(int time) +void alsa_flush(gint time) { flush_request = time; while ((flush_request != -1) && (going)) g_usleep(10000); } -static void parse_mixer_name(char *str, char **name, int *index) +static void parse_mixer_name(gchar *str, gchar **name, gint *index) { - char *end; + gchar *end; while (isspace(*str)) str++; @@ -351,10 +351,10 @@ } } -int alsa_get_mixer(snd_mixer_t **mixer, int card) +gint alsa_get_mixer(snd_mixer_t **mixer, gint card) { - char *dev; - int err; + gchar *dev; + gint err; debug("alsa_get_mixer"); @@ -393,7 +393,7 @@ } -static snd_mixer_elem_t* alsa_get_mixer_elem(snd_mixer_t *mixer, char *name, int index) +static snd_mixer_elem_t* alsa_get_mixer_elem(snd_mixer_t *mixer, gchar *name, gint index) { snd_mixer_selem_id_t *selem_id; snd_mixer_elem_t* elem; @@ -411,10 +411,10 @@ static int alsa_setup_mixer(void) { - char *name; - long int a, b; - long alsa_min_vol, alsa_max_vol; - int err, index; + gchar *name; + glong a, b; + glong alsa_min_vol, alsa_max_vol; + gint err, index; debug("alsa_setup_mixer"); @@ -471,9 +471,9 @@ } } -void alsa_get_volume(int *l, int *r) +void alsa_get_volume(gint *l, gint *r) { - long ll = *l, lr = *r; + glong ll = *l, lr = *r; if (mixer_start) { @@ -497,7 +497,7 @@ } -void alsa_set_volume(int l, int r) +void alsa_set_volume(gint l, gint r) { if (!pcm_element) return; @@ -541,7 +541,7 @@ return thread_buffer_size - (rd_index - wr_index); } -int alsa_get_output_time(void) +gint alsa_get_output_time(void) { snd_pcm_sframes_t delay; guint64 bytes = alsa_hw_written; @@ -560,7 +560,7 @@ return output_time_offset + (bytes * 1000) / outputf->bps; } -int alsa_get_written_time(void) +gint alsa_get_written_time(void) { if (!going) return 0; @@ -581,10 +581,10 @@ } /* write callback */ -void alsa_write(gpointer data, int length) +void alsa_write(gpointer data, gint length) { - int cnt; - char *src = (char *)data; + gint cnt; + gchar *src = (gchar *)data; remove_prebuffer = FALSE; @@ -602,7 +602,7 @@ } /* transfer data to audio h/w via normal write */ -static void alsa_write_audio(char *data, int length) +static void alsa_write_audio(gchar *data, gint length) { snd_pcm_sframes_t written_frames; @@ -655,8 +655,8 @@ /* FIXME: proper lock? */ static void *alsa_loop(void *arg) { - int npfds = snd_pcm_poll_descriptors_count(alsa_pcm); - int wr = 0; + gint npfds = snd_pcm_poll_descriptors_count(alsa_pcm); + gint wr = 0; g_static_mutex_lock(&alsa_mutex); @@ -704,7 +704,7 @@ } /* open callback */ -int alsa_open(AFormat fmt, int rate, int nch) +gint alsa_open(AFormat fmt, gint rate, gint nch) { debug("Opening device"); if((inputf = snd_format_from_xmms(fmt, rate, nch)) == NULL) return 0; @@ -751,11 +751,11 @@ return 1; } -static struct snd_format * snd_format_from_xmms(AFormat fmt, int rate, int channels) +static struct snd_format * snd_format_from_xmms(AFormat fmt, gint rate, gint channels) { struct snd_format *f = g_malloc(sizeof(struct snd_format)); size_t i; - int found = 0; + gint found = 0; f->xmms_format = fmt; f->format = SND_PCM_FORMAT_UNKNOWN; @@ -790,12 +790,12 @@ return f; } -static int alsa_setup(struct snd_format *f) +static gint alsa_setup(struct snd_format *f) { - int err; + gint err; snd_pcm_hw_params_t *hwparams = NULL; snd_pcm_sw_params_t *swparams = NULL; - unsigned int alsa_buffer_time, alsa_period_time; + guint alsa_buffer_time, alsa_period_time; snd_pcm_uframes_t alsa_buffer_size, alsa_period_size; debug("alsa_setup"); diff -r c40585c57877 -r 7fc2c317d190 src/alsa/configure.c --- a/src/alsa/configure.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/alsa/configure.c Thu Jul 03 17:37:11 2008 +0300 @@ -24,7 +24,7 @@ static GtkWidget *devices_combo, *mixer_devices_combo; -static int current_mixer_card; +static gint current_mixer_card; #define GET_SPIN_INT(spin) \ gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin)) @@ -58,10 +58,10 @@ aud_cfg_db_close(cfgfile); } -static int get_cards(GtkOptionMenu *omenu, GtkSignalFunc cb, int active) +static gint get_cards(GtkOptionMenu *omenu, GtkSignalFunc cb, gint active) { GtkWidget *menu, *item; - int card = -1, err, set = 0, curr = -1; + gint card = -1, err, set = 0, curr = -1; menu = gtk_menu_new(); if ((err = snd_card_next(&card)) != 0) @@ -69,7 +69,7 @@ while (card > -1) { - char *label; + gchar *label; curr++; if (card == active) @@ -98,10 +98,10 @@ return set; } -static int get_mixer_devices(GtkCombo *combo, int card) +static gint get_mixer_devices(GtkCombo *combo, gint card) { GList *items = NULL; - int err; + gint err; snd_mixer_t *mixer; snd_mixer_elem_t *current; @@ -112,10 +112,16 @@ while (current) { - const char *sname = snd_mixer_selem_get_name(current); if (snd_mixer_selem_is_active(current) && snd_mixer_selem_has_playback_volume(current)) - items = g_list_append(items, g_strdup(sname)); + { + const gchar *sname = snd_mixer_selem_get_name(current); + gint index = snd_mixer_selem_get_index(current); + if (index) + items = g_list_append(items, g_strdup_printf("%s,%d", sname, index)); + else + items = g_list_append(items, g_strdup(sname)); + } current = snd_mixer_elem_next(current); } @@ -124,13 +130,13 @@ return 0; } -static void get_devices_for_card(GtkCombo *combo, int card) +static void get_devices_for_card(GtkCombo *combo, gint card) { GtkWidget *item; - int pcm_device = -1, err; + gint pcm_device = -1, err; snd_pcm_info_t *pcm_info = NULL; snd_ctl_t *ctl; - char dev[64], *card_name; + gchar dev[64], *card_name; sprintf(dev, "hw:%i", card); @@ -194,9 +200,9 @@ static void get_devices(GtkCombo *combo) { GtkWidget *item; - int card = -1; - int err = 0; - char *descr; + gint card = -1; + gint err = 0; + gchar *descr; descr = g_strdup_printf(_("Default PCM device (%s)"), "default"); item = gtk_list_item_new_with_label(descr); @@ -244,7 +250,7 @@ GtkObject *buffer_time_adj, *period_time_adj; GtkWidget *bbox, *ok, *cancel; - int mset; + gint mset; if (configure_win) { diff -r c40585c57877 -r 7fc2c317d190 src/bluetooth/Makefile --- a/src/bluetooth/Makefile Thu Jul 03 17:23:34 2008 +0300 +++ b/src/bluetooth/Makefile Thu Jul 03 17:37:11 2008 +0300 @@ -1,6 +1,6 @@ PLUGIN = bluetooth${PLUGIN_SUFFIX} -SRCS = bluetooth.c gui.c marshal.c +SRCS = bluetooth.c gui.c marshal.c scan_gui.c include ../../buildsys.mk include ../../extra.mk diff -r c40585c57877 -r 7fc2c317d190 src/bluetooth/bluetooth.c --- a/src/bluetooth/bluetooth.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/bluetooth/bluetooth.c Thu Jul 03 17:37:11 2008 +0300 @@ -5,12 +5,14 @@ #include "bluetooth.h" #include "marshal.h" #include "gui.h" - +#include "scan_gui.h" #define DEBUG 1 static gboolean plugin_active = FALSE,exiting=FALSE; GList * current_device = NULL; DBusGConnection * bus = NULL; -gint discover_finish =0; +DBusGProxy * obj = NULL; +gint config = 0; +gint devices_no = 0; GStaticMutex mutex = G_STATIC_MUTEX_INIT; void bluetooth_init ( void ); @@ -23,7 +25,7 @@ static void print_results(void); static void discovery_completed(DBusGProxy *object, gpointer user_data); void discover_devices(void); - +void disconnect_dbus_signals(void); GeneralPlugin bluetooth_gp = @@ -36,6 +38,7 @@ }; GeneralPlugin *bluetooth_gplist[] = { &bluetooth_gp, NULL }; DECLARE_PLUGIN(bluetooth_gp, NULL, NULL, NULL, NULL, NULL, bluetooth_gplist, NULL, NULL) + void bluetooth_init ( void ) { audio_devices = NULL; @@ -45,33 +48,76 @@ void bluetooth_cleanup ( void ) { printf("bluetooth: exit\n"); + if (config ==1 ){ + close_window(); + config =0; + } if(discover_finish == 2) { dbus_g_connection_flush (bus); dbus_g_connection_unref(bus); + disconnect_dbus_signals(); + } - } -/*void bt_cfg( void ) - { - } - */ void bt_about( void ) { + printf("about call\n"); + show_scan(); +} + +void bt_cfg(void) +{ + printf("bt_cfg\n"); + config =1; + if(discover_finish == 2){ + if (devices_no == 0){ + printf("no devs!\n"); + show_scan(); + show_no_devices(); + }else + results_ui(); + } + else show_scan(); + printf("end of bt_cfg\n"); +} + +void disconnect_dbus_signals() +{ + dbus_g_proxy_disconnect_signal(obj, "RemoteDeviceFound", G_CALLBACK(remote_device_found), bus); + dbus_g_proxy_disconnect_signal(obj, "DiscoveryStarted", G_CALLBACK(discovery_started), bus); + dbus_g_proxy_disconnect_signal(obj, "DiscoveryCompleted", G_CALLBACK(discovery_completed), bus); + dbus_g_proxy_disconnect_signal(obj, "RemoteNameUpdated", G_CALLBACK(remote_name_updated), NULL); } - -void refresh_call(void){ - if(discover_finish == 0 ||discover_finish== 2) - discover_devices(); - else - printf("Scanning please wait!\n"); - printf("refresh function called\n"); +void clean_devices_list(){ + g_list_free(audio_devices); + dbus_g_connection_flush (bus); + dbus_g_connection_unref(bus); + audio_devices = NULL; + //g_list_free(current_device); } -void connect_call(void){ - printf("connect function \n"); +void refresh_call(void) +{ + printf("refresh function called\n"); + disconnect_dbus_signals(); + clean_devices_list(); + if(discover_finish == 0 ||discover_finish== 2){ + discover_finish = 0; + + discover_devices(); + close_window(); + show_scan(); + } + else + printf("Scanning please wait!\n"); +} + +void connect_call(void) +{ + printf("connect function \n"); } @@ -82,7 +128,6 @@ current_device = audio_devices; if((class & 0x200404)==0x200404) { - while(current_device != NULL) { if(g_str_equal(address,((DeviceData*)(current_device->data))->address)) @@ -98,8 +143,7 @@ dev->class = class; dev->address = g_strdup(address); dev->name = NULL; - audio_devices=g_list_prepend(audio_devices, dev); - + audio_devices=g_list_prepend(audio_devices, dev); } } g_static_mutex_unlock(&mutex); @@ -126,49 +170,60 @@ } g_static_mutex_unlock(&mutex); } + static void print_results() { int i=0; g_print("Final Scan results:\n"); - g_print("Number of audio devices: %d \n",g_list_length(audio_devices)); - current_device=audio_devices; - while(current_device != NULL) - { - g_print("Device %d: Name: %s, Class: 0x%x, Address: %s\n",++i, - ((DeviceData*)(current_device->data))-> name, - ((DeviceData*)(current_device->data))-> class, - ((DeviceData*)(current_device->data))-> address); + devices_no = g_list_length(audio_devices); + g_print("Number of audio devices: %d \n",devices_no); + if(devices_no==0 ) { + if(config ==1) show_no_devices(); + } else { + current_device=audio_devices; + while(current_device != NULL) + { + g_print("Device %d: Name: %s, Class: 0x%x, Address: %s\n",++i, + ((DeviceData*)(current_device->data))-> name, + ((DeviceData*)(current_device->data))-> class, + ((DeviceData*)(current_device->data))-> address); + current_device=g_list_next(current_device); + } + destroy_scan_window(); + if(config==1) { + destroy_scan_window(); + results_ui(); + } + // refresh_tree(); + } +} - current_device=g_list_next(current_device); - } - refresh_tree(); -} static void discovery_completed(DBusGProxy *object, gpointer user_data) { g_print("Signal: DiscoveryCompleted()\n"); + discover_finish =2; print_results(); - discover_finish =2; } -void discover_devices(void){ + +void discover_devices(void) +{ GError *error = NULL; - DBusGProxy * obj = NULL; - g_type_init(); + // g_type_init(); g_log_set_always_fatal (G_LOG_LEVEL_WARNING); - bus = dbus_g_bus_get(DBUS_BUS_SYSTEM, &error); if (error != NULL) { g_printerr("Connecting to system bus failed: %s\n", error->message); g_error_free(error); - exit(EXIT_FAILURE); } obj = dbus_g_proxy_new_for_name(bus, "org.bluez", "/org/bluez/hci0", "org.bluez.Adapter"); + printf("bluetooth plugin - start discovery \n"); + dbus_g_object_register_marshaller(marshal_VOID__STRING_UINT_INT, G_TYPE_NONE, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INT, G_TYPE_INVALID); - dbus_g_object_register_marshaller(marshal_VOID__STRING_UINT_INT, G_TYPE_NONE, G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INT, G_TYPE_INVALID); dbus_g_proxy_add_signal(obj, "RemoteDeviceFound", G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INT, G_TYPE_INVALID); dbus_g_proxy_connect_signal(obj, "RemoteDeviceFound", G_CALLBACK(remote_device_found), bus, NULL); @@ -179,6 +234,7 @@ dbus_g_proxy_connect_signal(obj, "DiscoveryCompleted", G_CALLBACK(discovery_completed), bus, NULL); dbus_g_object_register_marshaller(marshal_VOID__STRING_STRING, G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); + dbus_g_proxy_add_signal(obj, "RemoteNameUpdated", G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID); dbus_g_proxy_connect_signal(obj, "RemoteNameUpdated", G_CALLBACK(remote_name_updated), NULL, NULL); @@ -187,8 +243,6 @@ { g_printerr("Failed to discover devices: %s\n", error->message); g_error_free(error); - exit(EXIT_FAILURE); } - dbus_g_connection_flush (bus); - dbus_g_connection_unref(bus); -} + +} diff -r c40585c57877 -r 7fc2c317d190 src/bluetooth/bluetooth.h --- a/src/bluetooth/bluetooth.h Thu Jul 03 17:23:34 2008 +0300 +++ b/src/bluetooth/bluetooth.h Thu Jul 03 17:37:11 2008 +0300 @@ -19,4 +19,6 @@ void refresh_call(void); void connect_call(void); GList * audio_devices; +gint discover_finish ; + diff -r c40585c57877 -r 7fc2c317d190 src/bluetooth/gui.c --- a/src/bluetooth/gui.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/bluetooth/gui.c Thu Jul 03 17:37:11 2008 +0300 @@ -3,101 +3,110 @@ static GtkWidget *window = NULL; static GtkTreeModel *model; -GtkWidget *mainbox; -GtkWidget *hbox_top; -GtkWidget *hbox_bottom; -GtkWidget *box_about; -GtkWidget *box_about_left; -GtkWidget *box_about_right; -GtkWidget *headset_frame; -GtkWidget *about_frame; -GtkWidget *refresh; -GtkWidget *connect_button; -GtkWidget *close_button; -GtkWidget *treeview; -GtkWidget *label_p; -GtkWidget *label_c; -GtkWidget *label_a; -GtkWidget *label_prod; -GtkWidget *label_class; -GtkWidget *label_address; -GList * dev = NULL; +static GtkWidget *mainbox; +static GtkWidget *hbox_top; +static GtkWidget *hbox_bottom; +static GtkWidget *box_about; +static GtkWidget *box_about_left; +static GtkWidget *box_about_right; +static GtkWidget *headset_frame; +static GtkWidget *about_frame; +static GtkWidget *refresh; +static GtkWidget *connect_button; +static GtkWidget *close_button; +static GtkWidget *treeview; +static GtkWidget *label_p; +static GtkWidget *label_c; +static GtkWidget *label_a; +static GtkWidget *label_prod; +static GtkWidget *label_class; +static GtkWidget *label_address; +static GList * dev = NULL; +gchar *status = NULL; enum{ COLUMN_PRODUCER, NUM_COLUMNS }; -static DeviceData test_data[]= -{ - {0,"00:00:00:00:00","Scanning"} -}; - static GtkTreeModel * create_model(void) { GtkListStore *store; GtkTreeIter iter; - gint i=0; - /* create list store */ + /* create list store */ store = gtk_list_store_new(NUM_COLUMNS, G_TYPE_STRING); - - /* add data to the list store */ - for(i = 0;idata))-> name,-1); + dev = g_list_next(dev); } - return GTK_TREE_MODEL(store); + return GTK_TREE_MODEL(store); } static GtkTreeModel * rebuild_model(void) { GtkListStore *store; GtkTreeIter iter; - gint i=0; gint dev_no=0; GList *dev; gchar *temp; if(!window) return NULL; - /* create list store */ + /* create list store */ store = gtk_list_store_new(NUM_COLUMNS, G_TYPE_STRING); - + /*add inf to test_data from audio_devices */ dev_no = g_list_length(audio_devices); dev = audio_devices; + if(dev == NULL || discover_finish == 0) { + /*if we are scanning for devices now then print the Scanning message, + * else we print the "no devices found message */ + printf("discover: %d\n",discover_finish); + if(discover_finish == 1) { + /*we are scanning*/ + status = g_strdup_printf("Scanning"); + } else + status = g_strdup_printf("No devices found!"); + /* add the status to the list */ + gtk_list_store_append(store,&iter); + gtk_list_store_set(store,&iter, COLUMN_PRODUCER,status,-1); + gtk_label_set_text(GTK_LABEL(label_prod),status); + return GTK_TREE_MODEL(store); + } + + /* add data to the list store */ while(dev != NULL) { - test_data[i].name = ((DeviceData*)(dev->data))-> name; - test_data[i].class = ((DeviceData*)(dev->data))-> class; - test_data[i].address = ((DeviceData*)(dev->data))-> address; - i++; - dev=g_list_next(dev); - } - if (dev_no == 0) - { - test_data[0].name = "No devices found!"; - test_data[0].class = 0; - test_data[0].address = "00:00:00:00:00"; + gtk_list_store_append(store,&iter); + gtk_list_store_set(store,&iter, COLUMN_PRODUCER, + ((DeviceData*)(dev->data))-> name,-1); + dev = g_list_next(dev); } - - /* add data to the list store */ - for(i = 0;idata))->class); + gtk_label_set_text(GTK_LABEL(label_prod),((DeviceData*)(dev->data))->name); + // gtk_label_set_text(GTK_LABEL(label_class),temp); + gtk_label_set_text(GTK_LABEL(label_address),((DeviceData*)(dev->data))->address); + g_free(temp); + return GTK_TREE_MODEL(store); } @@ -106,8 +115,8 @@ { if(!window) return; - model = rebuild_model(); - gtk_tree_view_set_model(GTK_TREE_VIEW(treeview),GTK_TREE_MODEL(model)); + model = rebuild_model(); + gtk_tree_view_set_model(GTK_TREE_VIEW(treeview),GTK_TREE_MODEL(model)); } @@ -119,7 +128,7 @@ /* column for producer */ renderer = gtk_cell_renderer_text_new (); - column = gtk_tree_view_column_new_with_attributes ("Producer", + column = gtk_tree_view_column_new_with_attributes (_("Producer"), renderer, "text", COLUMN_PRODUCER, @@ -139,6 +148,7 @@ GtkTreeIter iter; gint sel; gchar *temp; + gint i; printf("select\n"); GtkTreeSelection *selection = gtk_tree_view_get_selection (GTK_TREE_VIEW(treeview)); if(gtk_tree_selection_get_selected (selection, NULL,&iter)){ @@ -146,21 +156,33 @@ path = gtk_tree_model_get_path (model, &iter); sel = gtk_tree_path_get_indices (path)[0]; printf("i=%d\n",sel); - temp = g_strdup_printf("0x%x",test_data[sel].class); - gtk_label_set_text(GTK_LABEL(label_prod),test_data[sel].name); - gtk_label_set_text(GTK_LABEL(label_class),temp); - gtk_label_set_text(GTK_LABEL(label_address),test_data[sel].address); - gtk_tree_path_free (path); - g_free(temp); + dev = audio_devices; + for(i=0;idata))->class); + gtk_label_set_text(GTK_LABEL(label_prod),((DeviceData*)(dev->data))->name); + gtk_label_set_text(GTK_LABEL(label_class),temp); + gtk_label_set_text(GTK_LABEL(label_address),((DeviceData*)(dev->data))->address); + gtk_tree_path_free (path); + g_free(temp); + }else + gtk_label_set_text(GTK_LABEL(label_prod),status); + g_free(status); } - - - } -void bt_cfg() + +void refresh_resultsui(){ + gtk_widget_destroy (window); + window = NULL; + refresh_call(); +} + + +void results_ui() { - + gchar *temp; if (!window) { window = gtk_window_new (GTK_WINDOW_TOPLEVEL); @@ -178,21 +200,21 @@ gtk_container_set_border_width (GTK_CONTAINER (hbox_bottom), 4); gtk_container_add (GTK_CONTAINER (mainbox), hbox_bottom); - headset_frame = gtk_frame_new("Available Headsets"); + headset_frame = gtk_frame_new(_("Available Headsets")); gtk_container_add (GTK_CONTAINER (hbox_top), headset_frame); - about_frame = gtk_frame_new("Current Headset"); + about_frame = gtk_frame_new(_("Current Headset")); gtk_container_add(GTK_CONTAINER(hbox_top),about_frame); - refresh = gtk_button_new_with_mnemonic ("_Refresh"); - g_signal_connect (refresh, "clicked",G_CALLBACK (refresh_call), NULL); + refresh = gtk_button_new_with_mnemonic (_("_Refresh")); + g_signal_connect (refresh, "clicked",G_CALLBACK (refresh_resultsui), NULL); gtk_container_add(GTK_CONTAINER(hbox_bottom),refresh); - connect_button = gtk_button_new_with_mnemonic("_Connect"); + connect_button = gtk_button_new_with_mnemonic(_("_Connect")); g_signal_connect(connect_button,"clicked",G_CALLBACK (connect_call), NULL); gtk_container_add(GTK_CONTAINER(hbox_bottom),connect_button); - close_button = gtk_button_new_with_mnemonic("_Close"); + close_button = gtk_button_new_with_mnemonic(_("_Close")); g_signal_connect(close_button,"clicked",G_CALLBACK (close_call),NULL); gtk_container_add(GTK_CONTAINER(hbox_bottom),close_button); /* create tree model */ @@ -206,7 +228,7 @@ gtk_container_add (GTK_CONTAINER (headset_frame), treeview); /* add columns to the tree view */ add_columns (GTK_TREE_VIEW (treeview)); - + g_signal_connect(treeview,"cursor-changed",G_CALLBACK(select_row),treeview); @@ -226,19 +248,19 @@ gtk_container_add (GTK_CONTAINER (box_about), box_about_right); /* Left labels */ - label_p = gtk_label_new("Name:"); + label_p = gtk_label_new(_("Name:")); gtk_container_add(GTK_CONTAINER(box_about_left),label_p); - label_c = gtk_label_new("Class"); + label_c = gtk_label_new(_("Class")); gtk_container_add(GTK_CONTAINER(box_about_left),label_c); - label_a = gtk_label_new("Address:"); + label_a = gtk_label_new(_("Address:")); gtk_container_add(GTK_CONTAINER(box_about_left),label_a); /*right labels */ - label_prod = gtk_label_new("Scanning"); + label_prod = gtk_label_new(" "); gtk_container_add(GTK_CONTAINER(box_about_right),label_prod); label_class = gtk_label_new(" "); @@ -248,7 +270,16 @@ label_address = gtk_label_new(" "); gtk_container_add(GTK_CONTAINER(box_about_right),label_address); - gtk_window_set_default_size (GTK_WINDOW (window), 480, 180); + dev = audio_devices; + if(dev != NULL) { + temp = g_strdup_printf("0x%x",((DeviceData*)(dev->data))->class); + gtk_label_set_text(GTK_LABEL(label_prod),((DeviceData*)(dev->data))->name); + gtk_label_set_text(GTK_LABEL(label_class),temp); + gtk_label_set_text(GTK_LABEL(label_address),((DeviceData*)(dev->data))->address); + g_free(temp); + } + + gtk_window_set_default_size (GTK_WINDOW (window), 460, 150); if (!GTK_WIDGET_VISIBLE (window)) gtk_widget_show_all (window); else diff -r c40585c57877 -r 7fc2c317d190 src/bluetooth/gui.h --- a/src/bluetooth/gui.h Thu Jul 03 17:23:34 2008 +0300 +++ b/src/bluetooth/gui.h Thu Jul 03 17:37:11 2008 +0300 @@ -1,3 +1,6 @@ #include #include void refresh_tree(void); +void results_ui(); + + diff -r c40585c57877 -r 7fc2c317d190 src/bluetooth/scan_gui.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/bluetooth/scan_gui.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,104 @@ +#include "scan_gui.h" +#include "bluetooth.h" +static GtkWidget *window = NULL; +static GtkWidget *winbox; +static GtkWidget *scanbox; +static GtkWidget *buttonsbox; +static GtkWidget *progressbox; +static GtkWidget *bluetooth_img; +static GtkWidget *scan_label; +static GtkWidget *progress_bar; +static GtkWidget *rescan_buttton; +static GtkWidget *close_button; +gpointer progress() { + + for(;;){ + if(window){ + gtk_progress_bar_pulse(GTK_PROGRESS_BAR(progress_bar)); + } + sleep(1); + if(discover_finish == 2 ) { + if(window){ + gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(progress_bar),1); + } + return 0; + } + } + return 0; +} + +void show_no_devices(){ + if(window ){ + gtk_label_set_text(GTK_LABEL(scan_label),_("No devices found!")); + } +} +void destroy_scan_window(){ + gtk_widget_hide(window); +} +void close_window(void){ + printf("scan_gui close callback \n"); + gtk_widget_destroy (window); + window = NULL; +} + + +void show_scan() +{ + GThread *th1; + gchar *filename; + if (!window) + { + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + g_signal_connect (window, "destroy",G_CALLBACK (gtk_widget_destroyed), &window); + + winbox = gtk_vbox_new(FALSE,2); + gtk_container_set_border_width (GTK_CONTAINER (winbox), 2); + gtk_container_add (GTK_CONTAINER (window), winbox); + + scanbox = gtk_hbox_new(FALSE,2); + gtk_container_set_border_width(GTK_CONTAINER(scanbox),2); + gtk_container_add(GTK_CONTAINER(winbox),scanbox); + + progressbox = gtk_vbox_new(FALSE,2); + gtk_container_set_border_width(GTK_CONTAINER(progressbox),4); + gtk_container_add(GTK_CONTAINER(winbox),progressbox); + filename = DATA_DIR G_DIR_SEPARATOR_S "images" G_DIR_SEPARATOR_S "blue.png"; + bluetooth_img = gtk_image_new_from_file(filename); + gtk_image_set_pixel_size(GTK_IMAGE(bluetooth_img),-1); + gtk_container_add(GTK_CONTAINER(scanbox),bluetooth_img); + + scan_label = gtk_label_new_with_mnemonic(_("Scanning...")); + gtk_container_add(GTK_CONTAINER(scanbox),scan_label); + + progress_bar = gtk_progress_bar_new(); + gtk_progress_bar_pulse(GTK_PROGRESS_BAR(progress_bar)); + gtk_container_add(GTK_CONTAINER(progressbox),progress_bar); + th1 = g_thread_create((GThreadFunc)progress, NULL,TRUE,NULL); + /* I have to add a button for Rescan when there are + * no devices found and not currently scanning + */ + buttonsbox = gtk_hbox_new(FALSE,2); + gtk_container_set_border_width(GTK_CONTAINER(buttonsbox),2); + gtk_container_add(GTK_CONTAINER(progressbox),buttonsbox); + rescan_buttton = gtk_button_new_with_mnemonic(_("Rescan")); + g_signal_connect(rescan_buttton,"clicked",G_CALLBACK (refresh_call),NULL); + + close_button = gtk_button_new_with_mnemonic(_("Close")); + gtk_container_add(GTK_CONTAINER(buttonsbox),rescan_buttton); + gtk_container_add(GTK_CONTAINER(buttonsbox),close_button); + g_signal_connect(close_button,"clicked",G_CALLBACK (close_window),NULL); + + gtk_window_set_default_size (GTK_WINDOW (window), 60, 40); + gtk_window_set_resizable(GTK_WINDOW(window),FALSE); + if (!GTK_WIDGET_VISIBLE (window)) + gtk_widget_show_all (window); + else + { + gtk_widget_destroy (window); + g_free(filename); + window = NULL; + } + + } + +} diff -r c40585c57877 -r 7fc2c317d190 src/bluetooth/scan_gui.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/bluetooth/scan_gui.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,6 @@ +#include +#include +void show_scan(); +void show_no_devices(); +void destroy_scan_window(); +void close_window(); diff -r c40585c57877 -r 7fc2c317d190 src/console/Audacious_Driver.cxx --- a/src/console/Audacious_Driver.cxx Thu Jul 03 17:23:34 2008 +0300 +++ b/src/console/Audacious_Driver.cxx Thu Jul 03 17:37:11 2008 +0300 @@ -470,7 +470,6 @@ console_stop, console_pause, seek, - NULL, get_time, NULL, NULL, @@ -480,7 +479,6 @@ NULL, NULL, NULL, - NULL, get_song_tuple, NULL, (gchar **)gme_fmts, diff -r c40585c57877 -r 7fc2c317d190 src/cue/cuesheet.c --- a/src/cue/cuesheet.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/cue/cuesheet.c Thu Jul 03 17:37:11 2008 +0300 @@ -158,10 +158,9 @@ for (i = 0; i < last_cue_track; i++) { - gchar _buf[65535]; - - g_snprintf(_buf, 65535, "cue://%s?%d", filename, i); - aud_playlist_add_url(aud_playlist_get_active(), _buf); + gchar *tmp = g_strdup_printf("cue://%s?%d", filename, i); + aud_playlist_add_url(aud_playlist_get_active(), tmp); + g_free(tmp); } free_cue_info(); @@ -190,7 +189,7 @@ play_thread = g_thread_self(); data->set_pb_ready(data); // it should be done in real input plugin? --yaz play_cue_uri(data, uri); - g_free(uri); uri = NULL; + g_free(uri); } static Tuple *get_tuple(gchar *uri) @@ -323,7 +322,6 @@ if (real_ip != NULL) { real_ip->plugin->set_info = cue_ip.set_info; - real_ip->plugin->output = NULL; g_free(real_ip); real_ip = NULL; } @@ -438,7 +436,6 @@ real_ip = (InputPlayback *)g_memdup(data, sizeof(InputPlayback)); real_ip->plugin = real_ip_plugin; real_ip->plugin->set_info = set_info_override; - real_ip->plugin->output = cue_ip.output; real_ip->filename = cue_file; data->playing = 1; diff -r c40585c57877 -r 7fc2c317d190 src/evdev-plug/ed_ui.c --- a/src/evdev-plug/ed_ui.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/evdev-plug/ed_ui.c Thu Jul 03 17:37:11 2008 +0300 @@ -209,18 +209,18 @@ switch (is_available) { case DEVLIST_ISAVAILABLE_DET: - g_object_set( renderer , "text" , "Detected" , + g_object_set( renderer , "text" , _("Detected") , "foreground" , "Green" , "foreground-set" , TRUE , "background" , "Black" , "background-set" , TRUE , NULL ); break; case DEVLIST_ISAVAILABLE_CUSTOM: - g_object_set( renderer , "text" , "Custom" , + g_object_set( renderer , "text" , _("Custom") , "foreground" , "Yellow" , "foreground-set" , TRUE , "background" , "Black" , "background-set" , TRUE , NULL ); break; case DEVLIST_ISAVAILABLE_NOTDET: default: - g_object_set( renderer , "text" , "Not Detected" , + g_object_set( renderer , "text" , _("Not Detected") , "foreground" , "Orange" , "foreground-set" , TRUE , "background" , "Black" , "background-set" , TRUE , NULL ); break; @@ -401,7 +401,7 @@ DEVLIST_COL_ISACTIVE , FALSE , DEVLIST_COL_NAME , name , DEVLIST_COL_FILENAME , file , - DEVLIST_COL_PHYS , "(custom)" , + DEVLIST_COL_PHYS , _("(custom)") , DEVLIST_COL_ISAVAILABLE , DEVLIST_ISAVAILABLE_CUSTOM , DEVLIST_COL_BINDINGS , NULL , -1 ); task_done = TRUE; diff -r c40585c57877 -r 7fc2c317d190 src/flacng/plugin.c --- a/src/flacng/plugin.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/flacng/plugin.c Thu Jul 03 17:37:11 2008 +0300 @@ -446,7 +446,7 @@ /* * Flush the buffers */ - flac_ip.output->flush(seek_to); + playback->output->flush(seek_to); } seek_to = -1; } @@ -462,7 +462,7 @@ _DEBUG("End of stream reached, draining output buffer"); - while((-1 == seek_to) && flac_ip.output->buffer_playing() && playback->playing == TRUE) { + while((-1 == seek_to) && playback->output->buffer_playing() && playback->playing == TRUE) { g_usleep(40000); } @@ -478,7 +478,7 @@ */ playback->playing = FALSE; _DEBUG("Closing audio device"); - flac_ip.output->close_audio(); + playback->output->close_audio(); _DEBUG("Audio device closed"); free(play_buffer); diff -r c40585c57877 -r 7fc2c317d190 src/madplug/plugin.c --- a/src/madplug/plugin.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/madplug/plugin.c Thu Jul 03 17:37:11 2008 +0300 @@ -277,7 +277,9 @@ ((guint32) hbuf[3]); } -#if 0 +#undef MADPROBE_DEBUG + +#ifdef MADPROBE_DEBUG static gchar *mp3_ver_table[4] = { "2.5", "INVALID", "2", "1" }; #define LULZ(...) do { fprintf(stderr, "madprobe: "); fprintf(stderr, __VA_ARGS__); } while (0) #define LOL(...) do { fprintf(stderr, __VA_ARGS__); } while (0) @@ -396,7 +398,7 @@ /* Not similar frame... */ LOL(" .. but does not match (%d)!\n", chkcount); state = STATE_RESYNC; - } else if (chkcount >= 5) { + } else if (chkcount >= 3) { /* Okay, accept this stream */ LOL(" .. accepted as mp3!!!\n"); return 1; diff -r c40585c57877 -r 7fc2c317d190 src/modplug/plugin.cxx --- a/src/modplug/plugin.cxx Thu Jul 03 17:23:34 2008 +0300 +++ b/src/modplug/plugin.cxx Thu Jul 03 17:37:11 2008 +0300 @@ -106,7 +106,6 @@ Stop, Pause, Seek, - NULL, GetTime, NULL, NULL, @@ -116,7 +115,6 @@ NULL, NULL, ShowFileInfoBox, - NULL, // output GetSongTuple, CanPlayFileFromVFS, // vfs (gchar **)fmts, diff -r c40585c57877 -r 7fc2c317d190 src/musepack/libmpc.cxx --- a/src/musepack/libmpc.cxx Thu Jul 03 17:23:34 2008 +0300 +++ b/src/musepack/libmpc.cxx Thu Jul 03 17:37:11 2008 +0300 @@ -25,7 +25,6 @@ mpcStop, //Stop [CALLBACK] mpcPause, //Pause [CALLBACK] mpcSeek, //Seek [CALLBACK] - NULL, //Set EQ [CALLBACK] mpcGetTime, //Get Time [CALLBACK] NULL, //Get Volume [UNUSED] NULL, //Set Volume [UNUSED] @@ -35,7 +34,6 @@ NULL, //set Info Text set_info_text(char* text) mpcGetSongInfo, //Get Title String callback [CALLBACK] mpcFileInfoBox, //Show File Info Box [CALLBACK] - NULL, //Output Plugin Handle OutputPlugin output mpcGetSongTuple,//Acquire tuple for song [CALLBACK] mpcIsOurFD, (gchar **)mpc_fmts @@ -51,7 +49,7 @@ static TrackInfo track = {0}; static GThread *threadHandle; -GStaticMutex threadMutex = G_STATIC_MUTEX_INIT; +static GStaticMutex threadMutex = G_STATIC_MUTEX_INIT; /* * VFS callback implementation, adapted from mpc_reader.c. @@ -812,7 +810,7 @@ MPC_SAMPLE_FORMAT sampleBuffer[MPC_DECODER_BUFFER_LENGTH]; char xmmsBuffer[MPC_DECODER_BUFFER_LENGTH * 4]; - if (!MpcPlugin.output->open_audio(FMT_S16_LE, track.sampleFreq, track.channels)) + if (!data->output->open_audio(FMT_S16_LE, track.sampleFreq, track.channels)) { mpcDecoder.isError = g_strdup_printf("[xmms-musepack] decodeStream is unable to open an audio output"); return endThread(filename, input, true); @@ -834,9 +832,9 @@ } lockAcquire(); - short iPlaying = MpcPlugin.output->buffer_playing()? 1 : 0; - gint iFree = MpcPlugin.output->buffer_free(); - if (!mpcDecoder.isPause && iFree >= ((1152 * 4) << iPlaying)) + short iPlaying = data->output->buffer_playing()? 1 : 0; + gint iFree = data->output->buffer_free(); + if (!mpcDecoder.isPause && iFree >= ((1152 * 4) << iPlaying)) { unsigned status = processBuffer(data, sampleBuffer, xmmsBuffer, decoder); if (status == (unsigned) (-1)) diff -r c40585c57877 -r 7fc2c317d190 src/neon/neon.c --- a/src/neon/neon.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/neon/neon.c Thu Jul 03 17:37:11 2008 +0300 @@ -212,7 +212,7 @@ * ----- */ -static void parse_icy(struct icy_metadata* m, gchar* metadata, gint len) { +static void parse_icy(struct icy_metadata* m, gchar* metadata, gsize len) { gchar* p; gchar* tstart; @@ -220,7 +220,7 @@ gchar name[NEON_ICY_BUFSIZE]; gchar value[NEON_ICY_BUFSIZE]; gint state; - gint pos; + gsize pos; _ENTER; diff -r c40585c57877 -r 7fc2c317d190 src/psf2/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/Makefile Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,22 @@ +PLUGIN = psf2${PLUGIN_SUFFIX} + +SRCS = corlett.c \ + plugin.c \ + psx.c \ + psx_hw.c \ + eng_psf.c \ + eng_psf2.c \ + eng_spu.c \ + peops/spu.c \ + peops2/dma.c \ + peops2/registers.c \ + peops2/spu.c \ + +include ../../buildsys.mk +include ../../extra.mk + +plugindir := ${plugindir}/${INPUT_PLUGIN_DIR} + +CFLAGS += ${PLUGIN_CFLAGS} -O0 +CPPFLAGS += ${PLUGIN_CPPFLAGS} ${MOWGLI_CFLAGS} ${GTK_CFLAGS} ${GLIB_CFLAGS} -I../.. -Ispu/ -I. +LIBS += ${GTK_LIBS} ${GLIB_LIBS} ${MOWGLI_LIBS} -lz diff -r c40585c57877 -r 7fc2c317d190 src/psf2/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/README Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,21 @@ +psf2 plugin +----------- + +What is this? + +It's a PSF2 plugin based on: + + * UPSE + * Audio Overload + * Highly Experimental + +It's under the BSD license, mostly, but it uses code from PeOPS, so it's +probably GPL. + +Does it work? + +Yes. But there's bugs. See http://audacious-media-player.org/?title=Audacious2/PSF2Plugin +for suggestions on things you can do. + + + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/ao.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/ao.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,175 @@ +// +// Audio Overload SDK +// +// Fake ao.h to set up the general Audio Overload style environment +// + +#include "../../config.h" + +#ifndef __AO_H +#define __AO_H + +#define AO_SUCCESS 1 +#define AO_FAIL 0 +#define AO_FAIL_DECOMPRESSION -1 + +#define MAX_DISP_INFO_LENGTH 256 +#define AUDIO_RATE (44100) + +enum +{ + COMMAND_NONE = 0, + COMMAND_PREV, + COMMAND_NEXT, + COMMAND_RESTART, + COMMAND_HAS_PREV, + COMMAND_HAS_NEXT, + COMMAND_GET_MIN, + COMMAND_GET_MAX, + COMMAND_JUMP +}; + +/* Compiler defines for Xcode */ +#ifndef WORDS_BIGENDIAN + #define LSB_FIRST 1 +#endif + +typedef unsigned char ao_bool; + +#ifdef __GNUC__ +#include // get NULL +#include + +#ifndef nil +#define nil NULL +#endif + +#ifndef TRUE +#define TRUE (1) +#endif +#ifndef FALSE +#define FALSE (0) +#endif + +#define xmalloc(a) malloc(a) + +#endif + +#ifdef _MSC_VER +#include // get NULL +#include // for off_t + +#ifndef nil +#define nil NULL +#endif + +#ifndef TRUE +#define TRUE (1) +#endif +#ifndef FALSE +#define FALSE (0) +#endif + +#define true (1) +#define false (0) + +#define xmalloc(a) malloc(a) + +#define strcasecmp _strcmpi + +#endif + +#ifndef PATH_MAX +#define PATH_MAX 2048 +#endif + +typedef unsigned char uint8; +typedef unsigned char UINT8; +typedef signed char int8; +typedef signed char INT8; +typedef unsigned short uint16; +typedef unsigned short UINT16; +typedef signed short int16; +typedef signed short INT16; +typedef signed int int32; +typedef unsigned int uint32; +#ifdef LONG_IS_64BIT +typedef signed long int64; +typedef unsigned long uint64; +#else +typedef signed long long int64; +typedef unsigned long long uint64; +#endif + +#ifdef WIN32 +#ifndef _BASETSD_H +typedef signed int INT32; +typedef unsigned int UINT32; +typedef signed long long INT64; +typedef unsigned long long UINT64; +#endif +#else +typedef signed int INT32; +typedef unsigned int UINT32; +#ifdef LONG_IS_64BIT +typedef signed long INT64; +typedef unsigned long UINT64; +#else +typedef signed long long INT64; +typedef unsigned long long UINT64; +#endif +#endif + +#ifndef INLINE +#if defined(_MSC_VER) +#define INLINE __forceinline +#elif defined(__GNUC__) +#define INLINE __inline__ +#elif defined(_MWERKS_) +#define INLINE inline +#elif defined(__powerc) +#define INLINE inline +#else +#define INLINE +#endif +#endif + +#if LSB_FIRST +#define LE16(x) (x) +#define LE32(x) (x) + +#ifndef __ENDIAN__ /* Mac OS X Endian header has this function in it */ +static unsigned long INLINE Endian32_Swap(unsigned long addr) +{ + unsigned long res = (((addr&0xff000000)>>24) | + ((addr&0x00ff0000)>>8) | + ((addr&0x0000ff00)<<8) | + ((addr&0x000000ff)<<24)); + + return res; +} +#endif + +#else + +static unsigned short INLINE LE16(unsigned short x) +{ + unsigned short res = (((x & 0xFF00) >> 8) | ((x & 0xFF) << 8)); + return res; +} + +static unsigned long INLINE LE32(unsigned long addr) +{ + unsigned long res = (((addr&0xff000000)>>24) | + ((addr&0x00ff0000)>>8) | + ((addr&0x0000ff00)<<8) | + ((addr&0x000000ff)<<24)); + + return res; +} + +#endif + +int ao_get_lib(char *filename, uint8 **buffer, uint64 *length); + +#endif // AO_H diff -r c40585c57877 -r 7fc2c317d190 src/psf2/corlett.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/corlett.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,381 @@ +/* + + Audio Overload SDK + + Copyright (c) 2007-2008, R. Belmont and Richard Bannister. + + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the names of R. Belmont and Richard Bannister nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +// corlett.c + +// Decodes file format designed by Neill Corlett (PSF, QSF, ...) + +/* + - First 3 bytes: ASCII signature: "PSF" (case sensitive) + +- Next 1 byte: Version byte + The version byte is used to determine the type of PSF file. It does NOT + affect the basic structure of the file in any way. + + Currently accepted version bytes are: + 0x01: Playstation (PSF1) + 0x02: Playstation 2 (PSF2) + 0x11: Saturn (SSF) [TENTATIVE] + 0x12: Dreamcast (DSF) [TENTATIVE] + 0x21: Nintendo 64 (USF) [RESERVED] + 0x41: Capcom QSound (QSF) + +- Next 4 bytes: Size of reserved area (R), little-endian unsigned long + +- Next 4 bytes: Compressed program length (N), little-endian unsigned long + This is the length of the program data _after_ compression. + +- Next 4 bytes: Compressed program CRC-32, little-endian unsigned long + This is the CRC-32 of the program data _after_ compression. Filling in + this value is mandatory, as a PSF file may be regarded as corrupt if it + does not match. + +- Next R bytes: Reserved area. + May be empty if R is 0 bytes. + +- Next N bytes: Compressed program, in zlib compress() format. + May be empty if N is 0 bytes. + +The following data is optional and may be omitted: + +- Next 5 bytes: ASCII signature: "[TAG]" (case sensitive) + If these 5 bytes do not match, then the remainder of the file may be + regarded as invalid and discarded. + +- Remainder of file: Uncompressed ASCII tag data. +*/ + +#include +#include +#include + +#include "ao.h" +#include "corlett.h" + +#include +#include + +#define DECOMP_MAX_SIZE ((32 * 1024 * 1024) + 12) + +int corlett_decode(uint8 *input, uint32 input_len, uint8 **output, uint64 *size, corlett_t **c) +{ + uint32 *buf; + uint32 res_area, comp_crc, actual_crc; + uint8 *decomp_dat, *tag_dec; + uLongf decomp_length, comp_length; + + // 32-bit pointer to data + buf = (uint32 *)input; + + // Check we have a PSF format file. + if ((input[0] != 'P') || (input[1] != 'S') || (input[2] != 'F')) + { + return AO_FAIL; + } + + // Get our values + res_area = LE32(buf[1]); + comp_length = LE32(buf[2]); + comp_crc = LE32(buf[3]); + + if (comp_length > 0) + { + // Check length + if (input_len < comp_length + 16) + return AO_FAIL; + + // Check CRC is correct + actual_crc = crc32(0, (unsigned char *)&buf[4+(res_area/4)], comp_length); + if (actual_crc != comp_crc) + return AO_FAIL; + + // Decompress data if any + decomp_dat = malloc(DECOMP_MAX_SIZE); + decomp_length = DECOMP_MAX_SIZE; + if (uncompress(decomp_dat, &decomp_length, (unsigned char *)&buf[4+(res_area/4)], comp_length) != Z_OK) + { + free(decomp_dat); + return AO_FAIL; + } + + // Resize memory buffer to what we actually need + decomp_dat = realloc(decomp_dat, (size_t)decomp_length + 1); + } + else + { + decomp_dat = NULL; + decomp_length = 0; + } + + // Make structure + *c = malloc(sizeof(corlett_t)); + if (!(*c)) + { + free(decomp_dat); + return AO_FAIL; + } + memset(*c, 0, sizeof(corlett_t)); + strcpy((*c)->inf_title, "n/a"); + strcpy((*c)->inf_copy, "n/a"); + strcpy((*c)->inf_artist, "n/a"); + strcpy((*c)->inf_game, "n/a"); + strcpy((*c)->inf_year, "n/a"); + strcpy((*c)->inf_length, "n/a"); + strcpy((*c)->inf_fade, "n/a"); + + // set reserved section pointer + (*c)->res_section = &buf[4]; + (*c)->res_size = res_area; + + // Return it + if (output != NULL && size != NULL) + { + *output = decomp_dat; + *size = decomp_length; + } + else + free(decomp_dat); + + // Next check for tags + input_len -= (comp_length + 16 + res_area); + if (input_len < 5) + return AO_SUCCESS; + +// printf("\n\nNew corlett: input len %d\n", input_len); + + tag_dec = input + (comp_length + res_area + 16); + if ((tag_dec[0] == '[') && (tag_dec[1] == 'T') && (tag_dec[2] == 'A') && (tag_dec[3] == 'G') && (tag_dec[4] == ']')) + { + int tag, l, num_tags, data; + + // Tags found! + tag_dec += 5; + input_len -= 5; + + tag = 0; + data = false; + num_tags = 0; + l = 0; + while (input_len && (num_tags < MAX_UNKNOWN_TAGS)) + { + if (data) + { + if ((*tag_dec == 0xA) || (*tag_dec == 0x00)) + { + (*c)->tag_data[num_tags][l] = 0; + data = false; + num_tags++; + l = 0; + } + else + { + (*c)->tag_data[num_tags][l++] = *tag_dec; + } + } + else + { + if (*tag_dec == '=') + { + (*c)->tag_name[num_tags][l] = 0; + l = 0; + data = true; + } + else + { + (*c)->tag_name[num_tags][l++] = *tag_dec; + } + } + + tag_dec++; + input_len--; + } + + + // Now, process that tag array into what we expect + for (num_tags = 0; num_tags < MAX_UNKNOWN_TAGS; num_tags++) + { + // See if tag belongs in one of the special fields we have + if (!strcasecmp((*c)->tag_name[num_tags], "_lib")) + { + strcpy((*c)->lib, (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "_lib2", 5)) + { + strcpy((*c)->libaux[0], (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "_lib3", 5)) + { + strcpy((*c)->libaux[1], (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "_lib4", 5)) + { + strcpy((*c)->libaux[2], (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "_lib5", 5)) + { + strcpy((*c)->libaux[3], (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "_lib6", 5)) + { + strcpy((*c)->libaux[4], (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "_lib7", 5)) + { + strcpy((*c)->libaux[5], (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "_lib8", 5)) + { + strcpy((*c)->libaux[6], (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "_lib9", 5)) + { + strcpy((*c)->libaux[7], (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "_refresh", 8)) + { + strcpy((*c)->inf_refresh, (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "title", 5)) + { + strcpy((*c)->inf_title, (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "copyright", 9)) + { + strcpy((*c)->inf_copy, (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "artist", 6)) + { + strcpy((*c)->inf_artist, (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "game", 4)) + { + strcpy((*c)->inf_game, (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "year", 4)) + { + strcpy((*c)->inf_year, (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "length", 6)) + { + strcpy((*c)->inf_length, (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + else if (!strncmp((*c)->tag_name[num_tags], "fade", 4)) + { + strcpy((*c)->inf_fade, (*c)->tag_data[num_tags]); + (*c)->tag_data[num_tags][0] = 0; + (*c)->tag_name[num_tags][0] = 0; + } + } + } + + // Bingo + return AO_SUCCESS; +} + +uint32 psfTimeToMS(char *str) +{ + int x, c=0; + uint32 acc=0; + char s[100]; + + strncpy(s,str,100); + s[99]=0; + + for (x=strlen(s); x>=0; x--) + { + if (s[x]=='.' || s[x]==',') + { + acc=atoi(s+x+1); + s[x]=0; + } + else if (s[x]==':') + { + if(c==0) + { + acc+=atoi(s+x+1)*10; + } + else if(c==1) + { + acc+=atoi(s+x+(x?1:0))*10*60; + } + + c++; + s[x]=0; + } + else if (x==0) + { + if(c==0) + { + acc+=atoi(s+x)*10; + } + else if(c==1) + { + acc+=atoi(s+x)*10*60; + } + else if(c==2) + { + acc+=atoi(s+x)*10*60*60; + } + } + } + + acc*=100; + return(acc); +} + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/corlett.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/corlett.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,35 @@ +// +// Audio Overload +// Emulated music player +// +// (C) 2000-2008 Richard F. Bannister +// + +// corlett.h + +#define MAX_UNKNOWN_TAGS 32 + +typedef struct { + char lib[256]; + char libaux[8][256]; + + char inf_title[256]; + char inf_copy[256]; + char inf_artist[256]; + char inf_game[256]; + char inf_year[256]; + char inf_length[256]; + char inf_fade[256]; + + char inf_refresh[256]; + + char tag_name[MAX_UNKNOWN_TAGS][256]; + char tag_data[MAX_UNKNOWN_TAGS][256]; + + uint32 *res_section; + uint32 res_size; +} corlett_t; + +int corlett_decode(uint8 *input, uint32 input_len, uint8 **output, uint64 *size, corlett_t **c); +uint32 psfTimeToMS(char *str); + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/cpuintrf.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/cpuintrf.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,668 @@ +#ifndef CPUINTRF_H +#define CPUINTRF_H + +#include "osd_cpu.h" + +/* The old system is obsolete and no longer supported by the core */ +#define NEW_INTERRUPT_SYSTEM 1 + +#define MAX_IRQ_LINES 8 /* maximum number of IRQ lines per CPU */ + +#define CLEAR_LINE 0 /* clear (a fired, held or pulsed) line */ +#define ASSERT_LINE 1 /* assert an interrupt immediately */ +#define HOLD_LINE 2 /* hold interrupt line until enable is true */ +#define PULSE_LINE 3 /* pulse interrupt line for one instruction */ + +#define MAX_REGS 64 /* maximum number of register of any CPU */ + +#define IRQ_LINE_NMI 10 +/* Values passed to the cpu_info function of a core to retrieve information */ +enum { + CPU_INFO_REG, + CPU_INFO_FLAGS=MAX_REGS, + CPU_INFO_NAME, + CPU_INFO_FAMILY, + CPU_INFO_VERSION, + CPU_INFO_FILE, + CPU_INFO_CREDITS, + CPU_INFO_REG_LAYOUT, + CPU_INFO_WIN_LAYOUT +}; + +#define CPU_IS_LE 0 /* emulated CPU is little endian */ +#define CPU_IS_BE 1 /* emulated CPU is big endian */ + +/* + * This value is passed to cpu_get_reg to retrieve the previous + * program counter value, ie. before a CPU emulation started + * to fetch opcodes and arguments for the current instrution. + */ +#define REG_PREVIOUSPC -1 + +/* + * This value is passed to cpu_get_reg/cpu_set_reg, instead of one of + * the names from the enum a CPU core defines for it's registers, + * to get or set the contents of the memory pointed to by a stack pointer. + * You can specify the n'th element on the stack by (REG_SP_CONTENTS-n), + * ie. lower negative values. The actual element size (UINT16 or UINT32) + * depends on the CPU core. + * This is also used to replace the cpu_geturnpc() function. + */ +#define REG_SP_CONTENTS -2 + +/* + * These flags can be defined in the makefile (or project) to + * exclude (zero) or include (non zero) specific CPU cores + */ +#ifndef HAS_GENSYNC +#define HAS_GENSYNC 0 +#endif +#ifndef HAS_Z80 +#define HAS_Z80 0 +#endif +#ifndef HAS_Z80_VM +#define HAS_Z80_VM 0 +#endif +#ifndef HAS_8080 +#define HAS_8080 0 +#endif +#ifndef HAS_8085A +#define HAS_8085A 0 +#endif +#ifndef HAS_M6502 +#define HAS_M6502 0 +#endif +#ifndef HAS_M65C02 +#define HAS_M65C02 0 +#endif +#ifndef HAS_M65SC02 +#define HAS_M65SC02 0 +#endif +#ifndef HAS_M65CE02 +#define HAS_M65CE02 0 +#endif +#ifndef HAS_M6509 +#define HAS_M6509 0 +#endif +#ifndef HAS_M6510 +#define HAS_M6510 0 +#endif +#ifndef HAS_N2A03 +#define HAS_N2A03 0 +#endif +#ifndef HAS_H6280 +#define HAS_H6280 0 +#endif +#ifndef HAS_I86 +#define HAS_I86 0 +#endif +#ifndef HAS_V20 +#define HAS_V20 0 +#endif +#ifndef HAS_V30 +#define HAS_V30 0 +#endif +#ifndef HAS_V33 +#define HAS_V33 0 +#endif +#ifndef HAS_I8035 +#define HAS_I8035 0 +#endif +#ifndef HAS_I8039 +#define HAS_I8039 0 +#endif +#ifndef HAS_I8048 +#define HAS_I8048 0 +#endif +#ifndef HAS_N7751 +#define HAS_N7751 0 +#endif +#ifndef HAS_M6800 +#define HAS_M6800 0 +#endif +#ifndef HAS_M6801 +#define HAS_M6801 0 +#endif +#ifndef HAS_M6802 +#define HAS_M6802 0 +#endif +#ifndef HAS_M6803 +#define HAS_M6803 0 +#endif +#ifndef HAS_M6808 +#define HAS_M6808 0 +#endif +#ifndef HAS_HD63701 +#define HAS_HD63701 0 +#endif +#ifndef HAS_M6805 +#define HAS_M6805 0 +#endif +#ifndef HAS_M68705 +#define HAS_M68705 0 +#endif +#ifndef HAS_HD63705 +#define HAS_HD63705 0 +#endif +#ifndef HAS_HD6309 +#define HAS_HD6309 0 +#endif +#ifndef HAS_M6809 +#define HAS_M6809 0 +#endif +#ifndef HAS_KONAMI +#define HAS_KONAMI 0 +#endif +#ifndef HAS_M68000 +#define HAS_M68000 0 +#endif +#ifndef HAS_M68010 +#define HAS_M68010 0 +#endif +#ifndef HAS_M68020 +#define HAS_M68020 0 +#endif +#ifndef HAS_T11 +#define HAS_T11 0 +#endif +#ifndef HAS_S2650 +#define HAS_S2650 0 +#endif +#ifndef HAS_TMS34010 +#define HAS_TMS34010 0 +#endif +#ifndef HAS_TMS9900 +#define HAS_TMS9900 0 +#endif +#ifndef HAS_TMS9940 +#define HAS_TMS9940 0 +#endif +#ifndef HAS_TMS9980 +#define HAS_TMS9980 0 +#endif +#ifndef HAS_TMS9985 +#define HAS_TMS9985 0 +#endif +#ifndef HAS_TMS9989 +#define HAS_TMS9989 0 +#endif +#ifndef HAS_TMS9995 +#define HAS_TMS9995 0 +#endif +#ifndef HAS_TMS99105A +#define HAS_TMS99105A 0 +#endif +#ifndef HAS_TMS99110A +#define HAS_TMS99110A 0 +#endif +#ifndef HAS_Z8000 +#define HAS_Z8000 0 +#endif +#ifndef HAS_TMS320C10 +#define HAS_TMS320C10 0 +#endif +#ifndef HAS_CCPU +#define HAS_CCPU 0 +#endif +#ifndef HAS_PDP1 +#define HAS_PDP1 0 +#endif +#ifndef HAS_ADSP2100 +#define HAS_ADSP2100 0 +#endif + +/* ASG 971222 -- added this generic structure */ +struct cpu_interface +{ + unsigned cpu_num; + void (*reset)(void *param); + void (*exit)(void); + int (*execute)(int cycles); + void (*burn)(int cycles); + unsigned (*get_context)(void *reg); + void (*set_context)(void *reg); + unsigned (*get_pc)(void); + void (*set_pc)(unsigned val); + unsigned (*get_sp)(void); + void (*set_sp)(unsigned val); + unsigned (*get_reg)(int regnum); + void (*set_reg)(int regnum, unsigned val); + void (*set_nmi_line)(int linestate); + void (*set_irq_line)(int irqline, int linestate); + void (*set_irq_callback)(int(*callback)(int irqline)); + void (*internal_interrupt)(int type); + void (*cpu_state_save)(void *file); + void (*cpu_state_load)(void *file); + const char* (*cpu_info)(void *context,int regnum); + unsigned (*cpu_dasm)(char *buffer,unsigned pc); + unsigned num_irqs; + int default_vector; + int *icount; + double overclock; + int no_int, irq_int, nmi_int; + int (*memory_read)(int offset); + void (*memory_write)(int offset, int data); + void (*set_op_base)(int pc); + int address_shift; + unsigned address_bits, endianess, align_unit, max_inst_len; + unsigned abits1, abits2, abitsmin; +}; + +extern struct cpu_interface cpuintf[]; + +void cpu_init(void); +void cpu_run(void); + +/* optional watchdog */ +void watchdog_reset_w(int offset,int data); +int watchdog_reset_r(int offset); +/* Use this function to reset the machine */ +void machine_reset(void); +/* Use this function to reset a single CPU */ +void cpu_set_reset_line(int cpu,int state); +/* Use this function to halt a single CPU */ +void cpu_set_halt_line(int cpu,int state); + +/* This function returns CPUNUM current status (running or halted) */ +int cpu_getstatus(int cpunum); +int cpu_gettotalcpu(void); +int cpu_getactivecpu(void); +void cpu_setactivecpu(int cpunum); + +/* Returns the current program counter */ +unsigned cpu_get_pc(void); +/* Set the current program counter */ +void cpu_set_pc(unsigned val); + +/* Returns the current stack pointer */ +unsigned cpu_get_sp(void); +/* Set the current stack pointer */ +void cpu_set_sp(unsigned val); + +/* Get the active CPUs context and return it's size */ +unsigned cpu_get_context(void *context); +/* Set the active CPUs context */ +void cpu_set_context(void *context); + +/* Returns a specific register value (mamedbg) */ +unsigned cpu_get_reg(int regnum); +/* Sets a specific register value (mamedbg) */ +void cpu_set_reg(int regnum, unsigned val); + +/* Returns previous pc (start of opcode causing read/write) */ +/* int cpu_getpreviouspc(void); */ +#define cpu_getpreviouspc() cpu_get_reg(REG_PREVIOUSPC) + +/* Returns the return address from the top of the stack (Z80 only) */ +/* int cpu_getreturnpc(void); */ +/* This can now be handled with a generic function */ +#define cpu_geturnpc() cpu_get_reg(REG_SP_CONTENTS) + +int cycles_currently_ran(void); +int cycles_left_to_run(void); + +/* Returns the number of CPU cycles which take place in one video frame */ +int cpu_gettotalcycles(void); +/* Returns the number of CPU cycles before the next interrupt handler call */ +int cpu_geticount(void); +/* Returns the number of CPU cycles before the end of the current video frame */ +int cpu_getfcount(void); +/* Returns the number of CPU cycles in one video frame */ +int cpu_getfperiod(void); +/* Scales a given value by the ratio of fcount / fperiod */ +int cpu_scalebyfcount(int value); +/* Returns the current scanline number */ +int cpu_getscanline(void); +/* Returns the amount of time until a given scanline */ +double cpu_getscanlinetime(int scanline); +/* Returns the duration of a single scanline */ +double cpu_getscanlineperiod(void); +/* Returns the duration of a single scanline in cycles */ +int cpu_getscanlinecycles(void); +/* Returns the number of cycles since the beginning of this frame */ +int cpu_getcurrentcycles(void); +/* Returns the current horizontal beam position in pixels */ +int cpu_gethorzbeampos(void); +/* + Returns the number of times the interrupt handler will be called before + the end of the current video frame. This is can be useful to interrupt + handlers to synchronize their operation. If you call this from outside + an interrupt handler, add 1 to the result, i.e. if it returns 0, it means + that the interrupt handler will be called once. +*/ +int cpu_getiloops(void); + +/* Returns the current VBLANK state */ +int cpu_getvblank(void); + +/* Returns the number of the video frame we are currently playing */ +int cpu_getcurrentframe(void); + + +/* generate a trigger after a specific period of time */ +void cpu_triggertime (double duration, int trigger); +/* generate a trigger now */ +void cpu_trigger (int trigger); + +/* burn CPU cycles until a timer trigger */ +void cpu_spinuntil_trigger (int trigger); +/* burn CPU cycles until the next interrupt */ +void cpu_spinuntil_int (void); +/* burn CPU cycles until our timeslice is up */ +void cpu_spin (void); +/* burn CPU cycles for a specific period of time */ +void cpu_spinuntil_time (double duration); + +/* yield our timeslice for a specific period of time */ +void cpu_yielduntil_trigger (int trigger); +/* yield our timeslice until the next interrupt */ +void cpu_yielduntil_int (void); +/* yield our current timeslice */ +void cpu_yield (void); +/* yield our timeslice for a specific period of time */ +void cpu_yielduntil_time (double duration); + +/* set the NMI line state for a CPU, normally use PULSE_LINE */ +void cpu_set_nmi_line(int cpunum, int state); +/* set the IRQ line state for a specific irq line of a CPU */ +/* normally use state HOLD_LINE, irqline 0 for first IRQ type of a cpu */ +void cpu_set_irq_line(int cpunum, int irqline, int state); +/* this is to be called by CPU cores only! */ +void cpu_generate_internal_interrupt(int cpunum, int type); +/* set the vector to be returned during a CPU's interrupt acknowledge cycle */ +void cpu_irq_line_vector_w(int cpunum, int irqline, int vector); + +/* use these in your write memory/port handles to set an IRQ vector */ +/* offset corresponds to the irq line number here */ +void cpu_0_irq_line_vector_w(int offset, int data); +void cpu_1_irq_line_vector_w(int offset, int data); +void cpu_2_irq_line_vector_w(int offset, int data); +void cpu_3_irq_line_vector_w(int offset, int data); +void cpu_4_irq_line_vector_w(int offset, int data); +void cpu_5_irq_line_vector_w(int offset, int data); +void cpu_6_irq_line_vector_w(int offset, int data); +void cpu_7_irq_line_vector_w(int offset, int data); + +/* Obsolete functions: avoid to use them in new drivers if possible. */ + +/* cause an interrupt on a CPU */ +void cpu_cause_interrupt(int cpu,int type); +void cpu_clear_pending_interrupts(int cpu); +void interrupt_enable_w(int offset,int data); +void interrupt_vector_w(int offset,int data); +int interrupt(void); +int nmi_interrupt(void); +int m68_level1_irq(void); +int m68_level2_irq(void); +int m68_level3_irq(void); +int m68_level4_irq(void); +int m68_level5_irq(void); +int m68_level6_irq(void); +int m68_level7_irq(void); +int ignore_interrupt(void); + +/* CPU context access */ +void* cpu_getcontext (int _activecpu); +int cpu_is_saving_context(int _activecpu); + +/*************************************************************************** + * Get information for the currently active CPU + * cputype is a value from the CPU enum in driver.h + ***************************************************************************/ +/* Return number of address bits */ +unsigned cpu_address_bits(void); +/* Return address mask */ +unsigned cpu_address_mask(void); +/* Return address shift factor (TMS34010 bit addressing mode) */ +int cpu_address_shift(void); +/* Return endianess of the emulated CPU (CPU_IS_LE or CPU_IS_BE) */ +unsigned cpu_endianess(void); +/* Return opcode align unit (1 byte, 2 word, 4 dword) */ +unsigned cpu_align_unit(void); +/* Return maximum instruction length */ +unsigned cpu_max_inst_len(void); + +/* Return name of the active CPU */ +const char *cpu_name(void); +/* Return family name of the active CPU */ +const char *cpu_core_family(void); +/* Return core version of the active CPU */ +const char *cpu_core_version(void); +/* Return core filename of the active CPU */ +const char *cpu_core_file(void); +/* Return credits info for of the active CPU */ +const char *cpu_core_credits(void); +/* Return register layout definition for the active CPU */ +const char *cpu_reg_layout(void); +/* Return (debugger) window layout definition for the active CPU */ +const char *cpu_win_layout(void); + +/* Disassemble an instruction at PC into the given buffer */ +unsigned cpu_dasm(char *buffer, unsigned pc); +/* Return a string describing the currently set flag (status) bits of the active CPU */ +const char *cpu_flags(void); +/* Return a string with a register name and hex value for the active CPU */ +/* regnum is a value defined in the CPU cores header files */ +const char *cpu_dump_reg(int regnum); +/* Return a string describing the active CPUs current state */ +const char *cpu_dump_state(void); + +/*************************************************************************** + * Get information for a specific CPU type + * cputype is a value from the CPU enum in driver.h + ***************************************************************************/ +/* Return address shift factor */ +/* TMS320C10 -1: word addressing mode, TMS34010 3: bit addressing mode */ +int cputype_address_shift(int cputype); +/* Return number of address bits */ +unsigned cputype_address_bits(int cputype); +/* Return address mask */ +unsigned cputype_address_mask(int cputype); +/* Return endianess of the emulated CPU (CPU_IS_LE or CPU_IS_BE) */ +unsigned cputype_endianess(int cputype); +/* Return opcode align unit (1 byte, 2 word, 4 dword) */ +unsigned cputype_align_unit(int cputype); +/* Return maximum instruction length */ +unsigned cputype_max_inst_len(int cputype); + +/* Return name of the CPU */ +const char *cputype_name(int cputype); +/* Return family name of the CPU */ +const char *cputype_core_family(int cputype); +/* Return core version number of the CPU */ +const char *cputype_core_version(int cputype); +/* Return core filename of the CPU */ +const char *cputype_core_file(int cputype); +/* Return credits for the CPU core */ +const char *cputype_core_credits(int cputype); +/* Return register layout definition for the CPU core */ +const char *cputype_reg_layout(int cputype); +/* Return (debugger) window layout definition for the CPU core */ +const char *cputype_win_layout(int cputype); + +/*************************************************************************** + * Get (or set) information for a numbered CPU of the running machine + * cpunum is a value between 0 and cpu_gettotalcpu() - 1 + ***************************************************************************/ +/* Return number of address bits */ +unsigned cpunum_address_bits(int cputype); +/* Return address mask */ +unsigned cpunum_address_mask(int cputype); +/* Return endianess of the emulated CPU (CPU_LSB_FIRST or CPU_MSB_FIRST) */ +unsigned cpunum_endianess(int cputype); +/* Return opcode align unit (1 byte, 2 word, 4 dword) */ +unsigned cpunum_align_unit(int cputype); +/* Return maximum instruction length */ +unsigned cpunum_max_inst_len(int cputype); + +/* Get a register value for the specified CPU number of the running machine */ +unsigned cpunum_get_reg(int cpunum, int regnum); +/* Set a register value for the specified CPU number of the running machine */ +void cpunum_set_reg(int cpunum, int regnum, unsigned val); + +/* Return (debugger) register layout definition for the CPU core */ +const char *cpunum_reg_layout(int cpunum); +/* Return (debugger) window layout definition for the CPU core */ +const char *cpunum_win_layout(int cpunum); + +unsigned cpunum_dasm(int cpunum,char *buffer,unsigned pc); +/* Return a string describing the currently set flag (status) bits of the CPU */ +const char *cpunum_flags(int cpunum); +/* Return a string with a register name and value */ +/* regnum is a value defined in the CPU cores header files */ +const char *cpunum_dump_reg(int cpunum, int regnum); +/* Return a string describing the CPUs current state */ +const char *cpunum_dump_state(int cpunum); +/* Return a name for the specified cpu number */ +const char *cpunum_name(int cpunum); +/* Return a family name for the specified cpu number */ +const char *cpunum_core_family(int cpunum); +/* Return a version for the specified cpu number */ +const char *cpunum_core_version(int cpunum); +/* Return a the source filename for the specified cpu number */ +const char *cpunum_core_file(int cpunum); +/* Return a the credits for the specified cpu number */ +const char *cpunum_core_credits(int cpunum); + +/* Dump all of the running machines CPUs state to stderr */ +void cpu_dump_states(void); + +/* daisy-chain link */ +typedef struct { + void (*reset)(int); /* reset callback */ + int (*interrupt_entry)(int); /* entry callback */ + void (*interrupt_reti)(int); /* reti callback */ + int irq_param; /* callback paramater */ +} Z80_DaisyChain; + +#define Z80_MAXDAISY 4 /* maximum of daisy chan device */ + +#define Z80_INT_REQ 0x01 /* interrupt request mask */ +#define Z80_INT_IEO 0x02 /* interrupt disable mask(IEO) */ + +#define Z80_VECTOR(device,state) (((device)<<8)|(state)) + +#ifndef INLINE +#define INLINE inline +#endif + +#include +#include +#include + +#define cpu_readmem16 memory_read +#define cpu_readport16 memory_readport +#define cpu_writeport16 memory_writeport +#define cpu_writemem16 memory_write +#define cpu_readop memory_readop +#define cpu_readop_arg memory_read +#define logerror(x, ...) +#define change_pc16(x) +#define CALL_MAME_DEBUG + +#define ADDRESS_SPACES 3 /* maximum number of address spaces */ +#define ADDRESS_SPACE_PROGRAM 0 /* program address space */ +#define ADDRESS_SPACE_DATA 1 /* data address space */ +#define ADDRESS_SPACE_IO 2 /* I/O address space */ + +enum +{ + /* internal flags (not for use by drivers!) */ + INTERNAL_CLEAR_LINE = 100 + CLEAR_LINE, + INTERNAL_ASSERT_LINE = 100 + ASSERT_LINE, + + /* input lines */ + MAX_INPUT_LINES = 32+3, + INPUT_LINE_IRQ0 = 0, + INPUT_LINE_IRQ1 = 1, + INPUT_LINE_IRQ2 = 2, + INPUT_LINE_IRQ3 = 3, + INPUT_LINE_IRQ4 = 4, + INPUT_LINE_IRQ5 = 5, + INPUT_LINE_IRQ6 = 6, + INPUT_LINE_IRQ7 = 7, + INPUT_LINE_IRQ8 = 8, + INPUT_LINE_IRQ9 = 9, + INPUT_LINE_NMI = MAX_INPUT_LINES - 3, + + /* special input lines that are implemented in the core */ + INPUT_LINE_RESET = MAX_INPUT_LINES - 2, + INPUT_LINE_HALT = MAX_INPUT_LINES - 1, + + /* output lines */ + MAX_OUTPUT_LINES = 32 +}; + +enum +{ + /* --- the following bits of info are returned as 64-bit signed integers --- */ + CPUINFO_INT_FIRST = 0x00000, + + CPUINFO_INT_CONTEXT_SIZE = CPUINFO_INT_FIRST, /* R/O: size of CPU context in bytes */ + CPUINFO_INT_INPUT_LINES, /* R/O: number of input lines */ + CPUINFO_INT_OUTPUT_LINES, /* R/O: number of output lines */ + CPUINFO_INT_DEFAULT_IRQ_VECTOR, /* R/O: default IRQ vector */ + CPUINFO_INT_ENDIANNESS, /* R/O: either CPU_IS_BE or CPU_IS_LE */ + CPUINFO_INT_CLOCK_DIVIDER, /* R/O: internal clock divider */ + CPUINFO_INT_MIN_INSTRUCTION_BYTES, /* R/O: minimum bytes per instruction */ + CPUINFO_INT_MAX_INSTRUCTION_BYTES, /* R/O: maximum bytes per instruction */ + CPUINFO_INT_MIN_CYCLES, /* R/O: minimum cycles for a single instruction */ + CPUINFO_INT_MAX_CYCLES, /* R/O: maximum cycles for a single instruction */ + + CPUINFO_INT_DATABUS_WIDTH, /* R/O: data bus size for each address space (8,16,32,64) */ + CPUINFO_INT_DATABUS_WIDTH_LAST = CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACES - 1, + CPUINFO_INT_ADDRBUS_WIDTH, /* R/O: address bus size for each address space (12-32) */ + CPUINFO_INT_ADDRBUS_WIDTH_LAST = CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACES - 1, + CPUINFO_INT_ADDRBUS_SHIFT, /* R/O: shift applied to addresses each address space (+3 means >>3, -1 means <<1) */ + CPUINFO_INT_ADDRBUS_SHIFT_LAST = CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACES - 1, + + CPUINFO_INT_SP, /* R/W: the current stack pointer value */ + CPUINFO_INT_PC, /* R/W: the current PC value */ + CPUINFO_INT_PREVIOUSPC, /* R/W: the previous PC value */ + CPUINFO_INT_INPUT_STATE, /* R/W: states for each input line */ + CPUINFO_INT_INPUT_STATE_LAST = CPUINFO_INT_INPUT_STATE + MAX_INPUT_LINES - 1, + CPUINFO_INT_OUTPUT_STATE, /* R/W: states for each output line */ + CPUINFO_INT_OUTPUT_STATE_LAST = CPUINFO_INT_OUTPUT_STATE + MAX_OUTPUT_LINES - 1, + CPUINFO_INT_REGISTER, /* R/W: values of up to MAX_REGs registers */ + CPUINFO_INT_REGISTER_LAST = CPUINFO_INT_REGISTER + MAX_REGS - 1, + + CPUINFO_INT_CPU_SPECIFIC = 0x08000, /* R/W: CPU-specific values start here */ + + /* --- the following bits of info are returned as pointers to data or functions --- */ + CPUINFO_PTR_FIRST = 0x10000, + + CPUINFO_PTR_SET_INFO = CPUINFO_PTR_FIRST, /* R/O: void (*set_info)(UINT32 state, INT64 data, void *ptr) */ + CPUINFO_PTR_GET_CONTEXT, /* R/O: void (*get_context)(void *buffer) */ + CPUINFO_PTR_SET_CONTEXT, /* R/O: void (*set_context)(void *buffer) */ + CPUINFO_PTR_INIT, /* R/O: void (*init)(void) */ + CPUINFO_PTR_RESET, /* R/O: void (*reset)(void *param) */ + CPUINFO_PTR_EXIT, /* R/O: void (*exit)(void) */ + CPUINFO_PTR_EXECUTE, /* R/O: int (*execute)(int cycles) */ + CPUINFO_PTR_BURN, /* R/O: void (*burn)(int cycles) */ + CPUINFO_PTR_DISASSEMBLE, /* R/O: void (*disassemble)(char *buffer, offs_t pc) */ + CPUINFO_PTR_IRQ_CALLBACK, /* R/W: int (*irqcallback)(int state) */ + CPUINFO_PTR_INSTRUCTION_COUNTER, /* R/O: int *icount */ + CPUINFO_PTR_REGISTER_LAYOUT, /* R/O: struct debug_register_layout *layout */ + CPUINFO_PTR_WINDOW_LAYOUT, /* R/O: struct debug_window_layout *layout */ + CPUINFO_PTR_INTERNAL_MEMORY_MAP, /* R/O: construct_map_t map */ + CPUINFO_PTR_INTERNAL_MEMORY_MAP_LAST = CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACES - 1, + CPUINFO_PTR_DEBUG_REGISTER_LIST, /* R/O: int *list: list of registers for NEW_DEBUGGER */ + + CPUINFO_PTR_CPU_SPECIFIC = 0x18000, /* R/W: CPU-specific values start here */ + + /* --- the following bits of info are returned as NULL-terminated strings --- */ + CPUINFO_STR_FIRST = 0x20000, + + CPUINFO_STR_NAME = CPUINFO_STR_FIRST, /* R/O: name of the CPU */ + CPUINFO_STR_CORE_FAMILY, /* R/O: family of the CPU */ + CPUINFO_STR_CORE_VERSION, /* R/O: version of the CPU core */ + CPUINFO_STR_CORE_FILE, /* R/O: file containing the CPU core */ + CPUINFO_STR_CORE_CREDITS, /* R/O: credits for the CPU core */ + CPUINFO_STR_FLAGS, /* R/O: string representation of the main flags value */ + CPUINFO_STR_REGISTER, /* R/O: string representation of up to MAX_REGs registers */ + CPUINFO_STR_REGISTER_LAST = CPUINFO_STR_REGISTER + MAX_REGS - 1, + + CPUINFO_STR_CPU_SPECIFIC = 0x28000 /* R/W: CPU-specific values start here */ +}; + +#endif /* CPUINTRF_H */ diff -r c40585c57877 -r 7fc2c317d190 src/psf2/eng_protos.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/eng_protos.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,19 @@ +// +// Audio Overload +// Emulated music player +// +// (C) 2000-2007 Richard F. Bannister +// + +#include + +// +// eng_protos.h +// + +int32 psf2_start(uint8 *, uint32 length); +int32 psf2_execute(InputPlayback *playback); +int32 psf2_stop(void); +int32 psf2_command(int32, int32); +int32 psf2_fill_info(Tuple *); +int psf2_seek(uint32); diff -r c40585c57877 -r 7fc2c317d190 src/psf2/eng_psf.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/eng_psf.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,414 @@ +/* + Audio Overload SDK - PSF file format engine + + Copyright (c) 2007 R. Belmont and Richard Bannister. + + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the names of R. Belmont and Richard Bannister nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include +#include +#include + +#include "ao.h" +#include "eng_protos.h" +#include "cpuintrf.h" +#include "psx.h" + +#include "peops/stdafx.h" +#include "peops/externals.h" +#include "peops/regs.h" +#include "peops/registers.h" +#include "peops/spu.h" + + +#include "corlett.h" + +#define DEBUG_LOADER (0) + +static corlett_t *c = NULL; +static char psfby[256]; +char *spu_pOutput; +int psf_refresh = -1; + + +// main RAM +extern uint32 psx_ram[((2*1024*1024)/4)+4]; +extern uint32 psx_scratch[0x400]; +extern uint32 initial_ram[((2*1024*1024)/4)+4]; +extern uint32 initial_scratch[0x400]; +static uint32 initialPC, initialGP, initialSP; + +extern void mips_init( void ); +extern void mips_reset( void *param ); +extern int mips_execute( int cycles ); +extern void mips_set_info(UINT32 state, union cpuinfo *info); +extern void psx_hw_init(void); +extern void psx_hw_slice(void); +extern void psx_hw_frame(void); +extern void setlength(int32 stop, int32 fade); + +int32 psf_start(uint8 *buffer, uint32 length) +{ + uint8 *file, *lib_decoded, *lib_raw_file, *alib_decoded; + uint32 offset, plength, PC, SP, GP, lengthMS, fadeMS; + uint64 file_len, lib_len, lib_raw_length, alib_len; + corlett_t *lib; + int i; + union cpuinfo mipsinfo; + + // clear PSX work RAM before we start scribbling in it + memset(psx_ram, 0, 2*1024*1024); + +// printf("Length = %d\n", length); + + // Decode the current GSF + if (corlett_decode(buffer, length, &file, &file_len, &c) != AO_SUCCESS) + { + return AO_FAIL; + } + +// printf("file_len %d reserve %d\n", file_len, c->res_size); + + // check for PSX EXE signature + if (strncmp((char *)file, "PS-X EXE", 8)) + { + return AO_FAIL; + } + + #if DEBUG_LOADER + offset = file[0x18] | file[0x19]<<8 | file[0x1a]<<16 | file[0x1b]<<24; + printf("Text section start: %x\n", offset); + offset = file[0x1c] | file[0x1d]<<8 | file[0x1e]<<16 | file[0x1f]<<24; + printf("Text section size: %x\n", offset); + printf("Region: [%s]\n", &file[0x4c]); + printf("refresh: [%s]\n", c->inf_refresh); + #endif + + if (c->inf_refresh[0] == '5') + { + psf_refresh = 50; + } + if (c->inf_refresh[0] == '6') + { + psf_refresh = 60; + } + + PC = file[0x10] | file[0x11]<<8 | file[0x12]<<16 | file[0x13]<<24; + GP = file[0x14] | file[0x15]<<8 | file[0x16]<<16 | file[0x17]<<24; + SP = file[0x30] | file[0x31]<<8 | file[0x32]<<16 | file[0x33]<<24; + + #if DEBUG_LOADER + printf("Top level: PC %x GP %x SP %x\n", PC, GP, SP); + #endif + + // Get the library file, if any + if (c->lib[0] != 0) + { + uint64 tmp_length; + + #if DEBUG_LOADER + printf("Loading library: %s\n", c->lib); + #endif + if (ao_get_lib(c->lib, &lib_raw_file, &tmp_length) != AO_SUCCESS) + { + return AO_FAIL; + } + lib_raw_length = tmp_length; + + if (corlett_decode(lib_raw_file, lib_raw_length, &lib_decoded, &lib_len, &lib) != AO_SUCCESS) + { + free(lib_raw_file); + return AO_FAIL; + } + + // Free up raw file + free(lib_raw_file); + + if (strncmp((char *)lib_decoded, "PS-X EXE", 8)) + { + printf("Major error! PSF was OK, but referenced library is not!\n"); + free(lib); + return AO_FAIL; + } + + #if DEBUG_LOADER + offset = lib_decoded[0x18] | lib_decoded[0x19]<<8 | lib_decoded[0x1a]<<16 | lib_decoded[0x1b]<<24; + printf("Text section start: %x\n", offset); + offset = lib_decoded[0x1c] | lib_decoded[0x1d]<<8 | lib_decoded[0x1e]<<16 | lib_decoded[0x1f]<<24; + printf("Text section size: %x\n", offset); + printf("Region: [%s]\n", &lib_decoded[0x4c]); + printf("refresh: [%s]\n", lib->inf_refresh); + #endif + + // if the original file had no refresh tag, give the lib a shot + if (psf_refresh == -1) + { + if (lib->inf_refresh[0] == '5') + { + psf_refresh = 50; + } + if (lib->inf_refresh[0] == '6') + { + psf_refresh = 60; + } + } + + PC = lib_decoded[0x10] | lib_decoded[0x11]<<8 | lib_decoded[0x12]<<16 | lib_decoded[0x13]<<24; + GP = lib_decoded[0x14] | lib_decoded[0x15]<<8 | lib_decoded[0x16]<<16 | lib_decoded[0x17]<<24; + SP = lib_decoded[0x30] | lib_decoded[0x31]<<8 | lib_decoded[0x32]<<16 | lib_decoded[0x33]<<24; + + #if DEBUG_LOADER + printf("Library: PC %x GP %x SP %x\n", PC, GP, SP); + #endif + + // now patch the file into RAM + offset = lib_decoded[0x18] | lib_decoded[0x19]<<8 | lib_decoded[0x1a]<<16 | lib_decoded[0x1b]<<24; + offset &= 0x3fffffff; // kill any MIPS cache segment indicators + plength = lib_decoded[0x1c] | lib_decoded[0x1d]<<8 | lib_decoded[0x1e]<<16 | lib_decoded[0x1f]<<24; + #if DEBUG_LOADER + printf("library offset: %x plength: %d\n", offset, plength); + #endif + memcpy(&psx_ram[offset/4], lib_decoded+2048, plength); + + // Dispose the corlett structure for the lib - we don't use it + free(lib); + } + + // now patch the main file into RAM OVER the libraries (but not the aux lib) + offset = file[0x18] | file[0x19]<<8 | file[0x1a]<<16 | file[0x1b]<<24; + offset &= 0x3fffffff; // kill any MIPS cache segment indicators + plength = file[0x1c] | file[0x1d]<<8 | file[0x1e]<<16 | file[0x1f]<<24; + + // Philosoma has an illegal "plength". *sigh* + if (plength > (file_len-2048)) + { + plength = file_len-2048; + } + memcpy(&psx_ram[offset/4], file+2048, plength); + + // load any auxiliary libraries now + for (i = 0; i < 8; i++) + { + if (c->libaux[i][0] != 0) + { + uint64 tmp_length; + + #if DEBUG_LOADER + printf("Loading aux library: %s\n", c->libaux[i]); + #endif + + if (ao_get_lib(c->libaux[i], &lib_raw_file, &tmp_length) != AO_SUCCESS) + { + return AO_FAIL; + } + lib_raw_length = tmp_length; + + if (corlett_decode(lib_raw_file, lib_raw_length, &alib_decoded, &alib_len, &lib) != AO_SUCCESS) + { + free(lib_raw_file); + return AO_FAIL; + } + + // Free up raw file + free(lib_raw_file); + + if (strncmp((char *)alib_decoded, "PS-X EXE", 8)) + { + printf("Major error! PSF was OK, but referenced library is not!\n"); + free(lib); + return AO_FAIL; + } + + #if DEBUG_LOADER + offset = alib_decoded[0x18] | alib_decoded[0x19]<<8 | alib_decoded[0x1a]<<16 | alib_decoded[0x1b]<<24; + printf("Text section start: %x\n", offset); + offset = alib_decoded[0x1c] | alib_decoded[0x1d]<<8 | alib_decoded[0x1e]<<16 | alib_decoded[0x1f]<<24; + printf("Text section size: %x\n", offset); + printf("Region: [%s]\n", &alib_decoded[0x4c]); + #endif + + // now patch the file into RAM + offset = alib_decoded[0x18] | alib_decoded[0x19]<<8 | alib_decoded[0x1a]<<16 | alib_decoded[0x1b]<<24; + offset &= 0x3fffffff; // kill any MIPS cache segment indicators + plength = alib_decoded[0x1c] | alib_decoded[0x1d]<<8 | alib_decoded[0x1e]<<16 | alib_decoded[0x1f]<<24; + memcpy(&psx_ram[offset/4], alib_decoded+2048, plength); + + // Dispose the corlett structure for the lib - we don't use it + free(lib); + } + } + + free(file); +// free(lib_decoded); + + // Finally, set psfby tag + strcpy(psfby, "n/a"); + if (c) + { + int i; + for (i = 0; i < MAX_UNKNOWN_TAGS; i++) + { + if (!strcasecmp(c->tag_name[i], "psfby")) + strcpy(psfby, c->tag_data[i]); + } + } + + mips_init(); + mips_reset(NULL); + + // set the initial PC, SP, GP + #if DEBUG_LOADER + printf("Initial PC %x, GP %x, SP %x\n", PC, GP, SP); + printf("Refresh = %d\n", psf_refresh); + #endif + mipsinfo.i = PC; + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + + // set some reasonable default for the stack + if (SP == 0) + { + SP = 0x801fff00; + } + + mipsinfo.i = SP; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R29, &mipsinfo); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R30, &mipsinfo); + + mipsinfo.i = GP; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R28, &mipsinfo); + + #if DEBUG_LOADER && 1 + { + FILE *f; + + f = fopen("psxram.bin", "wb"); + fwrite(psx_ram, 2*1024*1024, 1, f); + fclose(f); + } + #endif + + psx_hw_init(); + SPUinit(); + SPUopen(); + + lengthMS = psfTimeToMS(c->inf_length); + fadeMS = psfTimeToMS(c->inf_fade); + + #if DEBUG_LOADER + printf("length %d fade %d\n", lengthMS, fadeMS); + #endif + + if (lengthMS == 0) + { + lengthMS = ~0; + } + + setlength(lengthMS, fadeMS); + +// psx_ram[0x118b8/4] = LE32(0); // crash 2 hack + + // backup the initial state for restart + memcpy(initial_ram, psx_ram, 2*1024*1024); + memcpy(initial_scratch, psx_scratch, 0x400); + initialPC = PC; + initialGP = GP; + initialSP = SP; + + mips_execute(5000); + + return AO_SUCCESS; +} + +void spu_update(unsigned char* pSound,long lBytes) +{ + memcpy(spu_pOutput, pSound, lBytes); +} + +int32 psf_gen(int16 *buffer, uint32 samples) +{ + int i; + + for (i = 0; i < samples; i++) + { + psx_hw_slice(); + SPUasync(384); + } + + spu_pOutput = (char *)buffer; + SPU_flushboot(); + + psx_hw_frame(); + + return AO_SUCCESS; +} + +int32 psf_stop(void) +{ + SPUclose(); + free(c); + + return AO_SUCCESS; +} + +int32 psf_command(int32 command, int32 parameter) +{ + union cpuinfo mipsinfo; + uint32 lengthMS, fadeMS; + + switch (command) + { + case COMMAND_RESTART: + SPUclose(); + + memcpy(psx_ram, initial_ram, 2*1024*1024); + memcpy(psx_scratch, initial_scratch, 0x400); + + mips_init(); + mips_reset(NULL); + psx_hw_init(); + SPUinit(); + SPUopen(); + + lengthMS = psfTimeToMS(c->inf_length); + fadeMS = psfTimeToMS(c->inf_fade); + + if (lengthMS == 0) + { + lengthMS = ~0; + } + setlength(lengthMS, fadeMS); + + mipsinfo.i = initialPC; + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + mipsinfo.i = initialSP; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R29, &mipsinfo); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R30, &mipsinfo); + mipsinfo.i = initialGP; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R28, &mipsinfo); + + mips_execute(5000); + + return AO_SUCCESS; + + } + return AO_FAIL; +} diff -r c40585c57877 -r 7fc2c317d190 src/psf2/eng_psf2.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/eng_psf2.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,679 @@ +/* + Audio Overload SDK - PSF2 file format engine + + Copyright (c) 2007-2008 R. Belmont and Richard Bannister. + + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the names of R. Belmont and Richard Bannister nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +// +// Audio Overload +// Emulated music player +// +// (C) 2000-2008 Richard F. Bannister +// + +// +// eng_psf2.c +// +// References: +// psf_format.txt v1.6 by Neill Corlett (filesystem and decompression info) +// Intel ELF format specs ELF.PS (general ELF parsing info) +// http://ps2dev.org/kb.x?T=457 (IRX relocation and inter-module call info) +// http://ps2dev.org/ (the whole site - lots of IOP info) +// spu2regs.txt (comes with SexyPSF source: IOP hardware info) +// 64-bit ELF Object File Specification: http://techpubs.sgi.com/library/manuals/4000/007-4658-001/pdf/007-4658-001.pdf (MIPS ELF relocation types) + +#include +#include +#include +#include + +#include "ao.h" +#include "eng_protos.h" +#include "cpuintrf.h" +#include "psx.h" + +#include "peops2/stdafx.h" +#include "peops2/externals.h" +#include "peops2/regs.h" +#include "peops2/registers.h" +#include "peops2/spu.h" + +#include "corlett.h" + +#define DEBUG_LOADER (0) +#define MAX_FS (32) // maximum # of filesystems (libs and subdirectories) + +// ELF relocation helpers +#define ELF32_R_SYM(val) ((val) >> 8) +#define ELF32_R_TYPE(val) ((val) & 0xff) + +static corlett_t *c = NULL; +static char psfby[256]; +static char *spu_pOutput; + +// main RAM +extern uint32 psx_ram[(2*1024*1024)/4]; +extern uint32 initial_ram[(2*1024*1024)/4]; +static uint32 initialPC, initialSP; +static uint32 loadAddr, lengthMS, fadeMS; + +static uint8 *filesys[MAX_FS]; +static uint8 *lib_raw_file; +static uint32 fssize[MAX_FS]; +static int num_fs; + +extern void mips_init( void ); +extern void mips_reset( void *param ); +extern int mips_execute( int cycles ); +extern void mips_set_info(UINT32 state, union cpuinfo *info); +extern void psx_hw_init(void); +extern void ps2_hw_slice(void); +extern void ps2_hw_frame(void); +extern void setlength2(int32 stop, int32 fade); + +static uint32 secname(uint8 *start, uint32 strndx, uint32 shoff, uint32 shentsize, uint32 name) +{ + uint32 offset, shent; + + // get string table section + shent = shoff + (shentsize * strndx); + + // find the offset to the section + offset = start[shent+16] | start[shent+17]<<8 | start[shent+18]<<16 | start[shent+19]<<24; + + offset += name; + + return offset; +} + +static void do_iopmod(uint8 *start, uint32 offset) +{ + uint32 nameoffs, saddr, heap, tsize, dsize, bsize, vers2; + + nameoffs = start[offset] | start[offset+1]<<8 | start[offset+2]<<16 | start[offset+3]<<24; + + saddr = start[offset+4] | start[offset+5]<<8 | start[offset+6]<<16 | start[offset+7]<<24; + heap = start[offset+8] | start[offset+9]<<8 | start[offset+10]<<16 | start[offset+11]<<24; + tsize = start[offset+12] | start[offset+13]<<8 | start[offset+14]<<16 | start[offset+15]<<24; + dsize = start[offset+16] | start[offset+17]<<8 | start[offset+18]<<16 | start[offset+19]<<24; + bsize = start[offset+20] | start[offset+21]<<8 | start[offset+22]<<16 | start[offset+23]<<24; + vers2 = start[offset+24] | start[offset+25]<<8; + +// printf("nameoffs %08x saddr %08x heap %08x tsize %08x dsize %08x bsize %08x\n", nameoffs, saddr, heap, tsize, dsize, bsize); + #if DEBUG_LOADER + printf("vers: %04x name [%s]\n", vers2, &start[offset+26]); + #endif +} + +uint32 psf2_load_elf(uint8 *start, uint32 len) +{ + uint32 entry, phoff, shoff, phentsize, shentsize, phnum, shnum, shstrndx; + uint32 name, type, flags, addr, offset, size, shent; + uint32 totallen; + int i, rec; +// FILE *f; + + if (loadAddr & 3) + { + loadAddr &= ~3; + loadAddr += 4; + } + + #if DEBUG_LOADER + printf("psf2_load_elf: starting at %08x\n", loadAddr | 0x80000000); + #endif + + if ((start[0] != 0x7f) || (start[1] != 'E') || (start[2] != 'L') || (start[3] != 'F')) + { + printf("Not an ELF file\n"); + return 0xffffffff; + } + + entry = start[24] | start[25]<<8 | start[26]<<16 | start[27]<<24; // 0x18 + phoff = start[28] | start[29]<<8 | start[30]<<16 | start[31]<<24; // 0x1c + shoff = start[32] | start[33]<<8 | start[34]<<16 | start[35]<<24; // 0x20 + +// printf("Entry: %08x phoff %08x shoff %08x\n", entry, phoff, shoff); + + phentsize = start[42] | start[43]<<8; // 0x2a + phnum = start[44] | start[45]<<8; // 0x2c + shentsize = start[46] | start[47]<<8; // 0x2e + shnum = start[48] | start[49]<<8; // 0x30 + shstrndx = start[50] | start[51]<<8; // 0x32 + +// printf("phentsize %08x phnum %d shentsize %08x shnum %d shstrndx %d\n", phentsize, phnum, shentsize, shnum, shstrndx); + + // process ELF sections + shent = shoff; + totallen = 0; + for (i = 0; i < shnum; i++) + { + name = start[shent] | start[shent+1]<<8 | start[shent+2]<<16 | start[shent+3]<<24; + type = start[shent+4] | start[shent+5]<<8 | start[shent+6]<<16 | start[shent+7]<<24; + flags = start[shent+8] | start[shent+9]<<8 | start[shent+10]<<16 | start[shent+11]<<24; + addr = start[shent+12] | start[shent+13]<<8 | start[shent+14]<<16 | start[shent+15]<<24; + offset = start[shent+16] | start[shent+17]<<8 | start[shent+18]<<16 | start[shent+19]<<24; + size = start[shent+20] | start[shent+21]<<8 | start[shent+22]<<16 | start[shent+23]<<24; + +// printf("Section %02d: name %08x [%s] type %08x flags %08x addr %08x offset %08x size %08x\n", i, name, &start[secname(start, shstrndx, shoff, shentsize, name)], type, flags, addr, offset, size); + + switch (type) + { + case 0: // section table header - do nothing + break; + + case 1: // PROGBITS: copy data to destination + memcpy(&psx_ram[(loadAddr + addr)/4], &start[offset], size); + totallen += size; + break; + + case 2: // SYMTAB: ignore + break; + + case 3: // STRTAB: ignore + break; + + case 8: // NOBITS: BSS region, zero out destination + memset(&psx_ram[(loadAddr + addr)/4], 0, size); + totallen += size; + break; + + case 9: // REL: short relocation data + for (rec = 0; rec < (size/8); rec++) + { + uint32 offs, info, target, temp, val, vallo; + static uint32 hi16offs = 0, hi16target = 0; + + offs = start[offset+(rec*8)] | start[offset+1+(rec*8)]<<8 | start[offset+2+(rec*8)]<<16 | start[offset+3+(rec*8)]<<24; + info = start[offset+4+(rec*8)] | start[offset+5+(rec*8)]<<8 | start[offset+6+(rec*8)]<<16 | start[offset+7+(rec*8)]<<24; + target = LE32(psx_ram[(loadAddr+offs)/4]); + +// printf("[%04d] offs %08x type %02x info %08x => %08x\n", rec, offs, ELF32_R_TYPE(info), ELF32_R_SYM(info), target); + + switch (ELF32_R_TYPE(info)) + { + case 2: // R_MIPS_32 + target += loadAddr; +// target |= 0x80000000; + break; + + case 4: // R_MIPS_26 + temp = (target & 0x03ffffff); + target &= 0xfc000000; + temp += (loadAddr>>2); + target |= temp; + break; + + case 5: // R_MIPS_HI16 + hi16offs = offs; + hi16target = target; + break; + + case 6: // R_MIPS_LO16 + vallo = ((target & 0xffff) ^ 0x8000) - 0x8000; + + val = ((hi16target & 0xffff) << 16) + vallo; + val += loadAddr; +// val |= 0x80000000; + + /* Account for the sign extension that will happen in the low bits. */ + val = ((val >> 16) + ((val & 0x8000) != 0)) & 0xffff; + + hi16target = (hi16target & ~0xffff) | val; + + /* Ok, we're done with the HI16 relocs. Now deal with the LO16. */ + val = loadAddr + vallo; + target = (target & ~0xffff) | (val & 0xffff); + + psx_ram[(loadAddr+hi16offs)/4] = LE32(hi16target); + break; + + default: + printf("FATAL: Unknown MIPS ELF relocation!\n"); + return 0xffffffff; + break; + } + + psx_ram[(loadAddr+offs)/4] = LE32(target); + } + break; + + case 0x70000080: // .iopmod + do_iopmod(start, offset); + break; + + default: + #if DEBUG_LOADER + printf("Unhandled ELF section type %d\n", type); + #endif + break; + } + + shent += shentsize; + } + + entry += loadAddr; + entry |= 0x80000000; + loadAddr += totallen; + + #if DEBUG_LOADER + printf("psf2_load_elf: entry PC %08x\n", entry); + #endif + return entry; +} + +static uint32 load_file_ex(uint8 *top, uint8 *start, uint32 len, char *file, uint8 *buf, uint32 buflen) +{ + int32 numfiles, i, j; + uint8 *cptr; + uint32 offs, uncomp, bsize, cofs, uofs; + uint32 X; + uLongf dlength; + int uerr; + char matchname[512], *remainder; + + // strip out to only the directory name + i = 0; + while ((file[i] != '/') && (file[i] != '\\') && (file[i] != '\0')) + { + matchname[i] = file[i]; + i++; + } + matchname[i] = '\0'; + remainder = &file[i+1]; + + cptr = start + 4; + + numfiles = start[0] | start[1]<<8 | start[2]<<16 | start[3]<<24; + + for (i = 0; i < numfiles; i++) + { + offs = cptr[36] | cptr[37]<<8 | cptr[38]<<16 | cptr[39]<<24; + uncomp = cptr[40] | cptr[41]<<8 | cptr[42]<<16 | cptr[43]<<24; + bsize = cptr[44] | cptr[45]<<8 | cptr[46]<<16 | cptr[47]<<24; + + #if DEBUG_LOADER + printf("[%s vs %s]: ofs %08x uncomp %08x bsize %08x\n", cptr, matchname, offs, uncomp, bsize); + #endif + + if (!strcasecmp((char *)cptr, matchname)) + { + if ((uncomp == 0) && (bsize == 0)) + { + #if DEBUG_LOADER + printf("Drilling into subdirectory [%s] with [%s] at offset %x\n", matchname, remainder, offs); + #endif + return load_file_ex(top, &top[offs], len-offs, remainder, buf, buflen); + } + + X = (uncomp + bsize - 1) / bsize; + + cofs = offs + (X*4); + uofs = 0; + for (j = 0; j < X; j++) + { + uint32 usize; + + usize = top[offs+(j*4)] | top[offs+1+(j*4)]<<8 | top[offs+2+(j*4)]<<16 | top[offs+3+(j*4)]<<24; + + dlength = buflen - uofs; + + uerr = uncompress(&buf[uofs], &dlength, &top[cofs], usize); + if (uerr != Z_OK) + { + printf("Decompress fail: %x %d!\n", dlength, uerr); + return 0xffffffff; + } + + cofs += usize; + uofs += dlength; + } + + return uncomp; + } + else + { + cptr += 48; + } + } + + return 0xffffffff; +} + +static uint32 load_file(int fs, char *file, uint8 *buf, uint32 buflen) +{ + return load_file_ex(filesys[fs], filesys[fs], fssize[fs], file, buf, buflen); +} + +#if 0 +static dump_files(int fs, uint8 *buf, uint32 buflen) +{ + int32 numfiles, i, j; + uint8 *cptr; + uint32 offs, uncomp, bsize, cofs, uofs; + uint32 X; + uLongf dlength; + int uerr; + uint8 *start; + uint32 len; + FILE *f; + char tfn[128]; + + printf("Dumping FS %d\n", fs); + + start = filesys[fs]; + len = fssize[fs]; + + cptr = start + 4; + + numfiles = start[0] | start[1]<<8 | start[2]<<16 | start[3]<<24; + + for (i = 0; i < numfiles; i++) + { + offs = cptr[36] | cptr[37]<<8 | cptr[38]<<16 | cptr[39]<<24; + uncomp = cptr[40] | cptr[41]<<8 | cptr[42]<<16 | cptr[43]<<24; + bsize = cptr[44] | cptr[45]<<8 | cptr[46]<<16 | cptr[47]<<24; + + if (bsize > 0) + { + X = (uncomp + bsize - 1) / bsize; + + printf("[dump %s]: ofs %08x uncomp %08x bsize %08x\n", cptr, offs, uncomp, bsize); + + cofs = offs + (X*4); + uofs = 0; + for (j = 0; j < X; j++) + { + uint32 usize; + + usize = start[offs+(j*4)] | start[offs+1+(j*4)]<<8 | start[offs+2+(j*4)]<<16 | start[offs+3+(j*4)]<<24; + + dlength = buflen - uofs; + + uerr = uncompress(&buf[uofs], &dlength, &start[cofs], usize); + if (uerr != Z_OK) + { + printf("Decompress fail: %x %d!\n", dlength, uerr); + return 0xffffffff; + } + + cofs += usize; + uofs += dlength; + } + + sprintf(tfn, "iopfiles/%s", cptr); + f = fopen(tfn, "wb"); + fwrite(buf, uncomp, 1, f); + fclose(f); + } + else + { + printf("[subdir %s]: ofs %08x uncomp %08x bsize %08x\n", cptr, offs, uncomp, bsize); + } + + cptr += 48; + } + + return 0xffffffff; +} +#endif + +// find a file on our filesystems +uint32 psf2_load_file(char *file, uint8 *buf, uint32 buflen) +{ + int i; + uint32 flen; + + for (i = 0; i < num_fs; i++) + { + flen = load_file(i, file, buf, buflen); + if (flen != 0xffffffff) + { + return flen; + } + } + + return 0xffffffff; +} + +int32 psf2_start(uint8 *buffer, uint32 length) +{ + uint8 *file, *lib_decoded; + uint32 irx_len; + uint64 file_len, lib_raw_length, lib_len; + uint8 *buf; + union cpuinfo mipsinfo; + corlett_t *lib; + + loadAddr = 0x23f00; // this value makes allocations work out similarly to how they would + // in Highly Experimental (as per Shadow Hearts' hard-coded assumptions) + + // clear IOP work RAM before we start scribbling in it + memset(psx_ram, 0, 2*1024*1024); + + // Decode the current PSF2 + if (corlett_decode(buffer, length, &file, &file_len, &c) != AO_SUCCESS) + { + return AO_FAIL; + } + + if (file_len > 0) printf("ERROR: PSF2 can't have a program section! ps %08x\n", file_len); + + #if DEBUG_LOADER + printf("FS section: size %x\n", c->res_size); + #endif + + num_fs = 1; + filesys[0] = (uint8 *)c->res_section; + fssize[0] = c->res_size; + + // Get the library file, if any + if (c->lib[0] != 0) + { + uint64 tmp_length; + + #if DEBUG_LOADER + printf("Loading library: %s\n", c->lib); + #endif + if (ao_get_lib(c->lib, &lib_raw_file, &tmp_length) != AO_SUCCESS) + { + return AO_FAIL; + } + lib_raw_length = tmp_length; + + if (corlett_decode(lib_raw_file, lib_raw_length, &lib_decoded, &lib_len, &lib) != AO_SUCCESS) + { + free(lib_raw_file); + return AO_FAIL; + } + + #if DEBUG_LOADER + printf("Lib FS section: size %x bytes\n", lib->res_size); + #endif + + num_fs++; + filesys[1] = (uint8 *)lib->res_section; + fssize[1] = lib->res_size; + } + + // dump all files + #if 0 + buf = (uint8 *)malloc(16*1024*1024); + dump_files(0, buf, 16*1024*1024); + if (c->lib[0] != 0) + dump_files(1, buf, 16*1024*1024); + free(buf); + #endif + + // load psf2.irx, which kicks everything off + buf = (uint8 *)malloc(512*1024); + irx_len = psf2_load_file("psf2.irx", buf, 512*1024); + + if (irx_len != 0xffffffff) + { + initialPC = psf2_load_elf(buf, irx_len); + initialSP = 0x801ffff0; + } + free(buf); + + if (initialPC == 0xffffffff) + { + return AO_FAIL; + } + + lengthMS = psfTimeToMS(c->inf_length); + fadeMS = psfTimeToMS(c->inf_fade); + if (lengthMS == 0) + { + lengthMS = ~0; + } + setlength2(lengthMS, fadeMS); + + mips_init(); + mips_reset(NULL); + + mipsinfo.i = initialPC; + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + + mipsinfo.i = initialSP; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R29, &mipsinfo); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R30, &mipsinfo); + + // set RA + mipsinfo.i = 0x80000000; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + + // set A0 & A1 to point to "aofile:/" + mipsinfo.i = 2; // argc + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R4, &mipsinfo); + + mipsinfo.i = 0x80000004; // argv + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R5, &mipsinfo); + psx_ram[1] = LE32(0x80000008); + + buf = (uint8 *)&psx_ram[2]; + strcpy((char *)buf, "aofile:/"); + + psx_ram[0] = LE32(FUNCT_HLECALL); + + // back up initial RAM image to quickly restart songs + memcpy(initial_ram, psx_ram, 2*1024*1024); + + psx_hw_init(); + SPU2init(); + SPU2open(NULL); + + return AO_SUCCESS; +} + +int32 psf2_execute(InputPlayback *playback) +{ + int i; + + while (playback->playing && !playback->eof) + { + for (i = 0; i < 44100 / 60; i++) + { + SPU2async(1, playback); + ps2_hw_slice(); + } + + ps2_hw_frame(); + } + + return AO_SUCCESS; +} + +int32 psf2_stop(void) +{ + SPU2close(); + if (c->lib[0] != 0) + { + free(lib_raw_file); + } + free(c); + + return AO_SUCCESS; +} + +int32 psf2_command(int32 command, int32 parameter) +{ + union cpuinfo mipsinfo; + uint32 lengthMS, fadeMS; + + switch (command) + { + case COMMAND_RESTART: + SPU2close(); + + memcpy(psx_ram, initial_ram, 2*1024*1024); + + mips_init(); + mips_reset(NULL); + psx_hw_init(); + SPU2init(); + SPU2open(NULL); + + mipsinfo.i = initialPC; + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + + mipsinfo.i = initialSP; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R29, &mipsinfo); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R30, &mipsinfo); + + // set RA + mipsinfo.i = 0x80000000; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + + // set A0 & A1 to point to "aofile:/" + mipsinfo.i = 2; // argc + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R4, &mipsinfo); + + mipsinfo.i = 0x80000004; // argv + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R5, &mipsinfo); + + psx_hw_init(); + + lengthMS = psfTimeToMS(c->inf_length); + fadeMS = psfTimeToMS(c->inf_fade); + if (lengthMS == 0) + { + lengthMS = ~0; + } + setlength2(lengthMS, fadeMS); + + return AO_SUCCESS; + + } + return AO_FAIL; +} + +uint32 psf2_get_loadaddr(void) +{ + return loadAddr; +} + +void psf2_set_loadaddr(uint32 new) +{ + loadAddr = new; +} diff -r c40585c57877 -r 7fc2c317d190 src/psf2/eng_spu.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/eng_spu.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,307 @@ +/* + Audio Overload SDK - SPU file format engine + + Copyright (c) 2007 R. Belmont and Richard Bannister. + + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the names of R. Belmont and Richard Bannister nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +// +// eng_spu.c +// +// Note: support for old-format files is not tested and may not work. All the rips I could find +// are in the newer format. Also, CDDA and XA commands do not work - I've not found a rip using them. +// + +#include +#include +#include + +#include "ao.h" +#include "eng_protos.h" +#include "cpuintrf.h" +#include "psx.h" + +extern int SPUinit(void); +extern int SPUopen(void); +extern int SPUclose(void); +extern void SPUinjectRAMImage(unsigned short *source); + +static uint8 *start_of_file, *song_ptr; +static uint32 cur_tick, cur_event, num_events, next_tick, end_tick; +static int old_fmt; +static char name[128], song[128], company[128]; + +int32 spu_start(uint8 *buffer, uint32 length) +{ + int i; + uint16 reg; + + if (strncmp((char *)buffer, "SPU", 3)) + { + return AO_FAIL; + } + + start_of_file = buffer; + + SPUinit(); + SPUopen(); + setlength(~0, 0); + + // upload the SPU RAM image + SPUinjectRAMImage((unsigned short *)&buffer[0]); + + // apply the register image + for (i = 0; i < 512; i += 2) + { + reg = buffer[0x80000+i] | buffer[0x80000+i+1]<<8; + + SPUwriteRegister((i/2)+0x1f801c00, reg); + } + + old_fmt = 1; + + if ((buffer[0x80200] != 0x44) || (buffer[0x80201] != 0xac) || (buffer[0x80202] != 0x00) || (buffer[0x80203] != 0x00)) + { + old_fmt = 0; + } + + if (old_fmt) + { + num_events = buffer[0x80204] | buffer[0x80205]<<8 | buffer[0x80206]<<16 | buffer[0x80207]<<24; + + if (((num_events * 12) + 0x80208) > length) + { + old_fmt = 0; + } + else + { + cur_tick = 0; + } + } + + if (!old_fmt) + { + end_tick = buffer[0x80200] | buffer[0x80201]<<8 | buffer[0x80202]<<16 | buffer[0x80203]<<24; + cur_tick = buffer[0x80204] | buffer[0x80205]<<8 | buffer[0x80206]<<16 | buffer[0x80207]<<24; + next_tick = cur_tick; + } + + song_ptr = &buffer[0x80208]; + cur_event = 0; + + strncpy((char *)&buffer[4], name, 128); + strncpy((char *)&buffer[0x44], song, 128); + strncpy((char *)&buffer[0x84], company, 128); + + return AO_SUCCESS; +} + +extern int SPUasync(uint32 cycles); +extern void SPU_flushboot(void); + +extern char *spu_pOutput; // this is a bit lame, but we'll deal + +static void spu_tick(void) +{ + uint32 time, reg, size; + uint16 rdata; + uint8 opcode; + + if (old_fmt) + { + time = song_ptr[0] | song_ptr[1]<<8 | song_ptr[2]<<16 | song_ptr[3]<<24; + + while ((time == cur_tick) && (cur_event < num_events)) + { + reg = song_ptr[4] | song_ptr[5]<<8 | song_ptr[6]<<16 | song_ptr[7]<<24; + rdata = song_ptr[8] | song_ptr[9]<<8; + + SPUwriteRegister(reg, rdata); + + cur_event++; + song_ptr += 12; + + time = song_ptr[0] | song_ptr[1]<<8 | song_ptr[2]<<16 | song_ptr[3]<<24; + } + } + else + { + if (cur_tick < end_tick) + { + while (cur_tick == next_tick) + { + opcode = song_ptr[0]; + song_ptr++; + + switch (opcode) + { + case 0: // write register + reg = song_ptr[0] | song_ptr[1]<<8 | song_ptr[2]<<16 | song_ptr[3]<<24; + rdata = song_ptr[4] | song_ptr[5]<<8; + + SPUwriteRegister(reg, rdata); + + next_tick = song_ptr[6] | song_ptr[7]<<8 | song_ptr[8]<<16 | song_ptr[9]<<24; + song_ptr += 10; + break; + + case 1: // read register + reg = song_ptr[0] | song_ptr[1]<<8 | song_ptr[2]<<16 | song_ptr[3]<<24; + SPUreadRegister(reg); + next_tick = song_ptr[4] | song_ptr[5]<<8 | song_ptr[6]<<16 | song_ptr[7]<<24; + song_ptr += 8; + break; + + case 2: // dma write + size = song_ptr[0] | song_ptr[1]<<8 | song_ptr[2]<<16 | song_ptr[3]<<24; + song_ptr += (4 + size); + next_tick = song_ptr[0] | song_ptr[1]<<8 | song_ptr[2]<<16 | song_ptr[3]<<24; + song_ptr += 4; + break; + + case 3: // dma read + next_tick = song_ptr[4] | song_ptr[5]<<8 | song_ptr[6]<<16 | song_ptr[7]<<24; + song_ptr += 8; + break; + + case 4: // xa play + song_ptr += (32 + 16384); + next_tick = song_ptr[0] | song_ptr[1]<<8 | song_ptr[2]<<16 | song_ptr[3]<<24; + song_ptr += 4; + break; + + case 5: // cdda play + size = song_ptr[0] | song_ptr[1]<<8 | song_ptr[2]<<16 | song_ptr[3]<<24; + song_ptr += (4 + size); + next_tick = song_ptr[0] | song_ptr[1]<<8 | song_ptr[2]<<16 | song_ptr[3]<<24; + song_ptr += 4; + break; + + default: + printf("Unknown opcode %d\n", opcode); + exit(-1); + break; + } + } + } + else + { +// ao_song_done = 1; + } + } + + cur_tick++; +} + +int32 spu_gen(int16 *buffer, uint32 samples) +{ + int i, run = 1; + + if (old_fmt) + { + if (cur_event >= num_events) + { + run = 0; + } + } + else + { + if (cur_tick >= end_tick) + { + run = 0; + } + } + + if (run) + { + for (i = 0; i < samples; i++) + { + spu_tick(); + SPUasync(384); + } + + spu_pOutput = (char *)buffer; + SPU_flushboot(); + } + else + { + memset(buffer, 0, samples*2*sizeof(int16)); + } + + return AO_SUCCESS; +} + +int32 spu_stop(void) +{ + return AO_SUCCESS; +} + +int32 spu_command(int32 command, int32 parameter) +{ + switch (command) + { + case COMMAND_GET_MIN: + case COMMAND_GET_MAX: + { + return 0; + } + break; + + case COMMAND_HAS_PREV: + case COMMAND_HAS_NEXT: + case COMMAND_PREV: + case COMMAND_NEXT: + case COMMAND_JUMP: + { + return AO_FAIL; + } + break; + + case COMMAND_RESTART: + { + song_ptr = &start_of_file[0x80200]; + + if (old_fmt) + { + num_events = song_ptr[4] | song_ptr[5]<<8 | song_ptr[6]<<16 | song_ptr[7]<<24; + } + else + { + end_tick = song_ptr[0] | song_ptr[1]<<8 | song_ptr[2]<<16 | song_ptr[3]<<24; + cur_tick = song_ptr[4] | song_ptr[5]<<8 | song_ptr[6]<<16 | song_ptr[7]<<24; + } + + song_ptr += 8; + cur_event = 0; + return AO_SUCCESS; + } + break; + +#if VERBOSE + default: + printf("Unknown command executed!\n"); + break; +#endif + } + + return AO_FAIL; +} diff -r c40585c57877 -r 7fc2c317d190 src/psf2/license.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/license.txt Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,236 @@ +Here is a list of the licenses each file in this package are under, and their text. + +The upshot is this: if you create anything from this PSFSDK and include any MAME licensed components +(which are an integral part of each engine supplied) you must distribute the source code to your +derivative program. + + +===================================================================================== + +BSD license: + +Copyright (c) 2007-2008, R. Belmont and Richard Bannister. + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +* Neither the names of R. Belmont and Richard Bannister nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===================================================================================== + +MAME license: + +Copyright (c) 1997-2008, Nicola Salmoria and the MAME team +All rights reserved. + +Redistribution and use of this code or any derivative works are permitted provided that the following conditions are met: + + * Redistributions may not be sold, nor may they be used in a commercial product or activity. + * Redistributions that are modified from the original source must include the complete source code, including the source code for all components used by a binary built from the modified sources. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. + * Redistributions must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +===================================================================================== + +GPL license: + +Too long to include here. + +See eng_psf/peops/License.txt or eng_psf/peops2/License.txt for the complete text. + +While legally combining GPL with BSD and MAME licensed software is unclear, Pete Bernert +will probably be OK with anything you do as long as you distribute the source for your +AOSDK based creations. + +===================================================================================== + +ZLIB license: + +/* zlib.h -- interface of the 'zlib' general purpose compression library + version 1.2.2, October 3rd, 2004 + + Copyright (C) 1995-2004 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly jloup@gzip.org + Mark Adler madler@alumni.caltech.edu + +*/ + +===================================================================================== + +List of files and their licenses: + +ao.h BSD +corlett.c BSD +corlett.h BSD +cpuintrf.h BSD +dsnd.c BSD +eng_protos.h BSD +main.c BSD +Makefile BSD +mem.h BSD +osd_cpu.h MAME +oss.c BSD +oss.h BSD + +eng_dsf: + +aica.c MAME +aica.h MAME +aicadsp.c MAME +aicadsp.h MAME +aicalfo.c MAME +arm7.c MAME +arm7.h MAME +arm7i.c MAME +arm7i.h MAME +arm7memil.c MAME +eng_dsf.c BSD +dc_hw.c BSD +dc_hw.h BSD + +eng_qsf: + +eng_qsf.c BSD +kabuki.c MAME +qsound.c MAME +qsound.h MAME +z80.c MAME +z80dasm.c MAME +z80dasm.h MAME +z80.h MAME + +eng_ssf: + +eng_ssf.c BSD +m68kconf.h MAME +m68kcpu.c MAME +m68kcpu.h MAME +m68k.h MAME +m68k_in.c MAME +m68kmake.c MAME +m68kmame.h MAME +m68kopac.c MAME +m68kopdm.c MAME +m68kopnz.c MAME +m68kops.c MAME +m68kops.h MAME +sat_hw.c BSD +sat_hw.h BSD +scsp.c MAME +scspdsp.c MAME +scspdsp.h MAME +scsp.h MAME +scsplfo.c MAME + +eng_psf: + +eng_psf2.c BSD +eng_psf.c BSD +eng_spu.c BSD +psx_hw.c BSD +psx.c MAME +psx.h MAME +cpuintrf.h MAME +mamemem.h MAME + +eng_psf/peops: + +adsr.c GPL +adsr.h GPL +dma.c GPL +dma.h GPL +externals.h GPL +gauss_i.h GPL +registers.c GPL +registers.h GPL +regs.h GPL +reverb.c GPL +spu.c GPL +spu.h GPL +stdafx.h GPL + + +eng_psf/peops2: + +adsr.c GPL +adsr.h GPL +dma.c GPL +dma.h GPL +externals.h GPL +gauss_i.h GPL +psemuxa.h GPL +registers.c GPL +registers.h GPL +regs.h GPL +reverb.c GPL +reverb.h GPL +spu.c GPL +spu.h GPL +stdafx.h GPL +xa.c GPL + + + +zlib: + +adler32.c ZLIB +compress.c ZLIB +crc32.c ZLIB +crc32.h ZLIB +crypt.h ZLIB +deflate.c ZLIB +deflate.h ZLIB +gzio.c ZLIB +infback.c ZLIB +inffast.c ZLIB +inffast.h ZLIB +inffixed.h ZLIB +inflate.c ZLIB +inflate.h ZLIB +inftrees.c ZLIB +inftrees.h ZLIB +ioapi.c ZLIB +ioapi.h ZLIB +trees.c ZLIB +trees.h ZLIB +uncompr.c ZLIB +unzip.c ZLIB +unzip.h ZLIB +zconf.h ZLIB +zlib.h ZLIB +zutil.c ZLIB +zutil.h ZLIB + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/mamemem.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/mamemem.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,662 @@ +#ifndef _MEMORY_H +#define _MEMORY_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef __GNU__ +#define UNUSEDARG __attribute__((__unused__)) +#else +#define UNUSEDARG +#endif + +#define MAX_BANKS 20 + + +/* obsolete, to be removed */ +#define READ_WORD(a) (*(UINT16 *)(a)) +#define WRITE_WORD(a,d) (*(UINT16 *)(a) = (d)) +#define COMBINE_WORD(w,d) (((w) & ((d) >> 16)) | ((d) & 0xffff)) +#define COMBINE_WORD_MEM(a,d) (WRITE_WORD((a), (READ_WORD(a) & ((d) >> 16)) | (d))) + +#define ASSERT_LINE (1) +#define CLEAR_LINE (0) +#define TIME_NEVER (0) + +#define TIME_IN_HZ(hz) (1.0 / (double)(hz)) +#define TIME_IN_MSEC(ms) ((double)(ms) * (1.0 / 1000.0)) +#define TIME_IN_USEC(us) ((double)(us) * (1.0 / 1000000.0)) + +/*************************************************************************** + +Note that the memory hooks are not passed the actual memory address where +the operation takes place, but the offset from the beginning of the block +they are assigned to. This makes handling of mirror addresses easier, and +makes the handlers a bit more "object oriented". If you handler needs to +read/write the main memory area, provide a "base" pointer: it will be +initialized by the main engine to point to the beginning of the memory block +assigned to the handler. You may also provided a pointer to "size": it +will be set to the length of the memory area processed by the handler. + +***************************************************************************/ + +#define MEMORY_WIDTH_MASK 0x00000003 +#define MEMORY_WIDTH_8 0x00000001 +#define MEMORY_WIDTH_16 0x00000002 +#define MEMORY_WIDTH_32 0x00000003 + +#define MEMORY_TYPE_MASK 0x30000000 +#define MEMORY_TYPE_MEM 0x10000000 +#define MEMORY_TYPE_IO 0x20000000 + +#define MEMORY_DIRECTION_MASK 0xc0000000 +#define MEMORY_DIRECTION_READ 0x40000000 +#define MEMORY_DIRECTION_WRITE 0x80000000 + +typedef unsigned int offs_t; +typedef offs_t (*opbase_handler)(UNUSEDARG offs_t address); + +/*************************************************************************** + 8-BIT Core memory read/write/opbase handler types +***************************************************************************/ + +typedef unsigned char data8_t; +typedef unsigned short data16_t; + +typedef data8_t (*mem_read_handler)(UNUSEDARG offs_t offset); +typedef void (*mem_write_handler)(UNUSEDARG offs_t offset, UNUSEDARG data8_t data); + +#define READ_HANDLER(name) data8_t name(UNUSEDARG offs_t offset) +#define WRITE_HANDLER(name) void name(UNUSEDARG offs_t offset, UNUSEDARG data8_t data) +#define OPBASE_HANDLER(name) offs_t name(UNUSEDARG offs_t address) + +#define READ16_HANDLER(name) data16_t name(UNUSEDARG offs_t offset, UNUSEDARG UINT32 mem_mask) +#define WRITE16_HANDLER(name) void name(UNUSEDARG offs_t offset, UNUSEDARG data16_t data, UNUSEDARG UINT32 mem_mask) +#define OPBASE16_HANDLER(name) offs_t name(UNUSEDARG offs_t address) + +#define MRA_NOP 0 /* don't care, return 0 */ +#define MWA_NOP 0 /* do nothing */ +#define MRA_RAM ((mem_read_handler)-1) /* plain RAM location (return its contents) */ +#define MWA_RAM ((mem_write_handler)-1) /* plain RAM location (store the value) */ +#define MRA_ROM ((mem_read_handler)-2) /* plain ROM location (return its contents) */ +#define MWA_ROM ((mem_write_handler)-2) /* plain ROM location (do nothing) */ +/************************************************************************** + * If the CPU opcodes are encrypted, they are fetched from a different + * memory space. In such a case, if the program dynamically creates code + * in RAM and executes it, it won't work unless you use MWA_RAMROM + * to affect both memory spaces. + **************************************************************************/ +#define MWA_RAMROM ((mem_write_handler)-3) + +/* bank memory */ +#define MRA_BANK1 ((mem_read_handler)-10) +#define MWA_BANK1 ((mem_write_handler)-10) +#define MRA_BANK2 ((mem_read_handler)-11) +#define MWA_BANK2 ((mem_write_handler)-11) +#define MRA_BANK3 ((mem_read_handler)-12) +#define MWA_BANK3 ((mem_write_handler)-12) +#define MRA_BANK4 ((mem_read_handler)-13) +#define MWA_BANK4 ((mem_write_handler)-13) +#define MRA_BANK5 ((mem_read_handler)-14) +#define MWA_BANK5 ((mem_write_handler)-14) +#define MRA_BANK6 ((mem_read_handler)-15) +#define MWA_BANK6 ((mem_write_handler)-15) +#define MRA_BANK7 ((mem_read_handler)-16) +#define MWA_BANK7 ((mem_write_handler)-16) +#define MRA_BANK8 ((mem_read_handler)-17) +#define MWA_BANK8 ((mem_write_handler)-17) +#define MRA_BANK9 ((mem_read_handler)-18) +#define MWA_BANK9 ((mem_write_handler)-18) +#define MRA_BANK10 ((mem_read_handler)-19) +#define MWA_BANK10 ((mem_write_handler)-19) +#define MRA_BANK11 ((mem_read_handler)-20) +#define MWA_BANK11 ((mem_write_handler)-20) +#define MRA_BANK12 ((mem_read_handler)-21) +#define MWA_BANK12 ((mem_write_handler)-21) +#define MRA_BANK13 ((mem_read_handler)-22) +#define MWA_BANK13 ((mem_write_handler)-22) +#define MRA_BANK14 ((mem_read_handler)-23) +#define MWA_BANK14 ((mem_write_handler)-23) +#define MRA_BANK15 ((mem_read_handler)-24) +#define MWA_BANK15 ((mem_write_handler)-24) +#define MRA_BANK16 ((mem_read_handler)-25) +#define MWA_BANK16 ((mem_write_handler)-25) +#define MRA_BANK17 ((mem_read_handler)-26) +#define MWA_BANK17 ((mem_write_handler)-26) +#define MRA_BANK18 ((mem_read_handler)-27) +#define MWA_BANK18 ((mem_write_handler)-27) +#define MRA_BANK19 ((mem_read_handler)-28) +#define MWA_BANK19 ((mem_write_handler)-28) +#define MRA_BANK20 ((mem_read_handler)-29) +#define MWA_BANK20 ((mem_write_handler)-29) + +struct Memory_ReadAddress +{ + offs_t start, end; + mem_read_handler handler; /* see special values above */ +}; + +struct Memory_WriteAddress +{ + offs_t start, end; + mem_write_handler handler; /* see special values above */ + data8_t **base; /* optional (see explanation above) */ + size_t *size; /* optional (see explanation above) */ +}; + +#define MEMORY_MARKER ((offs_t)~0) + +#define MEMORY_END { MEMORY_MARKER, 0 } }; + +#define IS_MEMORY_MARKER( ma ) ((ma)->start == MEMORY_MARKER && (ma)->end < MEMORY_MARKER) +#define IS_MEMORY_END( ma ) ((ma)->start == MEMORY_MARKER && (ma)->end == 0) + +#define MEMORY_READ_START(name) const struct Memory_ReadAddress name[] = { \ + { MEMORY_MARKER, MEMORY_DIRECTION_READ | MEMORY_TYPE_MEM | MEMORY_WIDTH_8 }, +#define MEMORY_WRITE_START(name) const struct Memory_WriteAddress name[] = { \ + { MEMORY_MARKER, MEMORY_DIRECTION_WRITE | MEMORY_TYPE_MEM | MEMORY_WIDTH_8 }, + +/*************************************************************************** + 16-BIT Core memory read/write/opbase handler types +***************************************************************************/ + +typedef data16_t (*mem_read16_handler)(UNUSEDARG offs_t offset); +typedef void (*mem_write16_handler)(UNUSEDARG offs_t offset, UNUSEDARG data16_t data, UNUSEDARG UINT32 mem_mask); + +#define READ16_HANDLER(name) data16_t name(UNUSEDARG offs_t offset, UNUSEDARG UINT32 mem_mask) +#define WRITE16_HANDLER(name) void name(UNUSEDARG offs_t offset, UNUSEDARG data16_t data, UNUSEDARG UINT32 mem_mask) +#define OPBASE16_HANDLER(name) offs_t name(UNUSEDARG offs_t address) + +#define MRA16_NOP 0 /* don't care, return 0 */ +#define MWA16_NOP 0 /* do nothing */ +#define MRA16_RAM ((mem_read16_handler)-1) /* plain RAM location (return its contents) */ +#define MWA16_RAM ((mem_write16_handler)-1) /* plqain RAM location (store the value) */ +#define MRA16_ROM ((mem_read16_handler)-2) /* plain ROM location (return its contents) */ +#define MWA16_ROM ((mem_write16_handler)-2) /* plain ROM location (do nothing) */ +/************************************************************************** + * If the CPU opcodes are encrypted, they are fetched from a different + * memory space. In such a case, if the program dynamically creates code + * in RAM and executes it, it won't work unless you use MWA_RAMROM + * to affect both memory spaces. + **************************************************************************/ +#define MWA16_RAMROM ((mem_write16_handler)-3) + +/* bank memory */ +#define MRA16_BANK1 ((mem_read16_handler)-10) +#define MWA16_BANK1 ((mem_write16_handler)-10) +#define MRA16_BANK2 ((mem_read16_handler)-11) +#define MWA16_BANK2 ((mem_write16_handler)-11) +#define MRA16_BANK3 ((mem_read16_handler)-12) +#define MWA16_BANK3 ((mem_write16_handler)-12) +#define MRA16_BANK4 ((mem_read16_handler)-13) +#define MWA16_BANK4 ((mem_write16_handler)-13) +#define MRA16_BANK5 ((mem_read16_handler)-14) +#define MWA16_BANK5 ((mem_write16_handler)-14) +#define MRA16_BANK6 ((mem_read16_handler)-15) +#define MWA16_BANK6 ((mem_write16_handler)-15) +#define MRA16_BANK7 ((mem_read16_handler)-16) +#define MWA16_BANK7 ((mem_write16_handler)-16) +#define MRA16_BANK8 ((mem_read16_handler)-17) +#define MWA16_BANK8 ((mem_write16_handler)-17) +#define MRA16_BANK9 ((mem_read16_handler)-18) +#define MWA16_BANK9 ((mem_write16_handler)-18) +#define MRA16_BANK10 ((mem_read16_handler)-19) +#define MWA16_BANK10 ((mem_write16_handler)-19) +#define MRA16_BANK11 ((mem_read16_handler)-20) +#define MWA16_BANK11 ((mem_write16_handler)-20) +#define MRA16_BANK12 ((mem_read16_handler)-21) +#define MWA16_BANK12 ((mem_write16_handler)-21) +#define MRA16_BANK13 ((mem_read16_handler)-22) +#define MWA16_BANK13 ((mem_write16_handler)-22) +#define MRA16_BANK14 ((mem_read16_handler)-23) +#define MWA16_BANK14 ((mem_write16_handler)-23) +#define MRA16_BANK15 ((mem_read16_handler)-24) +#define MWA16_BANK15 ((mem_write16_handler)-24) +#define MRA16_BANK16 ((mem_read16_handler)-25) +#define MWA16_BANK16 ((mem_write16_handler)-25) +#define MRA16_BANK17 ((mem_read16_handler)-26) +#define MWA16_BANK17 ((mem_write16_handler)-26) +#define MRA16_BANK18 ((mem_read16_handler)-27) +#define MWA16_BANK18 ((mem_write16_handler)-27) +#define MRA16_BANK19 ((mem_read16_handler)-28) +#define MWA16_BANK19 ((mem_write16_handler)-28) +#define MRA16_BANK20 ((mem_read16_handler)-29) +#define MWA16_BANK20 ((mem_write16_handler)-29) + +struct Memory_ReadAddress16 +{ + offs_t start, end; + mem_read16_handler handler; /* see special values above */ +}; + +struct Memory_WriteAddress16 +{ + offs_t start, end; + mem_write16_handler handler; /* see special values above */ + data16_t **base; /* optional (see explanation above) */ + size_t *size; /* optional (see explanation above) */ +}; + +#define MEMORY_READ16_START(name) const struct Memory_ReadAddress16 name[] = { \ + { MEMORY_MARKER, MEMORY_DIRECTION_READ | MEMORY_TYPE_MEM | MEMORY_WIDTH_16 }, +#define MEMORY_WRITE16_START(name) const struct Memory_WriteAddress16 name[] = { \ + { MEMORY_MARKER, MEMORY_DIRECTION_WRITE | MEMORY_TYPE_MEM | MEMORY_WIDTH_16 }, + +/*************************************************************************** + 32-BIT Core memory read/write/opbase handler types +***************************************************************************/ + +typedef UINT32 data32_t; + +typedef data32_t (*mem_read32_handler)(UNUSEDARG offs_t offset); +typedef void (*mem_write32_handler)(UNUSEDARG offs_t offset, UNUSEDARG data32_t data, UNUSEDARG UINT32 mem_mask); + +#define READ32_HANDLER(name) data32_t name(UNUSEDARG offs_t offset, UNUSEDARG UINT32 mem_mask) +#define WRITE32_HANDLER(name) void name(UNUSEDARG offs_t offset, UNUSEDARG data32_t data, UNUSEDARG UINT32 mem_mask) +#define OPBASE32_HANDLER(name) offs_t name(UNUSEDARG offs_t address) + +#define MRA32_NOP 0 /* don't care, return 0 */ +#define MWA32_NOP 0 /* do nothing */ +#define MRA32_RAM ((mem_read32_handler)-1) /* plain RAM location (return its contents) */ +#define MWA32_RAM ((mem_write32_handler)-1) /* plain RAM location (store the value) */ +#define MRA32_ROM ((mem_read32_handler)-2) /* plain ROM location (return its contents) */ +#define MWA32_ROM ((mem_write32_handler)-2) /* plain ROM location (do nothing) */ +/************************************************************************** + * If the CPU opcodes are encrypted, they are fetched from a different + * memory space. In such a case, if the program dynamically creates code + * in RAM and executes it, it won't work unless you use MWA_RAMROM + * to affect both memory spaces. + **************************************************************************/ +#define MWA32_RAMROM ((mem_write32_handler)-3) + +/* bank memory */ +#define MRA32_BANK1 ((mem_read32_handler)-10) +#define MWA32_BANK1 ((mem_write32_handler)-10) +#define MRA32_BANK2 ((mem_read32_handler)-11) +#define MWA32_BANK2 ((mem_write32_handler)-11) +#define MRA32_BANK3 ((mem_read32_handler)-12) +#define MWA32_BANK3 ((mem_write32_handler)-12) +#define MRA32_BANK4 ((mem_read32_handler)-13) +#define MWA32_BANK4 ((mem_write32_handler)-13) +#define MRA32_BANK5 ((mem_read32_handler)-14) +#define MWA32_BANK5 ((mem_write32_handler)-14) +#define MRA32_BANK6 ((mem_read32_handler)-15) +#define MWA32_BANK6 ((mem_write32_handler)-15) +#define MRA32_BANK7 ((mem_read32_handler)-16) +#define MWA32_BANK7 ((mem_write32_handler)-16) +#define MRA32_BANK8 ((mem_read32_handler)-17) +#define MWA32_BANK8 ((mem_write32_handler)-17) +#define MRA32_BANK9 ((mem_read32_handler)-18) +#define MWA32_BANK9 ((mem_write32_handler)-18) +#define MRA32_BANK10 ((mem_read32_handler)-19) +#define MWA32_BANK10 ((mem_write32_handler)-19) +#define MRA32_BANK11 ((mem_read32_handler)-20) +#define MWA32_BANK11 ((mem_write32_handler)-20) +#define MRA32_BANK12 ((mem_read32_handler)-21) +#define MWA32_BANK12 ((mem_write32_handler)-21) +#define MRA32_BANK13 ((mem_read32_handler)-22) +#define MWA32_BANK13 ((mem_write32_handler)-22) +#define MRA32_BANK14 ((mem_read32_handler)-23) +#define MWA32_BANK14 ((mem_write32_handler)-23) +#define MRA32_BANK15 ((mem_read32_handler)-24) +#define MWA32_BANK15 ((mem_write32_handler)-24) +#define MRA32_BANK32 ((mem_read32_handler)-25) +#define MWA32_BANK32 ((mem_write32_handler)-25) +#define MRA32_BANK17 ((mem_read32_handler)-26) +#define MWA32_BANK17 ((mem_write32_handler)-26) +#define MRA32_BANK18 ((mem_read32_handler)-27) +#define MWA32_BANK18 ((mem_write32_handler)-27) +#define MRA32_BANK19 ((mem_read32_handler)-28) +#define MWA32_BANK19 ((mem_write32_handler)-28) +#define MRA32_BANK20 ((mem_read32_handler)-29) +#define MWA32_BANK20 ((mem_write32_handler)-29) + +struct Memory_ReadAddress32 +{ + offs_t start, end; + mem_read32_handler handler; /* see special values above */ +}; + +struct Memory_WriteAddress32 +{ + offs_t start, end; + mem_write32_handler handler; /* see special values above */ + data32_t **base; /* optional (see explanation above) */ + size_t *size; /* optional (see explanation above) */ +}; + +#define MEMORY_READ32_START(name) const struct Memory_ReadAddress32 name[] = { \ + { MEMORY_MARKER, MEMORY_DIRECTION_READ | MEMORY_TYPE_MEM | MEMORY_WIDTH_32 }, +#define MEMORY_WRITE32_START(name) const struct Memory_WriteAddress32 name[] = { \ + { MEMORY_MARKER, MEMORY_DIRECTION_WRITE | MEMORY_TYPE_MEM | MEMORY_WIDTH_32 }, + +/*************************************************************************** + +IN and OUT ports are handled like memory accesses, the hook template is the +same so you can interchange them. Of course there is no 'base' pointer for +IO ports. + +***************************************************************************/ + +struct IO_ReadPort +{ + offs_t start,end; + mem_read_handler handler; /* see special values below */ +}; + +#define IORP_NOP 0 /* don't care, return 0 */ + + +struct IO_WritePort +{ + offs_t start,end; + mem_write_handler handler; /* see special values below */ +}; + +#define IOWP_NOP 0 /* do nothing */ + +#define PORT_READ_START(name) const struct IO_ReadPort name[] = { \ + { MEMORY_MARKER, MEMORY_DIRECTION_READ | MEMORY_TYPE_IO | MEMORY_WIDTH_8 }, +#define PORT_WRITE_START(name) const struct IO_WritePort name[] = { \ + { MEMORY_MARKER, MEMORY_DIRECTION_WRITE | MEMORY_TYPE_IO | MEMORY_WIDTH_8 }, +#define PORT_END MEMORY_END + +/*************************************************************************** + +If a memory region contains areas that are outside of the ROM region for +an address space, the memory system will allocate an array of structures +to track the external areas. + +***************************************************************************/ + +#define MAX_EXT_MEMORY 64 + +struct ExtMemory +{ + offs_t start,end,region; + UINT8 *data; +}; + +extern struct ExtMemory ext_memory[MAX_EXT_MEMORY]; + + + +/*************************************************************************** + +For a given number of address bits, we need to determine how many elements +there are in the first and second-order lookup tables. We also need to know +how many low-order bits to ignore. The ABITS* values represent these +constants for each address space type we support. + +***************************************************************************/ + +/* memory element block size */ +#define MH_SBITS 8 /* sub element bank size */ +#define MH_PBITS 8 /* port current element size */ +#define MH_ELEMAX 64 /* sub elements limit */ +#define MH_HARDMAX 64 /* hardware functions limit */ + +/* 16 bits address */ +#define ABITS1_16 12 +#define ABITS2_16 4 +#define ABITS_MIN_16 0 /* minimum memory block is 1 byte */ +/* 16 bits address (word access) */ +#define ABITS1_16W 12 +#define ABITS2_16W 3 +#define ABITS_MIN_16W 1 /* minimum memory block is 2 bytes */ +/* 20 bits address */ +#define ABITS1_20 12 +#define ABITS2_20 8 +#define ABITS_MIN_20 0 /* minimum memory block is 1 byte */ +/* 21 bits address */ +#define ABITS1_21 13 +#define ABITS2_21 8 +#define ABITS_MIN_21 0 /* minimum memory block is 1 byte */ +/* 24 bits address */ +#define ABITS1_24 16 +#define ABITS2_24 8 +#define ABITS_MIN_24 0 /* minimum memory block is 1 byte */ +/* 24 bits address (word access) */ +#define ABITS1_24W 15 +#define ABITS2_24W 8 +#define ABITS_MIN_24W 1 /* minimum memory block is 2 bytes */ +/* 24 bits address (dword access) */ +#define ABITS1_24DW 14 +#define ABITS2_24DW 8 +#define ABITS_MIN_24DW 2 /* minimum memory block is 4 bytes */ +/* 26 bits address (dword access) */ +#define ABITS1_26DW 16 +#define ABITS2_26DW 8 +#define ABITS_MIN_26DW 2 /* minimum memory block is 4 bytes */ +/* 29 bits address (word access) */ +#define ABITS1_29W 20 +#define ABITS2_29W 8 +#define ABITS_MIN_29W 1 /* minimum memory block is 2 bytes */ +/* 32 bits address (word access) */ +#define ABITS1_32W 23 +#define ABITS2_32W 8 +#define ABITS_MIN_32W 1 /* minimum memory block is 2 bytes */ +/* 32 bits address (dword access) */ +#define ABITS1_32DW 22 +#define ABITS2_32DW 8 +#define ABITS_MIN_32DW 2 /* minimum memory block is 4 bytes */ +/* mask bits */ +#define MHMASK(abits) (0xffffffff >> (32 - abits)) + + +/*************************************************************************** + + Global variables + +***************************************************************************/ + +typedef unsigned char MHELE; + +extern MHELE ophw; /* opcode handler */ +extern MHELE *cur_mrhard; /* current set of read handlers */ +extern MHELE *cur_mwhard; /* current set of write handlers */ + +extern UINT8 *OP_RAM; /* opcode RAM base */ +extern UINT8 *OP_ROM; /* opcode ROM base */ +extern UINT8 *cpu_bankbase[]; /* array of bank bases */ + + +/* global memory access width and mask (16-bit and 32-bit under-size accesses) */ +//extern UINT32 mem_width; +//extern UINT32 mem_mask; +//extern UINT32 mem_offs; + +/*************************************************************************** + + Macros + +***************************************************************************/ + +/* ----- 16-bit memory accessing ----- */ +#define COMBINE_DATA(varptr) (*(varptr) = (*(varptr) & mem_mask) | (data & ~mem_mask)) +#define ACCESSING_LSB ((mem_mask & 0x00ff) == 0) +#define ACCESSING_MSB ((mem_mask & 0xff00) == 0) + +//extern unsigned char prgrom[128*1024]; + +/* ----- opcode reading ----- */ +#define cpu_readop cpu_readmem16 +//#define cpu_readop16(A) READ_WORD(&prgrom[A&0x3fff]) +//#define cpu_readop32(A) READ_DWORD(&prgrom[A&0x3fff]) + +/* ----- opcode argument reading ----- */ +#define cpu_readop_arg cpu_readmem16 +//#define cpu_readop_arg16(A) READ_WORD(&prgrom[A&0x3fff]) +//#define cpu_readop_arg32(A) READ_DWORD(&prgrom[A&0x3fff]) + +/* ----- bank switching for CPU cores ----- */ +#define change_pc_generic(pc,abits2,abitsmin,shift,setop) \ +{ \ + if (cur_mrhard[(pc)>>(abits2+abitsmin+shift)] != ophw) \ + setop(pc); \ +} +#define change_pc16(pc) +//change_pc_generic(pc, ABITS2_16, ABITS_MIN_16, 0, cpu_setOPbase16) +#define change_pc20(pc) change_pc_generic(pc, ABITS2_20, ABITS_MIN_20, 0, cpu_setOPbase20) +#define change_pc21(pc) change_pc_generic(pc, ABITS2_21, ABITS_MIN_21, 0, cpu_setOPbase21) +#define change_pc24(pc) change_pc_generic(pc, ABITS2_24, ABITS_MIN_24, 0, cpu_setOPbase24) +#define change_pc16bew(pc) change_pc_generic(pc, ABITS2_16W, ABITS_MIN_16W, 0, cpu_setOPbase16bew) +#define change_pc16lew(pc) change_pc_generic(pc, ABITS2_16W, ABITS_MIN_16W, 0, cpu_setOPbase16lew) +#define change_pc24bew(pc) change_pc_generic(pc, ABITS2_24W, ABITS_MIN_24W, 0, cpu_setOPbase24bew) +#define change_pc29lew(pc) change_pc_generic(pc, ABITS2_29W, ABITS_MIN_29W, 3, cpu_setOPbase29lew) +#define change_pc32bew(pc) change_pc_generic(pc, ABITS2_32W, ABITS_MIN_32W, 0, cpu_setOPbase32bew) +#define change_pc32lew(pc) change_pc_generic(pc, ABITS2_32W, ABITS_MIN_32W, 0, cpu_setOPbase32lew) +#define change_pc24bedw(pc) change_pc_generic(pc, ABITS2_24DW, ABITS_MIN_24DW, 0, cpu_setOPbase24bedw) +#define change_pc26ledw(pc) change_pc_generic(pc, ABITS2_26DW, ABITS_MIN_26DW, 0, cpu_setOPbase26ledw) +#define change_pc32bedw(pc) change_pc_generic(pc, ABITS2_32DW, ABITS_MIN_32DW, 0, cpu_setOPbase32bedw) + +/* backward compatibility */ +#define change_pc(pc) +// change_pc16(pc) + +/* ----- for use OPbaseOverride driver, request override callback to next cpu_setOPbase ----- */ +#define catch_nextBranch() (ophw = 0xff) + +/* ----- bank switching macro ----- */ +#define cpu_setbank(bank, base) \ +{ \ + if (bank >= 1 && bank <= MAX_BANKS) \ + { \ + cpu_bankbase[bank] = (UINT8 *)(base); \ + if (ophw == bank) \ + { \ + ophw = 0xff; \ + cpu_set_op_base(cpu_get_pc()); \ + } \ + } \ +} + + +/*************************************************************************** + + Function prototypes + +***************************************************************************/ + +/* ----- memory setup function ----- */ + +/* ----- memory read functions ----- */ +data8_t cpu_readmem16(offs_t address); +data8_t cpu_readmem20(offs_t address); +data8_t cpu_readmem21(offs_t address); +data8_t cpu_readmem24(offs_t address); + +data16_t cpu_readmem16bew(offs_t address); +data16_t cpu_readmem16bew_word(offs_t address); +data16_t cpu_readmem16lew(offs_t address); +data16_t cpu_readmem16lew_word(offs_t address); +data16_t cpu_readmem24bew(offs_t address); +data16_t cpu_readmem24bew_word(offs_t address); +data16_t cpu_readmem29lew(offs_t address); +data16_t cpu_readmem29lew_word(offs_t address); +data16_t cpu_readmem32bew(offs_t address); +data16_t cpu_readmem32bew_word(offs_t address); +data16_t cpu_readmem32lew(offs_t address); +data16_t cpu_readmem32lew_word(offs_t address); + +data32_t cpu_readmem24bedw(offs_t address); +data32_t cpu_readmem24bedw_word(offs_t address); +data32_t cpu_readmem24bedw_dword(offs_t address); +data32_t cpu_readmem26ledw(offs_t address); +data32_t cpu_readmem26ledw_word(offs_t address); +data32_t cpu_readmem26ledw_dword(offs_t address); +data32_t cpu_readmem27bedw(offs_t address); +data32_t cpu_readmem27bedw_word(offs_t address); +data32_t cpu_readmem27bedw_dword(offs_t address); +data32_t cpu_readmem32bedw(offs_t address); +data32_t cpu_readmem32bedw_word(offs_t address); +data32_t cpu_readmem32bedw_dword(offs_t address); + +/* ----- memory write functions ----- */ +void cpu_writemem16(offs_t address,data8_t data); +void cpu_writemem20(offs_t address,data8_t data); +void cpu_writemem21(offs_t address,data8_t data); +void cpu_writemem24(offs_t address,data8_t data); + +void cpu_writemem16bew(offs_t address,data16_t data); +void cpu_writemem16bew_word(offs_t address,data16_t data); +void cpu_writemem16lew(offs_t address,data16_t data); +void cpu_writemem16lew_word(offs_t address,data16_t data); +void cpu_writemem24bew(offs_t address,data16_t data); +void cpu_writemem24bew_word(offs_t address,data16_t data); +void cpu_writemem29lew(offs_t address,data16_t data); +void cpu_writemem29lew_word(offs_t address,data16_t data); +void cpu_writemem32bew(offs_t address,data16_t data); +void cpu_writemem32bew_word(offs_t address,data16_t data); +void cpu_writemem32lew(offs_t address,data16_t data); +void cpu_writemem32lew_word(offs_t address,data16_t data); + +void cpu_writemem24bedw(offs_t address,data32_t data); +void cpu_writemem24bedw_word(offs_t address,data32_t data); +void cpu_writemem24bedw_dword(offs_t address,data32_t data); +void cpu_writemem26ledw(offs_t address,data32_t data); +void cpu_writemem26ledw_word(offs_t address,data32_t data); +void cpu_writemem26ledw_dword(offs_t address,data32_t data); +void cpu_writemem27bedw(offs_t address,data32_t data); +void cpu_writemem27bedw_word(offs_t address,data32_t data); +void cpu_writemem27bedw_dword(offs_t address,data32_t data); +void cpu_writemem32bedw(offs_t address,data32_t data); +void cpu_writemem32bedw_word(offs_t address,data32_t data); +void cpu_writemem32bedw_dword(offs_t address,data32_t data); + +/* ----- port I/O functions ----- */ +int cpu_readport(int port); +void cpu_writeport(int port, int value); + +/* ----- dynamic memory/port mapping ----- */ +void *install_mem_read_handler(int cpu, int start, int end, mem_read_handler handler); +void *install_mem_read16_handler(int cpu, int start, int end, mem_read16_handler handler); +void *install_mem_read32_handler(int cpu, int start, int end, mem_read32_handler handler); +void *install_mem_write_handler(int cpu, int start, int end, mem_write_handler handler); +void *install_mem_write16_handler(int cpu, int start, int end, mem_write16_handler handler); +void *install_mem_write32_handler(int cpu, int start, int end, mem_write32_handler handler); +void *install_port_read_handler(int cpu, int start, int end, mem_read_handler handler); +void *install_port_write_handler(int cpu, int start, int end, mem_write_handler handler); + +/* ----- dynamic bank handlers ----- */ +void cpu_setbankhandler_r(int bank, mem_read_handler handler); +void cpu_setbankhandler_w(int bank, mem_write_handler handler); + +/* ----- opcode base control ---- */ +void cpu_setOPbase16(offs_t pc); +void cpu_setOPbase20(offs_t pc); +void cpu_setOPbase21(offs_t pc); +void cpu_setOPbase24(offs_t pc); +void cpu_setOPbase16bew(offs_t pc); +void cpu_setOPbase16lew(offs_t pc); +void cpu_setOPbase24bew(offs_t pc); +void cpu_setOPbase24bedw(offs_t pc); +void cpu_setOPbase26ledw(offs_t pc); +void cpu_setOPbase29lew(offs_t pc); +void cpu_setOPbase32bew(offs_t pc); +void cpu_setOPbase32lew(offs_t pc); +void cpu_setOPbaseoverride(int cpu, opbase_handler function); + +/* ----- harder-to-explain functions ---- */ + +/* use this to set the a different opcode base address when using a CPU with + opcodes and data encrypted separately */ +void memory_set_opcode_base(int cpu, void *base); + +/* look up a chunk of memory and get its start/end addresses, and its base. +Pass in the cpu number and the offset. It will find the chunk containing +that offset and return the start and end addresses, along with a pointer to +the base of the memory. +This can be used (carefully!) by drivers that wish to access memory directly +without going through the readmem/writemem accessors (e.g., blitters). */ +void *findmemorychunk(int cpu, int offset, int *chunkstart, int *chunkend); + +#ifdef __cplusplus +} +#endif + +#endif /* !_MEMORY_H */ + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/osd_cpu.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/osd_cpu.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,70 @@ +/******************************************************************************* +* * +* Define size independent data types and operations. * +* * +* The following types must be supported by all platforms: * +* * +* UINT8 - Unsigned 8-bit Integer INT8 - Signed 8-bit integer * +* UINT16 - Unsigned 16-bit Integer INT16 - Signed 16-bit integer * +* UINT32 - Unsigned 32-bit Integer INT32 - Signed 32-bit integer * +* UINT64 - Unsigned 64-bit Integer INT64 - Signed 64-bit integer * +* * +* * +* The macro names for the artithmatic operations are composed as follows: * +* * +* XXX_R_A_B, where XXX - 3 letter operation code (ADD, SUB, etc.) * +* R - The type of the result * +* A - The type of operand 1 * +* B - The type of operand 2 (if binary operation) * +* * +* Each type is one of: U8,8,U16,16,U32,32,U64,64 * +* * +*******************************************************************************/ + + +#ifndef OSD_CPU_H +#define OSD_CPU_H + +#include "ao.h" + +/* Combine two 32-bit integers into a 64-bit integer */ +#define COMBINE_64_32_32(A,B) ((((UINT64)(A))<<32) | (UINT32)(B)) +#define COMBINE_U64_U32_U32(A,B) COMBINE_64_32_32(A,B) + +/* Return upper 32 bits of a 64-bit integer */ +#define HI32_32_64(A) (((UINT64)(A)) >> 32) +#define HI32_U32_U64(A) HI32_32_64(A) + +/* Return lower 32 bits of a 64-bit integer */ +#define LO32_32_64(A) ((A) & 0xffffffff) +#define LO32_U32_U64(A) LO32_32_64(A) + +#define DIV_64_64_32(A,B) ((A)/(B)) +#define DIV_U64_U64_U32(A,B) ((A)/(UINT32)(B)) + +#define MOD_32_64_32(A,B) ((A)%(B)) +#define MOD_U32_U64_U32(A,B) ((A)%(UINT32)(B)) + +#define MUL_64_32_32(A,B) ((A)*(INT64)(B)) +#define MUL_U64_U32_U32(A,B) ((A)*(UINT64)(UINT32)(B)) + + +/****************************************************************************** + * Union of UINT8, UINT16 and UINT32 in native endianess of the target + * This is used to access bytes and words in a machine independent manner. + * The upper bytes h2 and h3 normally contain zero (16 bit CPU cores) + * thus PAIR.d can be used to pass arguments to the memory system + * which expects 'int' really. + ******************************************************************************/ +typedef union { +#if LSB_FIRST + struct { UINT8 l,h,h2,h3; } b; + struct { UINT16 l,h; } w; +#else + struct { UINT8 h3,h2,h,l; } b; + struct { UINT16 h,l; } w; +#endif + UINT32 d; +} PAIR; + +#endif /* defined OSD_CPU_H */ diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops/License.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops/License.txt Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,282 @@ +######################################################################### + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops/adsr.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops/adsr.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,618 @@ +/*************************************************************************** + adsr.c - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2003/01/06 - Pete +// - added Neill's ADSR timings +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +#define _IN_ADSR + +// will be included from spu.c +#ifdef _IN_SPU + +//////////////////////////////////////////////////////////////////////// +// ADSR func +//////////////////////////////////////////////////////////////////////// + +static u32 RateTable[160]; + +static void InitADSR(void) // INIT ADSR +{ + u32 r,rs,rd;int i; + + memset(RateTable,0,sizeof(u32)*160); // build the rate table according to Neill's rules (see at bottom of file) + + r=3;rs=1;rd=0; + + for(i=32;i<160;i++) // we start at pos 32 with the real values... everything before is 0 + { + if(r<0x3FFFFFFF) + { + r+=rs; + rd++;if(rd==5) {rd=1;rs*=2;} + } + if(r>0x3FFFFFFF) r=0x3FFFFFFF; + + RateTable[i]=r; + } +} + +//////////////////////////////////////////////////////////////////////// + +static INLINE void StartADSR(int ch) // MIX ADSR +{ + s_chan[ch].ADSRX.lVolume=1; // and init some adsr vars + s_chan[ch].ADSRX.State=0; + s_chan[ch].ADSRX.EnvelopeVol=0; +} + +//////////////////////////////////////////////////////////////////////// + +static INLINE int MixADSR(int ch) // MIX ADSR +{ + static const int sexytable[8]= + {0,4,6,8,9,10,11,12}; + + if(s_chan[ch].bStop) // should be stopped: + { // do release + if(s_chan[ch].ADSRX.ReleaseModeExp) + { + s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.ReleaseRate^0x1F))-0x18+32+sexytable[(s_chan[ch].ADSRX.EnvelopeVol>>28)&0x7]]; + } + else + { + s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.ReleaseRate^0x1F))-0x0C + 32]; + } + + if(s_chan[ch].ADSRX.EnvelopeVol<0) + { + s_chan[ch].ADSRX.EnvelopeVol=0; + s_chan[ch].bOn=0; + s_chan[ch].bNoise=0; + } + + s_chan[ch].ADSRX.lVolume=s_chan[ch].ADSRX.EnvelopeVol>>21; + return s_chan[ch].ADSRX.lVolume; + } + else // not stopped yet? + { + if(s_chan[ch].ADSRX.State==0) // -> attack + { + if(s_chan[ch].ADSRX.AttackModeExp) + { + if(s_chan[ch].ADSRX.EnvelopeVol<0x60000000) + s_chan[ch].ADSRX.EnvelopeVol+=RateTable[(s_chan[ch].ADSRX.AttackRate^0x7F)-0x10 + 32]; + else + s_chan[ch].ADSRX.EnvelopeVol+=RateTable[(s_chan[ch].ADSRX.AttackRate^0x7F)-0x18 + 32]; + } + else + { + s_chan[ch].ADSRX.EnvelopeVol+=RateTable[(s_chan[ch].ADSRX.AttackRate^0x7F)-0x10 + 32]; + } + + if(s_chan[ch].ADSRX.EnvelopeVol<0) + { + s_chan[ch].ADSRX.EnvelopeVol=0x7FFFFFFF; + s_chan[ch].ADSRX.State=1; + } + + s_chan[ch].ADSRX.lVolume=s_chan[ch].ADSRX.EnvelopeVol>>21; + return s_chan[ch].ADSRX.lVolume; + } + //--------------------------------------------------// + if(s_chan[ch].ADSRX.State==1) // -> decay + { + s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.DecayRate^0x1F))-0x18+32+sexytable[(s_chan[ch].ADSRX.EnvelopeVol>>28)&0x7]]; + + if(s_chan[ch].ADSRX.EnvelopeVol<0) s_chan[ch].ADSRX.EnvelopeVol=0; + if(((s_chan[ch].ADSRX.EnvelopeVol>>27)&0xF) <= s_chan[ch].ADSRX.SustainLevel) + { + s_chan[ch].ADSRX.State=2; + } + + s_chan[ch].ADSRX.lVolume=s_chan[ch].ADSRX.EnvelopeVol>>21; + return s_chan[ch].ADSRX.lVolume; + } + //--------------------------------------------------// + if(s_chan[ch].ADSRX.State==2) // -> sustain + { + if(s_chan[ch].ADSRX.SustainIncrease) + { + if(s_chan[ch].ADSRX.SustainModeExp) + { + if(s_chan[ch].ADSRX.EnvelopeVol<0x60000000) + s_chan[ch].ADSRX.EnvelopeVol+=RateTable[(s_chan[ch].ADSRX.SustainRate^0x7F)-0x10 + 32]; + else + s_chan[ch].ADSRX.EnvelopeVol+=RateTable[(s_chan[ch].ADSRX.SustainRate^0x7F)-0x18 + 32]; + } + else + { + s_chan[ch].ADSRX.EnvelopeVol+=RateTable[(s_chan[ch].ADSRX.SustainRate^0x7F)-0x10 + 32]; + } + + if(s_chan[ch].ADSRX.EnvelopeVol<0) + { + s_chan[ch].ADSRX.EnvelopeVol=0x7FFFFFFF; + } + } + else + { + if(s_chan[ch].ADSRX.SustainModeExp) + s_chan[ch].ADSRX.EnvelopeVol-=RateTable[((s_chan[ch].ADSRX.SustainRate^0x7F))-0x1B+32+sexytable[(s_chan[ch].ADSRX.EnvelopeVol>>28)&0x7]]; + else + s_chan[ch].ADSRX.EnvelopeVol-=RateTable[((s_chan[ch].ADSRX.SustainRate^0x7F))-0x0F + 32]; + + if(s_chan[ch].ADSRX.EnvelopeVol<0) + { + s_chan[ch].ADSRX.EnvelopeVol=0; + } + } + s_chan[ch].ADSRX.lVolume=s_chan[ch].ADSRX.EnvelopeVol>>21; + return s_chan[ch].ADSRX.lVolume; + } + } + return 0; +} + +#endif + +/* +James Higgs ADSR investigations: + +PSX SPU Envelope Timings +~~~~~~~~~~~~~~~~~~~~~~~~ + +First, here is an extract from doomed's SPU doc, which explains the basics +of the SPU "volume envelope": + +*** doomed doc extract start *** + +-------------------------------------------------------------------------- +Voices. +-------------------------------------------------------------------------- +The SPU has 24 hardware voices. These voices can be used to reproduce sample +data, noise or can be used as frequency modulator on the next voice. +Each voice has it's own programmable ADSR envelope filter. The main volume +can be programmed independently for left and right output. + +The ADSR envelope filter works as follows: +Ar = Attack rate, which specifies the speed at which the volume increases + from zero to it's maximum value, as soon as the note on is given. The + slope can be set to lineair or exponential. +Dr = Decay rate specifies the speed at which the volume decreases to the + sustain level. Decay is always decreasing exponentially. +Sl = Sustain level, base level from which sustain starts. +Sr = Sustain rate is the rate at which the volume of the sustained note + increases or decreases. This can be either lineair or exponential. +Rr = Release rate is the rate at which the volume of the note decreases + as soon as the note off is given. + + lvl | + ^ | /\Dr __ + Sl _| _ / _ \__--- \ + | / ---__ \ Rr + | /Ar Sr \ \ + | / \\ + |/___________________\________ + ->time + +The overal volume can also be set to sweep up or down lineairly or +exponentially from it's current value. This can be done seperately +for left and right. + +Relevant SPU registers: +------------------------------------------------------------- +$1f801xx8 Attack/Decay/Sustain level +bit |0f|0e 0d 0c 0b 0a 09 08|07 06 05 04|03 02 01 00| +desc.|Am| Ar |Dr |Sl | + +Am 0 Attack mode Linear + 1 Exponential + +Ar 0-7f attack rate +Dr 0-f decay rate +Sl 0-f sustain level +------------------------------------------------------------- +$1f801xxa Sustain rate, Release Rate. +bit |0f|0e|0d|0c 0b 0a 09 08 07 06|05|04 03 02 01 00| +desc.|Sm|Sd| 0| Sr |Rm|Rr | + +Sm 0 sustain rate mode linear + 1 exponential +Sd 0 sustain rate mode increase + 1 decrease +Sr 0-7f Sustain Rate +Rm 0 Linear decrease + 1 Exponential decrease +Rr 0-1f Release Rate + +Note: decay mode is always Expontial decrease, and thus cannot +be set. +------------------------------------------------------------- +$1f801xxc Current ADSR volume +bit |0f 0e 0d 0c 0b 0a 09 08 07 06 05 04 03 02 01 00| +desc.|ADSRvol | + +ADSRvol Returns the current envelope volume when + read. +-- James' Note: return range: 0 -> 32767 + +*** doomed doc extract end *** + +By using a small PSX proggie to visualise the envelope as it was played, +the following results for envelope timing were obtained: + +1. Attack rate value (linear mode) + + Attack value range: 0 -> 127 + + Value | 48 | 52 | 56 | 60 | 64 | 68 | 72 | | 80 | + ----------------------------------------------------------------- + Frames | 11 | 21 | 42 | 84 | 169| 338| 676| |2890| + + Note: frames is no. of PAL frames to reach full volume (100% + amplitude) + + Hmm, noticing that the time taken to reach full volume doubles + every time we add 4 to our attack value, we know the equation is + of form: + frames = k * 2 ^ (value / 4) + + (You may ponder about envelope generator hardware at this point, + or maybe not... :) + + By substituting some stuff and running some checks, we get: + + k = 0.00257 (close enuf) + + therefore, + frames = 0.00257 * 2 ^ (value / 4) + If you just happen to be writing an emulator, then you can probably + use an equation like: + + %volume_increase_per_tick = 1 / frames + + + ------------------------------------ + Pete: + ms=((1<<(value>>2))*514)/10000 + ------------------------------------ + +2. Decay rate value (only has log mode) + + Decay value range: 0 -> 15 + + Value | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | + ------------------------------------------------ + frames | | | | | 6 | 12 | 24 | 47 | + + Note: frames here is no. of PAL frames to decay to 50% volume. + + formula: frames = k * 2 ^ (value) + + Substituting, we get: k = 0.00146 + + Further info on logarithmic nature: + frames to decay to sustain level 3 = 3 * frames to decay to + sustain level 9 + + Also no. of frames to 25% volume = roughly 1.85 * no. of frames to + 50% volume. + + Frag it - just use linear approx. + + ------------------------------------ + Pete: + ms=((1< 127 + + Value | 48 | 52 | 56 | 60 | 64 | 68 | 72 | + ------------------------------------------- + frames | 9 | 19 | 37 | 74 | 147| 293| 587| + + Here, frames = no. of PAL frames for volume amplitude to go from 100% + to 0% (or vice-versa). + + Same formula as for attack value, just a different value for k: + + k = 0.00225 + + ie: frames = 0.00225 * 2 ^ (value / 4) + + For emulation purposes: + + %volume_increase_or_decrease_per_tick = 1 / frames + + ------------------------------------ + Pete: + ms=((1<<(value>>2))*450)/10000 + ------------------------------------ + + +4. Release rate (linear mode) + + Release rate range: 0 -> 31 + + Value | 13 | 14 | 15 | 16 | 17 | + --------------------------------------------------------------- + frames | 18 | 36 | 73 | 146| 292| + + Here, frames = no. of PAL frames to decay from 100% vol to 0% vol + after "note-off" is triggered. + + Formula: frames = k * 2 ^ (value) + + And so: k = 0.00223 + + ------------------------------------ + Pete: + ms=((1< release phase + { + if(s_chan[ch].ADSR.ReleaseVal!=0) // -> release not 0: do release (if 0: stop right now) + { + if(!s_chan[ch].ADSR.ReleaseVol) // --> release just started? set up the release stuff + { + s_chan[ch].ADSR.ReleaseStartTime=s_chan[ch].ADSR.lTime; + s_chan[ch].ADSR.ReleaseVol=s_chan[ch].ADSR.lVolume; + s_chan[ch].ADSR.ReleaseTime = // --> calc how long does it take to reach the wanted sus level + (s_chan[ch].ADSR.ReleaseTime* + s_chan[ch].ADSR.ReleaseVol)/1024; + } + // -> NO release exp mode used (yet) + v=s_chan[ch].ADSR.ReleaseVol; // -> get last volume + lT=s_chan[ch].ADSR.lTime- // -> how much time is past? + s_chan[ch].ADSR.ReleaseStartTime; + l1=s_chan[ch].ADSR.ReleaseTime; + + if(lT we still have to release + { + v=v-((v*lT)/l1); // --> calc new volume + } + else // -> release is over: now really stop that sample + {v=0;s_chan[ch].bOn=0;s_chan[ch].ADSR.ReleaseVol=0;s_chan[ch].bNoise=0;} + } + else // -> release IS 0: release at once + { + v=0;s_chan[ch].bOn=0;s_chan[ch].ADSR.ReleaseVol=0;s_chan[ch].bNoise=0; + } + } + else + {//--------------------------------------------------// not in release phase: + v=1024; + lT=s_chan[ch].ADSR.lTime; + l1=s_chan[ch].ADSR.AttackTime; + + if(lT0) + { + if(l3!=0) v2+=((v-v2)*lT)/l3; + else v2=v; + } + else + { + if(l3!=0) v2-=(v2*lT)/l3; + else v2=v; + } + + if(v2>v) v2=v; + if(v2<=0) {v2=0;s_chan[ch].bOn=0;s_chan[ch].ADSR.ReleaseVol=0;s_chan[ch].bNoise=0;} + + v=v2; + } + } + } + + //----------------------------------------------------// + // ok, done for this channel, so increase time + + s_chan[ch].ADSR.lTime+=1; // 1 = 1.020408f ms; + + if(v>1024) v=1024; // adjust volume + if(v<0) v=0; + s_chan[ch].ADSR.lVolume=v; // store act volume + + return v; // return the volume factor +*/ + + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- + + +/* +----------------------------------------------------------------------------- +Neill Corlett +Playstation SPU envelope timing notes +----------------------------------------------------------------------------- + +This is preliminary. This may be wrong. But the model described herein fits +all of my experimental data, and it's just simple enough to sound right. + +ADSR envelope level ranges from 0x00000000 to 0x7FFFFFFF internally. +The value returned by channel reg 0xC is (envelope_level>>16). + +Each sample, an increment or decrement value will be added to or +subtracted from this envelope level. + +Create the rate log table. The values double every 4 entries. + entry #0 = 4 + + 4, 5, 6, 7, + 8,10,12,14, + 16,20,24,28, ... + + entry #40 = 4096... + entry #44 = 8192... + entry #48 = 16384... + entry #52 = 32768... + entry #56 = 65536... + +increments and decrements are in terms of ratelogtable[n] +n may exceed the table bounds (plan on n being between -32 and 127). +table values are all clipped between 0x00000000 and 0x3FFFFFFF + +when you "voice on", the envelope is always fully reset. +(yes, it may click. the real thing does this too.) + +envelope level begins at zero. + +each state happens for at least 1 cycle +(transitions are not instantaneous) +this may result in some oddness: if the decay rate is uberfast, it will cut +the envelope from full down to half in one sample, potentially skipping over +the sustain level + +ATTACK +------ +- if the envelope level has overflowed past the max, clip to 0x7FFFFFFF and + proceed to DECAY. + +Linear attack mode: +- line extends upward to 0x7FFFFFFF +- increment per sample is ratelogtable[(Ar^0x7F)-0x10] + +Logarithmic attack mode: +if envelope_level < 0x60000000: + - line extends upward to 0x60000000 + - increment per sample is ratelogtable[(Ar^0x7F)-0x10] +else: + - line extends upward to 0x7FFFFFFF + - increment per sample is ratelogtable[(Ar^0x7F)-0x18] + +DECAY +----- +- if ((envelope_level>>27)&0xF) <= Sl, proceed to SUSTAIN. + Do not clip to the sustain level. +- current line ends at (envelope_level & 0x07FFFFFF) +- decrement per sample depends on (envelope_level>>28)&0x7 + 0: ratelogtable[(4*(Dr^0x1F))-0x18+0] + 1: ratelogtable[(4*(Dr^0x1F))-0x18+4] + 2: ratelogtable[(4*(Dr^0x1F))-0x18+6] + 3: ratelogtable[(4*(Dr^0x1F))-0x18+8] + 4: ratelogtable[(4*(Dr^0x1F))-0x18+9] + 5: ratelogtable[(4*(Dr^0x1F))-0x18+10] + 6: ratelogtable[(4*(Dr^0x1F))-0x18+11] + 7: ratelogtable[(4*(Dr^0x1F))-0x18+12] + (note that this is the same as the release rate formula, except that + decay rates 10-1F aren't possible... those would be slower in theory) + +SUSTAIN +------- +- no terminating condition except for voice off +- Sd=0 (increase) behavior is identical to ATTACK for both log and linear. +- Sd=1 (decrease) behavior: +Linear sustain decrease: +- line extends to 0x00000000 +- decrement per sample is ratelogtable[(Sr^0x7F)-0x0F] +Logarithmic sustain decrease: +- current line ends at (envelope_level & 0x07FFFFFF) +- decrement per sample depends on (envelope_level>>28)&0x7 + 0: ratelogtable[(Sr^0x7F)-0x1B+0] + 1: ratelogtable[(Sr^0x7F)-0x1B+4] + 2: ratelogtable[(Sr^0x7F)-0x1B+6] + 3: ratelogtable[(Sr^0x7F)-0x1B+8] + 4: ratelogtable[(Sr^0x7F)-0x1B+9] + 5: ratelogtable[(Sr^0x7F)-0x1B+10] + 6: ratelogtable[(Sr^0x7F)-0x1B+11] + 7: ratelogtable[(Sr^0x7F)-0x1B+12] + +RELEASE +------- +- if the envelope level has overflowed to negative, clip to 0 and QUIT. + +Linear release mode: +- line extends to 0x00000000 +- decrement per sample is ratelogtable[(4*(Rr^0x1F))-0x0C] + +Logarithmic release mode: +- line extends to (envelope_level & 0x0FFFFFFF) +- decrement per sample depends on (envelope_level>>28)&0x7 + 0: ratelogtable[(4*(Rr^0x1F))-0x18+0] + 1: ratelogtable[(4*(Rr^0x1F))-0x18+4] + 2: ratelogtable[(4*(Rr^0x1F))-0x18+6] + 3: ratelogtable[(4*(Rr^0x1F))-0x18+8] + 4: ratelogtable[(4*(Rr^0x1F))-0x18+9] + 5: ratelogtable[(4*(Rr^0x1F))-0x18+10] + 6: ratelogtable[(4*(Rr^0x1F))-0x18+11] + 7: ratelogtable[(4*(Rr^0x1F))-0x18+12] + +----------------------------------------------------------------------------- +*/ diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops/adsr.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops/adsr.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,28 @@ +/*************************************************************************** + adsr.h - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +static INLINE void StartADSR(int ch); +static INLINE int MixADSR(int ch); diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops/dma.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops/dma.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,80 @@ +/*************************************************************************** + dma.c - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +#include "../peops/stdafx.h" + +#define _IN_DMA + +extern uint32 psx_ram[(2*1024*1024)/4]; + +//#include "externals.h" +//////////////////////////////////////////////////////////////////////// +// READ DMA (many values) +//////////////////////////////////////////////////////////////////////// + +void SPUreadDMAMem(u32 usPSXMem,int iSize) +{ + int i; + u16 *ram16 = (u16 *)&psx_ram[0]; + + for(i=0;i>1]=spuMem[spuAddr>>1]; // spu addr got by writeregister + usPSXMem+=2; + spuAddr+=2; // inc spu addr + if(spuAddr>0x7ffff) spuAddr=0; // wrap + } +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +// to investigate: do sound data updates by writedma affect spu +// irqs? Will an irq be triggered, if new data is written to +// the memory irq address? + +//////////////////////////////////////////////////////////////////////// +// WRITE DMA (many values) +//////////////////////////////////////////////////////////////////////// + +void SPUwriteDMAMem(u32 usPSXMem,int iSize) +{ + int i; + u16 *ram16 = (u16 *)&psx_ram[0]; + + for(i=0;i SPU %x\n", usPSXMem, spuAddr); + spuMem[spuAddr>>1] = ram16[usPSXMem>>1]; + usPSXMem+=2; // spu addr got by writeregister + spuAddr+=2; // inc spu addr + if(spuAddr>0x7ffff) spuAddr=0; // wrap + } +} + +//////////////////////////////////////////////////////////////////////// + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops/dma.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops/dma.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,31 @@ +/*************************************************************************** + dma.h - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + + +u16 CALLBACK SPUreadDMA(void); +void CALLBACK SPUreadDMAMem(u16 * pusPSXMem,int iSize); +void CALLBACK SPUwriteDMA(u16 val); +void CALLBACK SPUwriteDMAMem(u16 * pusPSXMem,int iSize); diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops/externals.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops/externals.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,203 @@ +/*************************************************************************** + externals.h - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +#include "ao.h" + +#ifndef PEOPS_EXTERNALS +#define PEOPS_EXTERNALS + +typedef int8 s8; +typedef int16 s16; +typedef int32 s32; +typedef int64 s64; + +typedef uint8 u8; +typedef uint16 u16; +typedef uint32 u32; +typedef uint64 u64; + +#if LSB_FIRST +static INLINE u16 BFLIP16(u16 x) +{ + return x; +} +#else +static INLINE u16 BFLIP16(u16 x) +{ + return( ((x>>8)&0xFF)| ((x&0xFF)<<8) ); +} +#endif + +//*************************************************************************// +// History of changes: +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +#define max(a,b) (((a) > (b)) ? (a) : (b)) +#define min(a,b) (((a) < (b)) ? (a) : (b)) + +//////////////////////////////////////////////////////////////////////// +// spu defines +//////////////////////////////////////////////////////////////////////// + +// num of channels +#define MAXCHAN 24 + +/////////////////////////////////////////////////////////// +// struct defines +/////////////////////////////////////////////////////////// + +// ADSR INFOS PER CHANNEL +typedef struct +{ + int AttackModeExp; + s32 AttackTime; + s32 DecayTime; + s32 SustainLevel; + int SustainModeExp; + s32 SustainModeDec; + s32 SustainTime; + int ReleaseModeExp; + u32 ReleaseVal; + s32 ReleaseTime; + s32 ReleaseStartTime; + s32 ReleaseVol; + s32 lTime; + s32 lVolume; +} ADSRInfo; + +typedef struct +{ + int State; + int AttackModeExp; + int AttackRate; + int DecayRate; + int SustainLevel; + int SustainModeExp; + int SustainIncrease; + int SustainRate; + int ReleaseModeExp; + int ReleaseRate; + int EnvelopeVol; + s32 lVolume; + s32 lDummy1; + s32 lDummy2; +} ADSRInfoEx; + +/////////////////////////////////////////////////////////// + +// Tmp Flags + +// used for debug channel muting +#define FLAG_MUTE 1 + +/////////////////////////////////////////////////////////// + +// MAIN CHANNEL STRUCT +typedef struct +{ + int bNew; // start flag + + int iSBPos; // mixing stuff + int spos; + int sinc; + int SB[32+1]; + int sval; + + u8 * pStart; // start ptr into sound mem + u8 * pCurr; // current pos in sound mem + u8 * pLoop; // loop ptr in sound mem + + int bOn; // is channel active (sample playing?) + int bStop; // is channel stopped (sample _can_ still be playing, ADSR Release phase) + int iActFreq; // current psx pitch + int iUsedFreq; // current pc pitch + int iLeftVolume; // left volume + int iLeftVolRaw; // left psx volume value + int bIgnoreLoop; // ignore loop bit, if an external loop address is used + int iRightVolume; // right volume + int iRightVolRaw; // right psx volume value + int iRawPitch; // raw pitch (0...3fff) + int iIrqDone; // debug irq done flag + int s_1; // last decoding infos + int s_2; + int bRVBActive; // reverb active flag + int iRVBOffset; // reverb offset + int iRVBRepeat; // reverb repeat + int bNoise; // noise active flag + int bFMod; // freq mod (0=off, 1=sound channel, 2=freq channel) + int iOldNoise; // old noise val for this channel + ADSRInfo ADSR; // active ADSR settings + ADSRInfoEx ADSRX; // next ADSR settings (will be moved to active on sample start) + +} SPUCHAN; + +/////////////////////////////////////////////////////////// + +typedef struct +{ + int StartAddr; // reverb area start addr in samples + int CurrAddr; // reverb area curr addr in samples + + int Enabled; + int VolLeft; + int VolRight; + int iLastRVBLeft; + int iLastRVBRight; + int iRVBLeft; + int iRVBRight; + + + int FB_SRC_A; // (offset) + int FB_SRC_B; // (offset) + int IIR_ALPHA; // (coef.) + int ACC_COEF_A; // (coef.) + int ACC_COEF_B; // (coef.) + int ACC_COEF_C; // (coef.) + int ACC_COEF_D; // (coef.) + int IIR_COEF; // (coef.) + int FB_ALPHA; // (coef.) + int FB_X; // (coef.) + int IIR_DEST_A0; // (offset) + int IIR_DEST_A1; // (offset) + int ACC_SRC_A0; // (offset) + int ACC_SRC_A1; // (offset) + int ACC_SRC_B0; // (offset) + int ACC_SRC_B1; // (offset) + int IIR_SRC_A0; // (offset) + int IIR_SRC_A1; // (offset) + int IIR_DEST_B0; // (offset) + int IIR_DEST_B1; // (offset) + int ACC_SRC_C0; // (offset) + int ACC_SRC_C1; // (offset) + int ACC_SRC_D0; // (offset) + int ACC_SRC_D1; // (offset) + int IIR_SRC_B1; // (offset) + int IIR_SRC_B0; // (offset) + int MIX_DEST_A0; // (offset) + int MIX_DEST_A1; // (offset) + int MIX_DEST_B0; // (offset) + int MIX_DEST_B1; // (offset) + int IN_COEF_L; // (coef.) + int IN_COEF_R; // (coef.) +} REVERBInfo; + +#endif // PEOPS_EXTERNALS diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops/gauss_i.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops/gauss_i.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,163 @@ +/*************************************************************************** + gauss_i.h - description + ----------------------- + begin : Sun Feb 08 2003 + copyright : (C) 2003 by Chris Moeller, eh, whatever + email : chris@kode54.tk + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2003/02/08 - kode54 +// - generated by interleaving table from gauss.h from the libopenspc +// project; a gaussian bell curve table logged from the SPC-700, +// though Neill says he logged the same curve from a PSX SPU. Also +// says that interleaving the coefficients together runs faster. Meh. +// +//*************************************************************************// + +#ifndef GAUSS_H +#define GAUSS_H + +// 1024 entries +const int gauss[]={ + 0x172, 0x519, 0x176, 0x000, 0x16E, 0x519, 0x17A, 0x000, + 0x16A, 0x518, 0x17D, 0x000, 0x166, 0x518, 0x181, 0x000, + 0x162, 0x518, 0x185, 0x000, 0x15F, 0x518, 0x189, 0x000, + 0x15B, 0x518, 0x18D, 0x000, 0x157, 0x517, 0x191, 0x000, + 0x153, 0x517, 0x195, 0x000, 0x150, 0x517, 0x19A, 0x000, + 0x14C, 0x516, 0x19E, 0x000, 0x148, 0x516, 0x1A2, 0x000, + 0x145, 0x515, 0x1A6, 0x000, 0x141, 0x514, 0x1AA, 0x000, + 0x13E, 0x514, 0x1AE, 0x000, 0x13A, 0x513, 0x1B2, 0x000, + 0x137, 0x512, 0x1B7, 0x001, 0x133, 0x511, 0x1BB, 0x001, + 0x130, 0x511, 0x1BF, 0x001, 0x12C, 0x510, 0x1C3, 0x001, + 0x129, 0x50F, 0x1C8, 0x001, 0x125, 0x50E, 0x1CC, 0x001, + 0x122, 0x50D, 0x1D0, 0x001, 0x11E, 0x50C, 0x1D5, 0x001, + 0x11B, 0x50B, 0x1D9, 0x001, 0x118, 0x50A, 0x1DD, 0x001, + 0x114, 0x508, 0x1E2, 0x001, 0x111, 0x507, 0x1E6, 0x002, + 0x10E, 0x506, 0x1EB, 0x002, 0x10B, 0x504, 0x1EF, 0x002, + 0x107, 0x503, 0x1F3, 0x002, 0x104, 0x502, 0x1F8, 0x002, + 0x101, 0x500, 0x1FC, 0x002, 0x0FE, 0x4FF, 0x201, 0x002, + 0x0FB, 0x4FD, 0x205, 0x003, 0x0F8, 0x4FB, 0x20A, 0x003, + 0x0F5, 0x4FA, 0x20F, 0x003, 0x0F2, 0x4F8, 0x213, 0x003, + 0x0EF, 0x4F6, 0x218, 0x003, 0x0EC, 0x4F5, 0x21C, 0x004, + 0x0E9, 0x4F3, 0x221, 0x004, 0x0E6, 0x4F1, 0x226, 0x004, + 0x0E3, 0x4EF, 0x22A, 0x004, 0x0E0, 0x4ED, 0x22F, 0x004, + 0x0DD, 0x4EB, 0x233, 0x005, 0x0DA, 0x4E9, 0x238, 0x005, + 0x0D7, 0x4E7, 0x23D, 0x005, 0x0D4, 0x4E5, 0x241, 0x005, + 0x0D2, 0x4E3, 0x246, 0x006, 0x0CF, 0x4E0, 0x24B, 0x006, + 0x0CC, 0x4DE, 0x250, 0x006, 0x0C9, 0x4DC, 0x254, 0x006, + 0x0C7, 0x4D9, 0x259, 0x007, 0x0C4, 0x4D7, 0x25E, 0x007, + 0x0C1, 0x4D5, 0x263, 0x007, 0x0BF, 0x4D2, 0x267, 0x008, + 0x0BC, 0x4D0, 0x26C, 0x008, 0x0BA, 0x4CD, 0x271, 0x008, + 0x0B7, 0x4CB, 0x276, 0x009, 0x0B4, 0x4C8, 0x27B, 0x009, + 0x0B2, 0x4C5, 0x280, 0x009, 0x0AF, 0x4C3, 0x284, 0x00A, + 0x0AD, 0x4C0, 0x289, 0x00A, 0x0AB, 0x4BD, 0x28E, 0x00A, + 0x0A8, 0x4BA, 0x293, 0x00B, 0x0A6, 0x4B7, 0x298, 0x00B, + 0x0A3, 0x4B5, 0x29D, 0x00B, 0x0A1, 0x4B2, 0x2A2, 0x00C, + 0x09F, 0x4AF, 0x2A6, 0x00C, 0x09C, 0x4AC, 0x2AB, 0x00D, + 0x09A, 0x4A9, 0x2B0, 0x00D, 0x098, 0x4A6, 0x2B5, 0x00E, + 0x096, 0x4A2, 0x2BA, 0x00E, 0x093, 0x49F, 0x2BF, 0x00F, + 0x091, 0x49C, 0x2C4, 0x00F, 0x08F, 0x499, 0x2C9, 0x00F, + 0x08D, 0x496, 0x2CE, 0x010, 0x08B, 0x492, 0x2D3, 0x010, + 0x089, 0x48F, 0x2D8, 0x011, 0x086, 0x48C, 0x2DC, 0x011, + 0x084, 0x488, 0x2E1, 0x012, 0x082, 0x485, 0x2E6, 0x013, + 0x080, 0x481, 0x2EB, 0x013, 0x07E, 0x47E, 0x2F0, 0x014, + 0x07C, 0x47A, 0x2F5, 0x014, 0x07A, 0x477, 0x2FA, 0x015, + 0x078, 0x473, 0x2FF, 0x015, 0x076, 0x470, 0x304, 0x016, + 0x075, 0x46C, 0x309, 0x017, 0x073, 0x468, 0x30E, 0x017, + 0x071, 0x465, 0x313, 0x018, 0x06F, 0x461, 0x318, 0x018, + 0x06D, 0x45D, 0x31D, 0x019, 0x06B, 0x459, 0x322, 0x01A, + 0x06A, 0x455, 0x326, 0x01B, 0x068, 0x452, 0x32B, 0x01B, + 0x066, 0x44E, 0x330, 0x01C, 0x064, 0x44A, 0x335, 0x01D, + 0x063, 0x446, 0x33A, 0x01D, 0x061, 0x442, 0x33F, 0x01E, + 0x05F, 0x43E, 0x344, 0x01F, 0x05E, 0x43A, 0x349, 0x020, + 0x05C, 0x436, 0x34E, 0x020, 0x05A, 0x432, 0x353, 0x021, + 0x059, 0x42E, 0x357, 0x022, 0x057, 0x42A, 0x35C, 0x023, + 0x056, 0x425, 0x361, 0x024, 0x054, 0x421, 0x366, 0x024, + 0x053, 0x41D, 0x36B, 0x025, 0x051, 0x419, 0x370, 0x026, + 0x050, 0x415, 0x374, 0x027, 0x04E, 0x410, 0x379, 0x028, + 0x04D, 0x40C, 0x37E, 0x029, 0x04C, 0x408, 0x383, 0x02A, + 0x04A, 0x403, 0x388, 0x02B, 0x049, 0x3FF, 0x38C, 0x02C, + 0x047, 0x3FB, 0x391, 0x02D, 0x046, 0x3F6, 0x396, 0x02E, + 0x045, 0x3F2, 0x39B, 0x02F, 0x043, 0x3ED, 0x39F, 0x030, + 0x042, 0x3E9, 0x3A4, 0x031, 0x041, 0x3E5, 0x3A9, 0x032, + 0x040, 0x3E0, 0x3AD, 0x033, 0x03E, 0x3DC, 0x3B2, 0x034, + 0x03D, 0x3D7, 0x3B7, 0x035, 0x03C, 0x3D2, 0x3BB, 0x036, + 0x03B, 0x3CE, 0x3C0, 0x037, 0x03A, 0x3C9, 0x3C5, 0x038, + 0x038, 0x3C5, 0x3C9, 0x03A, 0x037, 0x3C0, 0x3CE, 0x03B, + 0x036, 0x3BB, 0x3D2, 0x03C, 0x035, 0x3B7, 0x3D7, 0x03D, + 0x034, 0x3B2, 0x3DC, 0x03E, 0x033, 0x3AD, 0x3E0, 0x040, + 0x032, 0x3A9, 0x3E5, 0x041, 0x031, 0x3A4, 0x3E9, 0x042, + 0x030, 0x39F, 0x3ED, 0x043, 0x02F, 0x39B, 0x3F2, 0x045, + 0x02E, 0x396, 0x3F6, 0x046, 0x02D, 0x391, 0x3FB, 0x047, + 0x02C, 0x38C, 0x3FF, 0x049, 0x02B, 0x388, 0x403, 0x04A, + 0x02A, 0x383, 0x408, 0x04C, 0x029, 0x37E, 0x40C, 0x04D, + 0x028, 0x379, 0x410, 0x04E, 0x027, 0x374, 0x415, 0x050, + 0x026, 0x370, 0x419, 0x051, 0x025, 0x36B, 0x41D, 0x053, + 0x024, 0x366, 0x421, 0x054, 0x024, 0x361, 0x425, 0x056, + 0x023, 0x35C, 0x42A, 0x057, 0x022, 0x357, 0x42E, 0x059, + 0x021, 0x353, 0x432, 0x05A, 0x020, 0x34E, 0x436, 0x05C, + 0x020, 0x349, 0x43A, 0x05E, 0x01F, 0x344, 0x43E, 0x05F, + 0x01E, 0x33F, 0x442, 0x061, 0x01D, 0x33A, 0x446, 0x063, + 0x01D, 0x335, 0x44A, 0x064, 0x01C, 0x330, 0x44E, 0x066, + 0x01B, 0x32B, 0x452, 0x068, 0x01B, 0x326, 0x455, 0x06A, + 0x01A, 0x322, 0x459, 0x06B, 0x019, 0x31D, 0x45D, 0x06D, + 0x018, 0x318, 0x461, 0x06F, 0x018, 0x313, 0x465, 0x071, + 0x017, 0x30E, 0x468, 0x073, 0x017, 0x309, 0x46C, 0x075, + 0x016, 0x304, 0x470, 0x076, 0x015, 0x2FF, 0x473, 0x078, + 0x015, 0x2FA, 0x477, 0x07A, 0x014, 0x2F5, 0x47A, 0x07C, + 0x014, 0x2F0, 0x47E, 0x07E, 0x013, 0x2EB, 0x481, 0x080, + 0x013, 0x2E6, 0x485, 0x082, 0x012, 0x2E1, 0x488, 0x084, + 0x011, 0x2DC, 0x48C, 0x086, 0x011, 0x2D8, 0x48F, 0x089, + 0x010, 0x2D3, 0x492, 0x08B, 0x010, 0x2CE, 0x496, 0x08D, + 0x00F, 0x2C9, 0x499, 0x08F, 0x00F, 0x2C4, 0x49C, 0x091, + 0x00F, 0x2BF, 0x49F, 0x093, 0x00E, 0x2BA, 0x4A2, 0x096, + 0x00E, 0x2B5, 0x4A6, 0x098, 0x00D, 0x2B0, 0x4A9, 0x09A, + 0x00D, 0x2AB, 0x4AC, 0x09C, 0x00C, 0x2A6, 0x4AF, 0x09F, + 0x00C, 0x2A2, 0x4B2, 0x0A1, 0x00B, 0x29D, 0x4B5, 0x0A3, + 0x00B, 0x298, 0x4B7, 0x0A6, 0x00B, 0x293, 0x4BA, 0x0A8, + 0x00A, 0x28E, 0x4BD, 0x0AB, 0x00A, 0x289, 0x4C0, 0x0AD, + 0x00A, 0x284, 0x4C3, 0x0AF, 0x009, 0x280, 0x4C5, 0x0B2, + 0x009, 0x27B, 0x4C8, 0x0B4, 0x009, 0x276, 0x4CB, 0x0B7, + 0x008, 0x271, 0x4CD, 0x0BA, 0x008, 0x26C, 0x4D0, 0x0BC, + 0x008, 0x267, 0x4D2, 0x0BF, 0x007, 0x263, 0x4D5, 0x0C1, + 0x007, 0x25E, 0x4D7, 0x0C4, 0x007, 0x259, 0x4D9, 0x0C7, + 0x006, 0x254, 0x4DC, 0x0C9, 0x006, 0x250, 0x4DE, 0x0CC, + 0x006, 0x24B, 0x4E0, 0x0CF, 0x006, 0x246, 0x4E3, 0x0D2, + 0x005, 0x241, 0x4E5, 0x0D4, 0x005, 0x23D, 0x4E7, 0x0D7, + 0x005, 0x238, 0x4E9, 0x0DA, 0x005, 0x233, 0x4EB, 0x0DD, + 0x004, 0x22F, 0x4ED, 0x0E0, 0x004, 0x22A, 0x4EF, 0x0E3, + 0x004, 0x226, 0x4F1, 0x0E6, 0x004, 0x221, 0x4F3, 0x0E9, + 0x004, 0x21C, 0x4F5, 0x0EC, 0x003, 0x218, 0x4F6, 0x0EF, + 0x003, 0x213, 0x4F8, 0x0F2, 0x003, 0x20F, 0x4FA, 0x0F5, + 0x003, 0x20A, 0x4FB, 0x0F8, 0x003, 0x205, 0x4FD, 0x0FB, + 0x002, 0x201, 0x4FF, 0x0FE, 0x002, 0x1FC, 0x500, 0x101, + 0x002, 0x1F8, 0x502, 0x104, 0x002, 0x1F3, 0x503, 0x107, + 0x002, 0x1EF, 0x504, 0x10B, 0x002, 0x1EB, 0x506, 0x10E, + 0x002, 0x1E6, 0x507, 0x111, 0x001, 0x1E2, 0x508, 0x114, + 0x001, 0x1DD, 0x50A, 0x118, 0x001, 0x1D9, 0x50B, 0x11B, + 0x001, 0x1D5, 0x50C, 0x11E, 0x001, 0x1D0, 0x50D, 0x122, + 0x001, 0x1CC, 0x50E, 0x125, 0x001, 0x1C8, 0x50F, 0x129, + 0x001, 0x1C3, 0x510, 0x12C, 0x001, 0x1BF, 0x511, 0x130, + 0x001, 0x1BB, 0x511, 0x133, 0x001, 0x1B7, 0x512, 0x137, + 0x000, 0x1B2, 0x513, 0x13A, 0x000, 0x1AE, 0x514, 0x13E, + 0x000, 0x1AA, 0x514, 0x141, 0x000, 0x1A6, 0x515, 0x145, + 0x000, 0x1A2, 0x516, 0x148, 0x000, 0x19E, 0x516, 0x14C, + 0x000, 0x19A, 0x517, 0x150, 0x000, 0x195, 0x517, 0x153, + 0x000, 0x191, 0x517, 0x157, 0x000, 0x18D, 0x518, 0x15B, + 0x000, 0x189, 0x518, 0x15F, 0x000, 0x185, 0x518, 0x162, + 0x000, 0x181, 0x518, 0x166, 0x000, 0x17D, 0x518, 0x16A, + 0x000, 0x17A, 0x519, 0x16E, 0x000, 0x176, 0x519, 0x172}; +#endif diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops/registers.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops/registers.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,492 @@ +/*************************************************************************** + registers.c - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +/* ChangeLog + + February 8, 2004 - xodnizel + - Fixed setting of reverb volume. Just typecast val("u16") to s16. + Also adjusted the normal channel volume to be one less than what it was before when the + "phase invert" bit is set. I'm assuming it's just in two's complement. + + 2003/02/09 - kode54 + - removed &0x3fff from reverb volume registers, fixes a few games, + hopefully won't be breaking anything + + 2003/01/19 - Pete + - added Neill's reverb + + 2003/01/06 - Pete + - added Neill's ADSR timings + + 2002/05/15 - Pete + - generic cleanup for the Peops release + +*/ + +#include "stdafx.h" + +#define _IN_REGISTERS + +#include "../peops/externals.h" +#include "../peops/registers.h" +#include "../peops/regs.h" + +//////////////////////////////////////////////////////////////////////// +// WRITE REGISTERS: called by main emu +//////////////////////////////////////////////////////////////////////// + +void SPUwriteRegister(u32 reg, u16 val) +{ + const u32 r=reg&0xfff; + regArea[(r-0xc00)>>1] = val; + +// printf("SPUwrite: r %x val %x\n", r, val); + + if(r>=0x0c00 && r<0x0d80) // some channel info? + { + int ch=(r>>4)-0xc0; // calc channel + + //if(ch==20) printf("%08x: %04x\n",reg,val); + + switch(r&0x0f) + { + //------------------------------------------------// r volume + case 0: + SetVolumeLR(0,(u8)ch,val); + break; + //------------------------------------------------// l volume + case 2: + SetVolumeLR(1,(u8)ch,val); + break; + //------------------------------------------------// pitch + case 4: + SetPitch(ch,val); + break; + //------------------------------------------------// start + case 6: + s_chan[ch].pStart=spuMemC+((u32) val<<3); + break; + //------------------------------------------------// level with pre-calcs + case 8: + { + const u32 lval=val; // DEBUG CHECK + //---------------------------------------------// + s_chan[ch].ADSRX.AttackModeExp=(lval&0x8000)?1:0; + s_chan[ch].ADSRX.AttackRate=(lval>>8) & 0x007f; + s_chan[ch].ADSRX.DecayRate=(lval>>4) & 0x000f; + s_chan[ch].ADSRX.SustainLevel=lval & 0x000f; + //---------------------------------------------// + } + break; + //------------------------------------------------// adsr times with pre-calcs + case 10: + { + const u32 lval=val; // DEBUG CHECK + + //----------------------------------------------// + s_chan[ch].ADSRX.SustainModeExp = (lval&0x8000)?1:0; + s_chan[ch].ADSRX.SustainIncrease= (lval&0x4000)?0:1; + s_chan[ch].ADSRX.SustainRate = (lval>>6) & 0x007f; + s_chan[ch].ADSRX.ReleaseModeExp = (lval&0x0020)?1:0; + s_chan[ch].ADSRX.ReleaseRate = lval & 0x001f; + //----------------------------------------------// + } + break; + //------------------------------------------------// adsr volume... mmm have to investigate this + //case 0xC: + // break; + //------------------------------------------------// + case 0xE: // loop? + s_chan[ch].pLoop=spuMemC+((u32) val<<3); + s_chan[ch].bIgnoreLoop=1; + break; + //------------------------------------------------// + } + return; + } + + switch(r) + { + //-------------------------------------------------// + case H_SPUaddr: + spuAddr = (u32) val<<3; + break; + //-------------------------------------------------// + case H_SPUdata: + spuMem[spuAddr>>1] = BFLIP16(val); + spuAddr+=2; + if(spuAddr>0x7ffff) spuAddr=0; + break; + //-------------------------------------------------// + case H_SPUctrl: + spuCtrl=val; + break; + //-------------------------------------------------// + case H_SPUstat: + spuStat=val & 0xf800; + break; + //-------------------------------------------------// + case H_SPUReverbAddr: + if(val==0xFFFF || val<=0x200) + {rvb.StartAddr=rvb.CurrAddr=0;} + else + { + const s32 iv=(u32)val<<2; + if(rvb.StartAddr!=iv) + { + rvb.StartAddr=(u32)val<<2; + rvb.CurrAddr=rvb.StartAddr; + } + } + break; + //-------------------------------------------------// + case H_SPUirqAddr: + spuIrq = val; + pSpuIrq=spuMemC+((u32) val<<3); + break; + //-------------------------------------------------// + /* Volume settings appear to be at least 15-bit unsigned in this case. + Definitely NOT 15-bit signed. Probably 16-bit signed, so s16 type cast. + Check out "Chrono Cross: Shadow's End Forest" + */ + case H_SPUrvolL: + rvb.VolLeft=(s16)val; + //printf("%d\n",val); + break; + //-------------------------------------------------// + case H_SPUrvolR: + rvb.VolRight=(s16)val; + //printf("%d\n",val); + break; + //-------------------------------------------------// + +/* + case H_ExtLeft: + //auxprintf("EL %d\n",val); + break; + //-------------------------------------------------// + case H_ExtRight: + //auxprintf("ER %d\n",val); + break; + //-------------------------------------------------// + case H_SPUmvolL: + //auxprintf("ML %d\n",val); + break; + //-------------------------------------------------// + case H_SPUmvolR: + //auxprintf("MR %d\n",val); + break; + //-------------------------------------------------// + case H_SPUMute1: + //printf("M0 %04x\n",val); + break; + //-------------------------------------------------// + case H_SPUMute2: + // printf("M1 %04x\n",val); + break; +*/ + //-------------------------------------------------// + case H_SPUon1: + SoundOn(0,16,val); + break; + //-------------------------------------------------// + case H_SPUon2: + // printf("Boop: %08x: %04x\n",reg,val); + SoundOn(16,24,val); + break; + //-------------------------------------------------// + case H_SPUoff1: + SoundOff(0,16,val); + break; + //-------------------------------------------------// + case H_SPUoff2: + SoundOff(16,24,val); + // printf("Boop: %08x: %04x\n",reg,val); + break; + //-------------------------------------------------// + case H_FMod1: + FModOn(0,16,val); + break; + //-------------------------------------------------// + case H_FMod2: + FModOn(16,24,val); + break; + //-------------------------------------------------// + case H_Noise1: + NoiseOn(0,16,val); + break; + //-------------------------------------------------// + case H_Noise2: + NoiseOn(16,24,val); + break; + //-------------------------------------------------// + case H_RVBon1: + rvb.Enabled&=~0xFFFF; + rvb.Enabled|=val; + break; + + //-------------------------------------------------// + case H_RVBon2: + rvb.Enabled&=0xFFFF; + rvb.Enabled|=val<<16; + break; + + //-------------------------------------------------// + case H_Reverb+0: + rvb.FB_SRC_A=val; + break; + + case H_Reverb+2 : rvb.FB_SRC_B=(s16)val; break; + case H_Reverb+4 : rvb.IIR_ALPHA=(s16)val; break; + case H_Reverb+6 : rvb.ACC_COEF_A=(s16)val; break; + case H_Reverb+8 : rvb.ACC_COEF_B=(s16)val; break; + case H_Reverb+10 : rvb.ACC_COEF_C=(s16)val; break; + case H_Reverb+12 : rvb.ACC_COEF_D=(s16)val; break; + case H_Reverb+14 : rvb.IIR_COEF=(s16)val; break; + case H_Reverb+16 : rvb.FB_ALPHA=(s16)val; break; + case H_Reverb+18 : rvb.FB_X=(s16)val; break; + case H_Reverb+20 : rvb.IIR_DEST_A0=(s16)val; break; + case H_Reverb+22 : rvb.IIR_DEST_A1=(s16)val; break; + case H_Reverb+24 : rvb.ACC_SRC_A0=(s16)val; break; + case H_Reverb+26 : rvb.ACC_SRC_A1=(s16)val; break; + case H_Reverb+28 : rvb.ACC_SRC_B0=(s16)val; break; + case H_Reverb+30 : rvb.ACC_SRC_B1=(s16)val; break; + case H_Reverb+32 : rvb.IIR_SRC_A0=(s16)val; break; + case H_Reverb+34 : rvb.IIR_SRC_A1=(s16)val; break; + case H_Reverb+36 : rvb.IIR_DEST_B0=(s16)val; break; + case H_Reverb+38 : rvb.IIR_DEST_B1=(s16)val; break; + case H_Reverb+40 : rvb.ACC_SRC_C0=(s16)val; break; + case H_Reverb+42 : rvb.ACC_SRC_C1=(s16)val; break; + case H_Reverb+44 : rvb.ACC_SRC_D0=(s16)val; break; + case H_Reverb+46 : rvb.ACC_SRC_D1=(s16)val; break; + case H_Reverb+48 : rvb.IIR_SRC_B1=(s16)val; break; + case H_Reverb+50 : rvb.IIR_SRC_B0=(s16)val; break; + case H_Reverb+52 : rvb.MIX_DEST_A0=(s16)val; break; + case H_Reverb+54 : rvb.MIX_DEST_A1=(s16)val; break; + case H_Reverb+56 : rvb.MIX_DEST_B0=(s16)val; break; + case H_Reverb+58 : rvb.MIX_DEST_B1=(s16)val; break; + case H_Reverb+60 : rvb.IN_COEF_L=(s16)val; break; + case H_Reverb+62 : rvb.IN_COEF_R=(s16)val; break; + } + +} + +//////////////////////////////////////////////////////////////////////// +// READ REGISTER: called by main emu +//////////////////////////////////////////////////////////////////////// + +u16 SPUreadRegister(u32 reg) +{ + const u32 r=reg&0xfff; + + if(r>=0x0c00 && r<0x0d80) + { + switch(r&0x0f) + { + case 0xC: // get adsr vol + { + const int ch=(r>>4)-0xc0; + if(s_chan[ch].bNew) return 1; // we are started, but not processed? return 1 + if(s_chan[ch].ADSRX.lVolume && // same here... we haven't decoded one sample yet, so no envelope yet. return 1 as well + !s_chan[ch].ADSRX.EnvelopeVol) + return 1; + return (u16)(s_chan[ch].ADSRX.EnvelopeVol>>16); + } + + case 0xE: // get loop address + { + const int ch=(r>>4)-0xc0; + if(s_chan[ch].pLoop==NULL) return 0; + return (u16)((s_chan[ch].pLoop-spuMemC)>>3); + } + } + } + + switch(r) + { + case H_SPUctrl: + return spuCtrl; + + case H_SPUstat: + return spuStat; + + case H_SPUaddr: + return (u16)(spuAddr>>3); + + case H_SPUdata: + { + u16 s=BFLIP16(spuMem[spuAddr>>1]); + spuAddr+=2; + if(spuAddr>0x7ffff) spuAddr=0; + return s; + } + + case H_SPUirqAddr: + return spuIrq; + + //case H_SPUIsOn1: + // return IsSoundOn(0,16); + + //case H_SPUIsOn2: + // return IsSoundOn(16,24); + + } + + return regArea[(r-0xc00)>>1]; +} + +//////////////////////////////////////////////////////////////////////// +// SOUND ON register write +//////////////////////////////////////////////////////////////////////// + +static void SoundOn(int start,int end,u16 val) // SOUND ON PSX COMAND +{ + int ch; + + for(ch=start;ch>=1) // loop channels + { + if((val&1) && s_chan[ch].pStart) // mmm... start has to be set before key on !?! + { + s_chan[ch].bIgnoreLoop=0; + s_chan[ch].bNew=1; + } + } +} + +//////////////////////////////////////////////////////////////////////// +// SOUND OFF register write +//////////////////////////////////////////////////////////////////////// + +static void SoundOff(int start,int end,u16 val) // SOUND OFF PSX COMMAND +{ + int ch; + for(ch=start;ch>=1) // loop channels + { + if(val&1) // && s_chan[i].bOn) mmm... + { + s_chan[ch].bStop=1; + } + } +} + +//////////////////////////////////////////////////////////////////////// +// FMOD register write +//////////////////////////////////////////////////////////////////////// + +static void FModOn(int start,int end,u16 val) // FMOD ON PSX COMMAND +{ + int ch; + + for(ch=start;ch>=1) // loop channels + { + if(val&1) // -> fmod on/off + { + if(ch>0) + { + s_chan[ch].bFMod=1; // --> sound channel + s_chan[ch-1].bFMod=2; // --> freq channel + } + } + else + { + s_chan[ch].bFMod=0; // --> turn off fmod + } + } +} + +//////////////////////////////////////////////////////////////////////// +// NOISE register write +//////////////////////////////////////////////////////////////////////// + +static void NoiseOn(int start,int end,u16 val) // NOISE ON PSX COMMAND +{ + int ch; + + for(ch=start;ch>=1) // loop channels + { + if(val&1) // -> noise on/off + { + s_chan[ch].bNoise=1; + } + else + { + s_chan[ch].bNoise=0; + } + } +} + +//////////////////////////////////////////////////////////////////////// +// LEFT VOLUME register write +//////////////////////////////////////////////////////////////////////// + +// please note: sweep is wrong. + +static void SetVolumeLR(int right, u8 ch,s16 vol) // LEFT VOLUME +{ + //if(vol&0xc000) + //printf("%d %08x\n",right,vol); + if(right) + s_chan[ch].iRightVolRaw=vol; + else + s_chan[ch].iLeftVolRaw=vol; + + if(vol&0x8000) // sweep? + { + s16 sInc=1; // -> sweep up? + if(vol&0x2000) sInc=-1; // -> or down? + if(vol&0x1000) vol^=0xffff; // -> mmm... phase inverted? have to investigate this + vol=((vol&0x7f)+1)/2; // -> sweep: 0..127 -> 0..64 + vol+=vol/(2*sInc); // -> HACK: we don't sweep right now, so we just raise/lower the volume by the half! + vol*=128; + vol&=0x3fff; + //puts("Sweep"); + } + else // no sweep: + { + if(vol&0x4000) + vol=(vol&0x3FFF)-0x4000; + else + vol&=0x3FFF; + + //if(vol&0x4000) // -> mmm... phase inverted? have to investigate this + // vol=0-(0x3fff-(vol&0x3fff)); + //else + // vol&=0x3fff; + } + if(right) + s_chan[ch].iRightVolume=vol; + else + s_chan[ch].iLeftVolume=vol; // store volume +} + +//////////////////////////////////////////////////////////////////////// +// PITCH register write +//////////////////////////////////////////////////////////////////////// + +static void SetPitch(int ch,u16 val) // SET PITCH +{ + int NP; + if(val>0x3fff) NP=0x3fff; // get pitch val + else NP=val; + + s_chan[ch].iRawPitch=NP; + + NP=(44100L*NP)/4096L; // calc frequency + if(NP<1) NP=1; // some security + s_chan[ch].iActFreq=NP; // store frequency +} diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops/registers.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops/registers.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,153 @@ +/*************************************************************************** + registers.h - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +#define H_SPUReverbAddr 0x0da2 +#define H_SPUirqAddr 0x0da4 +#define H_SPUaddr 0x0da6 +#define H_SPUdata 0x0da8 +#define H_SPUctrl 0x0daa +#define H_SPUstat 0x0dae +#define H_SPUmvolL 0x0d80 +#define H_SPUmvolR 0x0d82 +#define H_SPUrvolL 0x0d84 +#define H_SPUrvolR 0x0d86 +#define H_SPUon1 0x0d88 +#define H_SPUon2 0x0d8a +#define H_SPUoff1 0x0d8c +#define H_SPUoff2 0x0d8e +#define H_FMod1 0x0d90 +#define H_FMod2 0x0d92 +#define H_Noise1 0x0d94 +#define H_Noise2 0x0d96 +#define H_RVBon1 0x0d98 +#define H_RVBon2 0x0d9a +#define H_SPUMute1 0x0d9c +#define H_SPUMute2 0x0d9e +#define H_CDLeft 0x0db0 +#define H_CDRight 0x0db2 +#define H_ExtLeft 0x0db4 +#define H_ExtRight 0x0db6 +#define H_Reverb 0x0dc0 +#define H_SPUPitch0 0x0c04 +#define H_SPUPitch1 0x0c14 +#define H_SPUPitch2 0x0c24 +#define H_SPUPitch3 0x0c34 +#define H_SPUPitch4 0x0c44 +#define H_SPUPitch5 0x0c54 +#define H_SPUPitch6 0x0c64 +#define H_SPUPitch7 0x0c74 +#define H_SPUPitch8 0x0c84 +#define H_SPUPitch9 0x0c94 +#define H_SPUPitch10 0x0ca4 +#define H_SPUPitch11 0x0cb4 +#define H_SPUPitch12 0x0cc4 +#define H_SPUPitch13 0x0cd4 +#define H_SPUPitch14 0x0ce4 +#define H_SPUPitch15 0x0cf4 +#define H_SPUPitch16 0x0d04 +#define H_SPUPitch17 0x0d14 +#define H_SPUPitch18 0x0d24 +#define H_SPUPitch19 0x0d34 +#define H_SPUPitch20 0x0d44 +#define H_SPUPitch21 0x0d54 +#define H_SPUPitch22 0x0d64 +#define H_SPUPitch23 0x0d74 + +#define H_SPUStartAdr0 0x0c06 +#define H_SPUStartAdr1 0x0c16 +#define H_SPUStartAdr2 0x0c26 +#define H_SPUStartAdr3 0x0c36 +#define H_SPUStartAdr4 0x0c46 +#define H_SPUStartAdr5 0x0c56 +#define H_SPUStartAdr6 0x0c66 +#define H_SPUStartAdr7 0x0c76 +#define H_SPUStartAdr8 0x0c86 +#define H_SPUStartAdr9 0x0c96 +#define H_SPUStartAdr10 0x0ca6 +#define H_SPUStartAdr11 0x0cb6 +#define H_SPUStartAdr12 0x0cc6 +#define H_SPUStartAdr13 0x0cd6 +#define H_SPUStartAdr14 0x0ce6 +#define H_SPUStartAdr15 0x0cf6 +#define H_SPUStartAdr16 0x0d06 +#define H_SPUStartAdr17 0x0d16 +#define H_SPUStartAdr18 0x0d26 +#define H_SPUStartAdr19 0x0d36 +#define H_SPUStartAdr20 0x0d46 +#define H_SPUStartAdr21 0x0d56 +#define H_SPUStartAdr22 0x0d66 +#define H_SPUStartAdr23 0x0d76 + +#define H_SPULoopAdr0 0x0c0e +#define H_SPULoopAdr1 0x0c1e +#define H_SPULoopAdr2 0x0c2e +#define H_SPULoopAdr3 0x0c3e +#define H_SPULoopAdr4 0x0c4e +#define H_SPULoopAdr5 0x0c5e +#define H_SPULoopAdr6 0x0c6e +#define H_SPULoopAdr7 0x0c7e +#define H_SPULoopAdr8 0x0c8e +#define H_SPULoopAdr9 0x0c9e +#define H_SPULoopAdr10 0x0cae +#define H_SPULoopAdr11 0x0cbe +#define H_SPULoopAdr12 0x0cce +#define H_SPULoopAdr13 0x0cde +#define H_SPULoopAdr14 0x0cee +#define H_SPULoopAdr15 0x0cfe +#define H_SPULoopAdr16 0x0d0e +#define H_SPULoopAdr17 0x0d1e +#define H_SPULoopAdr18 0x0d2e +#define H_SPULoopAdr19 0x0d3e +#define H_SPULoopAdr20 0x0d4e +#define H_SPULoopAdr21 0x0d5e +#define H_SPULoopAdr22 0x0d6e +#define H_SPULoopAdr23 0x0d7e + +#define H_SPU_ADSRLevel0 0x0c08 +#define H_SPU_ADSRLevel1 0x0c18 +#define H_SPU_ADSRLevel2 0x0c28 +#define H_SPU_ADSRLevel3 0x0c38 +#define H_SPU_ADSRLevel4 0x0c48 +#define H_SPU_ADSRLevel5 0x0c58 +#define H_SPU_ADSRLevel6 0x0c68 +#define H_SPU_ADSRLevel7 0x0c78 +#define H_SPU_ADSRLevel8 0x0c88 +#define H_SPU_ADSRLevel9 0x0c98 +#define H_SPU_ADSRLevel10 0x0ca8 +#define H_SPU_ADSRLevel11 0x0cb8 +#define H_SPU_ADSRLevel12 0x0cc8 +#define H_SPU_ADSRLevel13 0x0cd8 +#define H_SPU_ADSRLevel14 0x0ce8 +#define H_SPU_ADSRLevel15 0x0cf8 +#define H_SPU_ADSRLevel16 0x0d08 +#define H_SPU_ADSRLevel17 0x0d18 +#define H_SPU_ADSRLevel18 0x0d28 +#define H_SPU_ADSRLevel19 0x0d38 +#define H_SPU_ADSRLevel20 0x0d48 +#define H_SPU_ADSRLevel21 0x0d58 +#define H_SPU_ADSRLevel22 0x0d68 +#define H_SPU_ADSRLevel23 0x0d78 + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops/regs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops/regs.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,34 @@ +/*************************************************************************** + regs.h - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + + +static void SoundOn(int start,int end,u16 val); +static void SoundOff(int start,int end,u16 val); +static void FModOn(int start,int end,u16 val); +static void NoiseOn(int start,int end,u16 val); +static void SetVolumeLR(int right, u8 ch,s16 vol); +static void SetPitch(int ch,u16 val); +void SPUwriteRegister(u32 reg, u16 val); diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops/reverb.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops/reverb.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,383 @@ +/*************************************************************************** + reverb.c - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2003/03/17 - xodnizel +// - Implemented Neill's 44.1Khz-22050Hz downsampling data +// I also need to check if the ~4 sample delay doesn't screw any sounds +// up by making things too out of phase. It could be fixed easily(elsewhere). +// +// 2003/01/19 - Pete +// - added Neill's reverb (see at the end of file) +// +// 2002/12/26 - Pete +// - adjusted reverb handling +// +// 2002/08/14 - Pete +// - added extra reverb +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +#define _IN_REVERB + +// will be included from spu.c +#ifdef _IN_SPU + +//////////////////////////////////////////////////////////////////////// +// globals +//////////////////////////////////////////////////////////////////////// + +// REVERB info and timing vars... + +//////////////////////////////////////////////////////////////////////// + +static INLINE s64 g_buffer(int iOff) // get_buffer content helper: takes care about wraps +{ + s16 * p=(s16 *)spuMem; + iOff=(iOff*4)+rvb.CurrAddr; + while(iOff>0x3FFFF) iOff=rvb.StartAddr+(iOff-0x40000); + while(iOff0x3FFFF) iOff=rvb.StartAddr+(iOff-0x40000); + while(iOff32767L) iVal=32767L; + *(p+iOff)=(s16)BFLIP16((s16)iVal); +} + +//////////////////////////////////////////////////////////////////////// + +static INLINE void s_buffer1(int iOff,int iVal) // set_buffer (+1 sample) content helper: takes care about wraps and clipping +{ + s16 * p=(s16 *)spuMem; + iOff=(iOff*4)+rvb.CurrAddr+1; + while(iOff>0x3FFFF) iOff=rvb.StartAddr+(iOff-0x40000); + while(iOff32767L) iVal=32767L; + *(p+iOff)=(s16)BFLIP16((s16)iVal); +} + +static INLINE void MixREVERBLeftRight(s32 *oleft, s32 *oright, s32 inleft, s32 inright) +{ + static s32 downbuf[2][8]; + static s32 upbuf[2][8]; + static int dbpos=0,ubpos=0; + static s32 downcoeffs[8]={ /* Symmetry is sexy. */ + 1283,5344,10895,15243, + 15243,10895,5344,1283 + }; + int x; + + if(!rvb.StartAddr) // reverb is off + { + rvb.iRVBLeft=rvb.iRVBRight=0; + return; + } + + //if(inleft<-32767 || inleft>32767) printf("%d\n",inleft); + //if(inright<-32767 || inright>32767) printf("%d\n",inright); + downbuf[0][dbpos]=inleft; + downbuf[1][dbpos]=inright; + dbpos=(dbpos+1)&7; + + if(dbpos&1) // we work on every second left value: downsample to 22 khz + { + if(spuCtrl&0x80) // -> reverb on? oki + { + int ACC0,ACC1,FB_A0,FB_A1,FB_B0,FB_B1; + s32 INPUT_SAMPLE_L=0; + s32 INPUT_SAMPLE_R=0; + + for(x=0;x<8;x++) + { + INPUT_SAMPLE_L+=(downbuf[0][(dbpos+x)&7]*downcoeffs[x])>>8; /* Lose insignificant + digits to prevent + overflow(check this) */ + INPUT_SAMPLE_R+=(downbuf[1][(dbpos+x)&7]*downcoeffs[x])>>8; + } + + INPUT_SAMPLE_L>>=(16-8); + INPUT_SAMPLE_R>>=(16-8); + { + const s64 IIR_INPUT_A0 = ((g_buffer(rvb.IIR_SRC_A0) * rvb.IIR_COEF)>>15) + ((INPUT_SAMPLE_L * rvb.IN_COEF_L)>>15); + const s64 IIR_INPUT_A1 = ((g_buffer(rvb.IIR_SRC_A1) * rvb.IIR_COEF)>>15) + ((INPUT_SAMPLE_R * rvb.IN_COEF_R)>>15); + const s64 IIR_INPUT_B0 = ((g_buffer(rvb.IIR_SRC_B0) * rvb.IIR_COEF)>>15) + ((INPUT_SAMPLE_L * rvb.IN_COEF_L)>>15); + const s64 IIR_INPUT_B1 = ((g_buffer(rvb.IIR_SRC_B1) * rvb.IIR_COEF)>>15) + ((INPUT_SAMPLE_R * rvb.IN_COEF_R)>>15); + const s64 IIR_A0 = ((IIR_INPUT_A0 * rvb.IIR_ALPHA)>>15) + ((g_buffer(rvb.IIR_DEST_A0) * (32768L - rvb.IIR_ALPHA))>>15); + const s64 IIR_A1 = ((IIR_INPUT_A1 * rvb.IIR_ALPHA)>>15) + ((g_buffer(rvb.IIR_DEST_A1) * (32768L - rvb.IIR_ALPHA))>>15); + const s64 IIR_B0 = ((IIR_INPUT_B0 * rvb.IIR_ALPHA)>>15) + ((g_buffer(rvb.IIR_DEST_B0) * (32768L - rvb.IIR_ALPHA))>>15); + const s64 IIR_B1 = ((IIR_INPUT_B1 * rvb.IIR_ALPHA)>>15) + ((g_buffer(rvb.IIR_DEST_B1) * (32768L - rvb.IIR_ALPHA))>>15); + + s_buffer1(rvb.IIR_DEST_A0, IIR_A0); + s_buffer1(rvb.IIR_DEST_A1, IIR_A1); + s_buffer1(rvb.IIR_DEST_B0, IIR_B0); + s_buffer1(rvb.IIR_DEST_B1, IIR_B1); + + ACC0 = ((g_buffer(rvb.ACC_SRC_A0) * rvb.ACC_COEF_A)>>15) + + ((g_buffer(rvb.ACC_SRC_B0) * rvb.ACC_COEF_B)>>15) + + ((g_buffer(rvb.ACC_SRC_C0) * rvb.ACC_COEF_C)>>15) + + ((g_buffer(rvb.ACC_SRC_D0) * rvb.ACC_COEF_D)>>15); + ACC1 = ((g_buffer(rvb.ACC_SRC_A1) * rvb.ACC_COEF_A)>>15) + + ((g_buffer(rvb.ACC_SRC_B1) * rvb.ACC_COEF_B)>>15) + + ((g_buffer(rvb.ACC_SRC_C1) * rvb.ACC_COEF_C)>>15) + + ((g_buffer(rvb.ACC_SRC_D1) * rvb.ACC_COEF_D)>>15); + + FB_A0 = g_buffer(rvb.MIX_DEST_A0 - rvb.FB_SRC_A); + FB_A1 = g_buffer(rvb.MIX_DEST_A1 - rvb.FB_SRC_A); + FB_B0 = g_buffer(rvb.MIX_DEST_B0 - rvb.FB_SRC_B); + FB_B1 = g_buffer(rvb.MIX_DEST_B1 - rvb.FB_SRC_B); + + s_buffer(rvb.MIX_DEST_A0, ACC0 - ((FB_A0 * rvb.FB_ALPHA)>>15)); + s_buffer(rvb.MIX_DEST_A1, ACC1 - ((FB_A1 * rvb.FB_ALPHA)>>15)); + + s_buffer(rvb.MIX_DEST_B0, ((rvb.FB_ALPHA * ACC0)>>15) - ((FB_A0 * (int)(rvb.FB_ALPHA^0xFFFF8000))>>15) - ((FB_B0 * rvb.FB_X)>>15)); + s_buffer(rvb.MIX_DEST_B1, ((rvb.FB_ALPHA * ACC1)>>15) - ((FB_A1 * (int)(rvb.FB_ALPHA^0xFFFF8000))>>15) - ((FB_B1 * rvb.FB_X)>>15)); + + rvb.iRVBLeft = (g_buffer(rvb.MIX_DEST_A0)+g_buffer(rvb.MIX_DEST_B0))/3; + rvb.iRVBRight = (g_buffer(rvb.MIX_DEST_A1)+g_buffer(rvb.MIX_DEST_B1))/3; + + rvb.iRVBLeft = ((s64)rvb.iRVBLeft * rvb.VolLeft) >> 14; + rvb.iRVBRight = ((s64)rvb.iRVBRight * rvb.VolRight) >> 14; + + upbuf[0][ubpos]=rvb.iRVBLeft; + upbuf[1][ubpos]=rvb.iRVBRight; + ubpos=(ubpos+1)&7; + } // Bracket hack(et). + } + else // -> reverb off + { + rvb.iRVBLeft=rvb.iRVBRight=0; + return; + } + rvb.CurrAddr++; + if(rvb.CurrAddr>0x3ffff) rvb.CurrAddr=rvb.StartAddr; + } + else + { + upbuf[0][ubpos]=0; + upbuf[1][ubpos]=0; + ubpos=(ubpos+1)&7; + } + { + s32 retl=0,retr=0; + for(x=0;x<8;x++) + { + retl+=(upbuf[0][(ubpos+x)&7]*downcoeffs[x])>>8; + retr+=(upbuf[1][(ubpos+x)&7]*downcoeffs[x])>>8; + } + retl>>=(16-8-1); /* -1 To adjust for the null padding. */ + retr>>=(16-8-1); + + *oleft+=retl; + *oright+=retr; + } +} + +//////////////////////////////////////////////////////////////////////// + +#endif + +/* +----------------------------------------------------------------------------- +PSX reverb hardware notes +by Neill Corlett +----------------------------------------------------------------------------- + +Yadda yadda disclaimer yadda probably not perfect yadda well it's okay anyway +yadda yadda. + +----------------------------------------------------------------------------- + +Basics +------ + +- The reverb buffer is 22khz 16-bit mono PCM. +- It starts at the reverb address given by 1DA2, extends to + the end of sound RAM, and wraps back to the 1DA2 address. + +Setting the address at 1DA2 resets the current reverb work address. + +This work address ALWAYS increments every 1/22050 sec., regardless of +whether reverb is enabled (bit 7 of 1DAA set). + +And the contents of the reverb buffer ALWAYS play, scaled by the +"reverberation depth left/right" volumes (1D84/1D86). +(which, by the way, appear to be scaled so 3FFF=approx. 1.0, 4000=-1.0) + +----------------------------------------------------------------------------- + +Register names +-------------- + +These are probably not their real names. +These are probably not even correct names. +We will use them anyway, because we can. + +1DC0: FB_SRC_A (offset) +1DC2: FB_SRC_B (offset) +1DC4: IIR_ALPHA (coef.) +1DC6: ACC_COEF_A (coef.) +1DC8: ACC_COEF_B (coef.) +1DCA: ACC_COEF_C (coef.) +1DCC: ACC_COEF_D (coef.) +1DCE: IIR_COEF (coef.) +1DD0: FB_ALPHA (coef.) +1DD2: FB_X (coef.) +1DD4: IIR_DEST_A0 (offset) +1DD6: IIR_DEST_A1 (offset) +1DD8: ACC_SRC_A0 (offset) +1DDA: ACC_SRC_A1 (offset) +1DDC: ACC_SRC_B0 (offset) +1DDE: ACC_SRC_B1 (offset) +1DE0: IIR_SRC_A0 (offset) +1DE2: IIR_SRC_A1 (offset) +1DE4: IIR_DEST_B0 (offset) +1DE6: IIR_DEST_B1 (offset) +1DE8: ACC_SRC_C0 (offset) +1DEA: ACC_SRC_C1 (offset) +1DEC: ACC_SRC_D0 (offset) +1DEE: ACC_SRC_D1 (offset) +1DF0: IIR_SRC_B1 (offset) +1DF2: IIR_SRC_B0 (offset) +1DF4: MIX_DEST_A0 (offset) +1DF6: MIX_DEST_A1 (offset) +1DF8: MIX_DEST_B0 (offset) +1DFA: MIX_DEST_B1 (offset) +1DFC: IN_COEF_L (coef.) +1DFE: IN_COEF_R (coef.) + +The coefficients are signed fractional values. +-32768 would be -1.0 + 32768 would be 1.0 (if it were possible... the highest is of course 32767) + +The offsets are (byte/8) offsets into the reverb buffer. +i.e. you multiply them by 8, you get byte offsets. +You can also think of them as (samples/4) offsets. +They appear to be signed. They can be negative. +None of the documented presets make them negative, though. + +Yes, 1DF0 and 1DF2 appear to be backwards. Not a typo. + +----------------------------------------------------------------------------- + +What it does +------------ + +We take all reverb sources: +- regular channels that have the reverb bit on +- cd and external sources, if their reverb bits are on +and mix them into one stereo 44100hz signal. + +Lowpass/downsample that to 22050hz. The PSX uses a proper bandlimiting +algorithm here, but I haven't figured out the hysterically exact specifics. +I use an 8-tap filter with these coefficients, which are nice but probably +not the real ones: + +0.037828187894 +0.157538631280 +0.321159685278 +0.449322115345 +0.449322115345 +0.321159685278 +0.157538631280 +0.037828187894 + +So we have two input samples (INPUT_SAMPLE_L, INPUT_SAMPLE_R) every 22050hz. + +* IN MY EMULATION, I divide these by 2 to make it clip less. + (and of course the L/R output coefficients are adjusted to compensate) + The real thing appears to not do this. + +At every 22050hz tick: +- If the reverb bit is enabled (bit 7 of 1DAA), execute the reverb + steady-state algorithm described below +- AFTERWARDS, retrieve the "wet out" L and R samples from the reverb buffer + (This part may not be exactly right and I guessed at the coefs. TODO: check later.) + L is: 0.333 * (buffer[MIX_DEST_A0] + buffer[MIX_DEST_B0]) + R is: 0.333 * (buffer[MIX_DEST_A1] + buffer[MIX_DEST_B1]) +- Advance the current buffer position by 1 sample + +The wet out L and R are then upsampled to 44100hz and played at the +"reverberation depth left/right" (1D84/1D86) volume, independent of the main +volume. + +----------------------------------------------------------------------------- + +Reverb steady-state +------------------- + +The reverb steady-state algorithm is fairly clever, and of course by +"clever" I mean "batshit insane". + +buffer[x] is relative to the current buffer position, not the beginning of +the buffer. Note that all buffer offsets must wrap around so they're +contained within the reverb work area. + +Clipping is performed at the end... maybe also sooner, but definitely at +the end. + +IIR_INPUT_A0 = buffer[IIR_SRC_A0] * IIR_COEF + INPUT_SAMPLE_L * IN_COEF_L; +IIR_INPUT_A1 = buffer[IIR_SRC_A1] * IIR_COEF + INPUT_SAMPLE_R * IN_COEF_R; +IIR_INPUT_B0 = buffer[IIR_SRC_B0] * IIR_COEF + INPUT_SAMPLE_L * IN_COEF_L; +IIR_INPUT_B1 = buffer[IIR_SRC_B1] * IIR_COEF + INPUT_SAMPLE_R * IN_COEF_R; + +IIR_A0 = IIR_INPUT_A0 * IIR_ALPHA + buffer[IIR_DEST_A0] * (1.0 - IIR_ALPHA); +IIR_A1 = IIR_INPUT_A1 * IIR_ALPHA + buffer[IIR_DEST_A1] * (1.0 - IIR_ALPHA); +IIR_B0 = IIR_INPUT_B0 * IIR_ALPHA + buffer[IIR_DEST_B0] * (1.0 - IIR_ALPHA); +IIR_B1 = IIR_INPUT_B1 * IIR_ALPHA + buffer[IIR_DEST_B1] * (1.0 - IIR_ALPHA); + +buffer[IIR_DEST_A0 + 1sample] = IIR_A0; +buffer[IIR_DEST_A1 + 1sample] = IIR_A1; +buffer[IIR_DEST_B0 + 1sample] = IIR_B0; +buffer[IIR_DEST_B1 + 1sample] = IIR_B1; + +ACC0 = buffer[ACC_SRC_A0] * ACC_COEF_A + + buffer[ACC_SRC_B0] * ACC_COEF_B + + buffer[ACC_SRC_C0] * ACC_COEF_C + + buffer[ACC_SRC_D0] * ACC_COEF_D; +ACC1 = buffer[ACC_SRC_A1] * ACC_COEF_A + + buffer[ACC_SRC_B1] * ACC_COEF_B + + buffer[ACC_SRC_C1] * ACC_COEF_C + + buffer[ACC_SRC_D1] * ACC_COEF_D; + +FB_A0 = buffer[MIX_DEST_A0 - FB_SRC_A]; +FB_A1 = buffer[MIX_DEST_A1 - FB_SRC_A]; +FB_B0 = buffer[MIX_DEST_B0 - FB_SRC_B]; +FB_B1 = buffer[MIX_DEST_B1 - FB_SRC_B]; + +buffer[MIX_DEST_A0] = ACC0 - FB_A0 * FB_ALPHA; +buffer[MIX_DEST_A1] = ACC1 - FB_A1 * FB_ALPHA; +buffer[MIX_DEST_B0] = (FB_ALPHA * ACC0) - FB_A0 * (FB_ALPHA^0x8000) - FB_B0 * FB_X; +buffer[MIX_DEST_B1] = (FB_ALPHA * ACC1) - FB_A1 * (FB_ALPHA^0x8000) - FB_B1 * FB_X; + +----------------------------------------------------------------------------- +*/ + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops/spu.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops/spu.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,641 @@ +/*************************************************************************** + spu.c - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2003/03/01 - linuzappz +// - libraryName changes using ALSA +// +// 2003/02/28 - Pete +// - added option for type of interpolation +// - adjusted spu irqs again (Thousant Arms, Valkyrie Profile) +// - added MONO support for MSWindows DirectSound +// +// 2003/02/20 - kode54 +// - amended interpolation code, goto GOON could skip initialization of gpos and cause segfault +// +// 2003/02/19 - kode54 +// - moved SPU IRQ handler and changed sample flag processing +// +// 2003/02/18 - kode54 +// - moved ADSR calculation outside of the sample decode loop, somehow I doubt that +// ADSR timing is relative to the frequency at which a sample is played... I guess +// this remains to be seen, and I don't know whether ADSR is applied to noise channels... +// +// 2003/02/09 - kode54 +// - one-shot samples now process the end block before stopping +// - in light of removing fmod hack, now processing ADSR on frequency channel as well +// +// 2003/02/08 - kode54 +// - replaced easy interpolation with gaussian +// - removed fmod averaging hack +// - changed .sinc to be updated from .iRawPitch, no idea why it wasn't done this way already (<- Pete: because I sometimes fail to see the obvious, haharhar :) +// +// 2003/02/08 - linuzappz +// - small bugfix for one usleep that was 1 instead of 1000 +// - added iDisStereo for no stereo (Linux) +// +// 2003/01/22 - Pete +// - added easy interpolation & small noise adjustments +// +// 2003/01/19 - Pete +// - added Neill's reverb +// +// 2003/01/12 - Pete +// - added recording window handlers +// +// 2003/01/06 - Pete +// - added Neill's ADSR timings +// +// 2002/12/28 - Pete +// - adjusted spu irq handling, fmod handling and loop handling +// +// 2002/08/14 - Pete +// - added extra reverb +// +// 2002/06/08 - linuzappz +// - SPUupdate changed for SPUasync +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +#define _IN_SPU + +#include "../peops/stdafx.h" +#include "../peops/externals.h" +#include "../peops/regs.h" +#include "../peops/registers.h" +#include "../peops/spu.h" + +void SPUirq(void) ; + +//#include "PsxMem.h" +//#include "driver.h" + +//////////////////////////////////////////////////////////////////////// +// globals +//////////////////////////////////////////////////////////////////////// + +// psx buffer / addresses + +static u16 regArea[0x200]; +static u16 spuMem[256*1024]; +static u8 * spuMemC; +static u8 * pSpuIrq=0; +static u8 * pSpuBuffer; + +// user settings +static int iVolume; + +// MAIN infos struct for each channel + +static SPUCHAN s_chan[MAXCHAN+1]; // channel + 1 infos (1 is security for fmod handling) +static REVERBInfo rvb; + +static u32 dwNoiseVal=1; // global noise generator + +static u16 spuCtrl=0; // some vars to store psx reg infos +static u16 spuStat=0; +static u16 spuIrq=0; +static u32 spuAddr=0xffffffff; // address into spu mem +static int bSPUIsOpen=0; + +static const int f[5][2] = { + { 0, 0 }, + { 60, 0 }, + { 115, -52 }, + { 98, -55 }, + { 122, -60 } }; +s16 * pS; +static s32 ttemp; + +//////////////////////////////////////////////////////////////////////// +// CODE AREA +//////////////////////////////////////////////////////////////////////// + +// dirty inline func includes + +#include "../peops/reverb.c" +#include "../peops/adsr.c" + +// Try this to increase speed. +#include "../peops/registers.c" +#include "../peops/dma.c" + +//////////////////////////////////////////////////////////////////////// +// helpers for so-called "gauss interpolation" + +#define gval0 (((int *)(&s_chan[ch].SB[29]))[gpos]) +#define gval(x) (((int *)(&s_chan[ch].SB[29]))[(gpos+x)&3]) + +#include "gauss_i.h" + +//////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////// +// START SOUND... called by main thread to setup a new sound on a channel +//////////////////////////////////////////////////////////////////////// + +static INLINE void StartSound(int ch) +{ + StartADSR(ch); + + s_chan[ch].pCurr=s_chan[ch].pStart; // set sample start + + s_chan[ch].s_1=0; // init mixing vars + s_chan[ch].s_2=0; + s_chan[ch].iSBPos=28; + + s_chan[ch].bNew=0; // init channel flags + s_chan[ch].bStop=0; + s_chan[ch].bOn=1; + + s_chan[ch].SB[29]=0; // init our interpolation helpers + s_chan[ch].SB[30]=0; + + s_chan[ch].spos=0x40000L;s_chan[ch].SB[28]=0; // -> start with more decoding +} + +//////////////////////////////////////////////////////////////////////// +// MAIN SPU FUNCTION +// here is the main job handler... thread, timer or direct func call +// basically the whole sound processing is done in this fat func! +//////////////////////////////////////////////////////////////////////// + +static u32 sampcount; +static u32 decaybegin; +static u32 decayend; + +// Counting to 65536 results in full volume offage. +void setlength(s32 stop, s32 fade) +{ + if(stop==~0) + { + decaybegin=~0; + } + else + { + stop=(stop*441)/10; + fade=(fade*441)/10; + + decaybegin=stop; + decayend=stop+fade; + } +} + +#define CLIP(_x) {if(_x>32767) _x=32767; if(_x<-32767) _x=-32767;} +int SPUasync(u32 cycles) +{ + int volmul=iVolume; + static s32 dosampies; + s32 temp; + + ttemp+=cycles; + dosampies=ttemp/384; + if(!dosampies) return(1); + ttemp-=dosampies*384; + temp=dosampies; + + while(temp) + { + s32 revLeft=0, revRight=0; + s32 sl=0, sr=0; + int ch,fa; + + temp--; + //--------------------------------------------------// + //- main channel loop -// + //--------------------------------------------------// + { + for(ch=0;ch take it and calc steps + s_chan[ch].sinc=s_chan[ch].iRawPitch<<4; + if(!s_chan[ch].sinc) s_chan[ch].sinc=1; + } + + while(s_chan[ch].spos>=0x10000L) + { + if(s_chan[ch].iSBPos==28) // 28 reached? + { + int predict_nr,shift_factor,flags,d,s; + u8* start;unsigned int nSample; + int s_1,s_2; + + start=s_chan[ch].pCurr; // set up the current pos + + if (start == (u8*)-1) // special "stop" sign + { + s_chan[ch].bOn=0; // -> turn everything off + s_chan[ch].ADSRX.lVolume=0; + s_chan[ch].ADSRX.EnvelopeVol=0; + goto ENDX; // -> and done for this channel + } + + s_chan[ch].iSBPos=0; // Reset buffer play index. + + //////////////////////////////////////////// spu irq handler here? mmm... do it later + + s_1=s_chan[ch].s_1; + s_2=s_chan[ch].s_2; + + predict_nr=(int)*start;start++; + shift_factor=predict_nr&0xf; + predict_nr >>= 4; + flags=(int)*start;start++; + + // -------------------------------------- // + // Decode new samples into s_chan[ch].SB[0 through 27] + for (nSample=0;nSample<28;start++) + { + d=(int)*start; + s=((d&0xf)<<12); + if(s&0x8000) s|=0xffff0000; + + fa=(s >> shift_factor); + fa=fa + ((s_1 * f[predict_nr][0])>>6) + ((s_2 * f[predict_nr][1])>>6); + s_2=s_1;s_1=fa; + s=((d & 0xf0) << 8); + + s_chan[ch].SB[nSample++]=fa; + + if(s&0x8000) s|=0xffff0000; + fa=(s>>shift_factor); + fa=fa + ((s_1 * f[predict_nr][0])>>6) + ((s_2 * f[predict_nr][1])>>6); + s_2=s_1;s_1=fa; + + s_chan[ch].SB[nSample++]=fa; + } + + //////////////////////////////////////////// irq check + + if(spuCtrl&0x40) // irq active? + { + if((pSpuIrq > start-16 && // irq address reached? + pSpuIrq <= start) || + ((flags&1) && // special: irq on looping addr, when stop/loop flag is set + (pSpuIrq > s_chan[ch].pLoop-16 && + pSpuIrq <= s_chan[ch].pLoop))) + { + //extern s32 spuirqvoodoo; + s_chan[ch].iIrqDone=1; // -> debug flag + SPUirq(); + //puts("IRQ"); + //if(spuirqvoodoo!=-1) + //{ + // spuirqvoodoo=temp*384; + // temp=0; + //} + } + } + + //////////////////////////////////////////// flag handler + + if((flags&4) && (!s_chan[ch].bIgnoreLoop)) + s_chan[ch].pLoop=start-16; // loop adress + + if(flags&1) // 1: stop/loop + { + // We play this block out first... + //if(!(flags&2)) // 1+2: do loop... otherwise: stop + if(flags!=3 || s_chan[ch].pLoop==NULL) // PETE: if we don't check exactly for 3, loop hang ups will happen (DQ4, for example) + { // and checking if pLoop is set avoids crashes, yeah + start = (u8*)-1; + } + else + { + start = s_chan[ch].pLoop; + } + } + + s_chan[ch].pCurr=start; // store values for next cycle + s_chan[ch].s_1=s_1; + s_chan[ch].s_2=s_2; + + //////////////////////////////////////////// + } + + fa=s_chan[ch].SB[s_chan[ch].iSBPos++]; // get sample data + + if((spuCtrl&0x4000)==0) fa=0; // muted? + else CLIP(fa); + + { + int gpos; + gpos = s_chan[ch].SB[28]; + gval0 = fa; + gpos = (gpos+1) & 3; + s_chan[ch].SB[28] = gpos; + } + s_chan[ch].spos -= 0x10000L; + } + + //////////////////////////////////////////////// + // noise handler... just produces some noise data + // surely wrong... and no noise frequency (spuCtrl&0x3f00) will be used... + // and sometimes the noise will be used as fmod modulation... pfff + + if(s_chan[ch].bNoise) + { + //puts("Noise"); + if((dwNoiseVal<<=1)&0x80000000L) + { + dwNoiseVal^=0x0040001L; + fa=((dwNoiseVal>>2)&0x7fff); + fa=-fa; + } + else fa=(dwNoiseVal>>2)&0x7fff; + + // mmm... depending on the noise freq we allow bigger/smaller changes to the previous val + fa=s_chan[ch].iOldNoise+((fa-s_chan[ch].iOldNoise)/((0x001f-((spuCtrl&0x3f00)>>9))+1)); + if(fa>32767L) fa=32767L; + if(fa<-32767L) fa=-32767L; + s_chan[ch].iOldNoise=fa; + + } //---------------------------------------- + else // NO NOISE (NORMAL SAMPLE DATA) HERE + { + int vl, vr, gpos; + vl = (s_chan[ch].spos >> 6) & ~3; + gpos = s_chan[ch].SB[28]; + vr=(gauss[vl]*gval0)>>9; + vr+=(gauss[vl+1]*gval(1))>>9; + vr+=(gauss[vl+2]*gval(2))>>9; + vr+=(gauss[vl+3]*gval(3))>>9; + fa = vr>>2; + } + + s_chan[ch].sval = (MixADSR(ch) * fa)>>10; // / 1023; // add adsr + if(s_chan[ch].bFMod==2) // fmod freq channel + { + int NP=s_chan[ch+1].iRawPitch; + NP=((32768L+s_chan[ch].sval)*NP)>>15; ///32768L; + + if(NP>0x3fff) NP=0x3fff; + if(NP<0x1) NP=0x1; + + // mmmm... if I do this, all is screwed + // s_chan[ch+1].iRawPitch=NP; + + NP=(44100L*NP)/(4096L); // calc frequency + + s_chan[ch+1].iActFreq=NP; + s_chan[ch+1].iUsedFreq=NP; + s_chan[ch+1].sinc=(((NP/10)<<16)/4410); + if(!s_chan[ch+1].sinc) s_chan[ch+1].sinc=1; + + // mmmm... set up freq decoding positions? + // s_chan[ch+1].iSBPos=28; + // s_chan[ch+1].spos=0x10000L; + } + else + { + ////////////////////////////////////////////// + // ok, left/right sound volume (psx volume goes from 0 ... 0x3fff) + int tmpl,tmpr; + + if (1) //ao_channel_enable[ch+PSF_1]) { + { + tmpl=(s_chan[ch].sval*s_chan[ch].iLeftVolume)>>14; + tmpr=(s_chan[ch].sval*s_chan[ch].iRightVolume)>>14; + } else { + tmpl = 0; + tmpr = 0; + } + sl+=tmpl; + sr+=tmpr; + + if(((rvb.Enabled>>ch)&1) && (spuCtrl&0x80)) + { + revLeft+=tmpl; + revRight+=tmpr; + } + } + + s_chan[ch].spos += s_chan[ch].sinc; + ENDX: ; + } + } + + /////////////////////////////////////////////////////// + // mix all channels (including reverb) into one buffer + MixREVERBLeftRight(&sl,&sr,revLeft,revRight); +// printf("sampcount %d decaybegin %d decayend %d\n", sampcount, decaybegin, decayend); + if(sampcount>=decaybegin) + { + s32 dmul; + if(decaybegin!=~0) // Is anyone REALLY going to be playing a song + // for 13 hours? + { + if(sampcount>=decayend) + { +// ao_song_done = 1; + return(0); + } + dmul=256-(256*(sampcount-decaybegin)/(decayend-decaybegin)); + sl=(sl*dmul)>>8; + sr=(sr*dmul)>>8; + } + } + + sampcount++; + sl=(sl*volmul)>>8; + sr=(sr*volmul)>>8; + + //{ + // static double asl=0; + // static double asr=0; + + // asl+=(sl-asl)/5; + // asr+=(sl-asr)/5; + + //sl-=asl; + //sr-=asr; + + // if(sl>32767 || sl < -32767) printf("Left: %d, %f\n",sl,asl); + // if(sr>32767 || sr < -32767) printf("Right: %d, %f\n",sl,asl); + //} + + if(sl>32767) sl=32767; if(sl<-32767) sl=-32767; + if(sr>32767) sr=32767; if(sr<-32767) sr=-32767; + + *pS++=sl; + *pS++=sr; + } + + return(1); +} + +void SPU_flushboot(void) +{ + if((u8*)pS>((u8*)pSpuBuffer+1024)) + { + spu_update((u8*)pSpuBuffer,(u8*)pS-(u8*)pSpuBuffer); + pS=(s16 *)pSpuBuffer; + } +} + +#ifdef TIMEO +static u64 begintime; +static u64 gettime64(void) +{ + struct timeval tv; + u64 ret; + + gettimeofday(&tv,0); + ret=tv.tv_sec; + ret*=1000000; + ret+=tv.tv_usec; + return(ret); +} +#endif +//////////////////////////////////////////////////////////////////////// +// INIT/EXIT STUFF +//////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////// +// SPUINIT: this func will be called first by the main emu +//////////////////////////////////////////////////////////////////////// + +int SPUinit(void) +{ + spuMemC=(u8*)spuMem; // just small setup + memset((void *)s_chan,0,MAXCHAN*sizeof(SPUCHAN)); + memset((void *)&rvb,0,sizeof(REVERBInfo)); + memset(regArea,0,sizeof(regArea)); + memset(spuMem,0,sizeof(spuMem)); + InitADSR(); + sampcount=ttemp=0; + #ifdef TIMEO + begintime=gettime64(); + #endif + return 0; +} + +//////////////////////////////////////////////////////////////////////// +// SETUPSTREAMS: init most of the spu buffers +//////////////////////////////////////////////////////////////////////// + +void SetupStreams(void) +{ + int i; + + pSpuBuffer=(u8*)malloc(32768); // alloc mixing buffer + pS=(s16 *)pSpuBuffer; + + for(i=0;i init sustain + s_chan[i].iIrqDone=0; + s_chan[i].pLoop=spuMemC; + s_chan[i].pStart=spuMemC; + s_chan[i].pCurr=spuMemC; + } +} + +//////////////////////////////////////////////////////////////////////// +// REMOVESTREAMS: free most buffer +//////////////////////////////////////////////////////////////////////// + +void RemoveStreams(void) +{ + free(pSpuBuffer); // free mixing buffer + pSpuBuffer=NULL; + + #ifdef TIMEO + { + u64 tmp; + tmp=gettime64(); + tmp-=begintime; + if(tmp) + tmp=(u64)sampcount*1000000/tmp; + printf("%lld samples per second\n",tmp); + } + #endif +} + + +//////////////////////////////////////////////////////////////////////// +// SPUOPEN: called by main emu after init +//////////////////////////////////////////////////////////////////////// + +int SPUopen(void) +{ + if(bSPUIsOpen) return 0; // security for some stupid main emus + spuIrq=0; + + spuStat=spuCtrl=0; + spuAddr=0xffffffff; + dwNoiseVal=1; + + spuMemC=(u8*)spuMem; + memset((void *)s_chan,0,(MAXCHAN+1)*sizeof(SPUCHAN)); + pSpuIrq=0; + + iVolume=255; //85; + SetupStreams(); // prepare streaming + + bSPUIsOpen=1; + + return 1; +} + +//////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////// +// SPUCLOSE: called before shutdown +//////////////////////////////////////////////////////////////////////// + +int SPUclose(void) +{ + if(!bSPUIsOpen) return 0; // some security + + bSPUIsOpen=0; // no more open + + RemoveStreams(); // no more streaming + + return 0; +} + +//////////////////////////////////////////////////////////////////////// +// SPUSHUTDOWN: called by main emu on final exit +//////////////////////////////////////////////////////////////////////// + +int SPUshutdown(void) +{ + return 0; +} + +void SPUinjectRAMImage(u16 *pIncoming) +{ + int i; + + for (i = 0; i < (256*1024); i++) + { + spuMem[i] = pIncoming[i]; + } +} diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops/spu.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops/spu.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,39 @@ +/*************************************************************************** + spu.h - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +void sexyd_update(unsigned char* pSound,long lBytes); + +int SPUasync(u32 cycles); +void SPU_flushboot(void); +int SPUinit(void); +int SPUopen(void); +int SPUclose(void); +int SPUshutdown(void); +void SPUinjectRAMImage(u16 *pIncoming); +void SPUreadDMAMem(u32 usPSXMem,int iSize); +void SPUwriteDMAMem(u32 usPSXMem,int iSize); +u16 SPUreadRegister(u32 reg); + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops/stdafx.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops/stdafx.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,29 @@ +/*************************************************************************** + StdAfx.h - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +#include +#include +#include diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/.DS_Store Binary file src/psf2/peops2/.DS_Store has changed diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/License.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/License.txt Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,282 @@ +######################################################################### + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/adsr.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/adsr.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,656 @@ +/*************************************************************************** + adsr.c - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2003/05/14 - xodnizel +// - removed stopping of reverb on sample end +// +// 2003/01/06 - Pete +// - added Neill's ADSR timings +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +#include "stdafx.h" + +#define _IN_ADSR + +// will be included from spu.c +#ifdef _IN_SPU + +//////////////////////////////////////////////////////////////////////// +// ADSR func +//////////////////////////////////////////////////////////////////////// + +unsigned long RateTable[160]; + +void InitADSR(void) // INIT ADSR +{ + unsigned long r,rs,rd;int i; + + memset(RateTable,0,sizeof(unsigned long)*160); // build the rate table according to Neill's rules (see at bottom of file) + + r=3;rs=1;rd=0; + + for(i=32;i<160;i++) // we start at pos 32 with the real values... everything before is 0 + { + if(r<0x3FFFFFFF) + { + r+=rs; + rd++;if(rd==5) {rd=1;rs*=2;} + } + if(r>0x3FFFFFFF) r=0x3FFFFFFF; + + RateTable[i]=r; + } +} + +//////////////////////////////////////////////////////////////////////// + +INLINE void StartADSR(int ch) // MIX ADSR +{ + s_chan[ch].ADSRX.lVolume=1; // and init some adsr vars + s_chan[ch].ADSRX.State=0; + s_chan[ch].ADSRX.EnvelopeVol=0; +} + +//////////////////////////////////////////////////////////////////////// + +INLINE int MixADSR(int ch) // MIX ADSR +{ + if(s_chan[ch].bStop) // should be stopped: + { // do release + if(s_chan[ch].ADSRX.ReleaseModeExp) + { + switch((s_chan[ch].ADSRX.EnvelopeVol>>28)&0x7) + { + case 0: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.ReleaseRate^0x1F))-0x18 +0 + 32]; break; + case 1: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.ReleaseRate^0x1F))-0x18 +4 + 32]; break; + case 2: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.ReleaseRate^0x1F))-0x18 +6 + 32]; break; + case 3: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.ReleaseRate^0x1F))-0x18 +8 + 32]; break; + case 4: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.ReleaseRate^0x1F))-0x18 +9 + 32]; break; + case 5: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.ReleaseRate^0x1F))-0x18 +10+ 32]; break; + case 6: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.ReleaseRate^0x1F))-0x18 +11+ 32]; break; + case 7: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.ReleaseRate^0x1F))-0x18 +12+ 32]; break; + } + } + else + { + s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.ReleaseRate^0x1F))-0x0C + 32]; + } + + if(s_chan[ch].ADSRX.EnvelopeVol<0) + { + s_chan[ch].ADSRX.EnvelopeVol=0; + s_chan[ch].bOn=0; + //s_chan[ch].bReverb=0; + //s_chan[ch].bNoise=0; + } + + s_chan[ch].ADSRX.lVolume=s_chan[ch].ADSRX.EnvelopeVol>>21; + return s_chan[ch].ADSRX.lVolume; + } + else // not stopped yet? + { + if(s_chan[ch].ADSRX.State==0) // -> attack + { + if(s_chan[ch].ADSRX.AttackModeExp) + { + if(s_chan[ch].ADSRX.EnvelopeVol<0x60000000) + s_chan[ch].ADSRX.EnvelopeVol+=RateTable[(s_chan[ch].ADSRX.AttackRate^0x7F)-0x10 + 32]; + else + s_chan[ch].ADSRX.EnvelopeVol+=RateTable[(s_chan[ch].ADSRX.AttackRate^0x7F)-0x18 + 32]; + } + else + { + s_chan[ch].ADSRX.EnvelopeVol+=RateTable[(s_chan[ch].ADSRX.AttackRate^0x7F)-0x10 + 32]; + } + + if(s_chan[ch].ADSRX.EnvelopeVol<0) + { + s_chan[ch].ADSRX.EnvelopeVol=0x7FFFFFFF; + s_chan[ch].ADSRX.State=1; + } + + s_chan[ch].ADSRX.lVolume=s_chan[ch].ADSRX.EnvelopeVol>>21; + return s_chan[ch].ADSRX.lVolume; + } + //--------------------------------------------------// + if(s_chan[ch].ADSRX.State==1) // -> decay + { + switch((s_chan[ch].ADSRX.EnvelopeVol>>28)&0x7) + { + case 0: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.DecayRate^0x1F))-0x18+0 + 32]; break; + case 1: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.DecayRate^0x1F))-0x18+4 + 32]; break; + case 2: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.DecayRate^0x1F))-0x18+6 + 32]; break; + case 3: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.DecayRate^0x1F))-0x18+8 + 32]; break; + case 4: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.DecayRate^0x1F))-0x18+9 + 32]; break; + case 5: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.DecayRate^0x1F))-0x18+10+ 32]; break; + case 6: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.DecayRate^0x1F))-0x18+11+ 32]; break; + case 7: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[(4*(s_chan[ch].ADSRX.DecayRate^0x1F))-0x18+12+ 32]; break; + } + + if(s_chan[ch].ADSRX.EnvelopeVol<0) s_chan[ch].ADSRX.EnvelopeVol=0; + if(((s_chan[ch].ADSRX.EnvelopeVol>>27)&0xF) <= s_chan[ch].ADSRX.SustainLevel) + { + s_chan[ch].ADSRX.State=2; + } + + s_chan[ch].ADSRX.lVolume=s_chan[ch].ADSRX.EnvelopeVol>>21; + return s_chan[ch].ADSRX.lVolume; + } + //--------------------------------------------------// + if(s_chan[ch].ADSRX.State==2) // -> sustain + { + if(s_chan[ch].ADSRX.SustainIncrease) + { + if(s_chan[ch].ADSRX.SustainModeExp) + { + if(s_chan[ch].ADSRX.EnvelopeVol<0x60000000) + s_chan[ch].ADSRX.EnvelopeVol+=RateTable[(s_chan[ch].ADSRX.SustainRate^0x7F)-0x10 + 32]; + else + s_chan[ch].ADSRX.EnvelopeVol+=RateTable[(s_chan[ch].ADSRX.SustainRate^0x7F)-0x18 + 32]; + } + else + { + s_chan[ch].ADSRX.EnvelopeVol+=RateTable[(s_chan[ch].ADSRX.SustainRate^0x7F)-0x10 + 32]; + } + + if(s_chan[ch].ADSRX.EnvelopeVol<0) + { + s_chan[ch].ADSRX.EnvelopeVol=0x7FFFFFFF; + } + } + else + { + if(s_chan[ch].ADSRX.SustainModeExp) + { + switch((s_chan[ch].ADSRX.EnvelopeVol>>28)&0x7) + { + case 0: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[((s_chan[ch].ADSRX.SustainRate^0x7F))-0x1B +0 + 32];break; + case 1: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[((s_chan[ch].ADSRX.SustainRate^0x7F))-0x1B +4 + 32];break; + case 2: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[((s_chan[ch].ADSRX.SustainRate^0x7F))-0x1B +6 + 32];break; + case 3: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[((s_chan[ch].ADSRX.SustainRate^0x7F))-0x1B +8 + 32];break; + case 4: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[((s_chan[ch].ADSRX.SustainRate^0x7F))-0x1B +9 + 32];break; + case 5: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[((s_chan[ch].ADSRX.SustainRate^0x7F))-0x1B +10+ 32];break; + case 6: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[((s_chan[ch].ADSRX.SustainRate^0x7F))-0x1B +11+ 32];break; + case 7: s_chan[ch].ADSRX.EnvelopeVol-=RateTable[((s_chan[ch].ADSRX.SustainRate^0x7F))-0x1B +12+ 32];break; + } + } + else + { + s_chan[ch].ADSRX.EnvelopeVol-=RateTable[((s_chan[ch].ADSRX.SustainRate^0x7F))-0x0F + 32]; + } + + if(s_chan[ch].ADSRX.EnvelopeVol<0) + { + s_chan[ch].ADSRX.EnvelopeVol=0; + } + } + s_chan[ch].ADSRX.lVolume=s_chan[ch].ADSRX.EnvelopeVol>>21; + return s_chan[ch].ADSRX.lVolume; + } + } + return 0; +} + +#endif + +/* +James Higgs ADSR investigations: + +PSX SPU Envelope Timings +~~~~~~~~~~~~~~~~~~~~~~~~ + +First, here is an extract from doomed's SPU doc, which explains the basics +of the SPU "volume envelope": + +*** doomed doc extract start *** + +-------------------------------------------------------------------------- +Voices. +-------------------------------------------------------------------------- +The SPU has 24 hardware voices. These voices can be used to reproduce sample +data, noise or can be used as frequency modulator on the next voice. +Each voice has it's own programmable ADSR envelope filter. The main volume +can be programmed independently for left and right output. + +The ADSR envelope filter works as follows: +Ar = Attack rate, which specifies the speed at which the volume increases + from zero to it's maximum value, as soon as the note on is given. The + slope can be set to lineair or exponential. +Dr = Decay rate specifies the speed at which the volume decreases to the + sustain level. Decay is always decreasing exponentially. +Sl = Sustain level, base level from which sustain starts. +Sr = Sustain rate is the rate at which the volume of the sustained note + increases or decreases. This can be either lineair or exponential. +Rr = Release rate is the rate at which the volume of the note decreases + as soon as the note off is given. + + lvl | + ^ | /\Dr __ + Sl _| _ / _ \__--- \ + | / ---__ \ Rr + | /Ar Sr \ \ + | / \\ + |/___________________\________ + ->time + +The overal volume can also be set to sweep up or down lineairly or +exponentially from it's current value. This can be done seperately +for left and right. + +Relevant SPU registers: +------------------------------------------------------------- +$1f801xx8 Attack/Decay/Sustain level +bit |0f|0e 0d 0c 0b 0a 09 08|07 06 05 04|03 02 01 00| +desc.|Am| Ar |Dr |Sl | + +Am 0 Attack mode Linear + 1 Exponential + +Ar 0-7f attack rate +Dr 0-f decay rate +Sl 0-f sustain level +------------------------------------------------------------- +$1f801xxa Sustain rate, Release Rate. +bit |0f|0e|0d|0c 0b 0a 09 08 07 06|05|04 03 02 01 00| +desc.|Sm|Sd| 0| Sr |Rm|Rr | + +Sm 0 sustain rate mode linear + 1 exponential +Sd 0 sustain rate mode increase + 1 decrease +Sr 0-7f Sustain Rate +Rm 0 Linear decrease + 1 Exponential decrease +Rr 0-1f Release Rate + +Note: decay mode is always Expontial decrease, and thus cannot +be set. +------------------------------------------------------------- +$1f801xxc Current ADSR volume +bit |0f 0e 0d 0c 0b 0a 09 08 07 06 05 04 03 02 01 00| +desc.|ADSRvol | + +ADSRvol Returns the current envelope volume when + read. +-- James' Note: return range: 0 -> 32767 + +*** doomed doc extract end *** + +By using a small PSX proggie to visualise the envelope as it was played, +the following results for envelope timing were obtained: + +1. Attack rate value (linear mode) + + Attack value range: 0 -> 127 + + Value | 48 | 52 | 56 | 60 | 64 | 68 | 72 | | 80 | + ----------------------------------------------------------------- + Frames | 11 | 21 | 42 | 84 | 169| 338| 676| |2890| + + Note: frames is no. of PAL frames to reach full volume (100% + amplitude) + + Hmm, noticing that the time taken to reach full volume doubles + every time we add 4 to our attack value, we know the equation is + of form: + frames = k * 2 ^ (value / 4) + + (You may ponder about envelope generator hardware at this point, + or maybe not... :) + + By substituting some stuff and running some checks, we get: + + k = 0.00257 (close enuf) + + therefore, + frames = 0.00257 * 2 ^ (value / 4) + If you just happen to be writing an emulator, then you can probably + use an equation like: + + %volume_increase_per_tick = 1 / frames + + + ------------------------------------ + Pete: + ms=((1<<(value>>2))*514)/10000 + ------------------------------------ + +2. Decay rate value (only has log mode) + + Decay value range: 0 -> 15 + + Value | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | + ------------------------------------------------ + frames | | | | | 6 | 12 | 24 | 47 | + + Note: frames here is no. of PAL frames to decay to 50% volume. + + formula: frames = k * 2 ^ (value) + + Substituting, we get: k = 0.00146 + + Further info on logarithmic nature: + frames to decay to sustain level 3 = 3 * frames to decay to + sustain level 9 + + Also no. of frames to 25% volume = roughly 1.85 * no. of frames to + 50% volume. + + Frag it - just use linear approx. + + ------------------------------------ + Pete: + ms=((1< 127 + + Value | 48 | 52 | 56 | 60 | 64 | 68 | 72 | + ------------------------------------------- + frames | 9 | 19 | 37 | 74 | 147| 293| 587| + + Here, frames = no. of PAL frames for volume amplitude to go from 100% + to 0% (or vice-versa). + + Same formula as for attack value, just a different value for k: + + k = 0.00225 + + ie: frames = 0.00225 * 2 ^ (value / 4) + + For emulation purposes: + + %volume_increase_or_decrease_per_tick = 1 / frames + + ------------------------------------ + Pete: + ms=((1<<(value>>2))*450)/10000 + ------------------------------------ + + +4. Release rate (linear mode) + + Release rate range: 0 -> 31 + + Value | 13 | 14 | 15 | 16 | 17 | + --------------------------------------------------------------- + frames | 18 | 36 | 73 | 146| 292| + + Here, frames = no. of PAL frames to decay from 100% vol to 0% vol + after "note-off" is triggered. + + Formula: frames = k * 2 ^ (value) + + And so: k = 0.00223 + + ------------------------------------ + Pete: + ms=((1< release phase + { + if(s_chan[ch].ADSR.ReleaseVal!=0) // -> release not 0: do release (if 0: stop right now) + { + if(!s_chan[ch].ADSR.ReleaseVol) // --> release just started? set up the release stuff + { + s_chan[ch].ADSR.ReleaseStartTime=s_chan[ch].ADSR.lTime; + s_chan[ch].ADSR.ReleaseVol=s_chan[ch].ADSR.lVolume; + s_chan[ch].ADSR.ReleaseTime = // --> calc how long does it take to reach the wanted sus level + (s_chan[ch].ADSR.ReleaseTime* + s_chan[ch].ADSR.ReleaseVol)/1024; + } + // -> NO release exp mode used (yet) + v=s_chan[ch].ADSR.ReleaseVol; // -> get last volume + lT=s_chan[ch].ADSR.lTime- // -> how much time is past? + s_chan[ch].ADSR.ReleaseStartTime; + l1=s_chan[ch].ADSR.ReleaseTime; + + if(lT we still have to release + { + v=v-((v*lT)/l1); // --> calc new volume + } + else // -> release is over: now really stop that sample + {v=0;s_chan[ch].bOn=0;s_chan[ch].ADSR.ReleaseVol=0;s_chan[ch].bNoise=0;} + } + else // -> release IS 0: release at once + { + v=0;s_chan[ch].bOn=0;s_chan[ch].ADSR.ReleaseVol=0;s_chan[ch].bNoise=0; + } + } + else + {//--------------------------------------------------// not in release phase: + v=1024; + lT=s_chan[ch].ADSR.lTime; + l1=s_chan[ch].ADSR.AttackTime; + + if(lT0) + { + if(l3!=0) v2+=((v-v2)*lT)/l3; + else v2=v; + } + else + { + if(l3!=0) v2-=(v2*lT)/l3; + else v2=v; + } + + if(v2>v) v2=v; + if(v2<=0) {v2=0;s_chan[ch].bOn=0;s_chan[ch].ADSR.ReleaseVol=0;s_chan[ch].bNoise=0;} + + v=v2; + } + } + } + + //----------------------------------------------------// + // ok, done for this channel, so increase time + + s_chan[ch].ADSR.lTime+=1; // 1 = 1.020408f ms; + + if(v>1024) v=1024; // adjust volume + if(v<0) v=0; + s_chan[ch].ADSR.lVolume=v; // store act volume + + return v; // return the volume factor +*/ + + +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- +//----------------------------------------------------------------------------- + + +/* +----------------------------------------------------------------------------- +Neill Corlett +Playstation SPU envelope timing notes +----------------------------------------------------------------------------- + +This is preliminary. This may be wrong. But the model described herein fits +all of my experimental data, and it's just simple enough to sound right. + +ADSR envelope level ranges from 0x00000000 to 0x7FFFFFFF internally. +The value returned by channel reg 0xC is (envelope_level>>16). + +Each sample, an increment or decrement value will be added to or +subtracted from this envelope level. + +Create the rate log table. The values double every 4 entries. + entry #0 = 4 + + 4, 5, 6, 7, + 8,10,12,14, + 16,20,24,28, ... + + entry #40 = 4096... + entry #44 = 8192... + entry #48 = 16384... + entry #52 = 32768... + entry #56 = 65536... + +increments and decrements are in terms of ratelogtable[n] +n may exceed the table bounds (plan on n being between -32 and 127). +table values are all clipped between 0x00000000 and 0x3FFFFFFF + +when you "voice on", the envelope is always fully reset. +(yes, it may click. the real thing does this too.) + +envelope level begins at zero. + +each state happens for at least 1 cycle +(transitions are not instantaneous) +this may result in some oddness: if the decay rate is uberfast, it will cut +the envelope from full down to half in one sample, potentially skipping over +the sustain level + +ATTACK +------ +- if the envelope level has overflowed past the max, clip to 0x7FFFFFFF and + proceed to DECAY. + +Linear attack mode: +- line extends upward to 0x7FFFFFFF +- increment per sample is ratelogtable[(Ar^0x7F)-0x10] + +Logarithmic attack mode: +if envelope_level < 0x60000000: + - line extends upward to 0x60000000 + - increment per sample is ratelogtable[(Ar^0x7F)-0x10] +else: + - line extends upward to 0x7FFFFFFF + - increment per sample is ratelogtable[(Ar^0x7F)-0x18] + +DECAY +----- +- if ((envelope_level>>27)&0xF) <= Sl, proceed to SUSTAIN. + Do not clip to the sustain level. +- current line ends at (envelope_level & 0x07FFFFFF) +- decrement per sample depends on (envelope_level>>28)&0x7 + 0: ratelogtable[(4*(Dr^0x1F))-0x18+0] + 1: ratelogtable[(4*(Dr^0x1F))-0x18+4] + 2: ratelogtable[(4*(Dr^0x1F))-0x18+6] + 3: ratelogtable[(4*(Dr^0x1F))-0x18+8] + 4: ratelogtable[(4*(Dr^0x1F))-0x18+9] + 5: ratelogtable[(4*(Dr^0x1F))-0x18+10] + 6: ratelogtable[(4*(Dr^0x1F))-0x18+11] + 7: ratelogtable[(4*(Dr^0x1F))-0x18+12] + (note that this is the same as the release rate formula, except that + decay rates 10-1F aren't possible... those would be slower in theory) + +SUSTAIN +------- +- no terminating condition except for voice off +- Sd=0 (increase) behavior is identical to ATTACK for both log and linear. +- Sd=1 (decrease) behavior: +Linear sustain decrease: +- line extends to 0x00000000 +- decrement per sample is ratelogtable[(Sr^0x7F)-0x0F] +Logarithmic sustain decrease: +- current line ends at (envelope_level & 0x07FFFFFF) +- decrement per sample depends on (envelope_level>>28)&0x7 + 0: ratelogtable[(Sr^0x7F)-0x1B+0] + 1: ratelogtable[(Sr^0x7F)-0x1B+4] + 2: ratelogtable[(Sr^0x7F)-0x1B+6] + 3: ratelogtable[(Sr^0x7F)-0x1B+8] + 4: ratelogtable[(Sr^0x7F)-0x1B+9] + 5: ratelogtable[(Sr^0x7F)-0x1B+10] + 6: ratelogtable[(Sr^0x7F)-0x1B+11] + 7: ratelogtable[(Sr^0x7F)-0x1B+12] + +RELEASE +------- +- if the envelope level has overflowed to negative, clip to 0 and QUIT. + +Linear release mode: +- line extends to 0x00000000 +- decrement per sample is ratelogtable[(4*(Rr^0x1F))-0x0C] + +Logarithmic release mode: +- line extends to (envelope_level & 0x0FFFFFFF) +- decrement per sample depends on (envelope_level>>28)&0x7 + 0: ratelogtable[(4*(Rr^0x1F))-0x18+0] + 1: ratelogtable[(4*(Rr^0x1F))-0x18+4] + 2: ratelogtable[(4*(Rr^0x1F))-0x18+6] + 3: ratelogtable[(4*(Rr^0x1F))-0x18+8] + 4: ratelogtable[(4*(Rr^0x1F))-0x18+9] + 5: ratelogtable[(4*(Rr^0x1F))-0x18+10] + 6: ratelogtable[(4*(Rr^0x1F))-0x18+11] + 7: ratelogtable[(4*(Rr^0x1F))-0x18+12] + +----------------------------------------------------------------------------- +*/ + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/adsr.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/adsr.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,28 @@ +/*************************************************************************** + adsr.h - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +INLINE void StartADSR(int ch); +INLINE int MixADSR(int ch); diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/dma.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/dma.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,175 @@ +/*************************************************************************** + dma.c - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2004/04/04 - Pete +// - changed plugin to emulate PS2 spu +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +#include "../peops2/stdafx.h" + +#define _IN_DMA + +#include "../peops2/externals.h" +#include "../peops2/registers.h" +//#include "debug.h" + +extern uint32 psx_ram[(2*1024*1024)/4]; + +//////////////////////////////////////////////////////////////////////// +// READ DMA (many values) +//////////////////////////////////////////////////////////////////////// + +EXPORT_GCC void CALLBACK SPU2readDMA4Mem(u32 usPSXMem,int iSize) +{ + int i; + u16 *ram16 = (u16 *)&psx_ram[0]; + + for(i=0;i>1]=spuMem[spuAddr2[0]]; // spu addr 0 got by writeregister + usPSXMem+=2; + spuAddr2[0]++; // inc spu addr + if(spuAddr2[0]>0xfffff) spuAddr2[0]=0; // wrap + } + + spuAddr2[0]+=0x20; //????? + + + iSpuAsyncWait=0; + + // got from J.F. and Kanodin... is it needed? + regArea[(PS2_C0_ADMAS)>>1]=0; // Auto DMA complete + spuStat2[0]=0x80; // DMA complete +} + +EXPORT_GCC void CALLBACK SPU2readDMA7Mem(u32 usPSXMem,int iSize) +{ + int i; + u16 *ram16 = (u16 *)&psx_ram[0]; + + for(i=0;i>1]=spuMem[spuAddr2[1]]; // spu addr 1 got by writeregister + usPSXMem+=2; + spuAddr2[1]++; // inc spu addr + if(spuAddr2[1]>0xfffff) spuAddr2[1]=0; // wrap + } + + spuAddr2[1]+=0x20; //????? + + iSpuAsyncWait=0; + + // got from J.F. and Kanodin... is it needed? + regArea[(PS2_C1_ADMAS)>>1]=0; // Auto DMA complete + spuStat2[1]=0x80; // DMA complete +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +// to investigate: do sound data updates by writedma affect spu +// irqs? Will an irq be triggered, if new data is written to +// the memory irq address? + +//////////////////////////////////////////////////////////////////////// +// WRITE DMA (many values) +//////////////////////////////////////////////////////////////////////// + +EXPORT_GCC void CALLBACK SPU2writeDMA4Mem(u32 usPSXMem,int iSize) +{ + int i; + u16 *ram16 = (u16 *)&psx_ram[0]; + + for(i=0;i>1]; // spu addr 0 got by writeregister + usPSXMem+=2; + spuAddr2[0]++; // inc spu addr + if(spuAddr2[0]>0xfffff) spuAddr2[0]=0; // wrap + } + + iSpuAsyncWait=0; + + // got from J.F. and Kanodin... is it needed? + spuStat2[0]=0x80; // DMA complete +} + +EXPORT_GCC void CALLBACK SPU2writeDMA7Mem(u32 usPSXMem,int iSize) +{ + int i; + u16 *ram16 = (u16 *)&psx_ram[0]; + + for(i=0;i>1]; // spu addr 1 got by writeregister + spuAddr2[1]++; // inc spu addr + if(spuAddr2[1]>0xfffff) spuAddr2[1]=0; // wrap + } + + iSpuAsyncWait=0; + + // got from J.F. and Kanodin... is it needed? + spuStat2[1]=0x80; // DMA complete +} + +//////////////////////////////////////////////////////////////////////// +// INTERRUPTS +//////////////////////////////////////////////////////////////////////// + +void InterruptDMA4(void) +{ +// taken from linuzappz NULL spu2 +// spu2Rs16(CORE0_ATTR)&= ~0x30; +// spu2Rs16(REG__1B0) = 0; +// spu2Rs16(SPU2_STATX_WRDY_M)|= 0x80; + + spuCtrl2[0]&=~0x30; + regArea[(PS2_C0_ADMAS)>>1]=0; + spuStat2[0]|=0x80; +} + +EXPORT_GCC void CALLBACK SPU2interruptDMA4(void) +{ + InterruptDMA4(); +} + +void InterruptDMA7(void) +{ +// taken from linuzappz NULL spu2 +// spu2Rs16(CORE1_ATTR)&= ~0x30; +// spu2Rs16(REG__5B0) = 0; +// spu2Rs16(SPU2_STATX_DREQ)|= 0x80; + + spuCtrl2[1]&=~0x30; + regArea[(PS2_C1_ADMAS)>>1]=0; + spuStat2[1]|=0x80; +} + +EXPORT_GCC void CALLBACK SPU2interruptDMA7(void) +{ + InterruptDMA7(); +} + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/dma.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/dma.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,29 @@ +/*************************************************************************** + dma.h - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +void InterruptDMA4(void); +void InterruptDMA7(void); + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/externals.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/externals.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,385 @@ +/*************************************************************************** + externals.h - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2004/04/04 - Pete +// - changed plugin to emulate PS2 spu +// +// 2002/04/04 - Pete +// - increased channel struct for interpolation +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +#ifndef PEOPS2_EXTERNALS +#define PEOPS2_EXTERNALS + +#include "ao.h" + +typedef int8 s8; +typedef int16 s16; +typedef int32 s32; +typedef int64 s64; + +typedef uint8 u8; +typedef uint16 u16; +typedef uint32 u32; +typedef uint64 u64; + +#if LSB_FIRST +static INLINE u16 BFLIP16(u16 x) +{ + return x; +} +#else +static INLINE u16 BFLIP16(u16 x) +{ + return( ((x>>8)&0xFF)| ((x&0xFF)<<8) ); +} +#endif + +///////////////////////////////////////////////////////// +// generic defines +///////////////////////////////////////////////////////// + +//#define PSE_LT_SPU 4 +//#define PSE_SPU_ERR_SUCCESS 0 +//#define PSE_SPU_ERR -60 +//#define PSE_SPU_ERR_NOTCONFIGURED PSE_SPU_ERR - 1 +//#define PSE_SPU_ERR_INIT PSE_SPU_ERR - 2 + +#ifndef max +#define max(a,b) (((a) > (b)) ? (a) : (b)) +#define min(a,b) (((a) < (b)) ? (a) : (b)) +#endif + +//////////////////////////////////////////////////////////////////////// +// spu defines +//////////////////////////////////////////////////////////////////////// + +// sound buffer sizes +// 400 ms complete sound buffer +#define SOUNDSIZE 76800 +// 137 ms test buffer... if less than that is buffered, a new upload will happen +#define TESTSIZE 26304 + +// num of channels +#define MAXCHAN 48 +#define HLFCHAN 24 + +// ~ 1 ms of data (was 45) +#define NSSIZE 1 +//45 + +/////////////////////////////////////////////////////////// +// struct defines +/////////////////////////////////////////////////////////// + +// ADSR INFOS PER CHANNEL +typedef struct +{ + int AttackModeExp; + long AttackTime; + long DecayTime; + long SustainLevel; + int SustainModeExp; + long SustainModeDec; + long SustainTime; + int ReleaseModeExp; + unsigned long ReleaseVal; + long ReleaseTime; + long ReleaseStartTime; + long ReleaseVol; + long lTime; + long lVolume; +} ADSRInfo; + +typedef struct +{ + int State; + int AttackModeExp; + int AttackRate; + int DecayRate; + int SustainLevel; + int SustainModeExp; + int SustainIncrease; + int SustainRate; + int ReleaseModeExp; + int ReleaseRate; + int EnvelopeVol; + long lVolume; + long lDummy1; + long lDummy2; +} ADSRInfoEx; + +/////////////////////////////////////////////////////////// + +// Tmp Flags + +// used for debug channel muting +#define FLAG_MUTE 1 + +// used for simple interpolation +#define FLAG_IPOL0 2 +#define FLAG_IPOL1 4 + +/////////////////////////////////////////////////////////// + +// MAIN CHANNEL STRUCT +typedef struct +{ + // no mutexes used anymore... don't need them to sync access + //HANDLE hMutex; + + int bNew; // start flag + + int iSBPos; // mixing stuff + int spos; + int sinc; + int SB[32+32]; // Pete added another 32 dwords in 1.6 ... prevents overflow issues with gaussian/cubic interpolation (thanx xodnizel!), and can be used for even better interpolations, eh? :) + int sval; + + unsigned char * pStart; // start ptr into sound mem + unsigned char * pCurr; // current pos in sound mem + unsigned char * pLoop; // loop ptr in sound mem + + int iStartAdr; + int iLoopAdr; + int iNextAdr; + + int bOn; // is channel active (sample playing?) + int bStop; // is channel stopped (sample _can_ still be playing, ADSR Release phase) + int bEndPoint; // end point reached + int bReverbL; // can we do reverb on this channel? must have ctrl register bit, to get active + int bReverbR; + + int bVolumeL; // Volume on/off + int bVolumeR; + + int iActFreq; // current psx pitch + int iUsedFreq; // current pc pitch + int iLeftVolume; // left volume + int iLeftVolRaw; // left psx volume value + int bIgnoreLoop; // ignore loop bit, if an external loop address is used + int iMute; // mute mode + int iRightVolume; // right volume + int iRightVolRaw; // right psx volume value + int iRawPitch; // raw pitch (0...3fff) + int iIrqDone; // debug irq done flag + int s_1; // last decoding infos + int s_2; + int bRVBActive; // reverb active flag + int bNoise; // noise active flag + int bFMod; // freq mod (0=off, 1=sound channel, 2=freq channel) + int iOldNoise; // old noise val for this channel + ADSRInfo ADSR; // active ADSR settings + ADSRInfoEx ADSRX; // next ADSR settings (will be moved to active on sample start) + +} SPUCHAN; + +/////////////////////////////////////////////////////////// + +typedef struct +{ + int StartAddr; // reverb area start addr in samples + int EndAddr; // reverb area end addr in samples + int CurrAddr; // reverb area curr addr in samples + + int VolLeft; + int VolRight; + int iLastRVBLeft; + int iLastRVBRight; + int iRVBLeft; + int iRVBRight; + int iCnt; + + int FB_SRC_A; // (offset) + int FB_SRC_B; // (offset) + int IIR_ALPHA; // (coef.) + int ACC_COEF_A; // (coef.) + int ACC_COEF_B; // (coef.) + int ACC_COEF_C; // (coef.) + int ACC_COEF_D; // (coef.) + int IIR_COEF; // (coef.) + int FB_ALPHA; // (coef.) + int FB_X; // (coef.) + int IIR_DEST_A0; // (offset) + int IIR_DEST_A1; // (offset) + int ACC_SRC_A0; // (offset) + int ACC_SRC_A1; // (offset) + int ACC_SRC_B0; // (offset) + int ACC_SRC_B1; // (offset) + int IIR_SRC_A0; // (offset) + int IIR_SRC_A1; // (offset) + int IIR_DEST_B0; // (offset) + int IIR_DEST_B1; // (offset) + int ACC_SRC_C0; // (offset) + int ACC_SRC_C1; // (offset) + int ACC_SRC_D0; // (offset) + int ACC_SRC_D1; // (offset) + int IIR_SRC_B1; // (offset) + int IIR_SRC_B0; // (offset) + int MIX_DEST_A0; // (offset) + int MIX_DEST_A1; // (offset) + int MIX_DEST_B0; // (offset) + int MIX_DEST_B1; // (offset) + int IN_COEF_L; // (coef.) + int IN_COEF_R; // (coef.) +} REVERBInfo; + +#ifdef _WINDOWS +//extern HINSTANCE hInst; +//#define WM_MUTE (WM_USER+543) +#endif + +/////////////////////////////////////////////////////////// +// SPU.C globals +/////////////////////////////////////////////////////////// + +#ifndef _IN_SPU + +// psx buffers / addresses + +extern unsigned short regArea[]; +extern unsigned short spuMem[]; +extern unsigned char * spuMemC; +extern unsigned char * pSpuIrq[]; +extern unsigned char * pSpuBuffer; + +// user settings + +extern int iUseXA; +extern int iVolume; +extern int iXAPitch; +extern int iUseTimer; +extern int iSPUIRQWait; +extern int iDebugMode; +extern int iRecordMode; +extern int iUseReverb; +extern int iUseInterpolation; +extern int iDisStereo; +// MISC + +extern SPUCHAN s_chan[]; +extern REVERBInfo rvb[]; + +extern unsigned long dwNoiseVal; +extern unsigned short spuCtrl2[]; +extern unsigned short spuStat2[]; +extern unsigned long spuIrq2[]; +extern unsigned long spuAddr2[]; +extern unsigned long spuRvbAddr2[]; +extern unsigned long spuRvbAEnd2[]; + +extern int bEndThread; +extern int bThreadEnded; +extern int bSpuInit; + +extern int SSumR[]; +extern int SSumL[]; +extern int iCycle; +extern short * pS; +extern unsigned long dwNewChannel2[]; +extern unsigned long dwEndChannel2[]; + +extern int iSpuAsyncWait; + +#ifdef _WINDOWS +//extern HWND hWMain; // window handle +//extern HWND hWDebug; +#endif + +extern void (CALLBACK *cddavCallback)(unsigned short,unsigned short); + +#endif + +/////////////////////////////////////////////////////////// +// CFG.C globals +/////////////////////////////////////////////////////////// + +#ifndef _IN_CFG + +#ifndef _WINDOWS +extern char * pConfigFile; +#endif + +#endif + +/////////////////////////////////////////////////////////// +// DSOUND.C globals +/////////////////////////////////////////////////////////// + +#ifndef _IN_DSOUND + +#ifdef _WINDOWS +extern unsigned long LastWrite; +extern unsigned long LastPlay; +#endif + +#endif + +/////////////////////////////////////////////////////////// +// RECORD.C globals +/////////////////////////////////////////////////////////// + +#ifndef _IN_RECORD + +#ifdef _WINDOWS +extern int iDoRecord; +#endif + +#endif + +/////////////////////////////////////////////////////////// +// XA.C globals +/////////////////////////////////////////////////////////// + +#ifndef _IN_XA + +extern xa_decode_t * xapGlobal; + +extern unsigned long * XAFeed; +extern unsigned long * XAPlay; +extern unsigned long * XAStart; +extern unsigned long * XAEnd; + +extern unsigned long XARepeat; +extern unsigned long XALastVal; + +extern int iLeftXAVol; +extern int iRightXAVol; + +#endif + +/////////////////////////////////////////////////////////// +// REVERB.C globals +/////////////////////////////////////////////////////////// + +#ifndef _IN_REVERB + +extern int * sRVBPlay[]; +extern int * sRVBEnd[]; +extern int * sRVBStart[]; + +#endif + +#endif // PEOPS2_EXTERNALS diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/gauss_i.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/gauss_i.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,162 @@ +/*************************************************************************** + gauss_i.h - description + ----------------------- + begin : Sun Feb 08 2003 + copyright : (C) 2003 by Chris Moeller, eh, whatever + email : chris@kode54.tk + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2003/02/08 - kode54 +// - generated by interleaving table from gauss.h from the libopenspc +// project; a gaussian bell curve table logged from the SPC-700, +// though Neill says he logged the same curve from a PSX SPU. Also +// says that interleaving the coefficients together runs faster. Meh. +// +//*************************************************************************// + +#ifndef GAUSS_H +#define GAUSS_H + +static const int gauss[]={ + 0x172, 0x519, 0x176, 0x000, 0x16E, 0x519, 0x17A, 0x000, + 0x16A, 0x518, 0x17D, 0x000, 0x166, 0x518, 0x181, 0x000, + 0x162, 0x518, 0x185, 0x000, 0x15F, 0x518, 0x189, 0x000, + 0x15B, 0x518, 0x18D, 0x000, 0x157, 0x517, 0x191, 0x000, + 0x153, 0x517, 0x195, 0x000, 0x150, 0x517, 0x19A, 0x000, + 0x14C, 0x516, 0x19E, 0x000, 0x148, 0x516, 0x1A2, 0x000, + 0x145, 0x515, 0x1A6, 0x000, 0x141, 0x514, 0x1AA, 0x000, + 0x13E, 0x514, 0x1AE, 0x000, 0x13A, 0x513, 0x1B2, 0x000, + 0x137, 0x512, 0x1B7, 0x001, 0x133, 0x511, 0x1BB, 0x001, + 0x130, 0x511, 0x1BF, 0x001, 0x12C, 0x510, 0x1C3, 0x001, + 0x129, 0x50F, 0x1C8, 0x001, 0x125, 0x50E, 0x1CC, 0x001, + 0x122, 0x50D, 0x1D0, 0x001, 0x11E, 0x50C, 0x1D5, 0x001, + 0x11B, 0x50B, 0x1D9, 0x001, 0x118, 0x50A, 0x1DD, 0x001, + 0x114, 0x508, 0x1E2, 0x001, 0x111, 0x507, 0x1E6, 0x002, + 0x10E, 0x506, 0x1EB, 0x002, 0x10B, 0x504, 0x1EF, 0x002, + 0x107, 0x503, 0x1F3, 0x002, 0x104, 0x502, 0x1F8, 0x002, + 0x101, 0x500, 0x1FC, 0x002, 0x0FE, 0x4FF, 0x201, 0x002, + 0x0FB, 0x4FD, 0x205, 0x003, 0x0F8, 0x4FB, 0x20A, 0x003, + 0x0F5, 0x4FA, 0x20F, 0x003, 0x0F2, 0x4F8, 0x213, 0x003, + 0x0EF, 0x4F6, 0x218, 0x003, 0x0EC, 0x4F5, 0x21C, 0x004, + 0x0E9, 0x4F3, 0x221, 0x004, 0x0E6, 0x4F1, 0x226, 0x004, + 0x0E3, 0x4EF, 0x22A, 0x004, 0x0E0, 0x4ED, 0x22F, 0x004, + 0x0DD, 0x4EB, 0x233, 0x005, 0x0DA, 0x4E9, 0x238, 0x005, + 0x0D7, 0x4E7, 0x23D, 0x005, 0x0D4, 0x4E5, 0x241, 0x005, + 0x0D2, 0x4E3, 0x246, 0x006, 0x0CF, 0x4E0, 0x24B, 0x006, + 0x0CC, 0x4DE, 0x250, 0x006, 0x0C9, 0x4DC, 0x254, 0x006, + 0x0C7, 0x4D9, 0x259, 0x007, 0x0C4, 0x4D7, 0x25E, 0x007, + 0x0C1, 0x4D5, 0x263, 0x007, 0x0BF, 0x4D2, 0x267, 0x008, + 0x0BC, 0x4D0, 0x26C, 0x008, 0x0BA, 0x4CD, 0x271, 0x008, + 0x0B7, 0x4CB, 0x276, 0x009, 0x0B4, 0x4C8, 0x27B, 0x009, + 0x0B2, 0x4C5, 0x280, 0x009, 0x0AF, 0x4C3, 0x284, 0x00A, + 0x0AD, 0x4C0, 0x289, 0x00A, 0x0AB, 0x4BD, 0x28E, 0x00A, + 0x0A8, 0x4BA, 0x293, 0x00B, 0x0A6, 0x4B7, 0x298, 0x00B, + 0x0A3, 0x4B5, 0x29D, 0x00B, 0x0A1, 0x4B2, 0x2A2, 0x00C, + 0x09F, 0x4AF, 0x2A6, 0x00C, 0x09C, 0x4AC, 0x2AB, 0x00D, + 0x09A, 0x4A9, 0x2B0, 0x00D, 0x098, 0x4A6, 0x2B5, 0x00E, + 0x096, 0x4A2, 0x2BA, 0x00E, 0x093, 0x49F, 0x2BF, 0x00F, + 0x091, 0x49C, 0x2C4, 0x00F, 0x08F, 0x499, 0x2C9, 0x00F, + 0x08D, 0x496, 0x2CE, 0x010, 0x08B, 0x492, 0x2D3, 0x010, + 0x089, 0x48F, 0x2D8, 0x011, 0x086, 0x48C, 0x2DC, 0x011, + 0x084, 0x488, 0x2E1, 0x012, 0x082, 0x485, 0x2E6, 0x013, + 0x080, 0x481, 0x2EB, 0x013, 0x07E, 0x47E, 0x2F0, 0x014, + 0x07C, 0x47A, 0x2F5, 0x014, 0x07A, 0x477, 0x2FA, 0x015, + 0x078, 0x473, 0x2FF, 0x015, 0x076, 0x470, 0x304, 0x016, + 0x075, 0x46C, 0x309, 0x017, 0x073, 0x468, 0x30E, 0x017, + 0x071, 0x465, 0x313, 0x018, 0x06F, 0x461, 0x318, 0x018, + 0x06D, 0x45D, 0x31D, 0x019, 0x06B, 0x459, 0x322, 0x01A, + 0x06A, 0x455, 0x326, 0x01B, 0x068, 0x452, 0x32B, 0x01B, + 0x066, 0x44E, 0x330, 0x01C, 0x064, 0x44A, 0x335, 0x01D, + 0x063, 0x446, 0x33A, 0x01D, 0x061, 0x442, 0x33F, 0x01E, + 0x05F, 0x43E, 0x344, 0x01F, 0x05E, 0x43A, 0x349, 0x020, + 0x05C, 0x436, 0x34E, 0x020, 0x05A, 0x432, 0x353, 0x021, + 0x059, 0x42E, 0x357, 0x022, 0x057, 0x42A, 0x35C, 0x023, + 0x056, 0x425, 0x361, 0x024, 0x054, 0x421, 0x366, 0x024, + 0x053, 0x41D, 0x36B, 0x025, 0x051, 0x419, 0x370, 0x026, + 0x050, 0x415, 0x374, 0x027, 0x04E, 0x410, 0x379, 0x028, + 0x04D, 0x40C, 0x37E, 0x029, 0x04C, 0x408, 0x383, 0x02A, + 0x04A, 0x403, 0x388, 0x02B, 0x049, 0x3FF, 0x38C, 0x02C, + 0x047, 0x3FB, 0x391, 0x02D, 0x046, 0x3F6, 0x396, 0x02E, + 0x045, 0x3F2, 0x39B, 0x02F, 0x043, 0x3ED, 0x39F, 0x030, + 0x042, 0x3E9, 0x3A4, 0x031, 0x041, 0x3E5, 0x3A9, 0x032, + 0x040, 0x3E0, 0x3AD, 0x033, 0x03E, 0x3DC, 0x3B2, 0x034, + 0x03D, 0x3D7, 0x3B7, 0x035, 0x03C, 0x3D2, 0x3BB, 0x036, + 0x03B, 0x3CE, 0x3C0, 0x037, 0x03A, 0x3C9, 0x3C5, 0x038, + 0x038, 0x3C5, 0x3C9, 0x03A, 0x037, 0x3C0, 0x3CE, 0x03B, + 0x036, 0x3BB, 0x3D2, 0x03C, 0x035, 0x3B7, 0x3D7, 0x03D, + 0x034, 0x3B2, 0x3DC, 0x03E, 0x033, 0x3AD, 0x3E0, 0x040, + 0x032, 0x3A9, 0x3E5, 0x041, 0x031, 0x3A4, 0x3E9, 0x042, + 0x030, 0x39F, 0x3ED, 0x043, 0x02F, 0x39B, 0x3F2, 0x045, + 0x02E, 0x396, 0x3F6, 0x046, 0x02D, 0x391, 0x3FB, 0x047, + 0x02C, 0x38C, 0x3FF, 0x049, 0x02B, 0x388, 0x403, 0x04A, + 0x02A, 0x383, 0x408, 0x04C, 0x029, 0x37E, 0x40C, 0x04D, + 0x028, 0x379, 0x410, 0x04E, 0x027, 0x374, 0x415, 0x050, + 0x026, 0x370, 0x419, 0x051, 0x025, 0x36B, 0x41D, 0x053, + 0x024, 0x366, 0x421, 0x054, 0x024, 0x361, 0x425, 0x056, + 0x023, 0x35C, 0x42A, 0x057, 0x022, 0x357, 0x42E, 0x059, + 0x021, 0x353, 0x432, 0x05A, 0x020, 0x34E, 0x436, 0x05C, + 0x020, 0x349, 0x43A, 0x05E, 0x01F, 0x344, 0x43E, 0x05F, + 0x01E, 0x33F, 0x442, 0x061, 0x01D, 0x33A, 0x446, 0x063, + 0x01D, 0x335, 0x44A, 0x064, 0x01C, 0x330, 0x44E, 0x066, + 0x01B, 0x32B, 0x452, 0x068, 0x01B, 0x326, 0x455, 0x06A, + 0x01A, 0x322, 0x459, 0x06B, 0x019, 0x31D, 0x45D, 0x06D, + 0x018, 0x318, 0x461, 0x06F, 0x018, 0x313, 0x465, 0x071, + 0x017, 0x30E, 0x468, 0x073, 0x017, 0x309, 0x46C, 0x075, + 0x016, 0x304, 0x470, 0x076, 0x015, 0x2FF, 0x473, 0x078, + 0x015, 0x2FA, 0x477, 0x07A, 0x014, 0x2F5, 0x47A, 0x07C, + 0x014, 0x2F0, 0x47E, 0x07E, 0x013, 0x2EB, 0x481, 0x080, + 0x013, 0x2E6, 0x485, 0x082, 0x012, 0x2E1, 0x488, 0x084, + 0x011, 0x2DC, 0x48C, 0x086, 0x011, 0x2D8, 0x48F, 0x089, + 0x010, 0x2D3, 0x492, 0x08B, 0x010, 0x2CE, 0x496, 0x08D, + 0x00F, 0x2C9, 0x499, 0x08F, 0x00F, 0x2C4, 0x49C, 0x091, + 0x00F, 0x2BF, 0x49F, 0x093, 0x00E, 0x2BA, 0x4A2, 0x096, + 0x00E, 0x2B5, 0x4A6, 0x098, 0x00D, 0x2B0, 0x4A9, 0x09A, + 0x00D, 0x2AB, 0x4AC, 0x09C, 0x00C, 0x2A6, 0x4AF, 0x09F, + 0x00C, 0x2A2, 0x4B2, 0x0A1, 0x00B, 0x29D, 0x4B5, 0x0A3, + 0x00B, 0x298, 0x4B7, 0x0A6, 0x00B, 0x293, 0x4BA, 0x0A8, + 0x00A, 0x28E, 0x4BD, 0x0AB, 0x00A, 0x289, 0x4C0, 0x0AD, + 0x00A, 0x284, 0x4C3, 0x0AF, 0x009, 0x280, 0x4C5, 0x0B2, + 0x009, 0x27B, 0x4C8, 0x0B4, 0x009, 0x276, 0x4CB, 0x0B7, + 0x008, 0x271, 0x4CD, 0x0BA, 0x008, 0x26C, 0x4D0, 0x0BC, + 0x008, 0x267, 0x4D2, 0x0BF, 0x007, 0x263, 0x4D5, 0x0C1, + 0x007, 0x25E, 0x4D7, 0x0C4, 0x007, 0x259, 0x4D9, 0x0C7, + 0x006, 0x254, 0x4DC, 0x0C9, 0x006, 0x250, 0x4DE, 0x0CC, + 0x006, 0x24B, 0x4E0, 0x0CF, 0x006, 0x246, 0x4E3, 0x0D2, + 0x005, 0x241, 0x4E5, 0x0D4, 0x005, 0x23D, 0x4E7, 0x0D7, + 0x005, 0x238, 0x4E9, 0x0DA, 0x005, 0x233, 0x4EB, 0x0DD, + 0x004, 0x22F, 0x4ED, 0x0E0, 0x004, 0x22A, 0x4EF, 0x0E3, + 0x004, 0x226, 0x4F1, 0x0E6, 0x004, 0x221, 0x4F3, 0x0E9, + 0x004, 0x21C, 0x4F5, 0x0EC, 0x003, 0x218, 0x4F6, 0x0EF, + 0x003, 0x213, 0x4F8, 0x0F2, 0x003, 0x20F, 0x4FA, 0x0F5, + 0x003, 0x20A, 0x4FB, 0x0F8, 0x003, 0x205, 0x4FD, 0x0FB, + 0x002, 0x201, 0x4FF, 0x0FE, 0x002, 0x1FC, 0x500, 0x101, + 0x002, 0x1F8, 0x502, 0x104, 0x002, 0x1F3, 0x503, 0x107, + 0x002, 0x1EF, 0x504, 0x10B, 0x002, 0x1EB, 0x506, 0x10E, + 0x002, 0x1E6, 0x507, 0x111, 0x001, 0x1E2, 0x508, 0x114, + 0x001, 0x1DD, 0x50A, 0x118, 0x001, 0x1D9, 0x50B, 0x11B, + 0x001, 0x1D5, 0x50C, 0x11E, 0x001, 0x1D0, 0x50D, 0x122, + 0x001, 0x1CC, 0x50E, 0x125, 0x001, 0x1C8, 0x50F, 0x129, + 0x001, 0x1C3, 0x510, 0x12C, 0x001, 0x1BF, 0x511, 0x130, + 0x001, 0x1BB, 0x511, 0x133, 0x001, 0x1B7, 0x512, 0x137, + 0x000, 0x1B2, 0x513, 0x13A, 0x000, 0x1AE, 0x514, 0x13E, + 0x000, 0x1AA, 0x514, 0x141, 0x000, 0x1A6, 0x515, 0x145, + 0x000, 0x1A2, 0x516, 0x148, 0x000, 0x19E, 0x516, 0x14C, + 0x000, 0x19A, 0x517, 0x150, 0x000, 0x195, 0x517, 0x153, + 0x000, 0x191, 0x517, 0x157, 0x000, 0x18D, 0x518, 0x15B, + 0x000, 0x189, 0x518, 0x15F, 0x000, 0x185, 0x518, 0x162, + 0x000, 0x181, 0x518, 0x166, 0x000, 0x17D, 0x518, 0x16A, + 0x000, 0x17A, 0x519, 0x16E, 0x000, 0x176, 0x519, 0x172}; +#endif diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/psemuxa.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/psemuxa.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,28 @@ +//============================================ +//=== Audio XA decoding +//=== Kazzuya +//============================================ + +#ifndef DECODEXA_H +#define DECODEXA_H + +typedef struct +{ + long y0, y1; +} ADPCM_Decode_t; + +typedef struct +{ + int freq; + int nbits; + int stereo; + int nsamples; + ADPCM_Decode_t left, right; + short pcm[16384]; +} xa_decode_t; + +long xa_decode_sector( xa_decode_t *xdp, + unsigned char *sectorp, + int is_first_sector ); + +#endif diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/registers.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/registers.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,1343 @@ +/*************************************************************************** + registers.c - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2004/04/04 - Pete +// - changed plugin to emulate PS2 spu +// +// 2003/02/09 - kode54 +// - removed &0x3fff from reverb volume registers, fixes a few games, +// hopefully won't be breaking anything +// +// 2003/01/19 - Pete +// - added Neill's reverb +// +// 2003/01/06 - Pete +// - added Neill's ADSR timings +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +#include "stdafx.h" + +#define _IN_REGISTERS + +#include "../peops2/externals.h" +#include "../peops2/registers.h" +#include "../peops2/regs.h" +#include "../peops2/reverb.h" + +/* +// adsr time values (in ms) by James Higgs ... see the end of +// the adsr.c source for details + +#define ATTACK_MS 514L +#define DECAYHALF_MS 292L +#define DECAY_MS 584L +#define SUSTAIN_MS 450L +#define RELEASE_MS 446L +*/ + +// we have a timebase of 1.020408f ms, not 1 ms... so adjust adsr defines +#define ATTACK_MS 494L +#define DECAYHALF_MS 286L +#define DECAY_MS 572L +#define SUSTAIN_MS 441L +#define RELEASE_MS 437L + +// Prototypes +void SetVolumeL(unsigned char ch,short vol); +void SetVolumeR(unsigned char ch,short vol); +void ReverbOn(int start,int end,unsigned short val,int iRight); +void SetReverbAddr(int core); +void VolumeOn(int start,int end,unsigned short val,int iRight); + +//////////////////////////////////////////////////////////////////////// +// WRITE REGISTERS: called by main emu +//////////////////////////////////////////////////////////////////////// + +EXPORT_GCC void CALLBACK SPU2write(unsigned long reg, unsigned short val) +{ + long r=reg&0xffff; + + regArea[r>>1] = val; + +// printf("SPU2: %04x to %08x\n", val, reg); + + if((r>=0x0000 && r<0x0180)||(r>=0x0400 && r<0x0580)) // some channel info? + { + int ch=(r>>4)&0x1f; + if(r>=0x400) ch+=24; + + switch(r&0x0f) + { + //------------------------------------------------// r volume + case 0: + SetVolumeL((unsigned char)ch,val); + break; + //------------------------------------------------// l volume + case 2: + SetVolumeR((unsigned char)ch,val); + break; + //------------------------------------------------// pitch + case 4: + SetPitch(ch,val); + break; + //------------------------------------------------// level with pre-calcs + case 6: + { + const unsigned long lval=val;unsigned long lx; + //---------------------------------------------// + s_chan[ch].ADSRX.AttackModeExp=(lval&0x8000)?1:0; + s_chan[ch].ADSRX.AttackRate=(lval>>8) & 0x007f; + s_chan[ch].ADSRX.DecayRate=(lval>>4) & 0x000f; + s_chan[ch].ADSRX.SustainLevel=lval & 0x000f; + //---------------------------------------------// + if(!iDebugMode) break; + //---------------------------------------------// stuff below is only for debug mode + + s_chan[ch].ADSR.AttackModeExp=(lval&0x8000)?1:0; //0x007f + + lx=(((lval>>8) & 0x007f)>>2); // attack time to run from 0 to 100% volume + lx=min(31,lx); // no overflow on shift! + if(lx) + { + lx = (1<>4) & 0x000f; // decay: + if(lx) // our const decay value is time it takes from 100% to 0% of volume + { + lx = ((1<<(lx))*DECAY_MS)/10000L; + if(!lx) lx=1; + } + s_chan[ch].ADSR.DecayTime = // so calc how long does it take to run from 100% to the wanted sus level + (lx*(1024-s_chan[ch].ADSR.SustainLevel))/1024; + } + break; + //------------------------------------------------// adsr times with pre-calcs + case 8: + { + const unsigned long lval=val;unsigned long lx; + + //----------------------------------------------// + s_chan[ch].ADSRX.SustainModeExp = (lval&0x8000)?1:0; + s_chan[ch].ADSRX.SustainIncrease= (lval&0x4000)?0:1; + s_chan[ch].ADSRX.SustainRate = (lval>>6) & 0x007f; + s_chan[ch].ADSRX.ReleaseModeExp = (lval&0x0020)?1:0; + s_chan[ch].ADSRX.ReleaseRate = lval & 0x001f; + //----------------------------------------------// + if(!iDebugMode) break; + //----------------------------------------------// stuff below is only for debug mode + + s_chan[ch].ADSR.SustainModeExp = (lval&0x8000)?1:0; + s_chan[ch].ADSR.ReleaseModeExp = (lval&0x0020)?1:0; + + lx=((((lval>>6) & 0x007f)>>2)); // sustain time... often very high + lx=min(31,lx); // values are used to hold the volume + if(lx) // until a sound stop occurs + { // the highest value we reach (due to + lx = (1<=0x01c0 && r<0x02E0)||(r>=0x05c0 && r<0x06E0)) // some channel info? + { + int ch=0; + if(r>=0x400) {ch=24;r-=0x400;} + + ch+=(r-0x1c0)/12; + r-=(ch%24)*12; + switch(r) + { + //------------------------------------------------// + case 0x1C0: + s_chan[ch].iStartAdr=(((unsigned long)val&0xf)<<16)|(s_chan[ch].iStartAdr&0xFFFF); + s_chan[ch].pStart=spuMemC+(s_chan[ch].iStartAdr<<1); + break; + case 0x1C2: + s_chan[ch].iStartAdr=(s_chan[ch].iStartAdr & 0xF0000) | (val & 0xFFFF); + s_chan[ch].pStart=spuMemC+(s_chan[ch].iStartAdr<<1); + break; + //------------------------------------------------// + case 0x1C4: + s_chan[ch].iLoopAdr=(((unsigned long)val&0xf)<<16)|(s_chan[ch].iLoopAdr&0xFFFF); + s_chan[ch].pLoop=spuMemC+(s_chan[ch].iLoopAdr<<1); + s_chan[ch].bIgnoreLoop=1; + break; + case 0x1C6: + s_chan[ch].iLoopAdr=(s_chan[ch].iLoopAdr & 0xF0000) | (val & 0xFFFF); + s_chan[ch].pLoop=spuMemC+(s_chan[ch].iLoopAdr<<1); + s_chan[ch].bIgnoreLoop=1; + break; + //------------------------------------------------// + case 0x1C8: + // unused... check if it gets written as well + s_chan[ch].iNextAdr=(((unsigned long)val&0xf)<<16)|(s_chan[ch].iNextAdr&0xFFFF); + break; + case 0x1CA: + // unused... check if it gets written as well + s_chan[ch].iNextAdr=(s_chan[ch].iNextAdr & 0xF0000) | (val & 0xFFFF); + break; + //------------------------------------------------// + } + + iSpuAsyncWait=0; + + return; + } + + switch(r) + { + //-------------------------------------------------// + case PS2_C0_SPUaddr_Hi: + spuAddr2[0] = (((unsigned long)val&0xf)<<16)|(spuAddr2[0]&0xFFFF); + break; + //-------------------------------------------------// + case PS2_C0_SPUaddr_Lo: + spuAddr2[0] = (spuAddr2[0] & 0xF0000) | (val & 0xFFFF); + break; + //-------------------------------------------------// + case PS2_C1_SPUaddr_Hi: + spuAddr2[1] = (((unsigned long)val&0xf)<<16)|(spuAddr2[1]&0xFFFF); + break; + //-------------------------------------------------// + case PS2_C1_SPUaddr_Lo: + spuAddr2[1] = (spuAddr2[1] & 0xF0000) | (val & 0xFFFF); + break; + //-------------------------------------------------// + case PS2_C0_SPUdata: + spuMem[spuAddr2[0]] = val; + spuAddr2[0]++; + if(spuAddr2[0]>0xfffff) spuAddr2[0]=0; + break; + //-------------------------------------------------// + case PS2_C1_SPUdata: + spuMem[spuAddr2[1]] = val; + spuAddr2[1]++; + if(spuAddr2[1]>0xfffff) spuAddr2[1]=0; + break; + //-------------------------------------------------// + case PS2_C0_ATTR: + spuCtrl2[0]=val; + break; + //-------------------------------------------------// + case PS2_C1_ATTR: + spuCtrl2[1]=val; + break; + //-------------------------------------------------// + case PS2_C0_SPUstat: + spuStat2[0]=val; + break; + //-------------------------------------------------// + case PS2_C1_SPUstat: + spuStat2[1]=val; + break; + //-------------------------------------------------// + case PS2_C0_ReverbAddr_Hi: + spuRvbAddr2[0] = (((unsigned long)val&0xf)<<16)|(spuRvbAddr2[0]&0xFFFF); + SetReverbAddr(0); + break; + //-------------------------------------------------// + case PS2_C0_ReverbAddr_Lo: + spuRvbAddr2[0] = (spuRvbAddr2[0] & 0xF0000) | (val & 0xFFFF); + SetReverbAddr(0); + break; + //-------------------------------------------------// + case PS2_C0_ReverbAEnd_Hi: + spuRvbAEnd2[0] = (((unsigned long)val&0xf)<<16)|(/*spuRvbAEnd2[0]&*/0xFFFF); + rvb[0].EndAddr=spuRvbAEnd2[0]; + break; + //-------------------------------------------------// + case PS2_C1_ReverbAEnd_Hi: + spuRvbAEnd2[1] = (((unsigned long)val&0xf)<<16)|(/*spuRvbAEnd2[1]&*/0xFFFF); + rvb[1].EndAddr=spuRvbAEnd2[1]; + break; + //-------------------------------------------------// + case PS2_C1_ReverbAddr_Hi: + spuRvbAddr2[1] = (((unsigned long)val&0xf)<<16)|(spuRvbAddr2[1]&0xFFFF); + SetReverbAddr(1); + break; + //-------------------------------------------------// + case PS2_C1_ReverbAddr_Lo: + spuRvbAddr2[1] = (spuRvbAddr2[1] & 0xF0000) | (val & 0xFFFF); + SetReverbAddr(1); + break; + //-------------------------------------------------// + case PS2_C0_SPUirqAddr_Hi: + spuIrq2[0] = (((unsigned long)val&0xf)<<16)|(spuIrq2[0]&0xFFFF); + pSpuIrq[0]=spuMemC+(spuIrq2[0]<<1); + break; + //-------------------------------------------------// + case PS2_C0_SPUirqAddr_Lo: + spuIrq2[0] = (spuIrq2[0] & 0xF0000) | (val & 0xFFFF); + pSpuIrq[0]=spuMemC+(spuIrq2[0]<<1); + break; + //-------------------------------------------------// + case PS2_C1_SPUirqAddr_Hi: + spuIrq2[1] = (((unsigned long)val&0xf)<<16)|(spuIrq2[1]&0xFFFF); + pSpuIrq[1]=spuMemC+(spuIrq2[1]<<1); + break; + //-------------------------------------------------// + case PS2_C1_SPUirqAddr_Lo: + spuIrq2[1] = (spuIrq2[1] & 0xF0000) | (val & 0xFFFF); + pSpuIrq[1]=spuMemC+(spuIrq2[1]<<1); + break; + //-------------------------------------------------// + case PS2_C0_SPUrvolL: + rvb[0].VolLeft=val; + break; + //-------------------------------------------------// + case PS2_C0_SPUrvolR: + rvb[0].VolRight=val; + break; + //-------------------------------------------------// + case PS2_C1_SPUrvolL: + rvb[1].VolLeft=val; + break; + //-------------------------------------------------// + case PS2_C1_SPUrvolR: + rvb[1].VolRight=val; + break; + //-------------------------------------------------// + case PS2_C0_SPUon1: + SoundOn(0,16,val); + break; + //-------------------------------------------------// + case PS2_C0_SPUon2: + SoundOn(16,24,val); + break; + //-------------------------------------------------// + case PS2_C1_SPUon1: + SoundOn(24,40,val); + break; + //-------------------------------------------------// + case PS2_C1_SPUon2: + SoundOn(40,48,val); + break; + //-------------------------------------------------// + case PS2_C0_SPUoff1: + SoundOff(0,16,val); + break; + //-------------------------------------------------// + case PS2_C0_SPUoff2: + SoundOff(16,24,val); + break; + //-------------------------------------------------// + case PS2_C1_SPUoff1: + SoundOff(24,40,val); + break; + //-------------------------------------------------// + case PS2_C1_SPUoff2: + SoundOff(40,48,val); + break; + //-------------------------------------------------// + case PS2_C0_SPUend1: + case PS2_C0_SPUend2: + if(val) dwEndChannel2[0]=0; + break; + //-------------------------------------------------// + case PS2_C1_SPUend1: + case PS2_C1_SPUend2: + if(val) dwEndChannel2[1]=0; + break; + //-------------------------------------------------// + case PS2_C0_FMod1: + FModOn(0,16,val); + break; + //-------------------------------------------------// + case PS2_C0_FMod2: + FModOn(16,24,val); + break; + //-------------------------------------------------// + case PS2_C1_FMod1: + FModOn(24,40,val); + break; + //-------------------------------------------------// + case PS2_C1_FMod2: + FModOn(40,48,val); + break; + //-------------------------------------------------// + case PS2_C0_Noise1: + NoiseOn(0,16,val); + break; + //-------------------------------------------------// + case PS2_C0_Noise2: + NoiseOn(16,24,val); + break; + //-------------------------------------------------// + case PS2_C1_Noise1: + NoiseOn(24,40,val); + break; + //-------------------------------------------------// + case PS2_C1_Noise2: + NoiseOn(40,48,val); + break; + //-------------------------------------------------// + case PS2_C0_DryL1: + VolumeOn(0,16,val,0); + break; + //-------------------------------------------------// + case PS2_C0_DryL2: + VolumeOn(16,24,val,0); + break; + //-------------------------------------------------// + case PS2_C1_DryL1: + VolumeOn(24,40,val,0); + break; + //-------------------------------------------------// + case PS2_C1_DryL2: + VolumeOn(40,48,val,0); + break; + //-------------------------------------------------// + case PS2_C0_DryR1: + VolumeOn(0,16,val,1); + break; + //-------------------------------------------------// + case PS2_C0_DryR2: + VolumeOn(16,24,val,1); + break; + //-------------------------------------------------// + case PS2_C1_DryR1: + VolumeOn(24,40,val,1); + break; + //-------------------------------------------------// + case PS2_C1_DryR2: + VolumeOn(40,48,val,1); + break; + //-------------------------------------------------// + case PS2_C0_RVBon1_L: + ReverbOn(0,16,val,0); + break; + //-------------------------------------------------// + case PS2_C0_RVBon2_L: + ReverbOn(16,24,val,0); + break; + //-------------------------------------------------// + case PS2_C1_RVBon1_L: + ReverbOn(24,40,val,0); + break; + //-------------------------------------------------// + case PS2_C1_RVBon2_L: + ReverbOn(40,48,val,0); + break; + //-------------------------------------------------// + case PS2_C0_RVBon1_R: + ReverbOn(0,16,val,1); + break; + //-------------------------------------------------// + case PS2_C0_RVBon2_R: + ReverbOn(16,24,val,1); + break; + //-------------------------------------------------// + case PS2_C1_RVBon1_R: + ReverbOn(24,40,val,1); + break; + //-------------------------------------------------// + case PS2_C1_RVBon2_R: + ReverbOn(40,48,val,1); + break; + //-------------------------------------------------// + case PS2_C0_Reverb+0: + rvb[0].FB_SRC_A=(((unsigned long)val&0xf)<<16)|(rvb[0].FB_SRC_A&0xFFFF); + break; + case PS2_C0_Reverb+2: + rvb[0].FB_SRC_A=(rvb[0].FB_SRC_A & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+4: + rvb[0].FB_SRC_B=(((unsigned long)val&0xf)<<16)|(rvb[0].FB_SRC_B&0xFFFF); + break; + case PS2_C0_Reverb+6: + rvb[0].FB_SRC_B=(rvb[0].FB_SRC_B & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+8: + rvb[0].IIR_DEST_A0=(((unsigned long)val&0xf)<<16)|(rvb[0].IIR_DEST_A0&0xFFFF); + break; + case PS2_C0_Reverb+10: + rvb[0].IIR_DEST_A0=(rvb[0].IIR_DEST_A0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+12: + rvb[0].IIR_DEST_A1=(((unsigned long)val&0xf)<<16)|(rvb[0].IIR_DEST_A1&0xFFFF); + break; + case PS2_C0_Reverb+14: + rvb[0].IIR_DEST_A1=(rvb[0].IIR_DEST_A1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+16: + rvb[0].ACC_SRC_A0=(((unsigned long)val&0xf)<<16)|(rvb[0].ACC_SRC_A0&0xFFFF); + break; + case PS2_C0_Reverb+18: + rvb[0].ACC_SRC_A0=(rvb[0].ACC_SRC_A0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+20: + rvb[0].ACC_SRC_A1=(((unsigned long)val&0xf)<<16)|(rvb[0].ACC_SRC_A1&0xFFFF); + break; + case PS2_C0_Reverb+22: + rvb[0].ACC_SRC_A1=(rvb[0].ACC_SRC_A1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+24: + rvb[0].ACC_SRC_B0=(((unsigned long)val&0xf)<<16)|(rvb[0].ACC_SRC_B0&0xFFFF); + break; + case PS2_C0_Reverb+26: + rvb[0].ACC_SRC_B0=(rvb[0].ACC_SRC_B0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+28: + rvb[0].ACC_SRC_B1=(((unsigned long)val&0xf)<<16)|(rvb[0].ACC_SRC_B1&0xFFFF); + break; + case PS2_C0_Reverb+30: + rvb[0].ACC_SRC_B1=(rvb[0].ACC_SRC_B1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+32: + rvb[0].IIR_SRC_A0=(((unsigned long)val&0xf)<<16)|(rvb[0].IIR_SRC_A0&0xFFFF); + break; + case PS2_C0_Reverb+34: + rvb[0].IIR_SRC_A0=(rvb[0].IIR_SRC_A0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+36: + rvb[0].IIR_SRC_A1=(((unsigned long)val&0xf)<<16)|(rvb[0].IIR_SRC_A1&0xFFFF); + break; + case PS2_C0_Reverb+38: + rvb[0].IIR_SRC_A1=(rvb[0].IIR_SRC_A1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+40: + rvb[0].IIR_DEST_B0=(((unsigned long)val&0xf)<<16)|(rvb[0].IIR_DEST_B0&0xFFFF); + break; + case PS2_C0_Reverb+42: + rvb[0].IIR_DEST_B0=(rvb[0].IIR_DEST_B0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+44: + rvb[0].IIR_DEST_B1=(((unsigned long)val&0xf)<<16)|(rvb[0].IIR_DEST_B1&0xFFFF); + break; + case PS2_C0_Reverb+46: + rvb[0].IIR_DEST_B1=(rvb[0].IIR_DEST_B1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+48: + rvb[0].ACC_SRC_C0=(((unsigned long)val&0xf)<<16)|(rvb[0].ACC_SRC_C0&0xFFFF); + break; + case PS2_C0_Reverb+50: + rvb[0].ACC_SRC_C0=(rvb[0].ACC_SRC_C0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+52: + rvb[0].ACC_SRC_C1=(((unsigned long)val&0xf)<<16)|(rvb[0].ACC_SRC_C1&0xFFFF); + break; + case PS2_C0_Reverb+54: + rvb[0].ACC_SRC_C1=(rvb[0].ACC_SRC_C1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+56: + rvb[0].ACC_SRC_D0=(((unsigned long)val&0xf)<<16)|(rvb[0].ACC_SRC_D0&0xFFFF); + break; + case PS2_C0_Reverb+58: + rvb[0].ACC_SRC_D0=(rvb[0].ACC_SRC_D0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+60: + rvb[0].ACC_SRC_D1=(((unsigned long)val&0xf)<<16)|(rvb[0].ACC_SRC_D1&0xFFFF); + break; + case PS2_C0_Reverb+62: + rvb[0].ACC_SRC_D1=(rvb[0].ACC_SRC_D1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+64: + rvb[0].IIR_SRC_B1=(((unsigned long)val&0xf)<<16)|(rvb[0].IIR_SRC_B1&0xFFFF); + break; + case PS2_C0_Reverb+66: + rvb[0].IIR_SRC_B1=(rvb[0].IIR_SRC_B1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+68: + rvb[0].IIR_SRC_B0=(((unsigned long)val&0xf)<<16)|(rvb[0].IIR_SRC_B0&0xFFFF); + break; + case PS2_C0_Reverb+70: + rvb[0].IIR_SRC_B0=(rvb[0].IIR_SRC_B0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+72: + rvb[0].MIX_DEST_A0=(((unsigned long)val&0xf)<<16)|(rvb[0].MIX_DEST_A0&0xFFFF); + break; + case PS2_C0_Reverb+74: + rvb[0].MIX_DEST_A0=(rvb[0].MIX_DEST_A0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+76: + rvb[0].MIX_DEST_A1=(((unsigned long)val&0xf)<<16)|(rvb[0].MIX_DEST_A1&0xFFFF); + break; + case PS2_C0_Reverb+78: + rvb[0].MIX_DEST_A1=(rvb[0].MIX_DEST_A1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+80: + rvb[0].MIX_DEST_B0=(((unsigned long)val&0xf)<<16)|(rvb[0].MIX_DEST_B0&0xFFFF); + break; + case PS2_C0_Reverb+82: + rvb[0].MIX_DEST_B0=(rvb[0].MIX_DEST_B0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_Reverb+84: + rvb[0].MIX_DEST_B1=(((unsigned long)val&0xf)<<16)|(rvb[0].MIX_DEST_B1&0xFFFF); + break; + case PS2_C0_Reverb+86: + rvb[0].MIX_DEST_B1=(rvb[0].MIX_DEST_B1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C0_ReverbX+0: rvb[0].IIR_ALPHA=(short)val; break; + case PS2_C0_ReverbX+2: rvb[0].ACC_COEF_A=(short)val; break; + case PS2_C0_ReverbX+4: rvb[0].ACC_COEF_B=(short)val; break; + case PS2_C0_ReverbX+6: rvb[0].ACC_COEF_C=(short)val; break; + case PS2_C0_ReverbX+8: rvb[0].ACC_COEF_D=(short)val; break; + case PS2_C0_ReverbX+10: rvb[0].IIR_COEF=(short)val; break; + case PS2_C0_ReverbX+12: rvb[0].FB_ALPHA=(short)val; break; + case PS2_C0_ReverbX+14: rvb[0].FB_X=(short)val; break; + case PS2_C0_ReverbX+16: rvb[0].IN_COEF_L=(short)val; break; + case PS2_C0_ReverbX+18: rvb[0].IN_COEF_R=(short)val; break; + //-------------------------------------------------// + case PS2_C1_Reverb+0: + rvb[1].FB_SRC_A=(((unsigned long)val&0xf)<<16)|(rvb[1].FB_SRC_A&0xFFFF); + break; + case PS2_C1_Reverb+2: + rvb[1].FB_SRC_A=(rvb[1].FB_SRC_A & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+4: + rvb[1].FB_SRC_B=(((unsigned long)val&0xf)<<16)|(rvb[1].FB_SRC_B&0xFFFF); + break; + case PS2_C1_Reverb+6: + rvb[1].FB_SRC_B=(rvb[1].FB_SRC_B & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+8: + rvb[1].IIR_DEST_A0=(((unsigned long)val&0xf)<<16)|(rvb[1].IIR_DEST_A0&0xFFFF); + break; + case PS2_C1_Reverb+10: + rvb[1].IIR_DEST_A0=(rvb[1].IIR_DEST_A0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+12: + rvb[1].IIR_DEST_A1=(((unsigned long)val&0xf)<<16)|(rvb[1].IIR_DEST_A1&0xFFFF); + break; + case PS2_C1_Reverb+14: + rvb[1].IIR_DEST_A1=(rvb[1].IIR_DEST_A1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+16: + rvb[1].ACC_SRC_A0=(((unsigned long)val&0xf)<<16)|(rvb[1].ACC_SRC_A0&0xFFFF); + break; + case PS2_C1_Reverb+18: + rvb[1].ACC_SRC_A0=(rvb[1].ACC_SRC_A0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+20: + rvb[1].ACC_SRC_A1=(((unsigned long)val&0xf)<<16)|(rvb[1].ACC_SRC_A1&0xFFFF); + break; + case PS2_C1_Reverb+22: + rvb[1].ACC_SRC_A1=(rvb[1].ACC_SRC_A1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+24: + rvb[1].ACC_SRC_B0=(((unsigned long)val&0xf)<<16)|(rvb[1].ACC_SRC_B0&0xFFFF); + break; + case PS2_C1_Reverb+26: + rvb[1].ACC_SRC_B0=(rvb[1].ACC_SRC_B0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+28: + rvb[1].ACC_SRC_B1=(((unsigned long)val&0xf)<<16)|(rvb[1].ACC_SRC_B1&0xFFFF); + break; + case PS2_C1_Reverb+30: + rvb[1].ACC_SRC_B1=(rvb[1].ACC_SRC_B1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+32: + rvb[1].IIR_SRC_A0=(((unsigned long)val&0xf)<<16)|(rvb[1].IIR_SRC_A0&0xFFFF); + break; + case PS2_C1_Reverb+34: + rvb[1].IIR_SRC_A0=(rvb[1].IIR_SRC_A0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+36: + rvb[1].IIR_SRC_A1=(((unsigned long)val&0xf)<<16)|(rvb[1].IIR_SRC_A1&0xFFFF); + break; + case PS2_C1_Reverb+38: + rvb[1].IIR_SRC_A1=(rvb[1].IIR_SRC_A1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+40: + rvb[1].IIR_DEST_B0=(((unsigned long)val&0xf)<<16)|(rvb[1].IIR_DEST_B0&0xFFFF); + break; + case PS2_C1_Reverb+42: + rvb[1].IIR_DEST_B0=(rvb[1].IIR_DEST_B0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+44: + rvb[1].IIR_DEST_B1=(((unsigned long)val&0xf)<<16)|(rvb[1].IIR_DEST_B1&0xFFFF); + break; + case PS2_C1_Reverb+46: + rvb[1].IIR_DEST_B1=(rvb[1].IIR_DEST_B1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+48: + rvb[1].ACC_SRC_C0=(((unsigned long)val&0xf)<<16)|(rvb[1].ACC_SRC_C0&0xFFFF); + break; + case PS2_C1_Reverb+50: + rvb[1].ACC_SRC_C0=(rvb[1].ACC_SRC_C0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+52: + rvb[1].ACC_SRC_C1=(((unsigned long)val&0xf)<<16)|(rvb[1].ACC_SRC_C1&0xFFFF); + break; + case PS2_C1_Reverb+54: + rvb[1].ACC_SRC_C1=(rvb[1].ACC_SRC_C1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+56: + rvb[1].ACC_SRC_D0=(((unsigned long)val&0xf)<<16)|(rvb[1].ACC_SRC_D0&0xFFFF); + break; + case PS2_C1_Reverb+58: + rvb[1].ACC_SRC_D0=(rvb[1].ACC_SRC_D0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+60: + rvb[1].ACC_SRC_D1=(((unsigned long)val&0xf)<<16)|(rvb[1].ACC_SRC_D1&0xFFFF); + break; + case PS2_C1_Reverb+62: + rvb[1].ACC_SRC_D1=(rvb[1].ACC_SRC_D1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+64: + rvb[1].IIR_SRC_B1=(((unsigned long)val&0xf)<<16)|(rvb[1].IIR_SRC_B1&0xFFFF); + break; + case PS2_C1_Reverb+66: + rvb[1].IIR_SRC_B1=(rvb[1].IIR_SRC_B1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+68: + rvb[1].IIR_SRC_B0=(((unsigned long)val&0xf)<<16)|(rvb[1].IIR_SRC_B0&0xFFFF); + break; + case PS2_C1_Reverb+70: + rvb[1].IIR_SRC_B0=(rvb[1].IIR_SRC_B0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+72: + rvb[1].MIX_DEST_A0=(((unsigned long)val&0xf)<<16)|(rvb[1].MIX_DEST_A0&0xFFFF); + break; + case PS2_C1_Reverb+74: + rvb[1].MIX_DEST_A0=(rvb[1].MIX_DEST_A0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+76: + rvb[1].MIX_DEST_A1=(((unsigned long)val&0xf)<<16)|(rvb[1].MIX_DEST_A1&0xFFFF); + break; + case PS2_C1_Reverb+78: + rvb[1].MIX_DEST_A1=(rvb[1].MIX_DEST_A1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+80: + rvb[1].MIX_DEST_B0=(((unsigned long)val&0xf)<<16)|(rvb[1].MIX_DEST_B0&0xFFFF); + break; + case PS2_C1_Reverb+82: + rvb[1].MIX_DEST_B0=(rvb[1].MIX_DEST_B0 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_Reverb+84: + rvb[1].MIX_DEST_B1=(((unsigned long)val&0xf)<<16)|(rvb[1].MIX_DEST_B1&0xFFFF); + break; + case PS2_C1_Reverb+86: + rvb[1].MIX_DEST_B1=(rvb[1].MIX_DEST_B1 & 0xF0000) | ((val) & 0xFFFF); + break; + case PS2_C1_ReverbX+0: rvb[1].IIR_ALPHA=(short)val; break; + case PS2_C1_ReverbX+2: rvb[1].ACC_COEF_A=(short)val; break; + case PS2_C1_ReverbX+4: rvb[1].ACC_COEF_B=(short)val; break; + case PS2_C1_ReverbX+6: rvb[1].ACC_COEF_C=(short)val; break; + case PS2_C1_ReverbX+8: rvb[1].ACC_COEF_D=(short)val; break; + case PS2_C1_ReverbX+10: rvb[1].IIR_COEF=(short)val; break; + case PS2_C1_ReverbX+12: rvb[1].FB_ALPHA=(short)val; break; + case PS2_C1_ReverbX+14: rvb[1].FB_X=(short)val; break; + case PS2_C1_ReverbX+16: rvb[1].IN_COEF_L=(short)val; break; + case PS2_C1_ReverbX+18: rvb[1].IN_COEF_R=(short)val; break; + } + + iSpuAsyncWait=0; + +} + +//////////////////////////////////////////////////////////////////////// +// READ REGISTER: called by main emu +//////////////////////////////////////////////////////////////////////// + +EXPORT_GCC unsigned short CALLBACK SPU2read(unsigned long reg) +{ + long r=reg&0xffff; + +#ifdef _WINDOWS +// if(iDebugMode==1) logprintf("R_REG %X\r\n",reg&0xFFFF); +#endif + + iSpuAsyncWait=0; + + if((r>=0x0000 && r<0x0180)||(r>=0x0400 && r<0x0580)) // some channel info? + { + switch(r&0x0f) + { + //------------------------------------------------// env value + case 10: + { + int ch=(r>>4)&0x1f; + if(r>=0x400) ch+=24; + if(s_chan[ch].bNew) return 1; // we are started, but not processed? return 1 + if(s_chan[ch].ADSRX.lVolume && // same here... we haven't decoded one sample yet, so no envelope yet. return 1 as well + !s_chan[ch].ADSRX.EnvelopeVol) + return 1; + return (unsigned short)(s_chan[ch].ADSRX.EnvelopeVol>>16); + }break; + } + } + + if((r>=0x01c0 && r<0x02E0)||(r>=0x05c0 && r<0x06E0)) // some channel info? + { + int ch=0;unsigned long rx=r; + if(rx>=0x400) {ch=24;rx-=0x400;} + + ch+=(rx-0x1c0)/12; + rx-=(ch%24)*12; + + switch(rx) + { + //------------------------------------------------// + case 0x1C4: + return (((s_chan[ch].pLoop-spuMemC)>>17)&0xF); + break; + case 0x1C6: + return (((s_chan[ch].pLoop-spuMemC)>>1)&0xFFFF); + break; + //------------------------------------------------// + case 0x1C8: + return (((s_chan[ch].pCurr-spuMemC)>>17)&0xF); + break; + case 0x1CA: + return (((s_chan[ch].pCurr-spuMemC)>>1)&0xFFFF); + break; + //------------------------------------------------// + } + } + + switch(r) + { + //--------------------------------------------------// + case PS2_C0_SPUend1: + return (unsigned short)((dwEndChannel2[0]&0xFFFF)); + case PS2_C0_SPUend2: + return (unsigned short)((dwEndChannel2[0]>>16)); + //--------------------------------------------------// + case PS2_C1_SPUend1: + return (unsigned short)((dwEndChannel2[1]&0xFFFF)); + case PS2_C1_SPUend2: + return (unsigned short)((dwEndChannel2[1]>>16)); + //--------------------------------------------------// + case PS2_C0_ATTR: + return spuCtrl2[0]; + break; + //--------------------------------------------------// + case PS2_C1_ATTR: + return spuCtrl2[1]; + break; + //--------------------------------------------------// + case PS2_C0_SPUstat: + return spuStat2[0]; + break; + //--------------------------------------------------// + case PS2_C1_SPUstat: + return spuStat2[1]; + break; + //--------------------------------------------------// + case PS2_C0_SPUdata: + { + unsigned short s=spuMem[spuAddr2[0]]; + spuAddr2[0]++; + if(spuAddr2[0]>0xfffff) spuAddr2[0]=0; + return s; + } + //--------------------------------------------------// + case PS2_C1_SPUdata: + { + unsigned short s=spuMem[spuAddr2[1]]; + spuAddr2[1]++; + if(spuAddr2[1]>0xfffff) spuAddr2[1]=0; + return s; + } + //--------------------------------------------------// + case PS2_C0_SPUaddr_Hi: + return (unsigned short)((spuAddr2[0]>>16)&0xF); + break; + case PS2_C0_SPUaddr_Lo: + return (unsigned short)((spuAddr2[0]&0xFFFF)); + break; + //--------------------------------------------------// + case PS2_C1_SPUaddr_Hi: + return (unsigned short)((spuAddr2[1]>>16)&0xF); + break; + case PS2_C1_SPUaddr_Lo: + return (unsigned short)((spuAddr2[1]&0xFFFF)); + break; + //--------------------------------------------------// + } + + return regArea[r>>1]; +} + +EXPORT_GCC void CALLBACK SPU2writePS1Port(unsigned long reg, unsigned short val) +{ + const u32 r=reg&0xfff; + + if(r>=0xc00 && r<0xd80) // channel info + { + SPU2write(r-0xc00, val); + return; + } + + switch(r) + { + //-------------------------------------------------// + case H_SPUaddr: + spuAddr2[0] = (u32) val<<2; + break; + //-------------------------------------------------// + case H_SPUdata: + spuMem[spuAddr2[0]] = BFLIP16(val); + spuAddr2[0]++; + if(spuAddr2[0]>0xfffff) spuAddr2[0]=0; + break; + //-------------------------------------------------// + case H_SPUctrl: +// spuCtrl=val; + break; + //-------------------------------------------------// + case H_SPUstat: + spuStat2[0]=val & 0xf800; + break; + //-------------------------------------------------// + case H_SPUReverbAddr: + spuRvbAddr2[0] = val; + SetReverbAddr(0); + break; + //-------------------------------------------------// + case H_SPUirqAddr: + spuIrq2[0] = val<<2; + pSpuIrq[0]=spuMemC+((u32) val<<1); + break; + //-------------------------------------------------// + /* Volume settings appear to be at least 15-bit unsigned in this case. + Definitely NOT 15-bit signed. Probably 16-bit signed, so s16 type cast. + Check out "Chrono Cross: Shadow's End Forest" + */ + case H_SPUrvolL: + rvb[0].VolLeft=(s16)val; + //printf("%d\n",val); + break; + //-------------------------------------------------// + case H_SPUrvolR: + rvb[0].VolRight=(s16)val; + //printf("%d\n",val); + break; + //-------------------------------------------------// + +/* + case H_ExtLeft: + //auxprintf("EL %d\n",val); + break; + //-------------------------------------------------// + case H_ExtRight: + //auxprintf("ER %d\n",val); + break; + //-------------------------------------------------// + case H_SPUmvolL: + //auxprintf("ML %d\n",val); + break; + //-------------------------------------------------// + case H_SPUmvolR: + //auxprintf("MR %d\n",val); + break; + //-------------------------------------------------// + case H_SPUMute1: + //printf("M0 %04x\n",val); + break; + //-------------------------------------------------// + case H_SPUMute2: + // printf("M1 %04x\n",val); + break; +*/ + //-------------------------------------------------// + case H_SPUon1: + SoundOn(0,16,val); + break; + //-------------------------------------------------// + case H_SPUon2: + //printf("Boop: %08x: %04x\n",reg,val); + SoundOn(16,24,val); + break; + //-------------------------------------------------// + case H_SPUoff1: + SoundOff(0,16,val); + break; + //-------------------------------------------------// + case H_SPUoff2: + SoundOff(16,24,val); + // printf("Boop: %08x: %04x\n",reg,val); + break; + //-------------------------------------------------// + case H_FMod1: + FModOn(0,16,val); + break; + //-------------------------------------------------// + case H_FMod2: + FModOn(16,24,val); + break; + //-------------------------------------------------// + case H_Noise1: + NoiseOn(0,16,val); + break; + //-------------------------------------------------// + case H_Noise2: + NoiseOn(16,24,val); + break; + //-------------------------------------------------// + case H_RVBon1: + ReverbOn(0,16,val,0); + break; + + //-------------------------------------------------// + case H_RVBon2: + ReverbOn(16,24,val,0); + break; + + //-------------------------------------------------// + case H_Reverb+0: + rvb[0].FB_SRC_A=val; + break; + + case H_Reverb+2 : rvb[0].FB_SRC_B=(s16)val; break; + case H_Reverb+4 : rvb[0].IIR_ALPHA=(s16)val; break; + case H_Reverb+6 : rvb[0].ACC_COEF_A=(s16)val; break; + case H_Reverb+8 : rvb[0].ACC_COEF_B=(s16)val; break; + case H_Reverb+10 : rvb[0].ACC_COEF_C=(s16)val; break; + case H_Reverb+12 : rvb[0].ACC_COEF_D=(s16)val; break; + case H_Reverb+14 : rvb[0].IIR_COEF=(s16)val; break; + case H_Reverb+16 : rvb[0].FB_ALPHA=(s16)val; break; + case H_Reverb+18 : rvb[0].FB_X=(s16)val; break; + case H_Reverb+20 : rvb[0].IIR_DEST_A0=(s16)val; break; + case H_Reverb+22 : rvb[0].IIR_DEST_A1=(s16)val; break; + case H_Reverb+24 : rvb[0].ACC_SRC_A0=(s16)val; break; + case H_Reverb+26 : rvb[0].ACC_SRC_A1=(s16)val; break; + case H_Reverb+28 : rvb[0].ACC_SRC_B0=(s16)val; break; + case H_Reverb+30 : rvb[0].ACC_SRC_B1=(s16)val; break; + case H_Reverb+32 : rvb[0].IIR_SRC_A0=(s16)val; break; + case H_Reverb+34 : rvb[0].IIR_SRC_A1=(s16)val; break; + case H_Reverb+36 : rvb[0].IIR_DEST_B0=(s16)val; break; + case H_Reverb+38 : rvb[0].IIR_DEST_B1=(s16)val; break; + case H_Reverb+40 : rvb[0].ACC_SRC_C0=(s16)val; break; + case H_Reverb+42 : rvb[0].ACC_SRC_C1=(s16)val; break; + case H_Reverb+44 : rvb[0].ACC_SRC_D0=(s16)val; break; + case H_Reverb+46 : rvb[0].ACC_SRC_D1=(s16)val; break; + case H_Reverb+48 : rvb[0].IIR_SRC_B1=(s16)val; break; + case H_Reverb+50 : rvb[0].IIR_SRC_B0=(s16)val; break; + case H_Reverb+52 : rvb[0].MIX_DEST_A0=(s16)val; break; + case H_Reverb+54 : rvb[0].MIX_DEST_A1=(s16)val; break; + case H_Reverb+56 : rvb[0].MIX_DEST_B0=(s16)val; break; + case H_Reverb+58 : rvb[0].MIX_DEST_B1=(s16)val; break; + case H_Reverb+60 : rvb[0].IN_COEF_L=(s16)val; break; + case H_Reverb+62 : rvb[0].IN_COEF_R=(s16)val; break; + } +} + +EXPORT_GCC unsigned short CALLBACK SPU2readPS1Port(unsigned long reg) +{ + const u32 r=reg&0xfff; + + if(r>=0x0c00 && r<0x0d80) + { + return SPU2read(r-0xc00); + } + + switch(r) + { +// case H_SPUctrl: +// return spuCtrl; + break; + + case H_SPUstat: + return spuStat2[0]; + break; + + case H_SPUaddr: + return (u16)(spuAddr2[0]>>2); + break; + + case H_SPUdata: + { + u16 s=BFLIP16(spuMem[spuAddr2[0]]); + spuAddr2[0]++; + if(spuAddr2[0]>0xfffff) spuAddr2[0]=0; + return s; + } + break; + + case H_SPUirqAddr: + return spuIrq2[0]>>2; + break; + } + + return 0; +} + +//////////////////////////////////////////////////////////////////////// +// SOUND ON register write +//////////////////////////////////////////////////////////////////////// + +void SoundOn(int start,int end,unsigned short val) // SOUND ON PSX COMAND +{ + int ch; + + for(ch=start;ch>=1) // loop channels + { + if((val&1) && s_chan[ch].pStart) // mmm... start has to be set before key on !?! + { + s_chan[ch].bIgnoreLoop=0; + s_chan[ch].bNew=1; + dwNewChannel2[ch/24]|=(1<<(ch%24)); // bitfield for faster testing + } + } +} + +//////////////////////////////////////////////////////////////////////// +// SOUND OFF register write +//////////////////////////////////////////////////////////////////////// + +void SoundOff(int start,int end,unsigned short val) // SOUND OFF PSX COMMAND +{ + int ch; + for(ch=start;ch>=1) // loop channels + { + if(val&1) // && s_chan[i].bOn) mmm... + { + s_chan[ch].bStop=1; + } + } +} + +//////////////////////////////////////////////////////////////////////// +// FMOD register write +//////////////////////////////////////////////////////////////////////// + +void FModOn(int start,int end,unsigned short val) // FMOD ON PSX COMMAND +{ + int ch; + + for(ch=start;ch>=1) // loop channels + { + if(val&1) // -> fmod on/off + { + if(ch>0) + { + s_chan[ch].bFMod=1; // --> sound channel + s_chan[ch-1].bFMod=2; // --> freq channel + } + } + else + { + s_chan[ch].bFMod=0; // --> turn off fmod + } + } +} + +//////////////////////////////////////////////////////////////////////// +// NOISE register write +//////////////////////////////////////////////////////////////////////// + +void NoiseOn(int start,int end,unsigned short val) // NOISE ON PSX COMMAND +{ + int ch; + + for(ch=start;ch>=1) // loop channels + { + if(val&1) // -> noise on/off + { + s_chan[ch].bNoise=1; + } + else + { + s_chan[ch].bNoise=0; + } + } +} + +//////////////////////////////////////////////////////////////////////// +// LEFT VOLUME register write +//////////////////////////////////////////////////////////////////////// + +// please note: sweep and phase invert are wrong... but I've never seen +// them used + +void SetVolumeL(unsigned char ch,short vol) // LEFT VOLUME +{ + s_chan[ch].iLeftVolRaw=vol; + + if(vol&0x8000) // sweep? + { + short sInc=1; // -> sweep up? + if(vol&0x2000) sInc=-1; // -> or down? + if(vol&0x1000) vol^=0xffff; // -> mmm... phase inverted? have to investigate this + vol=((vol&0x7f)+1)/2; // -> sweep: 0..127 -> 0..64 + vol+=vol/(2*sInc); // -> HACK: we don't sweep right now, so we just raise/lower the volume by the half! + vol*=128; + } + else // no sweep: + { + if(vol&0x4000) // -> mmm... phase inverted? have to investigate this + //vol^=0xffff; + vol=0x3fff-(vol&0x3fff); + } + + vol&=0x3fff; + s_chan[ch].iLeftVolume=vol; // store volume +} + +//////////////////////////////////////////////////////////////////////// +// RIGHT VOLUME register write +//////////////////////////////////////////////////////////////////////// + +void SetVolumeR(unsigned char ch,short vol) // RIGHT VOLUME +{ + s_chan[ch].iRightVolRaw=vol; + + if(vol&0x8000) // comments... see above :) + { + short sInc=1; + if(vol&0x2000) sInc=-1; + if(vol&0x1000) vol^=0xffff; + vol=((vol&0x7f)+1)/2; + vol+=vol/(2*sInc); + vol*=128; + } + else + { + if(vol&0x4000) //vol=vol^=0xffff; + vol=0x3fff-(vol&0x3fff); + } + + vol&=0x3fff; + s_chan[ch].iRightVolume=vol; +} + +//////////////////////////////////////////////////////////////////////// +// PITCH register write +//////////////////////////////////////////////////////////////////////// + +void SetPitch(int ch,unsigned short val) // SET PITCH +{ + int NP; + double intr; + + if(val>0x3fff) NP=0x3fff; // get pitch val + else NP=val; + + intr = (double)48000.0f / (double)44100.0f * (double)NP; + NP = (UINT32)intr; + + s_chan[ch].iRawPitch=NP; + + NP=(44100L*NP)/4096L; // calc frequency + + if(NP<1) NP=1; // some security + s_chan[ch].iActFreq=NP; // store frequency +} + +//////////////////////////////////////////////////////////////////////// +// REVERB register write +//////////////////////////////////////////////////////////////////////// + +void ReverbOn(int start,int end,unsigned short val,int iRight) // REVERB ON PSX COMMAND +{ + int ch; + + for(ch=start;ch>=1) // loop channels + { + if(val&1) // -> reverb on/off + { + if(iRight) s_chan[ch].bReverbR=1; + else s_chan[ch].bReverbL=1; + } + else + { + if(iRight) s_chan[ch].bReverbR=0; + else s_chan[ch].bReverbL=0; + } + } +} + +//////////////////////////////////////////////////////////////////////// +// REVERB START register write +//////////////////////////////////////////////////////////////////////// + +void SetReverbAddr(int core) +{ + long val=spuRvbAddr2[core]; + + if(rvb[core].StartAddr!=val) + { + if(val<=0x27ff) + { + rvb[core].StartAddr=rvb[core].CurrAddr=0; + } + else + { + rvb[core].StartAddr=val; + rvb[core].CurrAddr=rvb[core].StartAddr; + } + } +} + +//////////////////////////////////////////////////////////////////////// +// DRY LEFT/RIGHT per voice switches +//////////////////////////////////////////////////////////////////////// + +void VolumeOn(int start,int end,unsigned short val,int iRight) // VOLUME ON PSX COMMAND +{ + int ch; + + for(ch=start;ch>=1) // loop channels + { + if(val&1) // -> reverb on/off + { + if(iRight) s_chan[ch].bVolumeR=1; + else s_chan[ch].bVolumeL=1; + } + else + { + if(iRight) s_chan[ch].bVolumeR=0; + else s_chan[ch].bVolumeL=0; + } + } +} + + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/registers.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/registers.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,845 @@ +/*************************************************************************** + registers.h - description + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2004/04/04 - Pete +// - generic cleanup for the Peops release... register values by Kanodin & +// his team +// +//*************************************************************************// + +//########################################################################### + +#define PS2_C0_SPUaddr_Hi (0x000 + 0x1A8) +#define PS2_C0_SPUaddr_Lo (0x000 + 0x1AA) +#define PS2_C1_SPUaddr_Hi (0x400 + 0x1A8) +#define PS2_C1_SPUaddr_Lo (0x400 + 0x1AA) +#define PS2_C0_SPUdata (0x000 + 0x1AC) +#define PS2_C1_SPUdata (0x400 + 0x1AC) + +#define PS2_C0_SPUDMActrl (0x000 + 0x1AE) +#define PS2_C1_SPUDMActrl (0x400 + 0x1AE) + +#define PS2_C0_SPUstat (0x000 + 0x344) +#define PS2_C1_SPUstat (0x400 + 0x344) +#define PS2_C0_ReverbAddr_Hi (0x000 + 0x2E0) +#define PS2_C0_ReverbAddr_Lo (0x000 + 0x2E2) +#define PS2_C1_ReverbAddr_Hi (0x400 + 0x2E0) +#define PS2_C1_ReverbAddr_Lo (0x400 + 0x2E2) + +#define PS2_C0_ReverbAEnd_Hi (0x000 + 0x33C) +#define PS2_C0_ReverbAEnd_Lo (0x000 + 0x33E) +#define PS2_C1_ReverbAEnd_Hi (0x400 + 0x33C) +#define PS2_C1_ReverbAEnd_Lo (0x400 + 0x33E) + +#define PS2_C0_DryL1 (0x000 + 0x188) +#define PS2_C1_DryL1 (0x400 + 0x188) +#define PS2_C0_DryL2 (0x000 + 0x18A) +#define PS2_C1_DryL2 (0x400 + 0x18A) + +#define PS2_C0_DryR1 (0x000 + 0x190) +#define PS2_C1_DryR1 (0x400 + 0x190) +#define PS2_C0_DryR2 (0x000 + 0x192) +#define PS2_C1_DryR2 (0x400 + 0x192) + +#define PS2_C0_ATTR (0x000 + 0x19A) +#define PS2_C1_ATTR (0x400 + 0x19A) +#define PS2_C0_ADMAS (0x000 + 0x1B0) +#define PS2_C1_ADMAS (0x400 + 0x1B0) + +#define PS2_C0_SPUirqAddr_Hi (0x000 + 0x19C) +#define PS2_C0_SPUirqAddr_Lo (0x000 + 0x19D) +#define PS2_C1_SPUirqAddr_Hi (0x400 + 0x19C) +#define PS2_C1_SPUirqAddr_Lo (0x400 + 0x19D) +#define PS2_C0_SPUrvolL (0x000 + 0x764) +#define PS2_C0_SPUrvolR (0x000 + 0x766) +#define PS2_C1_SPUrvolL (0x028 + 0x764) +#define PS2_C1_SPUrvolR (0x028 + 0x766) +#define PS2_C0_SPUon1 (0x000 + 0x1A0) +#define PS2_C0_SPUon2 (0x000 + 0x1A2) +#define PS2_C1_SPUon1 (0x400 + 0x1A0) +#define PS2_C1_SPUon2 (0x400 + 0x1A2) +#define PS2_C0_SPUoff1 (0x000 + 0x1A4) +#define PS2_C0_SPUoff2 (0x000 + 0x1A6) +#define PS2_C1_SPUoff1 (0x400 + 0x1A4) +#define PS2_C1_SPUoff2 (0x400 + 0x1A6) +#define PS2_C0_FMod1 (0x000 + 0x180) +#define PS2_C0_FMod2 (0x000 + 0x182) +#define PS2_C1_FMod1 (0x400 + 0x180) +#define PS2_C1_FMod2 (0x400 + 0x182) +#define PS2_C0_Noise1 (0x000 + 0x184) +#define PS2_C0_Noise2 (0x000 + 0x186) +#define PS2_C1_Noise1 (0x400 + 0x184) +#define PS2_C1_Noise2 (0x400 + 0x186) + +#define PS2_C0_RVBon1_L (0x000 + 0x18C) +#define PS2_C0_RVBon2_L (0x000 + 0x18E) +#define PS2_C0_RVBon1_R (0x000 + 0x194) +#define PS2_C0_RVBon2_R (0x000 + 0x196) + +#define PS2_C1_RVBon1_L (0x400 + 0x18C) +#define PS2_C1_RVBon2_L (0x400 + 0x18E) +#define PS2_C1_RVBon1_R (0x400 + 0x194) +#define PS2_C1_RVBon2_R (0x400 + 0x196) +#define PS2_C0_Reverb (0x000 + 0x2E4) +#define PS2_C1_Reverb (0x400 + 0x2E4) +#define PS2_C0_ReverbX (0x000 + 0x774) +#define PS2_C1_ReverbX (0x028 + 0x774) +#define PS2_C0_SPUend1 (0x000 + 0x340) +#define PS2_C0_SPUend2 (0x000 + 0x342) +#define PS2_C1_SPUend1 (0x400 + 0x340) +#define PS2_C1_SPUend2 (0x400 + 0x342) + +#define H_SPUReverbAddr 0x0da2 + +#define H_SPUirqAddr 0x0da4 + +#define H_SPUaddr 0x0da6 + +#define H_SPUdata 0x0da8 + +#define H_SPUctrl 0x0daa + +#define H_SPUstat 0x0dae + +#define H_SPUmvolL 0x0d80 + +#define H_SPUmvolR 0x0d82 + +#define H_SPUrvolL 0x0d84 + +#define H_SPUrvolR 0x0d86 + +#define H_SPUon1 0x0d88 + +#define H_SPUon2 0x0d8a + +#define H_SPUoff1 0x0d8c + +#define H_SPUoff2 0x0d8e + +#define H_FMod1 0x0d90 + +#define H_FMod2 0x0d92 + +#define H_Noise1 0x0d94 + +#define H_Noise2 0x0d96 + +#define H_RVBon1 0x0d98 + +#define H_RVBon2 0x0d9a +#define H_SPUMute1 0x0d9c +#define H_SPUMute2 0x0d9e +#define H_CDLeft 0x0db0 +#define H_CDRight 0x0db2 +#define H_ExtLeft 0x0db4 +#define H_ExtRight 0x0db6 +#define H_Reverb 0x0dc0 + + +//########################################################################### + +/* + Included the info received in Regs.txt list by Neill Corlett - Kanodin + + Voice parameters: + SD_VP_VOLL, SD_VP_VOLR - Volume left/right per voice. Assuming identical to PS1. + SD_VP_PITCH - Pitch scaler 0000-3FFF. Assuming identical to PS1. + SD_VP_ADSR1, SD_VP_ADSR1 - Envelope data. Bitfields are documented as identical to PS1. + SD_VP_ENVX - Current envelope value. Assuming identical to PS1. + SD_VP_VOLXL, SD_VP_VOLXR - Current voice volume left/right. Does not exist on the PS1. + Guessing that this is handy for the increase/decrease modes. + + Voice addresses: + + SD_VA_SSA - Sample start address; assuming identical to PS1 + SD_VA_LSAX - Loop start address; assuming identical to PS1 + SD_VA_NAX - Seems to be documented as the current playing address. + Does not exist on PS1. + + Switches: + + SD_S_PMON - Pitch mod; assuming identical to PS1 + SD_S_NON - Noise; assuming identical to PS1 + SD_S_VMIXL, SD_S_VMIXR - Voice mix L/R. Guessing this is just a separate L/R version + of the "voice enable" bits on the PS1. + SD_S_VMIXEL, SD_S_VMIXER - Voice effect mix L/R. Guessing this is just a separate L/R + version of the "voice reverb enable" bits on the PS1. + SD_S_KON, SD_S_KOFF - Key on/off; assuming identical to PS1 + + + Addresses: + + SD_A_TSA - Transfer start address; assuming identical to PS1 + SD_A_ESA - Effect start address - this is probably analogous to the + PS1's reverb work area start address + SD_A_EEA - Effect end address - this would've been fixed to 0x7FFFF on + the PS1; settable in 128K increments on the PS2. + SD_A_IRQA - IRQ address; assuming identical to PS1 + + Volume parameters: + + SD_P_MVOLL, SD_P_MVOLR - Master volume L/R; assuming identical to PS1 + SD_P_EVOLL, SD_P_EVOLR - Effect volume L/R; assuming analogous to RVOL on the PS1 + SD_P_AVOLL, SD_P_AVOLR - External input volume L/R + This is probably where CORE0 connects to CORE1 + SD_P_BVOLL, SD_P_BVOLR - Sound data input volume - perhaps this is the volume of + the raw PCM auto-DMA input? analogous to CD input volume? + SD_P_MVOLXL, SD_P_MVOLXR - Current master volume L/R; seems self-explanatory + + SD_P_MMIX - Mixer / effect enable bits. + bit 11 = MSNDL = voice output dry L + 10 = MSNDR = voice output dry R + 9 = MSNDEL = voice output wet L + 8 = MSNDER = voice output wet R + 7 = MINL = sound data input dry L + 6 = MINR = sound data input dry R + 5 = MINEL = sound data input wet L + 4 = MINER = sound data input wet R + 3 = SINL = core external input dry L + 2 = SINR = core external input dry R + 1 = SINEL = core external input wet L + 0 = SINER = core external input wet R + +Core attributes (SD_C) + + bit 4..5 - DMA related + bit 6 - IRQ enable + bit 7 - effect enable (reverb enable) + bit 13..8 - noise clock + bit 14 - mute + + - if you READ the two DMA related bits, if either are set, the channel is + considered "busy" by sceSdVoiceTrans + + + +Reverb parameters: + + Same as PS1 reverb (I used the names from my reverb doc). + + +Other PS2 IOP notes + + There's two DMA controllers: + The original one at 1F801080-1F8010FF (channels 0-6) + A new one at 1F801500-1F80157F (channels 7-13) + + They appear to function the same way - 7 channels each. + + SPU CORE0's DMA channel is 4 as per usual + SPU CORE1's DMA channel is 7 + +DMA channel 10 is SIF + + Original INTR controller at 1F801000-1F80107F + + All interrupt handling seems to be done using the old INTR, but + with some new bits defined: + + + + Reading from 1F801078 masks interrupts and returns 1 if they weren't + masked before. Writing 1 to 1F801078 re-enables interrupts. + Writing 0 doesn't. Maybe it was like that on the original PS1 too. + +Six root counters: + + RTC# address sources size prescale interrupt# +0 0x1F801100 sysclock,pixel 16 bit 1 only 4 +1 0x1F801110 sysclock,hline 16 bit 1 only 5 +2 0x1F801120 sysclock 16 bit 1,8 6 +3 0x1F801480 sysclock,hline 32 bit 1 only 14 +4 0x1F801490 sysclock 32 bit 1,8,16,256 15 +5 0x1F8014A0 sysclock 32 bit 1,8,16,256 16 + +Count (0x0) and Compare (0x8) registers work as before, only with more bits +in the new counters. + +Mode (0x4) works like this when written: + + bits 0..2 gate + bit 3 reset on target + bit 4 target interrupt enable + bit 5 overflow interrupt enable + bit 6 master enable (?) + bit 7 ? + bit 8 clock select + bit 9 prescale (OLD) + bit 10..12 ? + bit 13..14 prescale (NEW) + bit 15 ? always set to 1 + +Gate: + TM_NO_GATE 000 + TM_GATE_ON_Count 001 + TM_GATE_ON_ClearStart 011 + TM_GATE_ON_Clear_OFF_Start 101 + TM_GATE_ON_Start 111 + + V-blank ----+ +----------------------------+ +------ + | | | | + | | | | + +----+ +----+ + TM_NO_GATE: + + 0================================>============ + + TM_GATE_ON_Count: + + <---->0==========================><---->0===== + + TM_GATE_ON_ClearStart: + + 0====>0================================>0===== + + TM_GATE_ON_Clear_OFF_Start: + + 0====><-------------------------->0====><----- + + TM_GATE_ON_Start: + + <---->0==========================>============ + + reset on target: if set, counter resets to 0 when Compare value is reached + + target interrupt enable: if set, interrupt when Compare value is reached + overflow interrupt enable: if set, interrupt when counter overflows + + master enable: if this bit is clear, the timer should do nothing. + + clock select: for counters 0, 1, and 3, setting this will select the alternate + counter (pixel or hline) + + prescale (OLD): for counter 2 only. set this to prescale (divide) by 8. + + prescale (NEW): for counters 4 and 5 only: + + 00 = prescale by 1 + 01 = prescale by 8 + 10 = prescale by 16 + 11 = prescale by 256 + +Writing 0x4 also clears the counter. (I think.) + +When 0x4 is read, it becomes Status: + + bit 0..10 ? + bit 11 compare value was reached + bit 12 count overflowed + bit 13..15 ? + +Reading probably clears these bits. + + + + 1F8014B0 (word) - timer-related but otherwise unknown + 1F8014C0 (word) - timer-related but otherwise unknown + + + don't currently know how the interrupts work for DMA ch7 yet + + 1F801060 (word) - address of some kind. + + 1F801450 (word) - + if bit 3 is SET, we're in PS1 mode. + if bit 3 is CLEAR, we're in PS2 IOP mode. + + 1F802070 (byte) - unknown. status byte of some kind? visible to EE? + + 1D000000-1D00007F (?) - SIF related + + 1D000020 (word) - read counter of some sort? + sceSifInit waits for bit 0x10000 of this to be set. + 1D000030 (word) - read counter of some sort? + 1D000040 (word) - read bits 0x20, 0x40 mean something + 1D000060 (word) - used to detect whether the SIF interface exists + read must be 0x1D000060, or the top 20 bits must be zero +*/ + +/* + +// DirectX Audio SPU2 Driver for PCSX2 +// audio.c by J.F. and Kanodin (hooper1@cox.net) +// +// Copyright 2003 J.F. and Kanodin, and distributed under the +// terms of the GNU General Public License, v2 or later. +// http://www.gnu.org/copyleft/gpl.html. + +Included these just in case you need them J.F. - Kanodin + +// Core Start Addresses +#define CORE0 0x1f900000 +#define CORE1 0x1f900400 + + + #define IOP_INT_VBLANK (1<<0) + #define IOP_INT_GM (1<<1) + #define IOP_INT_CDROM (1<<2) + #define IOP_INT_DMA (1<<3) + #define IOP_INT_RTC0 (1<<4) + #define IOP_INT_RTC1 (1<<5) + #define IOP_INT_RTC2 (1<<6) + #define IOP_INT_SIO0 (1<<7) + #define IOP_INT_SIO1 (1<<8) + #define IOP_INT_SPU (1<<9) + #define IOP_INT_PIO (1<<10) + #define IOP_INT_EVBLANK (1<<11) + #define IOP_INT_DVD (1<<12) + #define IOP_INT_PCMCIA (1<<13) + #define IOP_INT_RTC3 (1<<14) + #define IOP_INT_RTC4 (1<<15) + #define IOP_INT_RTC5 (1<<16) + #define IOP_INT_SIO2 (1<<17) + #define IOP_INT_HTR0 (1<<18) + #define IOP_INT_HTR1 (1<<19) + #define IOP_INT_HTR2 (1<<20) + #define IOP_INT_HTR3 (1<<21) + #define IOP_INT_USB (1<<22) + #define IOP_INT_EXTR (1<<23) + #define IOP_INT_FWRE (1<<24) + #define IOP_INT_FDMA (1<<25) + +// CORE0 => +0x000, CORE1 => +0x400 + +// individual voice parameter regs + +#define VP_VOLL(cr, vc) (0x400 * cr + 0x000 + (vc << 4)) // voice volume (left) +#define VP_VOLR(cr, vc) (0x400 * cr + 0x002 + (vc << 4)) // voice volume (right) +#define VP_PITCH(cr, vc) (0x400 * cr + 0x004 + (vc << 4)) // voice pitch +#define VP_ADSR1(cr, vc) (0x400 * cr + 0x006 + (vc << 4)) // voice envelope (AR, DR, SL) +#define VP_ADSR2(cr, vc) (0x400 * cr + 0x008 + (vc << 4)) // voice envelope (SR, RR) +#define VP_ENVX(cr, vc) (0x400 * cr + 0x00A + (vc << 4)) // voice envelope (current value) +#define VP_VOLXL(cr, vc) (0x400 * cr + 0x00C + (vc << 4)) // voice volume (current value left) +#define VP_VOLXR(cr, vc) (0x400 * cr + 0x00E + (vc << 4)) // voice volume (current value right) + +#define VA_SSA(cr, vc) (0x400 * cr + 0x1C0 + (vc * 12)) // voice waveform data start address +#define VA_LSAX(cr, vc) (0x400 * cr + 0x1C4 + (vc * 12)) // voice waveform data loop address +#define VA_NAX(cr, vc) (0x400 * cr + 0x1C8 + (vc * 12)) // voice waveform data next address + +// common settings + +#define S_PMON(cr) (0x400 * cr + 0x180) // pitch modulation on +#define S_NON(cr) (0x400 * cr + 0x184) // noise generator on +#define S_VMIXL(cr) (0x400 * cr + 0x188) // voice output mixing (dry left) +#define S_VMIXEL(cr) (0x400 * cr + 0x18C) // voice output mixing (wet left) +#define S_VMIXR(cr) (0x400 * cr + 0x190) // voice output mixing (dry right) +#define S_VMIXER(cr) (0x400 * cr + 0x194) // voice output mixing (wet right) +#define P_MMIX(cr) (0x400 * cr + 0x198) // output type after voice mixing (See paragraph below) +#define P_ATTR(cr) (0x400 * cr + 0x19A) // core attributes (See paragraph below) +#define A_IRQA(cr) (0x400 * cr + 0x19C) // IRQ address +#define S_KON(cr) (0x400 * cr + 0x1A0) // key on (start voice sound generation) +#define S_KOFF(cr) (0x400 * cr + 0x1A4) // key off (end voice sound generation) +#define A_TSA(cr) (0x400 * cr + 0x1A8) // DMA transfer start address +#define P_DATA(cr) (0x400 * cr + 0x1AC) // DMA data register +#define P_CTRL(cr) (0x400 * cr + 0x1AE) // DMA control register +#define P_ADMAS(cr) (0x400 * cr + 0x1B0) // AutoDMA status + +#define A_ESA(cr) (0x400 * cr + 0x2E0) // effects work area start address + +#define FB_SRC_A(cr) (0x400 * cr + 0x2E4) +#define FB_SRC_B(cr) (0x400 * cr + 0x2E8) +#define IIR_DEST_A0(cr) (0x400 * cr + 0x2EC) +#define IIR_DEST_A1(cr) (0x400 * cr + 0x2F0) +#define ACC_SRC_A0(cr) (0x400 * cr + 0x2F4) +#define ACC_SRC_A1(cr) (0x400 * cr + 0x2F8) +#define ACC_SRC_B0(cr) (0x400 * cr + 0x2FC) + +#define ACC_SRC_B1(cr) (0x400 * cr + 0x300) +#define IIR_SRC_A0(cr) (0x400 * cr + 0x304) +#define IIR_SRC_A1(cr) (0x400 * cr + 0x308) +#define IIR_DEST_B0(cr) (0x400 * cr + 0x30C) +#define IIR_DEST_B1(cr) (0x400 * cr + 0x310) +#define ACC_SRC_C0(cr) (0x400 * cr + 0x314) +#define ACC_SRC_C1(cr) (0x400 * cr + 0x318) + +#define ACC_SRC_D0(cr) (0x400 * cr + 0x31C) +#define ACC_SRC_D1(cr) (0x400 * cr + 0x320) +#define IIR_SRC_B1(cr) (0x400 * cr + 0x324) +#define IIR_SRC_B0(cr) (0x400 * cr + 0x328) +#define MIX_DEST_A0(cr) (0x400 * cr + 0x32C) +#define MIX_DEST_A1(cr) (0x400 * cr + 0x330) +#define MIX_DEST_B0(cr) (0x400 * cr + 0x334) +#define MIX_DEST_B1(cr) (0x400 * cr + 0x338) + +#define A_EEA(cr) (0x400 * cr + 0x33C) // effects work area end address + +#define P_ENDX(cr) (0x400 * cr + 0x340) // voice loop end status +#define P_STAT(cr) (0x400 * cr + 0x344) // DMA status register +#define P_ENDS(cr) (0x400 * cr + 0x346) // ? + +// CORE0 => +0x400, CORE1 => +0x428 + +#define P_MVOLL(cr) (0x28 * cr + 0x760) // master volume (left) +#define P_MVOLR(cr) (0x28 * cr + 0x762) // master volume (right) +#define P_EVOLL(cr) (0x28 * cr + 0x764) // effect return volume (left) +#define P_EVOLR(cr) (0x28 * cr + 0x766) // effect return volume (right) +#define P_AVOLL(cr) (0x28 * cr + 0x768) // core external input volume (left) +#define P_AVOLR(cr) (0x28 * cr + 0x76A) // core external input volume (right) +#define P_BVOLL(cr) (0x28 * cr + 0x76C) // sound data input volume (left) +#define P_BVOLR(cr) (0x28 * cr + 0x76E) // sound data input volume (right) +#define P_MVOLXL(cr) (0x28 * cr + 0x770) // current master volume (left) +#define P_MVOLXR(cr) (0x28 * cr + 0x772) // current master volume (right) + +#define IIR_ALPHA(cr) (0x28 * cr + 0x774) +#define ACC_COEF_A(cr) (0x28 * cr + 0x776) +#define ACC_COEF_B(cr) (0x28 * cr + 0x778) +#define ACC_COEF_C(cr) (0x28 * cr + 0x77A) +#define ACC_COEF_D(cr) (0x28 * cr + 0x77C) +#define IIR_COEF(cr) (0x28 * cr + 0x77E) +#define FB_ALPHA(cr) (0x28 * cr + 0x780) +#define FB_X(cr) (0x28 * cr + 0x782) +#define IN_COEF_L(cr) (0x28 * cr + 0x784) +#define IN_COEF_R(cr) (0x28 * cr + 0x786) + +// CORE1 only => +0x400 + +#define SPDIF_OUT 0x7C0 // SPDIF Out: OFF/'PCM'/Bitstream/Bypass +#define SPDIF_MODE 0x7C6 +#define SPDIF_MEDIA 0x7C8 // SPDIF Media: 'CD'/DVD +#define SPDIF_COPY 0x7CA // SPDIF Copy Protection + +// PS1 SPU CORE + +// individual voice settings + +#define SPU_VP_PITCH(vc) (0xC04 + (vc << 4)) // voice pitch +#define SPU_VA_SSA(vc) (0xC06 + (vc << 4)) // voice waveform data start address +#define SPU_VP_ADSR(vc) (0xC08 + (vc << 4)) // voice envelope +#define SPU_VA_SSA(vc) (0xC0E + (vc << 4)) // voice waveform data loop address + +// common settings + +#define SPU_P_MVOLL 0xD80 // master volume (left) +#define SPU_P_MVOLR 0xD82 // master volume (right) +#define SPU_P_RVOLL 0xD84 // effect return volume (left) +#define SPU_P_RVOLR 0xD86 // effect return volume (right) +#define SPU_S_KON1 0xD88 // key on +#define SPU_S_KON2 0xD8A // +#define SPU_S_KOFF1 0xD8C // key off +#define SPU_S_KOFF2 0xD8E // +#define SPU_S_PMON1 0xD90 // pitch modulation on +#define SPU_S_PMON2 0xD92 // +#define SPU_S_NON1 0xD94 // noise generator on +#define SPU_S_NON2 0xD96 // +#define SPU_S_RVBON1 0xD98 // effects on +#define SPU_S_RVBON2 0xD9A // +#define SPU_S_MUTE1 0xD9C // voice mute +#define SPU_S_MUTE2 0xD9E // + +#define SPU_A_ESA 0xDA2 // effects work area start +#define SPU_A_IRQA 0xDA4 // IRQ address +#define SPU_A_TSA 0xDA6 // DMA transfer start address +#define SPU_P_DATA 0xDA8 // DMA data register +#define SPU_P_CTRL 0xDAA // DMA control register +#define SPU_P_STAT 0xDAE // DMA status register + +#define SPU_P_CDL 0xDB0 // sound data input volume (left) +#define SPU_P_CDR 0xDB2 // sound data input volume (right) +#define SPU_P_EXTL 0xDB4 // external input volume (left) +#define SPU_P_EXTR 0xDB6 // external input volume (right) + +#define SPU_P_REVERB 0xDC0 // effects control + + +// Individual voice parameter regs CORE 0 +// Only + + +#define VP_VOLL(cr, vc) (0x400 * cr + 0x000 + (vc << 4)) // voice volume (left) +#define VP_VOLR(cr, vc) (0x400 * cr + 0x002 + (vc << 4)) // voice volume (right) +#define VP_PITCH(cr, vc) (0x400 * cr + 0x004 + (vc << 4)) // voice pitch +#define VP_ADSR1(cr, vc) (0x400 * cr + 0x006 + (vc << 4)) // voice envelope (AR, DR, SL) +#define VP_ADSR2(cr, vc) (0x400 * cr + 0x008 + (vc << 4)) // voice envelope (SR, RR) +#define VP_ENVX(cr, vc) (0x400 * cr + 0x00A + (vc << 4)) // voice envelope (current value) +#define VP_VOLXL(cr, vc) (0x400 * cr + 0x00C + (vc << 4)) // voice volume (current value left) +#define VP_VOLXR(cr, vc) (0x400 * cr + 0x00E + (vc << 4)) // voice volume (current value right) + +#define VA_SSA(cr, vc) (0x400 * cr + 0x1C0 + (vc * 12)) // voice waveform data start address +#define VA_LSAX(cr, vc) (0x400 * cr + 0x1C4 + (vc * 12)) // voice waveform data loop address +#define VA_NAX(cr, vc) (0x400 * cr + 0x1C8 + (vc * 12)) // voice waveform data next address + + +// CORE 0 Common Settings + + +#define S_PMON(cr) (0x400 * cr + 0x180) // pitch modulation on +#define S_NON(cr) (0x400 * cr + 0x184) // noise generator on +#define S_VMIXL(cr) (0x400 * cr + 0x188) // voice output mixing (dry left) +#define S_VMIXEL(cr) (0x400 * cr + 0x18C) // voice output mixing (wet left) +#define S_VMIXR(cr) (0x400 * cr + 0x190) // voice output mixing (dry right) +#define S_VMIXER(cr) (0x400 * cr + 0x194) // voice output mixing (wet right) +#define P_MMIX(cr) (0x400 * cr + 0x198) // output type after voice mixing (See paragraph below) +#define P_ATTR(cr) (0x400 * cr + 0x19A) // core attributes (See paragraph below) +#define A_IRQA(cr) (0x400 * cr + 0x19C) // IRQ address +#define S_KON(cr) (0x400 * cr + 0x1A0) // key on (start voice sound generation) +#define S_KOFF(cr) (0x400 * cr + 0x1A4) // key off (end voice sound generation) +#define A_TSA(cr) (0x400 * cr + 0x1A8) // DMA transfer start address +#define P_DATA(cr) (0x400 * cr + 0x1AC) // DMA data register +#define P_CTRL(cr) (0x400 * cr + 0x1AE) // DMA control register +#define P_ADMAS(cr) (0x400 * cr + 0x1B0) // AutoDMA status + +#define A_ESA(cr) (0x400 * cr + 0x2E0) // effects work area start address + + +// Core 0 Reverb Addresses + + +#define FB_SRC_A(cr) (0x400 * cr + 0x2E4) +#define FB_SRC_B(cr) (0x400 * cr + 0x2E8) +#define IIR_DEST_A0(cr) (0x400 * cr + 0x2EC) +#define IIR_DEST_A1(cr) (0x400 * cr + 0x2F0) +#define ACC_SRC_A0(cr) (0x400 * cr + 0x2F4) +#define ACC_SRC_A1(cr) (0x400 * cr + 0x2F8) +#define ACC_SRC_B0(cr) (0x400 * cr + 0x2FC) + +#define ACC_SRC_B1(cr) (0x400 * cr + 0x300) +#define IIR_SRC_A0(cr) (0x400 * cr + 0x304) +#define IIR_SRC_A1(cr) (0x400 * cr + 0x308) +#define IIR_DEST_B0(cr) (0x400 * cr + 0x30C) +#define IIR_DEST_B1(cr) (0x400 * cr + 0x310) +#define ACC_SRC_C0(cr) (0x400 * cr + 0x314) +#define ACC_SRC_C1(cr) (0x400 * cr + 0x318) + +#define ACC_SRC_D0(cr) (0x400 * cr + 0x31C) +#define ACC_SRC_D1(cr) (0x400 * cr + 0x320) +#define IIR_SRC_B1(cr) (0x400 * cr + 0x324) +#define IIR_SRC_B0(cr) (0x400 * cr + 0x328) +#define MIX_DEST_A0(cr) (0x400 * cr + 0x32C) +#define MIX_DEST_A1(cr) (0x400 * cr + 0x330) +#define MIX_DEST_B0(cr) (0x400 * cr + 0x334) +#define MIX_DEST_B1(cr) (0x400 * cr + 0x338) + +#define A_EEA(cr) (0x400 * cr + 0x33C) // effects work area end address + +#define P_ENDX(cr) (0x400 * cr + 0x340) // voice loop end status +#define P_STAT(cr) (0x400 * cr + 0x344) // DMA status register +#define P_ENDS(cr) (0x400 * cr + 0x346) // ? + + +// CORE 0 Specific + + +#define P_MVOLL(cr) (0x28 * cr + 0x760) // master volume (left) +#define P_MVOLR(cr) (0x28 * cr + 0x762) // master volume (right) +#define P_EVOLL(cr) (0x28 * cr + 0x764) // effect return volume (left) +#define P_EVOLR(cr) (0x28 * cr + 0x766) // effect return volume (right) +#define P_AVOLL(cr) (0x28 * cr + 0x768) // core external input volume (left) +#define P_AVOLR(cr) (0x28 * cr + 0x76A) // core external input volume (right) +#define P_BVOLL(cr) (0x28 * cr + 0x76C) // sound data input volume (left) +#define P_BVOLR(cr) (0x28 * cr + 0x76E) // sound data input volume (right) +#define P_MVOLXL(cr) (0x28 * cr + 0x770) // current master volume (left) +#define P_MVOLXR(cr) (0x28 * cr + 0x772) // current master volume (right) + + +// More CORE 0 Reverb + + +#define IIR_ALPHA(cr) (0x28 * cr + 0x774) +#define ACC_COEF_A(cr) (0x28 * cr + 0x776) +#define ACC_COEF_B(cr) (0x28 * cr + 0x778) +#define ACC_COEF_C(cr) (0x28 * cr + 0x77A) +#define ACC_COEF_D(cr) (0x28 * cr + 0x77C) +#define IIR_COEF(cr) (0x28 * cr + 0x77E) +#define FB_ALPHA(cr) (0x28 * cr + 0x780) +#define FB_X(cr) (0x28 * cr + 0x782) +#define IN_COEF_L(cr) (0x28 * cr + 0x784) +#define IN_COEF_R(cr) (0x28 * cr + 0x786) + + +// CORE 1 only + +#define SPDIF_OUT 0x7C0 // SPDIF Out: OFF/'PCM'/Bitstream/Bypass +#define SPDIF_MODE 0x7C6 +#define SPDIF_MEDIA 0x7C8 // SPDIF Media: 'CD'/DVD +#define SPDIF_COPY 0x7CA // SPDIF Copy Protection +*/ + +/* PS1 SPU CORE + +*** The below really isn't needed, only if you *** +*** want to add SPU support to the plugin *** +*** which I see no need to add at this time. *** +*** individual voice settings *** + +#define SPU_VP_PITCH(vc) (0xC04 + (vc << 4)) // voice pitch +#define SPU_VA_SSA(vc) (0xC06 + (vc << 4)) // voice waveform data start address +#define SPU_VP_ADSR(vc) (0xC08 + (vc << 4)) // voice envelope +#define SPU_VA_SSA(vc) (0xC0E + (vc << 4)) // voice waveform data loop address + +// common settings + +#define SPU_P_MVOLL 0xD80 // master volume (left) +#define SPU_P_MVOLR 0xD82 // master volume (right) +#define SPU_P_RVOLL 0xD84 // effect return volume (left) +#define SPU_P_RVOLR 0xD86 // effect return volume (right) +#define SPU_S_KON1 0xD88 // key on +#define SPU_S_KON2 0xD8A // +#define SPU_S_KOFF1 0xD8C // key off +#define SPU_S_KOFF2 0xD8E // +#define SPU_S_PMON1 0xD90 // pitch modulation on +#define SPU_S_PMON2 0xD92 // +#define SPU_S_NON1 0xD94 // noise generator on +#define SPU_S_NON2 0xD96 // +#define SPU_S_RVBON1 0xD98 // effects on +#define SPU_S_RVBON2 0xD9A // +#define SPU_S_MUTE1 0xD9C // voice mute +#define SPU_S_MUTE2 0xD9E // + +#define SPU_A_ESA 0xDA2 // effects work area start +#define SPU_A_IRQA 0xDA4 // IRQ address +#define SPU_A_TSA 0xDA6 // DMA transfer start address +#define SPU_P_DATA 0xDA8 // DMA data register +#define SPU_P_CTRL 0xDAA // DMA control register +#define SPU_P_STAT 0xDAE // DMA status register + +#define SPU_P_CDL 0xDB0 // sound data input volume (left) +#define SPU_P_CDR 0xDB2 // sound data input volume (right) +#define SPU_P_EXTL 0xDB4 // external input volume (left) +#define SPU_P_EXTR 0xDB6 // external input volume (right) + +#define SPU_P_REVERB 0xDC0 // effects control +*/ + +/* +#define H_SPUReverbAddr 0x0da2 +#define H_SPUirqAddr 0x0da4 +#define H_SPUaddr 0x0da6 +#define H_SPUdata 0x0da8 +#define H_SPUctrl 0x0daa +#define H_SPUstat 0x0dae +#define H_SPUmvolL 0x0d80 +#define H_SPUmvolR 0x0d82 +#define H_SPUrvolL 0x0d84 +#define H_SPUrvolR 0x0d86 +#define H_SPUon1 0x0d88 +#define H_SPUon2 0x0d8a +#define H_SPUoff1 0x0d8c +#define H_SPUoff2 0x0d8e +#define H_FMod1 0x0d90 +#define H_FMod2 0x0d92 +#define H_Noise1 0x0d94 +#define H_Noise2 0x0d96 +#define H_RVBon1 0x0d98 +#define H_RVBon2 0x0d9a +#define H_SPUMute1 0x0d9c +#define H_SPUMute2 0x0d9e +#define H_CDLeft 0x0db0 +#define H_CDRight 0x0db2 +#define H_ExtLeft 0x0db4 +#define H_ExtRight 0x0db6 +#define H_Reverb 0x0dc0 +#define H_SPUPitch0 0x0c04 +#define H_SPUPitch1 0x0c14 +#define H_SPUPitch2 0x0c24 +#define H_SPUPitch3 0x0c34 +#define H_SPUPitch4 0x0c44 +#define H_SPUPitch5 0x0c54 +#define H_SPUPitch6 0x0c64 +#define H_SPUPitch7 0x0c74 +#define H_SPUPitch8 0x0c84 +#define H_SPUPitch9 0x0c94 +#define H_SPUPitch10 0x0ca4 +#define H_SPUPitch11 0x0cb4 +#define H_SPUPitch12 0x0cc4 +#define H_SPUPitch13 0x0cd4 +#define H_SPUPitch14 0x0ce4 +#define H_SPUPitch15 0x0cf4 +#define H_SPUPitch16 0x0d04 +#define H_SPUPitch17 0x0d14 +#define H_SPUPitch18 0x0d24 +#define H_SPUPitch19 0x0d34 +#define H_SPUPitch20 0x0d44 +#define H_SPUPitch21 0x0d54 +#define H_SPUPitch22 0x0d64 +#define H_SPUPitch23 0x0d74 + +#define H_SPUStartAdr0 0x0c06 +#define H_SPUStartAdr1 0x0c16 +#define H_SPUStartAdr2 0x0c26 +#define H_SPUStartAdr3 0x0c36 +#define H_SPUStartAdr4 0x0c46 +#define H_SPUStartAdr5 0x0c56 +#define H_SPUStartAdr6 0x0c66 +#define H_SPUStartAdr7 0x0c76 +#define H_SPUStartAdr8 0x0c86 +#define H_SPUStartAdr9 0x0c96 +#define H_SPUStartAdr10 0x0ca6 +#define H_SPUStartAdr11 0x0cb6 +#define H_SPUStartAdr12 0x0cc6 +#define H_SPUStartAdr13 0x0cd6 +#define H_SPUStartAdr14 0x0ce6 +#define H_SPUStartAdr15 0x0cf6 +#define H_SPUStartAdr16 0x0d06 +#define H_SPUStartAdr17 0x0d16 +#define H_SPUStartAdr18 0x0d26 +#define H_SPUStartAdr19 0x0d36 +#define H_SPUStartAdr20 0x0d46 +#define H_SPUStartAdr21 0x0d56 +#define H_SPUStartAdr22 0x0d66 +#define H_SPUStartAdr23 0x0d76 + +#define H_SPULoopAdr0 0x0c0e +#define H_SPULoopAdr1 0x0c1e +#define H_SPULoopAdr2 0x0c2e +#define H_SPULoopAdr3 0x0c3e +#define H_SPULoopAdr4 0x0c4e +#define H_SPULoopAdr5 0x0c5e +#define H_SPULoopAdr6 0x0c6e +#define H_SPULoopAdr7 0x0c7e +#define H_SPULoopAdr8 0x0c8e +#define H_SPULoopAdr9 0x0c9e +#define H_SPULoopAdr10 0x0cae +#define H_SPULoopAdr11 0x0cbe +#define H_SPULoopAdr12 0x0cce +#define H_SPULoopAdr13 0x0cde +#define H_SPULoopAdr14 0x0cee +#define H_SPULoopAdr15 0x0cfe +#define H_SPULoopAdr16 0x0d0e +#define H_SPULoopAdr17 0x0d1e +#define H_SPULoopAdr18 0x0d2e +#define H_SPULoopAdr19 0x0d3e +#define H_SPULoopAdr20 0x0d4e +#define H_SPULoopAdr21 0x0d5e +#define H_SPULoopAdr22 0x0d6e +#define H_SPULoopAdr23 0x0d7e + +#define H_SPU_ADSRLevel0 0x0c08 +#define H_SPU_ADSRLevel1 0x0c18 +#define H_SPU_ADSRLevel2 0x0c28 +#define H_SPU_ADSRLevel3 0x0c38 +#define H_SPU_ADSRLevel4 0x0c48 +#define H_SPU_ADSRLevel5 0x0c58 +#define H_SPU_ADSRLevel6 0x0c68 +#define H_SPU_ADSRLevel7 0x0c78 +#define H_SPU_ADSRLevel8 0x0c88 +#define H_SPU_ADSRLevel9 0x0c98 +#define H_SPU_ADSRLevel10 0x0ca8 +#define H_SPU_ADSRLevel11 0x0cb8 +#define H_SPU_ADSRLevel12 0x0cc8 +#define H_SPU_ADSRLevel13 0x0cd8 +#define H_SPU_ADSRLevel14 0x0ce8 +#define H_SPU_ADSRLevel15 0x0cf8 +#define H_SPU_ADSRLevel16 0x0d08 +#define H_SPU_ADSRLevel17 0x0d18 +#define H_SPU_ADSRLevel18 0x0d28 +#define H_SPU_ADSRLevel19 0x0d38 +#define H_SPU_ADSRLevel20 0x0d48 +#define H_SPU_ADSRLevel21 0x0d58 +#define H_SPU_ADSRLevel22 0x0d68 +#define H_SPU_ADSRLevel23 0x0d78 +*/ diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/regs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/regs.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,43 @@ +/*************************************************************************** + regs.h - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2004/04/04 - Pete +// - changed plugin to emulate PS2 spu +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + + +void SoundOn(int start,int end,unsigned short val); +void SoundOff(int start,int end,unsigned short val); +void VolumeOn(int start,int end,unsigned short val,int iRight); +void FModOn(int start,int end,unsigned short val); +void NoiseOn(int start,int end,unsigned short val); +void SetVolumeL(unsigned char ch,short vol); +void SetVolumeR(unsigned char ch,short vol); +void SetPitch(int ch,unsigned short val); +void ReverbOn(int start,int end,unsigned short val,int iRight); +void SetReverbAddr(int core); + +EXPORT_GCC void CALLBACK SPU2write(unsigned long reg, unsigned short val); + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/reverb.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/reverb.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,420 @@ +/*************************************************************************** + reverb.c - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2004/04/04 - Pete +// - changed to SPU2 functionality +// +// 2003/01/19 - Pete +// - added Neill's reverb (see at the end of file) +// +// 2002/12/26 - Pete +// - adjusted reverb handling +// +// 2002/08/14 - Pete +// - added extra reverb +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +#include "stdafx.h" + +#define _IN_REVERB + +// will be included from spu.c +#ifdef _IN_SPU + +//////////////////////////////////////////////////////////////////////// +// globals +//////////////////////////////////////////////////////////////////////// + +// REVERB info and timing vars... + +int * sRVBPlay[2]; +int * sRVBEnd[2]; +int * sRVBStart[2]; + +//////////////////////////////////////////////////////////////////////// +// START REVERB +//////////////////////////////////////////////////////////////////////// + +INLINE void StartREVERB(int ch) +{ + int core=ch/24; + + if((s_chan[ch].bReverbL || s_chan[ch].bReverbR) && (spuCtrl2[core]&0x80)) // reverb possible? + { + if(iUseReverb==1) s_chan[ch].bRVBActive=1; + } + else s_chan[ch].bRVBActive=0; // else -> no reverb +} + +//////////////////////////////////////////////////////////////////////// +// HELPER FOR NEILL'S REVERB: re-inits our reverb mixing buf +//////////////////////////////////////////////////////////////////////// + +INLINE void InitREVERB(void) +{ + if(iUseReverb==1) + { + memset(sRVBStart[0],0,NSSIZE*2*4); + memset(sRVBStart[1],0,NSSIZE*2*4); + } +} + +//////////////////////////////////////////////////////////////////////// +// STORE REVERB +//////////////////////////////////////////////////////////////////////// + +INLINE void StoreREVERB(int ch,int ns) +{ + int core=ch/24; + + if(iUseReverb==0) return; + else + if(iUseReverb==1) // -------------------------------- // Neil's reverb + { + const int iRxl=(s_chan[ch].sval*s_chan[ch].iLeftVolume*s_chan[ch].bReverbL)/0x4000; + const int iRxr=(s_chan[ch].sval*s_chan[ch].iRightVolume*s_chan[ch].bReverbR)/0x4000; + + ns<<=1; + + *(sRVBStart[core]+ns) +=iRxl; // -> we mix all active reverb channels into an extra buffer + *(sRVBStart[core]+ns+1)+=iRxr; + } +} + +//////////////////////////////////////////////////////////////////////// + +INLINE int g_buffer(int iOff,int core) // get_buffer content helper: takes care about wraps +{ + short * p=(short *)spuMem; + iOff=(iOff)+rvb[core].CurrAddr; + while(iOff>rvb[core].EndAddr) iOff=rvb[core].StartAddr+(iOff-(rvb[core].EndAddr+1)); + while(iOffrvb[core].EndAddr) iOff=rvb[core].StartAddr+(iOff-(rvb[core].EndAddr+1)); + while(iOff32767L) iVal=32767L; + *(p+iOff)=(short)iVal; +} + +//////////////////////////////////////////////////////////////////////// + +INLINE void s_buffer1(int iOff,int iVal,int core) // set_buffer (+1 sample) content helper: takes care about wraps and clipping +{ + short * p=(short *)spuMem; + iOff=(iOff)+rvb[core].CurrAddr+1; + while(iOff>rvb[core].EndAddr) iOff=rvb[core].StartAddr+(iOff-(rvb[core].EndAddr+1)); + while(iOff32767L) iVal=32767L; + *(p+iOff)=(short)iVal; +} + +//////////////////////////////////////////////////////////////////////// + +INLINE int MixREVERBLeft(int ns,int core) +{ + if(iUseReverb==1) + { + if(!rvb[core].StartAddr || !rvb[core].EndAddr || + rvb[core].StartAddr>=rvb[core].EndAddr) // reverb is off + { + rvb[core].iLastRVBLeft=rvb[core].iLastRVBRight=rvb[core].iRVBLeft=rvb[core].iRVBRight=0; + return 0; + } + + rvb[core].iCnt++; + + if(rvb[core].iCnt&1) // we work on every second left value: downsample to 22 khz + { + if((spuCtrl2[core]&0x80)) // -> reverb on? oki + { + int ACC0,ACC1,FB_A0,FB_A1,FB_B0,FB_B1; + + const int INPUT_SAMPLE_L=*(sRVBStart[core]+(ns<<1)); + const int INPUT_SAMPLE_R=*(sRVBStart[core]+(ns<<1)+1); + + const int IIR_INPUT_A0 = (g_buffer(rvb[core].IIR_SRC_A0,core) * rvb[core].IIR_COEF)/32768L + (INPUT_SAMPLE_L * rvb[core].IN_COEF_L)/32768L; + const int IIR_INPUT_A1 = (g_buffer(rvb[core].IIR_SRC_A1,core) * rvb[core].IIR_COEF)/32768L + (INPUT_SAMPLE_R * rvb[core].IN_COEF_R)/32768L; + const int IIR_INPUT_B0 = (g_buffer(rvb[core].IIR_SRC_B0,core) * rvb[core].IIR_COEF)/32768L + (INPUT_SAMPLE_L * rvb[core].IN_COEF_L)/32768L; + const int IIR_INPUT_B1 = (g_buffer(rvb[core].IIR_SRC_B1,core) * rvb[core].IIR_COEF)/32768L + (INPUT_SAMPLE_R * rvb[core].IN_COEF_R)/32768L; + + const int IIR_A0 = (IIR_INPUT_A0 * rvb[core].IIR_ALPHA)/32768L + (g_buffer(rvb[core].IIR_DEST_A0,core) * (32768L - rvb[core].IIR_ALPHA))/32768L; + const int IIR_A1 = (IIR_INPUT_A1 * rvb[core].IIR_ALPHA)/32768L + (g_buffer(rvb[core].IIR_DEST_A1,core) * (32768L - rvb[core].IIR_ALPHA))/32768L; + const int IIR_B0 = (IIR_INPUT_B0 * rvb[core].IIR_ALPHA)/32768L + (g_buffer(rvb[core].IIR_DEST_B0,core) * (32768L - rvb[core].IIR_ALPHA))/32768L; + const int IIR_B1 = (IIR_INPUT_B1 * rvb[core].IIR_ALPHA)/32768L + (g_buffer(rvb[core].IIR_DEST_B1,core) * (32768L - rvb[core].IIR_ALPHA))/32768L; + + s_buffer1(rvb[core].IIR_DEST_A0, IIR_A0,core); + s_buffer1(rvb[core].IIR_DEST_A1, IIR_A1,core); + s_buffer1(rvb[core].IIR_DEST_B0, IIR_B0,core); + s_buffer1(rvb[core].IIR_DEST_B1, IIR_B1,core); + + ACC0 = (g_buffer(rvb[core].ACC_SRC_A0,core) * rvb[core].ACC_COEF_A)/32768L + + (g_buffer(rvb[core].ACC_SRC_B0,core) * rvb[core].ACC_COEF_B)/32768L + + (g_buffer(rvb[core].ACC_SRC_C0,core) * rvb[core].ACC_COEF_C)/32768L + + (g_buffer(rvb[core].ACC_SRC_D0,core) * rvb[core].ACC_COEF_D)/32768L; + ACC1 = (g_buffer(rvb[core].ACC_SRC_A1,core) * rvb[core].ACC_COEF_A)/32768L + + (g_buffer(rvb[core].ACC_SRC_B1,core) * rvb[core].ACC_COEF_B)/32768L + + (g_buffer(rvb[core].ACC_SRC_C1,core) * rvb[core].ACC_COEF_C)/32768L + + (g_buffer(rvb[core].ACC_SRC_D1,core) * rvb[core].ACC_COEF_D)/32768L; + + FB_A0 = g_buffer(rvb[core].MIX_DEST_A0 - rvb[core].FB_SRC_A,core); + FB_A1 = g_buffer(rvb[core].MIX_DEST_A1 - rvb[core].FB_SRC_A,core); + FB_B0 = g_buffer(rvb[core].MIX_DEST_B0 - rvb[core].FB_SRC_B,core); + FB_B1 = g_buffer(rvb[core].MIX_DEST_B1 - rvb[core].FB_SRC_B,core); + + s_buffer(rvb[core].MIX_DEST_A0, ACC0 - (FB_A0 * rvb[core].FB_ALPHA)/32768L,core); + s_buffer(rvb[core].MIX_DEST_A1, ACC1 - (FB_A1 * rvb[core].FB_ALPHA)/32768L,core); + + s_buffer(rvb[core].MIX_DEST_B0, (rvb[core].FB_ALPHA * ACC0)/32768L - (FB_A0 * (int)(rvb[core].FB_ALPHA^0xFFFF8000))/32768L - (FB_B0 * rvb[core].FB_X)/32768L,core); + s_buffer(rvb[core].MIX_DEST_B1, (rvb[core].FB_ALPHA * ACC1)/32768L - (FB_A1 * (int)(rvb[core].FB_ALPHA^0xFFFF8000))/32768L - (FB_B1 * rvb[core].FB_X)/32768L,core); + + rvb[core].iLastRVBLeft = rvb[core].iRVBLeft; + rvb[core].iLastRVBRight = rvb[core].iRVBRight; + + rvb[core].iRVBLeft = (g_buffer(rvb[core].MIX_DEST_A0,core)+g_buffer(rvb[core].MIX_DEST_B0,core))/3; + rvb[core].iRVBRight = (g_buffer(rvb[core].MIX_DEST_A1,core)+g_buffer(rvb[core].MIX_DEST_B1,core))/3; + + rvb[core].iRVBLeft = (rvb[core].iRVBLeft * rvb[core].VolLeft) / 0x4000; + rvb[core].iRVBRight = (rvb[core].iRVBRight * rvb[core].VolRight) / 0x4000; + + rvb[core].CurrAddr++; + if(rvb[core].CurrAddr>rvb[core].EndAddr) rvb[core].CurrAddr=rvb[core].StartAddr; + + return rvb[core].iLastRVBLeft+(rvb[core].iRVBLeft-rvb[core].iLastRVBLeft)/2; + } + else // -> reverb off + { + rvb[core].iLastRVBLeft=rvb[core].iLastRVBRight=rvb[core].iRVBLeft=rvb[core].iRVBRight=0; + } + + rvb[core].CurrAddr++; + if(rvb[core].CurrAddr>rvb[core].EndAddr) rvb[core].CurrAddr=rvb[core].StartAddr; + } + + return rvb[core].iLastRVBLeft; + } + return 0; +} + +//////////////////////////////////////////////////////////////////////// + +INLINE int MixREVERBRight(int core) +{ + if(iUseReverb==1) // Neill's reverb: + { + int i=rvb[core].iLastRVBRight+(rvb[core].iRVBRight-rvb[core].iLastRVBRight)/2; + rvb[core].iLastRVBRight=rvb[core].iRVBRight; + return i; // -> just return the last right reverb val (little bit scaled by the previous right val) + } + return 0; +} + +//////////////////////////////////////////////////////////////////////// + +#endif + +/* +----------------------------------------------------------------------------- +PSX reverb hardware notes +by Neill Corlett +----------------------------------------------------------------------------- + +Yadda yadda disclaimer yadda probably not perfect yadda well it's okay anyway +yadda yadda. + +----------------------------------------------------------------------------- + +Basics +------ + +- The reverb buffer is 22khz 16-bit mono PCM. +- It starts at the reverb address given by 1DA2, extends to + the end of sound RAM, and wraps back to the 1DA2 address. + +Setting the address at 1DA2 resets the current reverb work address. + +This work address ALWAYS increments every 1/22050 sec., regardless of +whether reverb is enabled (bit 7 of 1DAA set). + +And the contents of the reverb buffer ALWAYS play, scaled by the +"reverberation depth left/right" volumes (1D84/1D86). +(which, by the way, appear to be scaled so 3FFF=approx. 1.0, 4000=-1.0) + +----------------------------------------------------------------------------- + +Register names +-------------- + +These are probably not their real names. +These are probably not even correct names. +We will use them anyway, because we can. + +1DC0: FB_SRC_A (offset) +1DC2: FB_SRC_B (offset) +1DC4: IIR_ALPHA (coef.) +1DC6: ACC_COEF_A (coef.) +1DC8: ACC_COEF_B (coef.) +1DCA: ACC_COEF_C (coef.) +1DCC: ACC_COEF_D (coef.) +1DCE: IIR_COEF (coef.) +1DD0: FB_ALPHA (coef.) +1DD2: FB_X (coef.) +1DD4: IIR_DEST_A0 (offset) +1DD6: IIR_DEST_A1 (offset) +1DD8: ACC_SRC_A0 (offset) +1DDA: ACC_SRC_A1 (offset) +1DDC: ACC_SRC_B0 (offset) +1DDE: ACC_SRC_B1 (offset) +1DE0: IIR_SRC_A0 (offset) +1DE2: IIR_SRC_A1 (offset) +1DE4: IIR_DEST_B0 (offset) +1DE6: IIR_DEST_B1 (offset) +1DE8: ACC_SRC_C0 (offset) +1DEA: ACC_SRC_C1 (offset) +1DEC: ACC_SRC_D0 (offset) +1DEE: ACC_SRC_D1 (offset) +1DF0: IIR_SRC_B1 (offset) +1DF2: IIR_SRC_B0 (offset) +1DF4: MIX_DEST_A0 (offset) +1DF6: MIX_DEST_A1 (offset) +1DF8: MIX_DEST_B0 (offset) +1DFA: MIX_DEST_B1 (offset) +1DFC: IN_COEF_L (coef.) +1DFE: IN_COEF_R (coef.) + +The coefficients are signed fractional values. +-32768 would be -1.0 + 32768 would be 1.0 (if it were possible... the highest is of course 32767) + +The offsets are (byte/8) offsets into the reverb buffer. +i.e. you multiply them by 8, you get byte offsets. +You can also think of them as (samples/4) offsets. +They appear to be signed. They can be negative. +None of the documented presets make them negative, though. + +Yes, 1DF0 and 1DF2 appear to be backwards. Not a typo. + +----------------------------------------------------------------------------- + +What it does +------------ + +We take all reverb sources: +- regular channels that have the reverb bit on +- cd and external sources, if their reverb bits are on +and mix them into one stereo 44100hz signal. + +Lowpass/downsample that to 22050hz. The PSX uses a proper bandlimiting +algorithm here, but I haven't figured out the hysterically exact specifics. +I use an 8-tap filter with these coefficients, which are nice but probably +not the real ones: + +0.037828187894 +0.157538631280 +0.321159685278 +0.449322115345 +0.449322115345 +0.321159685278 +0.157538631280 +0.037828187894 + +So we have two input samples (INPUT_SAMPLE_L, INPUT_SAMPLE_R) every 22050hz. + +* IN MY EMULATION, I divide these by 2 to make it clip less. + (and of course the L/R output coefficients are adjusted to compensate) + The real thing appears to not do this. + +At every 22050hz tick: +- If the reverb bit is enabled (bit 7 of 1DAA), execute the reverb + steady-state algorithm described below +- AFTERWARDS, retrieve the "wet out" L and R samples from the reverb buffer + (This part may not be exactly right and I guessed at the coefs. TODO: check later.) + L is: 0.333 * (buffer[MIX_DEST_A0] + buffer[MIX_DEST_B0]) + R is: 0.333 * (buffer[MIX_DEST_A1] + buffer[MIX_DEST_B1]) +- Advance the current buffer position by 1 sample + +The wet out L and R are then upsampled to 44100hz and played at the +"reverberation depth left/right" (1D84/1D86) volume, independent of the main +volume. + +----------------------------------------------------------------------------- + +Reverb steady-state +------------------- + +The reverb steady-state algorithm is fairly clever, and of course by +"clever" I mean "batshit insane". + +buffer[x] is relative to the current buffer position, not the beginning of +the buffer. Note that all buffer offsets must wrap around so they're +contained within the reverb work area. + +Clipping is performed at the end... maybe also sooner, but definitely at +the end. + +IIR_INPUT_A0 = buffer[IIR_SRC_A0] * IIR_COEF + INPUT_SAMPLE_L * IN_COEF_L; +IIR_INPUT_A1 = buffer[IIR_SRC_A1] * IIR_COEF + INPUT_SAMPLE_R * IN_COEF_R; +IIR_INPUT_B0 = buffer[IIR_SRC_B0] * IIR_COEF + INPUT_SAMPLE_L * IN_COEF_L; +IIR_INPUT_B1 = buffer[IIR_SRC_B1] * IIR_COEF + INPUT_SAMPLE_R * IN_COEF_R; + +IIR_A0 = IIR_INPUT_A0 * IIR_ALPHA + buffer[IIR_DEST_A0] * (1.0 - IIR_ALPHA); +IIR_A1 = IIR_INPUT_A1 * IIR_ALPHA + buffer[IIR_DEST_A1] * (1.0 - IIR_ALPHA); +IIR_B0 = IIR_INPUT_B0 * IIR_ALPHA + buffer[IIR_DEST_B0] * (1.0 - IIR_ALPHA); +IIR_B1 = IIR_INPUT_B1 * IIR_ALPHA + buffer[IIR_DEST_B1] * (1.0 - IIR_ALPHA); + +buffer[IIR_DEST_A0 + 1sample] = IIR_A0; +buffer[IIR_DEST_A1 + 1sample] = IIR_A1; +buffer[IIR_DEST_B0 + 1sample] = IIR_B0; +buffer[IIR_DEST_B1 + 1sample] = IIR_B1; + +ACC0 = buffer[ACC_SRC_A0] * ACC_COEF_A + + buffer[ACC_SRC_B0] * ACC_COEF_B + + buffer[ACC_SRC_C0] * ACC_COEF_C + + buffer[ACC_SRC_D0] * ACC_COEF_D; +ACC1 = buffer[ACC_SRC_A1] * ACC_COEF_A + + buffer[ACC_SRC_B1] * ACC_COEF_B + + buffer[ACC_SRC_C1] * ACC_COEF_C + + buffer[ACC_SRC_D1] * ACC_COEF_D; + +FB_A0 = buffer[MIX_DEST_A0 - FB_SRC_A]; +FB_A1 = buffer[MIX_DEST_A1 - FB_SRC_A]; +FB_B0 = buffer[MIX_DEST_B0 - FB_SRC_B]; +FB_B1 = buffer[MIX_DEST_B1 - FB_SRC_B]; + +buffer[MIX_DEST_A0] = ACC0 - FB_A0 * FB_ALPHA; +buffer[MIX_DEST_A1] = ACC1 - FB_A1 * FB_ALPHA; +buffer[MIX_DEST_B0] = (FB_ALPHA * ACC0) - FB_A0 * (FB_ALPHA^0x8000) - FB_B0 * FB_X; +buffer[MIX_DEST_B1] = (FB_ALPHA * ACC1) - FB_A1 * (FB_ALPHA^0x8000) - FB_B1 * FB_X; + +----------------------------------------------------------------------------- +*/ + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/reverb.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/reverb.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,33 @@ +/*************************************************************************** + reverb.h - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2004/04/04 - Pete +// - changed plugin to emulate PS2 spu +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + + +INLINE void StartREVERB(int ch); +INLINE void StoreREVERB(int ch,int ns); + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/spu.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/spu.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,1026 @@ +/*************************************************************************** + spu.c - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2005/08/29 - Pete +// - changed to 48Khz output +// +// 2004/12/25 - Pete +// - inc'd version for pcsx2-0.7 +// +// 2004/04/18 - Pete +// - changed all kind of things in the plugin +// +// 2004/04/04 - Pete +// - changed plugin to emulate PS2 spu +// +// 2003/04/07 - Eric +// - adjusted cubic interpolation algorithm +// +// 2003/03/16 - Eric +// - added cubic interpolation +// +// 2003/03/01 - linuzappz +// - libraryName changes using ALSA +// +// 2003/02/28 - Pete +// - added option for type of interpolation +// - adjusted spu irqs again (Thousant Arms, Valkyrie Profile) +// - added MONO support for MSWindows DirectSound +// +// 2003/02/20 - kode54 +// - amended interpolation code, goto GOON could skip initialization of gpos and cause segfault +// +// 2003/02/19 - kode54 +// - moved SPU IRQ handler and changed sample flag processing +// +// 2003/02/18 - kode54 +// - moved ADSR calculation outside of the sample decode loop, somehow I doubt that +// ADSR timing is relative to the frequency at which a sample is played... I guess +// this remains to be seen, and I don't know whether ADSR is applied to noise channels... +// +// 2003/02/09 - kode54 +// - one-shot samples now process the end block before stopping +// - in light of removing fmod hack, now processing ADSR on frequency channel as well +// +// 2003/02/08 - kode54 +// - replaced easy interpolation with gaussian +// - removed fmod averaging hack +// - changed .sinc to be updated from .iRawPitch, no idea why it wasn't done this way already (<- Pete: because I sometimes fail to see the obvious, haharhar :) +// +// 2003/02/08 - linuzappz +// - small bugfix for one usleep that was 1 instead of 1000 +// - added iDisStereo for no stereo (Linux) +// +// 2003/01/22 - Pete +// - added easy interpolation & small noise adjustments +// +// 2003/01/19 - Pete +// - added Neill's reverb +// +// 2003/01/12 - Pete +// - added recording window handlers +// +// 2003/01/06 - Pete +// - added Neill's ADSR timings +// +// 2002/12/28 - Pete +// - adjusted spu irq handling, fmod handling and loop handling +// +// 2002/08/14 - Pete +// - added extra reverb +// +// 2002/06/08 - linuzappz +// - SPUupdate changed for SPUasync +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +#include "stdafx.h" + +#define _IN_SPU + +#include "../peops2/externals.h" +#include "../peops2/regs.h" +#include "../peops2/dma.h" + +//////////////////////////////////////////////////////////////////////// +// globals +//////////////////////////////////////////////////////////////////////// + +// psx buffer / addresses + +unsigned short regArea[32*1024]; +unsigned short spuMem[1*1024*1024]; +unsigned char * spuMemC; +unsigned char * pSpuIrq[2]; +unsigned char * pSpuBuffer; + +// user settings + +int iUseXA=0; +int iVolume=3; +int iXAPitch=1; +int iUseTimer=2; +int iSPUIRQWait=1; +int iDebugMode=0; +int iRecordMode=0; +int iUseReverb=1; +int iUseInterpolation=2; + +// MAIN infos struct for each channel + +SPUCHAN s_chan[MAXCHAN+1]; // channel + 1 infos (1 is security for fmod handling) +REVERBInfo rvb[2]; + +unsigned long dwNoiseVal=1; // global noise generator + +unsigned short spuCtrl2[2]; // some vars to store psx reg infos +unsigned short spuStat2[2]; +unsigned long spuIrq2[2]; +unsigned long spuAddr2[2]; // address into spu mem +unsigned long spuRvbAddr2[2]; +unsigned long spuRvbAEnd2[2]; +int bEndThread=0; // thread handlers +int bThreadEnded=0; +int bSpuInit=0; +int bSPUIsOpen=0; + +unsigned long dwNewChannel2[2]; // flags for faster testing, if new channel starts +unsigned long dwEndChannel2[2]; + +// UNUSED IN PS2 YET +void (CALLBACK *irqCallback)(void)=0; // func of main emu, called on spu irq +void (CALLBACK *cddavCallback)(unsigned short,unsigned short)=0; + +// certain globals (were local before, but with the new timeproc I need em global) + +const int f[5][2] = { { 0, 0 }, + { 60, 0 }, + { 115, -52 }, + { 98, -55 }, + { 122, -60 } }; +int SSumR[NSSIZE]; +int SSumL[NSSIZE]; +int iCycle=0; +short * pS; + +static int lastch=-1; // last channel processed on spu irq in timer mode +static int lastns=0; // last ns pos +static int iSecureStart=0; // secure start counter + +extern void psf2_update(unsigned char *samples, long lBytes, void *data); + +//////////////////////////////////////////////////////////////////////// +// CODE AREA +//////////////////////////////////////////////////////////////////////// + +// dirty inline func includes + +#include "reverb.c" +#include "adsr.c" + +//////////////////////////////////////////////////////////////////////// +// helpers for simple interpolation + +// +// easy interpolation on upsampling, no special filter, just "Pete's common sense" tm +// +// instead of having n equal sample values in a row like: +// ____ +// |____ +// +// we compare the current delta change with the next delta change. +// +// if curr_delta is positive, +// +// - and next delta is smaller (or changing direction): +// \. +// -__ +// +// - and next delta significant (at least twice) bigger: +// --_ +// \. +// +// - and next delta is nearly same: +// \. +// \. +// +// +// if curr_delta is negative, +// +// - and next delta is smaller (or changing direction): +// _-- +// / +// +// - and next delta significant (at least twice) bigger: +// / +// __- +// +// - and next delta is nearly same: +// / +// / +// + + +INLINE void InterpolateUp(int ch) +{ + if(s_chan[ch].SB[32]==1) // flag == 1? calc step and set flag... and don't change the value in this pass + { + const int id1=s_chan[ch].SB[30]-s_chan[ch].SB[29]; // curr delta to next val + const int id2=s_chan[ch].SB[31]-s_chan[ch].SB[30]; // and next delta to next-next val :) + + s_chan[ch].SB[32]=0; + + if(id1>0) // curr delta positive + { + if(id2id1) + {s_chan[ch].SB[28]=id1;s_chan[ch].SB[32]=2;} + else + if(id2>(id1<<1)) + s_chan[ch].SB[28]=(id1*s_chan[ch].sinc)/0x10000L; + else + s_chan[ch].SB[28]=(id1*s_chan[ch].sinc)/0x20000L; + } + } + else + if(s_chan[ch].SB[32]==2) // flag 1: calc step and set flag... and don't change the value in this pass + { + s_chan[ch].SB[32]=0; + + s_chan[ch].SB[28]=(s_chan[ch].SB[28]*s_chan[ch].sinc)/0x20000L; + if(s_chan[ch].sinc<=0x8000) + s_chan[ch].SB[29]=s_chan[ch].SB[30]-(s_chan[ch].SB[28]*((0x10000/s_chan[ch].sinc)-1)); + else s_chan[ch].SB[29]+=s_chan[ch].SB[28]; + } + else // no flags? add bigger val (if possible), calc smaller step, set flag1 + s_chan[ch].SB[29]+=s_chan[ch].SB[28]; +} + +// +// even easier interpolation on downsampling, also no special filter, again just "Pete's common sense" tm +// + +INLINE void InterpolateDown(int ch) +{ + if(s_chan[ch].sinc>=0x20000L) // we would skip at least one val? + { + s_chan[ch].SB[29]+=(s_chan[ch].SB[30]-s_chan[ch].SB[29])/2; // add easy weight + if(s_chan[ch].sinc>=0x30000L) // we would skip even more vals? + s_chan[ch].SB[29]+=(s_chan[ch].SB[31]-s_chan[ch].SB[30])/2;// add additional next weight + } +} + +//////////////////////////////////////////////////////////////////////// +// helpers for gauss interpolation + +#define gval0 (((short*)(&s_chan[ch].SB[29]))[gpos]) +#define gval(x) (((short*)(&s_chan[ch].SB[29]))[(gpos+x)&3]) + +#include "gauss_i.h" + +//////////////////////////////////////////////////////////////////////// + +//#include "xa.c" + +//////////////////////////////////////////////////////////////////////// +// START SOUND... called by main thread to setup a new sound on a channel +//////////////////////////////////////////////////////////////////////// + +INLINE void StartSound(int ch) +{ + dwNewChannel2[ch/24]&=~(1<<(ch%24)); // clear new channel bit + dwEndChannel2[ch/24]&=~(1<<(ch%24)); // clear end channel bit + + StartADSR(ch); + StartREVERB(ch); + + s_chan[ch].pCurr=s_chan[ch].pStart; // set sample start + + s_chan[ch].s_1=0; // init mixing vars + s_chan[ch].s_2=0; + s_chan[ch].iSBPos=28; + + s_chan[ch].bNew=0; // init channel flags + s_chan[ch].bStop=0; + s_chan[ch].bOn=1; + + s_chan[ch].SB[29]=0; // init our interpolation helpers + s_chan[ch].SB[30]=0; + + if(iUseInterpolation>=2) // gauss interpolation? + {s_chan[ch].spos=0x30000L;s_chan[ch].SB[28]=0;} // -> start with more decoding + else {s_chan[ch].spos=0x10000L;s_chan[ch].SB[31]=0;} // -> no/simple interpolation starts with one 44100 decoding +} + +//////////////////////////////////////////////////////////////////////// +// MAIN SPU FUNCTION +// here is the main job handler... thread, timer or direct func call +// basically the whole sound processing is done in this fat func! +//////////////////////////////////////////////////////////////////////// + +static u32 sampcount; +static u32 decaybegin; +static u32 decayend; + +static u32 seektime; +int psf2_seek(u32 t) +{ + seektime=t*441/10; + if(seektime>sampcount) return(1); + return(0); +} + +// Counting to 65536 results in full volume offage. +void setlength2(s32 stop, s32 fade) +{ + seektime = 0; + if(stop==~0) + { + decaybegin=~0; + } + else + { + stop=(stop*441)/10; + fade=(fade*441)/10; + + decaybegin=stop; + decayend=stop+fade; + } +} +// 5 ms waiting phase, if buffer is full and no new sound has to get started +// .. can be made smaller (smallest val: 1 ms), but bigger waits give +// better performance + +#define PAUSE_W 5 +#define PAUSE_L 5000 + +//////////////////////////////////////////////////////////////////////// + +int iSpuAsyncWait=0; + +static void *MAINThread(int samp2run, void *data) +{ + int s_1,s_2,fa,voldiv=iVolume; + unsigned char * start;unsigned int nSample; + int ch,predict_nr,shift_factor,flags,d,d2,s; + int gpos,bIRQReturn=0; + +// while(!bEndThread) // until we are shutting down + { + //--------------------------------------------------// + // ok, at the beginning we are looking if there is + // enuff free place in the dsound/oss buffer to + // fill in new data, or if there is a new channel to start. + // if not, we wait (thread) or return (timer/spuasync) + // until enuff free place is available/a new channel gets + // started + + if(dwNewChannel2[0] || dwNewChannel2[1]) // new channel should start immedately? + { // (at least one bit 0 ... MAXCHANNEL is set?) + iSecureStart++; // -> set iSecure + if(iSecureStart>5) iSecureStart=0; // (if it is set 5 times - that means on 5 tries a new samples has been started - in a row, we will reset it, to give the sound update a chance) + } + else iSecureStart=0; // 0: no new channel should start + +/* if (!iSecureStart) + { + iSecureStart=0; // reset secure + return; + }*/ + +#if 0 + while(!iSecureStart && !bEndThread) // && // no new start? no thread end? +// (SoundGetBytesBuffered()>TESTSIZE)) // and still enuff data in sound buffer? + { + iSecureStart=0; // reset secure + + if(iUseTimer) return 0; // linux no-thread mode? bye + + if(dwNewChannel2[0] || dwNewChannel2[1]) + iSecureStart=1; // if a new channel kicks in (or, of course, sound buffer runs low), we will leave the loop + } +#endif + + //--------------------------------------------------// continue from irq handling in timer mode? + + if(lastch>=0) // will be -1 if no continue is pending + { + ch=lastch; lastch=-1; // -> setup all kind of vars to continue + goto GOON; // -> directly jump to the continue point + } + + //--------------------------------------------------// + //- main channel loop -// + //--------------------------------------------------// + { + for(ch=0;ch take it and calc steps + s_chan[ch].sinc=s_chan[ch].iRawPitch<<4; + if(!s_chan[ch].sinc) s_chan[ch].sinc=1; + if(iUseInterpolation==1) s_chan[ch].SB[32]=1; // -> freq change in simle imterpolation mode: set flag + } +// ns=0; +// while(ns=0x10000L) + { + if(s_chan[ch].iSBPos==28) // 28 reached? + { + start=s_chan[ch].pCurr; // set up the current pos + + if (start == (unsigned char*)-1) // special "stop" sign + { + s_chan[ch].bOn=0; // -> turn everything off + s_chan[ch].ADSRX.lVolume=0; + s_chan[ch].ADSRX.EnvelopeVol=0; + goto ENDX; // -> and done for this channel + } + + s_chan[ch].iSBPos=0; + + //////////////////////////////////////////// spu irq handler here? mmm... do it later + + s_1=s_chan[ch].s_1; + s_2=s_chan[ch].s_2; + + predict_nr=(int)*start;start++; + shift_factor=predict_nr&0xf; + predict_nr >>= 4; + flags=(int)*start;start++; + + // -------------------------------------- // + + for (nSample=0;nSample<28;start++) + { + d=(int)*start; + s=((d&0xf)<<12); + if(s&0x8000) s|=0xffff0000; + + fa=(s >> shift_factor); + fa=fa + ((s_1 * f[predict_nr][0])>>6) + ((s_2 * f[predict_nr][1])>>6); + s_2=s_1;s_1=fa; + s=((d & 0xf0) << 8); + + s_chan[ch].SB[nSample++]=fa; + + if(s&0x8000) s|=0xffff0000; + fa=(s>>shift_factor); + fa=fa + ((s_1 * f[predict_nr][0])>>6) + ((s_2 * f[predict_nr][1])>>6); + s_2=s_1;s_1=fa; + + s_chan[ch].SB[nSample++]=fa; + } + + //////////////////////////////////////////// irq check + + if(spuCtrl2[ch/24]&0x40) // some irq active? + { + if((pSpuIrq[ch/24] > start-16 && // irq address reached? + pSpuIrq[ch/24] <= start) || + ((flags&1) && // special: irq on looping addr, when stop/loop flag is set + (pSpuIrq[ch/24] > s_chan[ch].pLoop-16 && + pSpuIrq[ch/24] <= s_chan[ch].pLoop))) + { + s_chan[ch].iIrqDone=1; // -> debug flag + + if(irqCallback) irqCallback(); // -> call main emu (not supported in SPU2 right now) + else + { + if(ch<24) InterruptDMA4(); // -> let's see what is happening if we call our irqs instead ;) + else InterruptDMA7(); + } + + if(iSPUIRQWait) // -> option: wait after irq for main emu + { + iSpuAsyncWait=1; + bIRQReturn=1; + } + } + } + + //////////////////////////////////////////// flag handler + + if((flags&4) && (!s_chan[ch].bIgnoreLoop)) + s_chan[ch].pLoop=start-16; // loop adress + + if(flags&1) // 1: stop/loop + { + dwEndChannel2[ch/24]|=(1<<(ch%24)); + + // We play this block out first... + //if(!(flags&2)|| s_chan[ch].pLoop==NULL) + // 1+2: do loop... otherwise: stop + if(flags!=3 || s_chan[ch].pLoop==NULL) // PETE: if we don't check exactly for 3, loop hang ups will happen (DQ4, for example) + { // and checking if pLoop is set avoids crashes, yeah + start = (unsigned char*)-1; + } + else + { + start = s_chan[ch].pLoop; + } + } + + s_chan[ch].pCurr=start; // store values for next cycle + s_chan[ch].s_1=s_1; + s_chan[ch].s_2=s_2; + + //////////////////////////////////////////// + + if(bIRQReturn) // special return for "spu irq - wait for cpu action" + { + bIRQReturn=0; + { + lastch=ch; +// lastns=ns; // changemeback + + return; + } + } + + //////////////////////////////////////////// + +GOON: ; + + } + + fa=s_chan[ch].SB[s_chan[ch].iSBPos++]; // get sample data + +// if((spuCtrl2[ch/24]&0x4000)==0) fa=0; // muted? +// else // else adjust + { + if(fa>32767L) fa=32767L; + if(fa<-32767L) fa=-32767L; + } + + if(iUseInterpolation>=2) // gauss/cubic interpolation + { + gpos = s_chan[ch].SB[28]; + gval0 = fa; + gpos = (gpos+1) & 3; + s_chan[ch].SB[28] = gpos; + } + else + if(iUseInterpolation==1) // simple interpolation + { + s_chan[ch].SB[28] = 0; + s_chan[ch].SB[29] = s_chan[ch].SB[30]; // -> helpers for simple linear interpolation: delay real val for two slots, and calc the two deltas, for a 'look at the future behaviour' + s_chan[ch].SB[30] = s_chan[ch].SB[31]; + s_chan[ch].SB[31] = fa; + s_chan[ch].SB[32] = 1; // -> flag: calc new interolation + } + else s_chan[ch].SB[29]=fa; // no interpolation + + s_chan[ch].spos -= 0x10000L; + } + + //////////////////////////////////////////////// + // noise handler... just produces some noise data + // surely wrong... and no noise frequency (spuCtrl&0x3f00) will be used... + // and sometimes the noise will be used as fmod modulation... pfff + + if(s_chan[ch].bNoise) + { + if((dwNoiseVal<<=1)&0x80000000L) + { + dwNoiseVal^=0x0040001L; + fa=((dwNoiseVal>>2)&0x7fff); + fa=-fa; + } + else fa=(dwNoiseVal>>2)&0x7fff; + + // mmm... depending on the noise freq we allow bigger/smaller changes to the previous val + fa=s_chan[ch].iOldNoise+((fa-s_chan[ch].iOldNoise)/((0x001f-((spuCtrl2[ch/24]&0x3f00)>>9))+1)); + if(fa>32767L) fa=32767L; + if(fa<-32767L) fa=-32767L; + s_chan[ch].iOldNoise=fa; + + if(iUseInterpolation<2) // no gauss/cubic interpolation? + s_chan[ch].SB[29] = fa; // -> store noise val in "current sample" slot + } //---------------------------------------- + else // NO NOISE (NORMAL SAMPLE DATA) HERE + {//------------------------------------------// + if(iUseInterpolation==3) // cubic interpolation + { + long xd; + xd = ((s_chan[ch].spos) >> 1)+1; + gpos = s_chan[ch].SB[28]; + + fa = gval(3) - 3*gval(2) + 3*gval(1) - gval0; + fa *= (xd - (2<<15)) / 6; + fa >>= 15; + fa += gval(2) - gval(1) - gval(1) + gval0; + fa *= (xd - (1<<15)) >> 1; + fa >>= 15; + fa += gval(1) - gval0; + fa *= xd; + fa >>= 15; + fa = fa + gval0; + } + //------------------------------------------// + else + if(iUseInterpolation==2) // gauss interpolation + { + int vl, vr; + vl = (s_chan[ch].spos >> 6) & ~3; + gpos = s_chan[ch].SB[28]; + vr=(gauss[vl]*gval0)&~2047; + vr+=(gauss[vl+1]*gval(1))&~2047; + vr+=(gauss[vl+2]*gval(2))&~2047; + vr+=(gauss[vl+3]*gval(3))&~2047; + fa = vr>>11; +/* + vr=(gauss[vl]*gval0)>>9; + vr+=(gauss[vl+1]*gval(1))>>9; + vr+=(gauss[vl+2]*gval(2))>>9; + vr+=(gauss[vl+3]*gval(3))>>9; + fa = vr>>2; +*/ + } + //------------------------------------------// + else + if(iUseInterpolation==1) // simple interpolation + { + if(s_chan[ch].sinc<0x10000L) // -> upsampling? + InterpolateUp(ch); // --> interpolate up + else InterpolateDown(ch); // --> else down + fa=s_chan[ch].SB[29]; + } + //------------------------------------------// + else fa=s_chan[ch].SB[29]; // no interpolation + } + + s_chan[ch].sval = (MixADSR(ch) * fa) / 1023; // add adsr + + if(s_chan[ch].bFMod==2) // fmod freq channel + { + int NP=s_chan[ch+1].iRawPitch; + double intr; + + NP=((32768L+s_chan[ch].sval)*NP)/32768L; // mmm... I still need to adjust that to 1/48 khz... we will wait for the first game/demo using it to decide how to do it :) + + if(NP>0x3fff) NP=0x3fff; + if(NP<0x1) NP=0x1; + + intr = (double)48000.0f / (double)44100.0f * (double)NP; + NP = (UINT32)intr; + + NP=(44100L*NP)/(4096L); // calc frequency + + s_chan[ch+1].iActFreq=NP; + s_chan[ch+1].iUsedFreq=NP; + s_chan[ch+1].sinc=(((NP/10)<<16)/4410); + if(!s_chan[ch+1].sinc) s_chan[ch+1].sinc=1; + if(iUseInterpolation==1) // freq change in sipmle interpolation mode + s_chan[ch+1].SB[32]=1; + +// mmmm... set up freq decoding positions? +// s_chan[ch+1].iSBPos=28; +// s_chan[ch+1].spos=0x10000L; + } + else + { + ////////////////////////////////////////////// + // ok, left/right sound volume (psx volume goes from 0 ... 0x3fff) + + if(s_chan[ch].iMute) + s_chan[ch].sval=0; // debug mute + else + { + if(s_chan[ch].bVolumeL) + SSumL[0]+=(s_chan[ch].sval*s_chan[ch].iLeftVolume)/0x4000L; + if(s_chan[ch].bVolumeR) + SSumR[0]+=(s_chan[ch].sval*s_chan[ch].iRightVolume)/0x4000L; + } + + ////////////////////////////////////////////// + // now let us store sound data for reverb + + if(s_chan[ch].bRVBActive) StoreREVERB(ch,0); + } + + //////////////////////////////////////////////// + // ok, go on until 1 ms data of this channel is collected + + s_chan[ch].spos += s_chan[ch].sinc; + + } +ENDX: ; + } + } + + //---------------------------------------------------// + //- here we have another 1 ms of sound data + //---------------------------------------------------// + + /////////////////////////////////////////////////////// + // mix all channels (including reverb) into one buffer + + SSumL[0]+=MixREVERBLeft(0,0); + SSumL[0]+=MixREVERBLeft(0,1); + SSumR[0]+=MixREVERBRight(0); + SSumR[0]+=MixREVERBRight(1); + + d=SSumL[0]/voldiv;SSumL[0]=0; + d2=SSumR[0]/voldiv;SSumR[0]=0; + + if(d<-32767) d=-32767;if(d>32767) d=32767; + if(d2<-32767) d2=-32767;if(d2>32767) d2=32767; + + if(sampcount>=decaybegin) + { + s32 dmul; + if(decaybegin!=~0) // Is anyone REALLY going to be playing a song + // for 13 hours? + { + if(sampcount>=decayend) + { + psf2_update(NULL, 0, data); + return(0); + } + + dmul=256-(256*(sampcount-decaybegin)/(decayend-decaybegin)); + d=(d*dmul)>>8; + d2=(d2*dmul)>>8; + } + } + sampcount++; + + *pS++=d; + *pS++=d2; + + InitREVERB(); + + ////////////////////////////////////////////////////// + // feed the sound + // wanna have around 1/60 sec (16.666 ms) updates + if (seektime != 0 && sampcount < seektime) + { + pS=(short *)pSpuBuffer; + } + else if ((((unsigned char *)pS)-((unsigned char *)pSpuBuffer)) == (735*4)) + { + psf2_update((u8*)pSpuBuffer,(u8*)pS-(u8*)pSpuBuffer, data); + pS=(short *)pSpuBuffer; + } + } + + // end of big main loop... + + bThreadEnded=1; + + return 0; +} + +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// +//////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////// +// SPU ASYNC... even newer epsxe func +// 1 time every 'cycle' cycles... harhar +//////////////////////////////////////////////////////////////////////// + +EXPORT_GCC void CALLBACK SPU2async(unsigned long cycle, void *data) +{ + if(iSpuAsyncWait) + { + iSpuAsyncWait++; + if(iSpuAsyncWait<=64) return; + iSpuAsyncWait=0; + } + + MAINThread(0, data); // -> linux high-compat mode +} + +//////////////////////////////////////////////////////////////////////// +// INIT/EXIT STUFF +//////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////// +// SPUINIT: this func will be called first by the main emu +//////////////////////////////////////////////////////////////////////// + + +EXPORT_GCC long CALLBACK SPU2init(void) +{ + spuMemC=(unsigned char *)spuMem; // just small setup + memset((void *)s_chan,0,MAXCHAN*sizeof(SPUCHAN)); + memset(rvb,0,2*sizeof(REVERBInfo)); + + sampcount = 0; + + InitADSR(); + + return 0; +} + +//////////////////////////////////////////////////////////////////////// +// SETUPTIMER: init of certain buffers and threads/timers +//////////////////////////////////////////////////////////////////////// + +static void SetupTimer(void) +{ + memset(SSumR,0,NSSIZE*sizeof(int)); // init some mixing buffers + memset(SSumL,0,NSSIZE*sizeof(int)); + pS=(short *)pSpuBuffer; // setup soundbuffer pointer + + bEndThread=0; // init thread vars + bThreadEnded=0; + bSpuInit=1; // flag: we are inited +} + +//////////////////////////////////////////////////////////////////////// +// REMOVETIMER: kill threads/timers +//////////////////////////////////////////////////////////////////////// + +static void RemoveTimer(void) +{ + bEndThread=1; // raise flag to end thread + bThreadEnded=0; // no more spu is running + bSpuInit=0; +} + +//////////////////////////////////////////////////////////////////////// +// SETUPSTREAMS: init most of the spu buffers +//////////////////////////////////////////////////////////////////////// + +static void SetupStreams(void) +{ + int i; + + pSpuBuffer=(unsigned char *)malloc(32768); // alloc mixing buffer + + i=NSSIZE*2; + + sRVBStart[0] = (int *)malloc(i*4); // alloc reverb buffer + memset(sRVBStart[0],0,i*4); + sRVBEnd[0] = sRVBStart[0] + i; + sRVBPlay[0] = sRVBStart[0]; + sRVBStart[1] = (int *)malloc(i*4); // alloc reverb buffer + memset(sRVBStart[1],0,i*4); + sRVBEnd[1] = sRVBStart[1] + i; + sRVBPlay[1] = sRVBStart[1]; + + for(i=0;i init sustain + s_chan[i].iMute=0; + s_chan[i].iIrqDone=0; + s_chan[i].pLoop=spuMemC; + s_chan[i].pStart=spuMemC; + s_chan[i].pCurr=spuMemC; + } +} + +//////////////////////////////////////////////////////////////////////// +// REMOVESTREAMS: free most buffer +//////////////////////////////////////////////////////////////////////// + +static void RemoveStreams(void) +{ + free(pSpuBuffer); // free mixing buffer + pSpuBuffer=NULL; + free(sRVBStart[0]); // free reverb buffer + sRVBStart[0]=0; + free(sRVBStart[1]); // free reverb buffer + sRVBStart[1]=0; + +/* + int i; + for(i=0;i +#define RRand(range) (random()%range) +#include +#include + +#undef CALLBACK +#define CALLBACK +#define DWORD unsigned long +#define LOWORD(l) ((unsigned short)(l)) +#define HIWORD(l) ((unsigned short)(((unsigned long)(l) >> 16) & 0xFFFF)) + +#include "psemuxa.h" + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/peops2/xa.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/peops2/xa.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,363 @@ +/*************************************************************************** + xa.c - description + ------------------- + begin : Wed May 15 2002 + copyright : (C) 2002 by Pete Bernert + email : BlackDove@addcom.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. See also the license.txt file for * + * additional informations. * + * * + ***************************************************************************/ + +//*************************************************************************// +// History of changes: +// +// 2003/02/18 - kode54 +// - added gaussian interpolation +// +// 2002/05/15 - Pete +// - generic cleanup for the Peops release +// +//*************************************************************************// + +#include "stdafx.h" + +#define _IN_XA + +// will be included from spu.c +#ifdef _IN_SPU + +//////////////////////////////////////////////////////////////////////// +// XA GLOBALS +//////////////////////////////////////////////////////////////////////// + +xa_decode_t * xapGlobal=0; + +unsigned long * XAFeed = NULL; +unsigned long * XAPlay = NULL; +unsigned long * XAStart = NULL; +unsigned long * XAEnd = NULL; + +unsigned long XARepeat = 0; +unsigned long XALastVal = 0; + +int iLeftXAVol = 32767; +int iRightXAVol = 32767; + +static int gauss_ptr = 0; +static int gauss_window[8] = {0, 0, 0, 0, 0, 0, 0, 0}; + +#define gvall0 gauss_window[gauss_ptr] +#define gvall(x) gauss_window[(gauss_ptr+x)&3] +#define gvalr0 gauss_window[4+gauss_ptr] +#define gvalr(x) gauss_window[4+((gauss_ptr+x)&3)] + +//////////////////////////////////////////////////////////////////////// +// MIX XA +//////////////////////////////////////////////////////////////////////// + +INLINE void MixXA(void) +{ + int ns; + + for(ns=0;ns>16)&0xffff)) * iRightXAVol)/32767; + } + + if(XAPlay==XAFeed && XARepeat) + { + XARepeat--; + for(;ns>16)&0xffff)) * iRightXAVol)/32767; + } + } +} + +//////////////////////////////////////////////////////////////////////// +// FEED XA +//////////////////////////////////////////////////////////////////////// + +INLINE void FeedXA(xa_decode_t *xap) +{ + int sinc,spos,i,iSize,iPlace,vl,vr; + + if(!bSPUIsOpen) return; + + xapGlobal = xap; // store info for save states + XARepeat = 100; // set up repeat + + iSize=((44100*xap->nsamples)/xap->freq); // get size + if(!iSize) return; // none? bye + + if(XAFeed=10) + { + if(!dwFPS) dwFPS=1; + dw1=1000000/dwFPS; + if(dw1>=(dwL1-100) && dw1<=(dwL1+100)) dw1=dwL1; + else dwL1=dw1; + dw2=(xap->freq*100/xap->nsamples); + if((!dw1)||((dw2+100)>=dw1)) iLastSize=0; + else + { + iLastSize=iSize*dw2/dw1; + if(iLastSize>iPlace) iLastSize=iPlace; + iSize=iLastSize; + } + iFPSCnt=0;dwFPS=0; + } + else + { + if(iLastSize) iSize=iLastSize; + } + } + //----------------------------------------------------// + + spos=0x10000L; + sinc = (xap->nsamples << 16) / iSize; // calc freq by num / size + + if(xap->stereo) + { + unsigned long * pS=(unsigned long *)xap->pcm; + unsigned long l=0; + + if(iXAPitch) + { + long l1,l2;short s; + for(i=0;i=0x10000L) + { + l = *pS++; + gauss_window[gauss_ptr] = (short)LOWORD(l); + gauss_window[4+gauss_ptr] = (short)HIWORD(l); + gauss_ptr = (gauss_ptr+1) & 3; + spos -= 0x10000L; + } + vl = (spos >> 6) & ~3; + vr=(gauss[vl]*gvall0)&~2047; + vr+=(gauss[vl+1]*gvall(1))&~2047; + vr+=(gauss[vl+2]*gvall(2))&~2047; + vr+=(gauss[vl+3]*gvall(3))&~2047; + l= (vr >> 11) & 0xffff; + vr=(gauss[vl]*gvalr0)&~2047; + vr+=(gauss[vl+1]*gvalr(1))&~2047; + vr+=(gauss[vl+2]*gvalr(2))&~2047; + vr+=(gauss[vl+3]*gvalr(3))&~2047; + l |= vr << 5; + } + else + { + while(spos>=0x10000L) + { + l = *pS++; + spos -= 0x10000L; + } + } + + s=(short)LOWORD(l); + l1=s; + l1=(l1*iPlace)/iSize; + if(l1<-32767) l1=-32767; + if(l1> 32767) l1=32767; + s=(short)HIWORD(l); + l2=s; + l2=(l2*iPlace)/iSize; + if(l2<-32767) l2=-32767; + if(l2> 32767) l2=32767; + l=(l1&0xffff)|(l2<<16); + + *XAFeed++=l; + + if(XAFeed==XAEnd) XAFeed=XAStart; + if(XAFeed==XAPlay) + { + if(XAPlay!=XAStart) XAFeed=XAPlay-1; + break; + } + + spos += sinc; + } + } + else + { + for(i=0;i=0x10000L) + { + l = *pS++; + gauss_window[gauss_ptr] = (short)LOWORD(l); + gauss_window[4+gauss_ptr] = (short)HIWORD(l); + gauss_ptr = (gauss_ptr+1) & 3; + spos -= 0x10000L; + } + vl = (spos >> 6) & ~3; + vr=(gauss[vl]*gvall0)&~2047; + vr+=(gauss[vl+1]*gvall(1))&~2047; + vr+=(gauss[vl+2]*gvall(2))&~2047; + vr+=(gauss[vl+3]*gvall(3))&~2047; + l= (vr >> 11) & 0xffff; + vr=(gauss[vl]*gvalr0)&~2047; + vr+=(gauss[vl+1]*gvalr(1))&~2047; + vr+=(gauss[vl+2]*gvalr(2))&~2047; + vr+=(gauss[vl+3]*gvalr(3))&~2047; + l |= vr << 5; + } + else + { + while(spos>=0x10000L) + { + l = *pS++; + spos -= 0x10000L; + } + } + + *XAFeed++=l; + + if(XAFeed==XAEnd) XAFeed=XAStart; + if(XAFeed==XAPlay) + { + if(XAPlay!=XAStart) XAFeed=XAPlay-1; + break; + } + + spos += sinc; + } + } + } + else + { + unsigned short * pS=(unsigned short *)xap->pcm; + unsigned long l;short s=0; + + if(iXAPitch) + { + long l1; + for(i=0;i=0x10000L) + { + gauss_window[gauss_ptr] = (short)*pS++; + gauss_ptr = (gauss_ptr+1) & 3; + spos -= 0x10000L; + } + vl = (spos >> 6) & ~3; + vr=(gauss[vl]*gvall0)&~2047; + vr+=(gauss[vl+1]*gvall(1))&~2047; + vr+=(gauss[vl+2]*gvall(2))&~2047; + vr+=(gauss[vl+3]*gvall(3))&~2047; + l1=s= vr >> 11; + l1 &= 0xffff; + } + else + { + while(spos>=0x10000L) + { + s = *pS++; + spos -= 0x10000L; + } + l1=s; + } + + l1=(l1*iPlace)/iSize; + if(l1<-32767) l1=-32767; + if(l1> 32767) l1=32767; + l=(l1&0xffff)|(l1<<16); + *XAFeed++=l; + + if(XAFeed==XAEnd) XAFeed=XAStart; + if(XAFeed==XAPlay) + { + if(XAPlay!=XAStart) XAFeed=XAPlay-1; + break; + } + + spos += sinc; + } + } + else + { + for(i=0;i=0x10000L) + { + gauss_window[gauss_ptr] = (short)*pS++; + gauss_ptr = (gauss_ptr+1) & 3; + spos -= 0x10000L; + } + vl = (spos >> 6) & ~3; + vr=(gauss[vl]*gvall0)&~2047; + vr+=(gauss[vl+1]*gvall(1))&~2047; + vr+=(gauss[vl+2]*gvall(2))&~2047; + vr+=(gauss[vl+3]*gvall(3))&~2047; + l=s= vr >> 11; + l &= 0xffff; + } + else + { + while(spos>=0x10000L) + { + s = *pS++; + spos -= 0x10000L; + } + l=s; + } + + *XAFeed++=(l|(l<<16)); + + if(XAFeed==XAEnd) XAFeed=XAStart; + if(XAFeed==XAPlay) + { + if(XAPlay!=XAStart) XAFeed=XAPlay-1; + break; + } + + spos += sinc; + } + } + } +} + +#endif + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/plugin.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/plugin.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,297 @@ +/* + Audio Overload SDK - main driver. for demonstration only, not user friendly! + + Copyright (c) 2007-2008 R. Belmont and Richard Bannister. + + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the names of R. Belmont and Richard Bannister nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include +#include +#include + +#include + +#include "ao.h" +#include "corlett.h" +#include "eng_protos.h" + +/* file types */ +static uint32 type; + +static struct +{ + uint32 sig; + char *name; + int32 (*start)(uint8 *, uint32); + int32 (*stop)(void); + int32 (*command)(int32, int32); + uint32 rate; +} types[] = { + { 0x50534602, "Sony PlayStation 2 (.psf2)", psf2_start, psf2_stop, psf2_command, 60 }, + { 0xffffffff, "", NULL, NULL, NULL, 0 } +}; + +static char *path; + +/* ao_get_lib: called to load secondary files */ +int ao_get_lib(char *filename, uint8 **buffer, uint64 *length) +{ + guchar *filebuf; + gsize size; + char buf[PATH_MAX]; + + snprintf(buf, PATH_MAX, "%s/%s", dirname(path), filename); + + aud_vfs_file_get_contents(buf, (gchar **) &filebuf, &size); + + *buffer = filebuf; + *length = (uint64)size; + + return AO_SUCCESS; +} + +static gint seek = 0; + +Tuple *psf2_tuple(gchar *filename) +{ + Tuple *t; + corlett_t *c; + guchar *buf; + gsize sz; + + aud_vfs_file_get_contents(filename, (gchar **) &buf, &sz); + + if (!buf) + return NULL; + + if (corlett_decode(buf, sz, NULL, NULL, &c) != AO_SUCCESS) + return NULL; + + t = aud_tuple_new_from_filename(filename); + + aud_tuple_associate_int(t, FIELD_LENGTH, NULL, c->inf_length ? psfTimeToMS(c->inf_length) + psfTimeToMS(c->inf_fade) : -1); + aud_tuple_associate_string(t, FIELD_ARTIST, NULL, c->inf_artist); + aud_tuple_associate_string(t, FIELD_ALBUM, NULL, c->inf_game); + aud_tuple_associate_string(t, -1, "game", c->inf_game); + aud_tuple_associate_string(t, FIELD_TITLE, NULL, c->inf_title); + aud_tuple_associate_string(t, FIELD_COPYRIGHT, NULL, c->inf_copy); + aud_tuple_associate_string(t, FIELD_QUALITY, NULL, "sequenced"); + aud_tuple_associate_string(t, FIELD_CODEC, NULL, "PlayStation2 Audio"); + aud_tuple_associate_string(t, -1, "console", "PlayStation 2"); + + free(c); + g_free(buf); + + return t; +} + +gchar *psf2_title(gchar *filename, gint *length) +{ + gchar *title = NULL; + Tuple *tuple = psf2_tuple(filename); + + if (tuple != NULL) + { + title = aud_tuple_formatter_make_title_string(tuple, aud_get_gentitle_format()); + *length = aud_tuple_get_int(tuple, FIELD_LENGTH, NULL); + aud_tuple_free(tuple); + } + else + { + title = g_path_get_basename(filename); + *length = -1; + } + + return title; +} + +void psf2_play(InputPlayback *data) +{ + guchar *buffer; + gsize size; + uint32 filesig; + gint length; + gchar *title = psf2_title(data->filename, &length); + + path = g_strdup(data->filename); + aud_vfs_file_get_contents(data->filename, (gchar **) &buffer, &size); + + // now try to identify the file + type = 0; + filesig = buffer[0]<<24 | buffer[1]<<16 | buffer[2]<<8 | buffer[3]; + while (types[type].sig != 0xffffffff) + { + if (filesig == types[type].sig) + { + break; + } + else + { + type++; + } + } + + // now did we identify it above or just fall through? + if (types[type].sig == 0xffffffff) + { + printf("ERROR: File is unknown, signature bytes are %02x %02x %02x %02x\n", buffer[0], buffer[1], buffer[2], buffer[3]); + free(buffer); + return; + } + + if (psf2_start(buffer, size) != AO_SUCCESS) + { + free(buffer); + printf("ERROR: Engine rejected file!\n"); + return; + } + + data->output->open_audio(FMT_S16_NE, 44100, 2); + + data->set_params(data, title, length, 44100*2*2*8, 44100, 2); + + data->playing = TRUE; + data->set_pb_ready(data); + + for (;;) + { + psf2_execute(data); + + if (seek) + { + data->eof = FALSE; + data->output->flush(seek); + + psf2_command(COMMAND_RESTART, 0); + psf2_seek(seek); + + seek = 0; + continue; + } + + psf2_stop(); + + data->output->buffer_free(); + data->output->buffer_free(); + + while (data->eof && data->output->buffer_playing()) + g_usleep(10000); + + data->output->close_audio(); + + break; + } + + g_free(buffer); + g_free(path); + g_free(title); + + data->playing = FALSE; +} + +void psf2_update(unsigned char *buffer, long count, InputPlayback *playback) +{ + const int mask = ~((((16 / 8) * 2)) - 1); + + if (buffer == NULL) + { + playback->playing = FALSE; + playback->eof = TRUE; + + return; + } + + while (count > 0) + { + int t = playback->output->buffer_free() & mask; + if (t > count) + playback->pass_audio(playback, FMT_S16_NE, 2, count, buffer, NULL); + else + { + if (t) + playback->pass_audio(playback, FMT_S16_NE, 2, t, buffer, NULL); + + g_usleep((count-t)*1000*5/441/2); + } + count -= t; + buffer += t; + } + + if (seek) + { + if (psf2_seek(seek)) + { + playback->output->flush(seek); + seek = 0; + } + else + { + playback->eof = TRUE; + return; + } + } +} + +void psf2_Stop(InputPlayback *playback) +{ + playback->playing = FALSE; +} + +void psf2_pause(InputPlayback *playback, short p) +{ + playback->output->pause(p); +} + +int psf2_is_our_fd(gchar *filename, VFSFile *file) +{ + gchar magic[4]; + aud_vfs_fread(magic, 1, 4, file); + + if (!memcmp(magic, "PSF\x02", 4)) + return 1; + + return 0; +} + +void psf2_Seek(InputPlayback *playback, int time) +{ + seek = time * 1000; +} + +gchar *psf2_fmts[] = { "psf2", "minipsf2", NULL }; + +InputPlugin psf2_ip = +{ + .description = "PSF2 Audio Plugin", + .play_file = psf2_play, + .stop = psf2_Stop, + .pause = psf2_pause, + .seek = psf2_Seek, + .get_song_tuple = psf2_tuple, + .is_our_file_from_vfs = psf2_is_our_fd, + .vfs_extensions = psf2_fmts, +}; + +InputPlugin *psf2_iplist[] = { &psf2_ip, NULL }; + +DECLARE_PLUGIN(psf2, NULL, NULL, psf2_iplist, NULL, NULL, NULL, NULL, NULL); + diff -r c40585c57877 -r 7fc2c317d190 src/psf2/psx.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/psx.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,3159 @@ +/* + * Sony CXD8530AQ/CXD8530BQ/CXD8530CQ/CXD8661R + * + * PSX CPU emulator for the MAME project written by smf + * Thanks to Farfetch'd for information on the delay slot bug + * + * The PSX CPU is a custom r3000a with a built in + * geometry transform engine, no mmu & no data cache. + * + * There is a stall circuit for load delays, but + * it doesn't work if the load occurs in a branch + * delay slot. + * + */ + +#include +#include "ao.h" +#include "cpuintrf.h" +#include "psx.h" + +#define EXC_INT ( 0 ) +#define EXC_ADEL ( 4 ) +#define EXC_ADES ( 5 ) +#define EXC_SYS ( 8 ) +#define EXC_BP ( 9 ) +#define EXC_RI ( 10 ) +#define EXC_CPU ( 11 ) +#define EXC_OVF ( 12 ) + +#define CP0_RANDOM ( 1 ) +#define CP0_BADVADDR ( 8 ) +#define CP0_SR ( 12 ) +#define CP0_CAUSE ( 13 ) +#define CP0_EPC ( 14 ) +#define CP0_PRID ( 15 ) + +#define SR_IEC ( 1L << 0 ) +#define SR_KUC ( 1L << 1 ) +#define SR_ISC ( 1L << 16 ) +#define SR_SWC ( 1L << 17 ) +#define SR_TS ( 1L << 21 ) +#define SR_BEV ( 1L << 22 ) +#define SR_RE ( 1L << 25 ) +#define SR_CU0 ( 1L << 28 ) +#define SR_CU1 ( 1L << 29 ) +#define SR_CU2 ( 1L << 30 ) +#define SR_CU3 ( 1L << 31 ) + +#define CAUSE_EXC ( 31L << 2 ) +#define CAUSE_IP ( 255L << 8 ) +#define CAUSE_IP2 ( 1L << 10 ) +#define CAUSE_IP3 ( 1L << 11 ) +#define CAUSE_IP4 ( 1L << 12 ) +#define CAUSE_IP5 ( 1L << 13 ) +#define CAUSE_IP6 ( 1L << 14 ) +#define CAUSE_IP7 ( 1L << 15 ) +#define CAUSE_CE ( 3L << 28 ) +#define CAUSE_CE0 ( 0L << 28 ) +#define CAUSE_CE1 ( 1L << 28 ) +#define CAUSE_CE2 ( 2L << 28 ) +#define CAUSE_BD ( 1L << 31 ) + +extern void psx_bios_hle(uint32 pc); +extern void psx_iop_call(uint32 pc, uint32 callnum); +extern uint8 program_read_byte_32le(offs_t address); +extern uint16 program_read_word_32le(offs_t address); +extern uint32 program_read_dword_32le(offs_t address); +extern void program_write_byte_32le(offs_t address, uint8 data); +extern void program_write_word_32le(offs_t address, uint16 data); +extern void program_write_dword_32le(offs_t address, uint32 data); + +static UINT8 mips_reg_layout[] = +{ + MIPS_PC, -1, + MIPS_DELAYV, MIPS_DELAYR, -1, + MIPS_HI, MIPS_LO, -1, + -1, + MIPS_R0, MIPS_R1, -1, + MIPS_R2, MIPS_R3, -1, + MIPS_R4, MIPS_R5, -1, + MIPS_R6, MIPS_R7, -1, + MIPS_R8, MIPS_R9, -1, + MIPS_R10, MIPS_R11, -1, + MIPS_R12, MIPS_R13, -1, + MIPS_R14, MIPS_R15, -1, + MIPS_R16, MIPS_R17, -1, + MIPS_R18, MIPS_R19, -1, + MIPS_R20, MIPS_R21, -1, + MIPS_R22, MIPS_R23, -1, + MIPS_R24, MIPS_R25, -1, + MIPS_R26, MIPS_R27, -1, + MIPS_R28, MIPS_R29, -1, + MIPS_R30, MIPS_R31, -1, + -1, + MIPS_CP0R0, MIPS_CP0R1, -1, + MIPS_CP0R2, MIPS_CP0R3, -1, + MIPS_CP0R4, MIPS_CP0R5, -1, + MIPS_CP0R6, MIPS_CP0R7, -1, + MIPS_CP0R8, MIPS_CP0R9, -1, + MIPS_CP0R10, MIPS_CP0R11, -1, + MIPS_CP0R12, MIPS_CP0R13, -1, + MIPS_CP0R14, MIPS_CP0R15, -1, + MIPS_CP0R16, MIPS_CP0R17, -1, + MIPS_CP0R18, MIPS_CP0R19, -1, + MIPS_CP0R20, MIPS_CP0R21, -1, + MIPS_CP0R22, MIPS_CP0R23, -1, + MIPS_CP0R24, MIPS_CP0R25, -1, + MIPS_CP0R26, MIPS_CP0R27, -1, + MIPS_CP0R28, MIPS_CP0R29, -1, + MIPS_CP0R30, MIPS_CP0R31, -1, + -1, + MIPS_CP2DR0, MIPS_CP2DR1, -1, + MIPS_CP2DR2, MIPS_CP2DR3, -1, + MIPS_CP2DR4, MIPS_CP2DR5, -1, + MIPS_CP2DR6, MIPS_CP2DR7, -1, + MIPS_CP2DR8, MIPS_CP2DR9, -1, + MIPS_CP2DR10, MIPS_CP2DR11, -1, + MIPS_CP2DR12, MIPS_CP2DR13, -1, + MIPS_CP2DR14, MIPS_CP2DR15, -1, + MIPS_CP2DR16, MIPS_CP2DR17, -1, + MIPS_CP2DR18, MIPS_CP2DR19, -1, + MIPS_CP2DR20, MIPS_CP2DR21, -1, + MIPS_CP2DR22, MIPS_CP2DR23, -1, + MIPS_CP2DR24, MIPS_CP2DR25, -1, + MIPS_CP2DR26, MIPS_CP2DR27, -1, + MIPS_CP2DR28, MIPS_CP2DR29, -1, + MIPS_CP2DR30, MIPS_CP2DR31, -1, + -1, + MIPS_CP2CR0, MIPS_CP2CR1, -1, + MIPS_CP2CR2, MIPS_CP2CR3, -1, + MIPS_CP2CR4, MIPS_CP2CR5, -1, + MIPS_CP2CR6, MIPS_CP2CR7, -1, + MIPS_CP2CR8, MIPS_CP2CR9, -1, + MIPS_CP2CR10, MIPS_CP2CR11, -1, + MIPS_CP2CR12, MIPS_CP2CR13, -1, + MIPS_CP2CR14, MIPS_CP2CR15, -1, + MIPS_CP2CR16, MIPS_CP2CR17, -1, + MIPS_CP2CR18, MIPS_CP2CR19, -1, + MIPS_CP2CR20, MIPS_CP2CR21, -1, + MIPS_CP2CR22, MIPS_CP2CR23, -1, + MIPS_CP2CR24, MIPS_CP2CR25, -1, + MIPS_CP2CR26, MIPS_CP2CR27, -1, + MIPS_CP2CR28, MIPS_CP2CR29, -1, + MIPS_CP2CR30, MIPS_CP2CR31, + 0 +}; + +static UINT8 mips_win_layout[] = { + 45, 0,35,13, /* register window (top right) */ + 0, 0,44,13, /* disassembler window (left, upper) */ + 0,14,44, 8, /* memory #1 window (left, middle) */ + 45,14,35, 8, /* memory #2 window (lower) */ + 0,23,80, 1 /* command line window (bottom rows) */ +}; + +static const char *delayn[] = +{ + "pc", "at", "v0", "v1", "a0", "a1", "a2", "a3", + "t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", + "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", + "t8", "t9", "k0", "k1", "gp", "sp", "fp", "ra", + "pc" +}; + +#define REGPC ( 32 ) + +typedef struct +{ + UINT32 op; + UINT32 pc; + UINT32 prevpc; + UINT32 delayv; + UINT32 delayr; + UINT32 hi; + UINT32 lo; + UINT32 r[ 32 ]; + UINT32 cp0r[ 32 ]; + PAIR cp2cr[ 32 ]; + PAIR cp2dr[ 32 ]; + int (*irq_callback)(int irqline); +} mips_cpu_context; + +static mips_cpu_context mipscpu; + +static int mips_ICount = 0; + +static UINT32 mips_mtc0_writemask[]= +{ + 0xffffffff, /* INDEX */ + 0x00000000, /* RANDOM */ + 0xffffff00, /* ENTRYLO */ + 0x00000000, + 0xffe00000, /* CONTEXT */ + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, /* BADVADDR */ + 0x00000000, + 0xffffffc0, /* ENTRYHI */ + 0x00000000, + 0xf27fff3f, /* SR */ + 0x00000300, /* CAUSE */ + 0x00000000, /* EPC */ + 0x00000000, /* PRID */ + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000, + 0x00000000 +}; + +#if 0 +void GTELOG(const char *a,...) +{ + va_list va; + char s_text[ 1024 ]; + va_start( va, a ); + vsprintf( s_text, a, va ); + va_end( va ); + logerror( "%08x: GTE: %08x %s\n", mipscpu.pc, INS_COFUN( mipscpu.op ), s_text ); +} +#else +INLINE void GTELOG(const char *a, ...) {} +#endif + +static UINT32 getcp2dr( int n_reg ); +static void setcp2dr( int n_reg, UINT32 n_value ); +static UINT32 getcp2cr( int n_reg ); +static void setcp2cr( int n_reg, UINT32 n_value ); +static void docop2( int gteop ); +static void mips_exception( int exception ); + +void mips_stop( void ) +{ +#ifdef MAME_DEBUG + extern int debug_key_pressed; + debug_key_pressed = 1; + CALL_MAME_DEBUG; +#endif +} + +INLINE void mips_set_cp0r( int reg, UINT32 value ) +{ + mipscpu.cp0r[ reg ] = value; + if( reg == CP0_SR || reg == CP0_CAUSE ) + { + if( ( mipscpu.cp0r[ CP0_SR ] & SR_IEC ) != 0 && ( mipscpu.cp0r[ CP0_SR ] & mipscpu.cp0r[ CP0_CAUSE ] & CAUSE_IP ) != 0 ) + { + mips_exception( EXC_INT ); + } + else if( mipscpu.delayr != REGPC && ( mipscpu.pc & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 3 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, mipscpu.pc ); + } + } +} + +INLINE void mips_commit_delayed_load( void ) +{ + if( mipscpu.delayr != 0 ) + { + mipscpu.r[ mipscpu.delayr ] = mipscpu.delayv; + mipscpu.delayr = 0; + mipscpu.delayv = 0; + } +} + +INLINE void mips_delayed_branch( UINT32 n_adr ) +{ + if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 3 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + mips_commit_delayed_load(); + mipscpu.delayr = REGPC; + mipscpu.delayv = n_adr; + mipscpu.pc += 4; + } +} + +INLINE void mips_set_pc( unsigned val ) +{ + mipscpu.pc = val; + change_pc( val ); + mipscpu.delayr = 0; + mipscpu.delayv = 0; +} + +INLINE void mips_advance_pc( void ) +{ + if( mipscpu.delayr == REGPC ) + { + mips_set_pc( mipscpu.delayv ); + } + else + { + mips_commit_delayed_load(); + mipscpu.pc += 4; + } +} + +INLINE void mips_load( UINT32 n_r, UINT32 n_v ) +{ + mips_advance_pc(); + if( n_r != 0 ) + { + mipscpu.r[ n_r ] = n_v; + } +} + +INLINE void mips_delayed_load( UINT32 n_r, UINT32 n_v ) +{ + if( mipscpu.delayr == REGPC ) + { + mips_set_pc( mipscpu.delayv ); + mipscpu.delayr = n_r; + mipscpu.delayv = n_v; + } + else + { + mips_commit_delayed_load(); + mipscpu.pc += 4; + if( n_r != 0 ) + { + mipscpu.r[ n_r ] = n_v; + } + } +} + +static void mips_exception( int exception ) +{ + mips_set_cp0r( CP0_SR, ( mipscpu.cp0r[ CP0_SR ] & ~0x3f ) | ( ( mipscpu.cp0r[ CP0_SR ] << 2 ) & 0x3f ) ); + if( mipscpu.delayr == REGPC ) + { + mips_set_cp0r( CP0_EPC, mipscpu.pc - 4 ); + mips_set_cp0r( CP0_CAUSE, ( mipscpu.cp0r[ CP0_CAUSE ] & ~CAUSE_EXC ) | CAUSE_BD | ( exception << 2 ) ); + } + else + { + mips_commit_delayed_load(); + mips_set_cp0r( CP0_EPC, mipscpu.pc ); + mips_set_cp0r( CP0_CAUSE, ( mipscpu.cp0r[ CP0_CAUSE ] & ~( CAUSE_EXC | CAUSE_BD ) ) | ( exception << 2 ) ); + } + if( mipscpu.cp0r[ CP0_SR ] & SR_BEV ) + { + mips_set_pc( 0xbfc00180 ); + } + else + { + mips_set_pc( 0x80000080 ); + } +} + +void mips_init( void ) +{ +#if 0 + int cpu = cpu_getactivecpu(); + + state_save_register_UINT32( "psxcpu", cpu, "op", &mipscpu.op, 1 ); + state_save_register_UINT32( "psxcpu", cpu, "pc", &mipscpu.pc, 1 ); + state_save_register_UINT32( "psxcpu", cpu, "delayv", &mipscpu.delayv, 1 ); + state_save_register_UINT32( "psxcpu", cpu, "delayr", &mipscpu.delayr, 1 ); + state_save_register_UINT32( "psxcpu", cpu, "hi", &mipscpu.hi, 1 ); + state_save_register_UINT32( "psxcpu", cpu, "lo", &mipscpu.lo, 1 ); + state_save_register_UINT32( "psxcpu", cpu, "r", &mipscpu.r[ 0 ], 32 ); + state_save_register_UINT32( "psxcpu", cpu, "cp0r", &mipscpu.cp0r[ 0 ], 32 ); + state_save_register_UINT32( "psxcpu", cpu, "cp2cr", &mipscpu.cp2cr[ 0 ].d, 32 ); + state_save_register_UINT32( "psxcpu", cpu, "cp2dr", &mipscpu.cp2dr[ 0 ].d, 32 ); +#endif +} + +void mips_reset( void *param ) +{ + mips_set_cp0r( CP0_SR, ( mipscpu.cp0r[ CP0_SR ] & ~( SR_TS | SR_SWC | SR_KUC | SR_IEC ) ) | SR_BEV ); + mips_set_cp0r( CP0_RANDOM, 63 ); /* todo: */ + mips_set_cp0r( CP0_PRID, 0x00000200 ); /* todo: */ + mips_set_pc( 0xbfc00000 ); + mipscpu.prevpc = 0xffffffff; +} + +static void mips_exit( void ) +{ +} + +void mips_shorten_frame(void) +{ + mips_ICount = 0; +} + +void psx_hw_runcounters(void); + +int psxcpu_verbose = 0; + +int mips_execute( int cycles ) +{ + UINT32 n_res; + + mips_ICount = cycles; + do + { +// CALL_MAME_DEBUG; + +// psx_hw_runcounters(); + + mipscpu.op = cpu_readop32( mipscpu.pc ); + +#if 0 + while (mipscpu.prevpc == mipscpu.pc) + { + psx_hw_runcounters(); + mips_ICount--; + + if (mips_ICount == 0) return cycles; + } + + // if we're not in a delay slot, update + // if we're in a delay slot and the delay instruction is not NOP, update + if (( mipscpu.delayr == 0 ) || ((mipscpu.delayr != 0) && (mipscpu.op != 0))) + { + mipscpu.prevpc = mipscpu.pc; + } +#endif +#if 0 + if (1) //psxcpu_verbose) + { + printf("[%08x: %08x] [SP %08x RA %08x V0 %08x V1 %08x A0 %08x S0 %08x S1 %08x]\n", mipscpu.pc, mipscpu.op, mipscpu.r[29], mipscpu.r[31], mipscpu.r[2], mipscpu.r[3], mipscpu.r[4], mipscpu.r[ 16 ], mipscpu.r[ 17 ]); +// psxcpu_verbose--; + } +#endif + switch( INS_OP( mipscpu.op ) ) + { + case OP_SPECIAL: + switch( INS_FUNCT( mipscpu.op ) ) + { + case FUNCT_HLECALL: +// printf("HLECALL, PC = %08x\n", mipscpu.pc); + psx_bios_hle(mipscpu.pc); + break; + case FUNCT_SLL: + mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RT( mipscpu.op ) ] << INS_SHAMT( mipscpu.op ) ); + break; + case FUNCT_SRL: + mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RT( mipscpu.op ) ] >> INS_SHAMT( mipscpu.op ) ); + break; + case FUNCT_SRA: + mips_load( INS_RD( mipscpu.op ), (INT32)mipscpu.r[ INS_RT( mipscpu.op ) ] >> INS_SHAMT( mipscpu.op ) ); + break; + case FUNCT_SLLV: + mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RT( mipscpu.op ) ] << ( mipscpu.r[ INS_RS( mipscpu.op ) ] & 31 ) ); + break; + case FUNCT_SRLV: + mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RT( mipscpu.op ) ] >> ( mipscpu.r[ INS_RS( mipscpu.op ) ] & 31 ) ); + break; + case FUNCT_SRAV: + mips_load( INS_RD( mipscpu.op ), (INT32)mipscpu.r[ INS_RT( mipscpu.op ) ] >> ( mipscpu.r[ INS_RS( mipscpu.op ) ] & 31 ) ); + break; + case FUNCT_JR: + if( INS_RD( mipscpu.op ) != 0 ) + { + mips_exception( EXC_RI ); + } + else + { + mips_delayed_branch( mipscpu.r[ INS_RS( mipscpu.op ) ] ); + } + break; + case FUNCT_JALR: + n_res = mipscpu.pc + 8; + mips_delayed_branch( mipscpu.r[ INS_RS( mipscpu.op ) ] ); + if( INS_RD( mipscpu.op ) != 0 ) + { + mipscpu.r[ INS_RD( mipscpu.op ) ] = n_res; + } + break; + case FUNCT_SYSCALL: + mips_exception( EXC_SYS ); + break; + case FUNCT_BREAK: + printf("BREAK!\n"); + exit(-1); +// mips_exception( EXC_BP ); + mips_advance_pc(); + break; + case FUNCT_MFHI: + mips_load( INS_RD( mipscpu.op ), mipscpu.hi ); + break; + case FUNCT_MTHI: + if( INS_RD( mipscpu.op ) != 0 ) + { + mips_exception( EXC_RI ); + } + else + { + mips_advance_pc(); + mipscpu.hi = mipscpu.r[ INS_RS( mipscpu.op ) ]; + } + break; + case FUNCT_MFLO: + mips_load( INS_RD( mipscpu.op ), mipscpu.lo ); + break; + case FUNCT_MTLO: + if( INS_RD( mipscpu.op ) != 0 ) + { + mips_exception( EXC_RI ); + } + else + { + mips_advance_pc(); + mipscpu.lo = mipscpu.r[ INS_RS( mipscpu.op ) ]; + } + break; + case FUNCT_MULT: + if( INS_RD( mipscpu.op ) != 0 ) + { + mips_exception( EXC_RI ); + } + else + { + INT64 n_res64; + n_res64 = MUL_64_32_32( (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ], (INT32)mipscpu.r[ INS_RT( mipscpu.op ) ] ); + mips_advance_pc(); + mipscpu.lo = LO32_32_64( n_res64 ); + mipscpu.hi = HI32_32_64( n_res64 ); + } + break; + case FUNCT_MULTU: + if( INS_RD( mipscpu.op ) != 0 ) + { + mips_exception( EXC_RI ); + } + else + { + UINT64 n_res64; + n_res64 = MUL_U64_U32_U32( mipscpu.r[ INS_RS( mipscpu.op ) ], mipscpu.r[ INS_RT( mipscpu.op ) ] ); + mips_advance_pc(); + mipscpu.lo = LO32_U32_U64( n_res64 ); + mipscpu.hi = HI32_U32_U64( n_res64 ); + } + break; + case FUNCT_DIV: + if( INS_RD( mipscpu.op ) != 0 ) + { + mips_exception( EXC_RI ); + } + else + { + UINT32 n_div; + UINT32 n_mod; + if( mipscpu.r[ INS_RT( mipscpu.op ) ] != 0 ) + { + n_div = (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] / (INT32)mipscpu.r[ INS_RT( mipscpu.op ) ]; + n_mod = (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] % (INT32)mipscpu.r[ INS_RT( mipscpu.op ) ]; + mips_advance_pc(); + mipscpu.lo = n_div; + mipscpu.hi = n_mod; + } + else + { + mips_advance_pc(); + } + } + break; + case FUNCT_DIVU: + if( INS_RD( mipscpu.op ) != 0 ) + { + mips_exception( EXC_RI ); + } + else + { + UINT32 n_div; + UINT32 n_mod; + if( mipscpu.r[ INS_RT( mipscpu.op ) ] != 0 ) + { + n_div = mipscpu.r[ INS_RS( mipscpu.op ) ] / mipscpu.r[ INS_RT( mipscpu.op ) ]; + n_mod = mipscpu.r[ INS_RS( mipscpu.op ) ] % mipscpu.r[ INS_RT( mipscpu.op ) ]; + mips_advance_pc(); + mipscpu.lo = n_div; + mipscpu.hi = n_mod; + } + else + { + mips_advance_pc(); + } + } + break; + case FUNCT_ADD: + { + n_res = mipscpu.r[ INS_RS( mipscpu.op ) ] + mipscpu.r[ INS_RT( mipscpu.op ) ]; + if( (INT32)( ~( mipscpu.r[ INS_RS( mipscpu.op ) ] ^ mipscpu.r[ INS_RT( mipscpu.op ) ] ) & ( mipscpu.r[ INS_RS( mipscpu.op ) ] ^ n_res ) ) < 0 ) + { + mips_exception( EXC_OVF ); + } + else + { + mips_load( INS_RD( mipscpu.op ), n_res ); + } + } + break; + case FUNCT_ADDU: + mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] + mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + case FUNCT_SUB: + n_res = mipscpu.r[ INS_RS( mipscpu.op ) ] - mipscpu.r[ INS_RT( mipscpu.op ) ]; + if( (INT32)( ( mipscpu.r[ INS_RS( mipscpu.op ) ] ^ mipscpu.r[ INS_RT( mipscpu.op ) ] ) & ( mipscpu.r[ INS_RS( mipscpu.op ) ] ^ n_res ) ) < 0 ) + { + mips_exception( EXC_OVF ); + } + else + { + mips_load( INS_RD( mipscpu.op ), n_res ); + } + break; + case FUNCT_SUBU: + mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] - mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + case FUNCT_AND: + mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] & mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + case FUNCT_OR: + mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] | mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + case FUNCT_XOR: + mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] ^ mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + case FUNCT_NOR: + mips_load( INS_RD( mipscpu.op ), ~( mipscpu.r[ INS_RS( mipscpu.op ) ] | mipscpu.r[ INS_RT( mipscpu.op ) ] ) ); + break; + case FUNCT_SLT: + mips_load( INS_RD( mipscpu.op ), (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] < (INT32)mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + case FUNCT_SLTU: + mips_load( INS_RD( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] < mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + default: + mips_exception( EXC_RI ); + break; + } + break; + case OP_REGIMM: + switch( INS_RT( mipscpu.op ) ) + { + case RT_BLTZ: + if( (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] < 0 ) + { + mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); + } + else + { + mips_advance_pc(); + } + break; + case RT_BGEZ: + if( (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] >= 0 ) + { + mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); + } + else + { + mips_advance_pc(); + } + break; + case RT_BLTZAL: + n_res = mipscpu.pc + 8; + if( (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] < 0 ) + { + mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); + } + else + { + mips_advance_pc(); + } + mipscpu.r[ 31 ] = n_res; + break; + case RT_BGEZAL: + n_res = mipscpu.pc + 8; + if( (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] >= 0 ) + { + mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); + } + else + { + mips_advance_pc(); + } + mipscpu.r[ 31 ] = n_res; + break; + } + break; + case OP_J: + mips_delayed_branch( ( ( mipscpu.pc + 4 ) & 0xf0000000 ) + ( INS_TARGET( mipscpu.op ) << 2 ) ); + break; + case OP_JAL: + n_res = mipscpu.pc + 8; + mips_delayed_branch( ( ( mipscpu.pc + 4 ) & 0xf0000000 ) + ( INS_TARGET( mipscpu.op ) << 2 ) ); + mipscpu.r[ 31 ] = n_res; + break; + case OP_BEQ: + if( mipscpu.r[ INS_RS( mipscpu.op ) ] == mipscpu.r[ INS_RT( mipscpu.op ) ] ) + { + mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); + } + else + { + mips_advance_pc(); + } + break; + case OP_BNE: + if( mipscpu.r[ INS_RS( mipscpu.op ) ] != mipscpu.r[ INS_RT( mipscpu.op ) ] ) + { + mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); + } + else + { + mips_advance_pc(); + } + break; + case OP_BLEZ: + if( INS_RT( mipscpu.op ) != 0 ) + { + mips_exception( EXC_RI ); + } + else if( (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] <= 0 ) + { + mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); + } + else + { + mips_advance_pc(); + } + break; + case OP_BGTZ: + if( INS_RT( mipscpu.op ) != 0 ) + { + mips_exception( EXC_RI ); + } + else if( (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] > 0 ) + { + mips_delayed_branch( mipscpu.pc + 4 + ( MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) << 2 ) ); + } + else + { + mips_advance_pc(); + } + break; + case OP_ADDI: + { + UINT32 n_imm; + n_imm = MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + n_res = mipscpu.r[ INS_RS( mipscpu.op ) ] + n_imm; + if( (INT32)( ~( mipscpu.r[ INS_RS( mipscpu.op ) ] ^ n_imm ) & ( mipscpu.r[ INS_RS( mipscpu.op ) ] ^ n_res ) ) < 0 ) + { + mips_exception( EXC_OVF ); + } + else + { + mips_load( INS_RT( mipscpu.op ), n_res ); + } + } + break; + case OP_ADDIU: + if (INS_RT( mipscpu.op ) == 0) + { + psx_iop_call(mipscpu.pc, INS_IMMEDIATE(mipscpu.op)); + mips_advance_pc(); + } + else + { + mips_load( INS_RT( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) ); + } + break; + case OP_SLTI: + mips_load( INS_RT( mipscpu.op ), (INT32)mipscpu.r[ INS_RS( mipscpu.op ) ] < MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) ); + break; + case OP_SLTIU: + mips_load( INS_RT( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] < (UINT32)MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ) ); + break; + case OP_ANDI: + mips_load( INS_RT( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] & INS_IMMEDIATE( mipscpu.op ) ); + break; + case OP_ORI: + mips_load( INS_RT( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] | INS_IMMEDIATE( mipscpu.op ) ); + break; + case OP_XORI: + mips_load( INS_RT( mipscpu.op ), mipscpu.r[ INS_RS( mipscpu.op ) ] ^ INS_IMMEDIATE( mipscpu.op ) ); + break; + case OP_LUI: + mips_load( INS_RT( mipscpu.op ), INS_IMMEDIATE( mipscpu.op ) << 16 ); + break; + case OP_COP0: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) != 0 && ( mipscpu.cp0r[ CP0_SR ] & SR_CU0 ) == 0 ) + { + mips_exception( EXC_CPU ); + mips_set_cp0r( CP0_CAUSE, ( mipscpu.cp0r[ CP0_CAUSE ] & ~CAUSE_CE ) | CAUSE_CE0 ); + } + else + { + switch( INS_RS( mipscpu.op ) ) + { + case RS_MFC: + mips_delayed_load( INS_RT( mipscpu.op ), mipscpu.cp0r[ INS_RD( mipscpu.op ) ] ); + break; + case RS_CFC: + /* todo: */ + logerror( "%08x: COP0 CFC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + break; + case RS_MTC: + n_res = ( mipscpu.cp0r[ INS_RD( mipscpu.op ) ] & ~mips_mtc0_writemask[ INS_RD( mipscpu.op ) ] ) | + ( mipscpu.r[ INS_RT( mipscpu.op ) ] & mips_mtc0_writemask[ INS_RD( mipscpu.op ) ] ); + mips_advance_pc(); + mips_set_cp0r( INS_RD( mipscpu.op ), n_res ); + break; + case RS_CTC: + /* todo: */ + logerror( "%08x: COP0 CTC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + break; + case RS_BC: + switch( INS_RT( mipscpu.op ) ) + { + case RT_BCF: + /* todo: */ + logerror( "%08x: COP0 BCF not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + break; + case RT_BCT: + /* todo: */ + logerror( "%08x: COP0 BCT not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + break; + default: + /* todo: */ + logerror( "%08x: COP0 unknown command %08x\n", mipscpu.pc, mipscpu.op ); + mips_stop(); + mips_advance_pc(); + break; + } + break; + default: + switch( INS_CO( mipscpu.op ) ) + { + case 1: + switch( INS_CF( mipscpu.op ) ) + { + case CF_RFE: + mips_advance_pc(); + mips_set_cp0r( CP0_SR, ( mipscpu.cp0r[ CP0_SR ] & ~0xf ) | ( ( mipscpu.cp0r[ CP0_SR ] >> 2 ) & 0xf ) ); + break; + default: + /* todo: */ + logerror( "%08x: COP0 unknown command %08x\n", mipscpu.pc, mipscpu.op ); + mips_stop(); + mips_advance_pc(); + break; + } + break; + default: + /* todo: */ + logerror( "%08x: COP0 unknown command %08x\n", mipscpu.pc, mipscpu.op ); + mips_stop(); + mips_advance_pc(); + break; + } + break; + } + } + break; + case OP_COP1: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_CU1 ) == 0 ) + { + mips_exception( EXC_CPU ); + mips_set_cp0r( CP0_CAUSE, ( mipscpu.cp0r[ CP0_CAUSE ] & ~CAUSE_CE ) | CAUSE_CE1 ); + } + else + { + switch( INS_RS( mipscpu.op ) ) + { + case RS_MFC: + /* todo: */ + logerror( "%08x: COP1 BCT not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + break; + case RS_CFC: + /* todo: */ + logerror( "%08x: COP1 CFC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + break; + case RS_MTC: + /* todo: */ + logerror( "%08x: COP1 MTC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + break; + case RS_CTC: + /* todo: */ + logerror( "%08x: COP1 CTC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + break; + case RS_BC: + switch( INS_RT( mipscpu.op ) ) + { + case RT_BCF: + /* todo: */ + logerror( "%08x: COP1 BCF not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + break; + case RT_BCT: + /* todo: */ + logerror( "%08x: COP1 BCT not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + break; + default: + /* todo: */ + logerror( "%08x: COP1 unknown command %08x\n", mipscpu.pc, mipscpu.op ); + mips_stop(); + mips_advance_pc(); + break; + } + break; + default: + switch( INS_CO( mipscpu.op ) ) + { + case 1: + /* todo: */ + logerror( "%08x: COP1 unknown command %08x\n", mipscpu.pc, mipscpu.op ); + mips_stop(); + mips_advance_pc(); + break; + default: + /* todo: */ + logerror( "%08x: COP1 unknown command %08x\n", mipscpu.pc, mipscpu.op ); + mips_stop(); + mips_advance_pc(); + break; + } + break; + } + } + break; + case OP_COP2: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_CU2 ) == 0 ) + { + mips_exception( EXC_CPU ); + mips_set_cp0r( CP0_CAUSE, ( mipscpu.cp0r[ CP0_CAUSE ] & ~CAUSE_CE ) | CAUSE_CE2 ); + } + else + { + switch( INS_RS( mipscpu.op ) ) + { + case RS_MFC: + mips_delayed_load( INS_RT( mipscpu.op ), getcp2dr( INS_RD( mipscpu.op ) ) ); + break; + case RS_CFC: + mips_delayed_load( INS_RT( mipscpu.op ), getcp2cr( INS_RD( mipscpu.op ) ) ); + break; + case RS_MTC: + setcp2dr( INS_RD( mipscpu.op ), mipscpu.r[ INS_RT( mipscpu.op ) ] ); + mips_advance_pc(); + break; + case RS_CTC: + setcp2cr( INS_RD( mipscpu.op ), mipscpu.r[ INS_RT( mipscpu.op ) ] ); + mips_advance_pc(); + break; + case RS_BC: + switch( INS_RT( mipscpu.op ) ) + { + case RT_BCF: + /* todo: */ + logerror( "%08x: COP2 BCF not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + break; + case RT_BCT: + /* todo: */ + logerror( "%08x: COP2 BCT not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + break; + default: + /* todo: */ + logerror( "%08x: COP2 unknown command %08x\n", mipscpu.pc, mipscpu.op ); + mips_stop(); + mips_advance_pc(); + break; + } + break; + default: + switch( INS_CO( mipscpu.op ) ) + { + case 1: + docop2( INS_COFUN( mipscpu.op ) ); + mips_advance_pc(); + break; + default: + /* todo: */ + logerror( "%08x: COP2 unknown command %08x\n", mipscpu.pc, mipscpu.op ); + mips_stop(); + mips_advance_pc(); + break; + } + break; + } + } + break; + case OP_LB: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) + { + /* todo: */ + logerror( "%08x: LB SR_ISC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + } + else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + mips_delayed_load( INS_RT( mipscpu.op ), MIPS_BYTE_EXTEND( program_read_byte_32le( n_adr ^ 3 ) ) ); + } + } + else + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + mips_delayed_load( INS_RT( mipscpu.op ), MIPS_BYTE_EXTEND( program_read_byte_32le( n_adr ) ) ); + } + } + break; + case OP_LH: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) + { + /* todo: */ + logerror( "%08x: LH SR_ISC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + } + else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 1 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + mips_delayed_load( INS_RT( mipscpu.op ), MIPS_WORD_EXTEND( program_read_word_32le( n_adr ^ 2 ) ) ); + } + } + else + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 1 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + mips_delayed_load( INS_RT( mipscpu.op ), MIPS_WORD_EXTEND( program_read_word_32le( n_adr ) ) ); + } + } + break; + case OP_LWL: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) + { + /* todo: */ + logerror( "%08x: LWL SR_ISC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + } + else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + switch( n_adr & 3 ) + { + case 0: + n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0x00ffffff ) | ( (UINT32)program_read_byte_32le( n_adr + 3 ) << 24 ); + break; + case 1: + n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0x0000ffff ) | ( (UINT32)program_read_word_32le( n_adr + 1 ) << 16 ); + break; + case 2: + n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0x000000ff ) | ( (UINT32)program_read_byte_32le( n_adr - 1 ) << 8 ) | ( (UINT32)program_read_word_32le( n_adr ) << 16 ); + break; + default: + n_res = program_read_dword_32le( n_adr - 3 ); + break; + } + mips_delayed_load( INS_RT( mipscpu.op ), n_res ); + } + } + else + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + switch( n_adr & 3 ) + { + case 0: + n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0x00ffffff ) | ( (UINT32)program_read_byte_32le( n_adr ) << 24 ); + break; + case 1: + n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0x0000ffff ) | ( (UINT32)program_read_word_32le( n_adr - 1 ) << 16 ); + break; + case 2: + n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0x000000ff ) | ( (UINT32)program_read_word_32le( n_adr - 2 ) << 8 ) | ( (UINT32)program_read_byte_32le( n_adr ) << 24 ); + break; + default: + n_res = program_read_dword_32le( n_adr - 3 ); + break; + } + mips_delayed_load( INS_RT( mipscpu.op ), n_res ); + } + } + break; + case OP_LW: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) + { + /* todo: */ + logerror( "%08x: LW SR_ISC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + } + else + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); +#if 0 + if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 3 ) ) != 0 ) + { + printf("ADEL\n"); + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else +#endif + { + mips_delayed_load( INS_RT( mipscpu.op ), program_read_dword_32le( n_adr ) ); + } + } + break; + case OP_LBU: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) + { + /* todo: */ + logerror( "%08x: LBU SR_ISC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + } + else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + mips_delayed_load( INS_RT( mipscpu.op ), program_read_byte_32le( n_adr ^ 3 ) ); + } + } + else + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + mips_delayed_load( INS_RT( mipscpu.op ), program_read_byte_32le( n_adr ) ); + } + } + break; + case OP_LHU: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) + { + /* todo: */ + logerror( "%08x: LHU SR_ISC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + } + else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 1 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + mips_delayed_load( INS_RT( mipscpu.op ), program_read_word_32le( n_adr ^ 2 ) ); + } + } + else + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 1 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + mips_delayed_load( INS_RT( mipscpu.op ), program_read_word_32le( n_adr ) ); + } + } + break; + case OP_LWR: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) + { + /* todo: */ + logerror( "%08x: LWR SR_ISC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + } + else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + switch( n_adr & 3 ) + { + case 3: + n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0xffffff00 ) | program_read_byte_32le( n_adr - 3 ); + break; + case 2: + n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0xffff0000 ) | program_read_word_32le( n_adr - 2 ); + break; + case 1: + n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0xff000000 ) | program_read_word_32le( n_adr - 1 ) | ( (UINT32)program_read_byte_32le( n_adr + 1 ) << 16 ); + break; + default: + n_res = program_read_dword_32le( n_adr ); + break; + } + mips_delayed_load( INS_RT( mipscpu.op ), n_res ); + } + } + else + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + switch( n_adr & 3 ) + { + case 3: + n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0xffffff00 ) | program_read_byte_32le( n_adr ); + break; + case 2: + n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0xffff0000 ) | program_read_word_32le( n_adr ); + break; + case 1: + n_res = ( mipscpu.r[ INS_RT( mipscpu.op ) ] & 0xff000000 ) | program_read_byte_32le( n_adr ) | ( (UINT32)program_read_word_32le( n_adr + 1 ) << 8 ); + break; + default: + n_res = program_read_dword_32le( n_adr ); + break; + } + mips_delayed_load( INS_RT( mipscpu.op ), n_res ); + } + } + break; + case OP_SB: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) + { + /* todo: */ + logerror( "%08x: SB SR_ISC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + } + else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) + { + mips_exception( EXC_ADES ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + program_write_byte_32le( n_adr ^ 3, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + mips_advance_pc(); + } + } + else + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) + { + mips_exception( EXC_ADES ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + program_write_byte_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + mips_advance_pc(); + } + } + break; + case OP_SH: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) + { + /* todo: */ + logerror( "%08x: SH SR_ISC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + } + else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 1 ) ) != 0 ) + { + mips_exception( EXC_ADES ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + program_write_word_32le( n_adr ^ 2, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + mips_advance_pc(); + } + } + else + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 1 ) ) != 0 ) + { + mips_exception( EXC_ADES ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + program_write_word_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + mips_advance_pc(); + } + } + break; + case OP_SWL: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) + { + /* todo: */ + printf("SR_ISC not supported\n"); + logerror( "%08x: SWL SR_ISC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + } + else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) + { + printf("permission violation?\n"); + mips_exception( EXC_ADES ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + switch( n_adr & 3 ) + { + case 0: + program_write_byte_32le( n_adr + 3, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 24 ); + break; + case 1: + program_write_word_32le( n_adr + 1, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 16 ); + break; + case 2: + program_write_byte_32le( n_adr - 1, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 8 ); + program_write_word_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 16 ); + break; + case 3: + program_write_dword_32le( n_adr - 3, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + } + mips_advance_pc(); + } + } + else + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) + { + printf("permission violation 2\n"); + mips_exception( EXC_ADES ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + switch( n_adr & 3 ) + { + case 0: + program_write_byte_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 24 ); + break; + case 1: + program_write_word_32le( n_adr - 1, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 16 ); + break; + case 2: + program_write_word_32le( n_adr - 2, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 8 ); + program_write_byte_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 24 ); + break; + case 3: + program_write_dword_32le( n_adr - 3, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + } + mips_advance_pc(); + } + } + break; + case OP_SW: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) + { + /* todo: */ +/* used by bootstrap + logerror( "%08x: SW SR_ISC not supported\n", mipscpu.pc ); + mips_stop(); +*/ + mips_advance_pc(); + } + else + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if(0) // ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 3 ) ) != 0 ) + { + mips_exception( EXC_ADES ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + program_write_dword_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + mips_advance_pc(); + } + } + break; + case OP_SWR: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) + { + /* todo: */ + logerror( "%08x: SWR SR_ISC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + } + else if( ( mipscpu.cp0r[ CP0_SR ] & ( SR_RE | SR_KUC ) ) == ( SR_RE | SR_KUC ) ) + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) + { + mips_exception( EXC_ADES ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + switch( n_adr & 3 ) + { + case 0: + program_write_dword_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + case 1: + program_write_word_32le( n_adr - 1, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + program_write_byte_32le( n_adr + 1, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 16 ); + break; + case 2: + program_write_word_32le( n_adr - 2, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + case 3: + program_write_byte_32le( n_adr - 3, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + } + mips_advance_pc(); + } + } + else + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) ) != 0 ) + { + mips_exception( EXC_ADES ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + switch( n_adr & 3 ) + { + case 0: + program_write_dword_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + case 1: + program_write_byte_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + program_write_word_32le( n_adr + 1, mipscpu.r[ INS_RT( mipscpu.op ) ] >> 8 ); + break; + case 2: + program_write_word_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + case 3: + program_write_byte_32le( n_adr, mipscpu.r[ INS_RT( mipscpu.op ) ] ); + break; + } + mips_advance_pc(); + } + } + break; + case OP_LWC1: + /* todo: */ + logerror( "%08x: COP1 LWC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + break; + case OP_LWC2: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_CU2 ) == 0 ) + { + mips_exception( EXC_CPU ); + mips_set_cp0r( CP0_CAUSE, ( mipscpu.cp0r[ CP0_CAUSE ] & ~CAUSE_CE ) | CAUSE_CE2 ); + } + else if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) + { + /* todo: */ + logerror( "%08x: LWC2 SR_ISC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + } + else + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 3 ) ) != 0 ) + { + mips_exception( EXC_ADEL ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + /* todo: delay? */ + setcp2dr( INS_RT( mipscpu.op ), program_read_dword_32le( n_adr ) ); + mips_advance_pc(); + } + } + break; + case OP_SWC1: + /* todo: */ + logerror( "%08x: COP1 SWC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + break; + case OP_SWC2: + if( ( mipscpu.cp0r[ CP0_SR ] & SR_CU2 ) == 0 ) + { + mips_exception( EXC_CPU ); + mips_set_cp0r( CP0_CAUSE, ( mipscpu.cp0r[ CP0_CAUSE ] & ~CAUSE_CE ) | CAUSE_CE2 ); + } + else if( ( mipscpu.cp0r[ CP0_SR ] & SR_ISC ) != 0 ) + { + /* todo: */ + logerror( "%08x: SWC2 SR_ISC not supported\n", mipscpu.pc ); + mips_stop(); + mips_advance_pc(); + } + else + { + UINT32 n_adr; + n_adr = mipscpu.r[ INS_RS( mipscpu.op ) ] + MIPS_WORD_EXTEND( INS_IMMEDIATE( mipscpu.op ) ); + if( ( n_adr & ( ( ( mipscpu.cp0r[ CP0_SR ] & SR_KUC ) << 30 ) | 3 ) ) != 0 ) + { + mips_exception( EXC_ADES ); + mips_set_cp0r( CP0_BADVADDR, n_adr ); + } + else + { + program_write_dword_32le( n_adr, getcp2dr( INS_RT( mipscpu.op ) ) ); + mips_advance_pc(); + } + } + break; + default: +// printf( "%08x: unknown opcode %08x (prev %08x, RA %08x)\n", mipscpu.pc, mipscpu.op, mipscpu.prevpc, mipscpu.r[31] ); +// mips_stop(); +// mips_exception( EXC_RI ); + break; + } +skipinterp: + mips_ICount--; + } while( mips_ICount > 0 ); + + return cycles - mips_ICount; +} + +static void mips_get_context( void *dst ) +{ + if( dst ) + { + *(mips_cpu_context *)dst = mipscpu; + } +} + +static void mips_set_context( void *src ) +{ + if( src ) + { + mipscpu = *(mips_cpu_context *)src; + change_pc( mipscpu.pc ); + } +} + +static void set_irq_line( int irqline, int state ) +{ + UINT32 ip; + + switch( irqline ) + { + case MIPS_IRQ0: + ip = CAUSE_IP2; + break; + case MIPS_IRQ1: + ip = CAUSE_IP3; + break; + case MIPS_IRQ2: + ip = CAUSE_IP4; + break; + case MIPS_IRQ3: + ip = CAUSE_IP5; + break; + case MIPS_IRQ4: + ip = CAUSE_IP6; + break; + case MIPS_IRQ5: + ip = CAUSE_IP7; + break; + default: + return; + } + + switch( state ) + { + case CLEAR_LINE: + mips_set_cp0r( CP0_CAUSE, mipscpu.cp0r[ CP0_CAUSE ] & ~ip ); + break; + case ASSERT_LINE: + mips_set_cp0r( CP0_CAUSE, mipscpu.cp0r[ CP0_CAUSE ] |= ip ); + if( mipscpu.irq_callback ) + { + /* HOLD_LINE interrupts are not supported by the architecture. + By acknowledging the interupt here they are treated like PULSE_LINE + interrupts, so if the interrupt isn't enabled it will be ignored. + There is also a problem with PULSE_LINE interrupts as the interrupt + pending bits aren't latched the emulated code won't know what caused + the interrupt. */ + (*mipscpu.irq_callback)( irqline ); + } + break; + } +} + +/**************************************************************************** + * Return a formatted string for a register + ****************************************************************************/ + +offs_t mips_dasm( char *buffer, offs_t pc ) +{ + offs_t ret; + change_pc( pc ); +#ifdef MAME_DEBUG + ret = DasmMIPS( buffer, pc ); +#else + sprintf( buffer, "$%08x", cpu_readop32( pc ) ); + ret = 4; +#endif + change_pc( mipscpu.pc ); + return ret; +} + +/* preliminary gte code */ + +#define VXY0 ( mipscpu.cp2dr[ 0 ].d ) +#define VX0 ( mipscpu.cp2dr[ 0 ].w.l ) +#define VY0 ( mipscpu.cp2dr[ 0 ].w.h ) +#define VZ0 ( mipscpu.cp2dr[ 1 ].w.l ) +#define VXY1 ( mipscpu.cp2dr[ 2 ].d ) +#define VX1 ( mipscpu.cp2dr[ 2 ].w.l ) +#define VY1 ( mipscpu.cp2dr[ 2 ].w.h ) +#define VZ1 ( mipscpu.cp2dr[ 3 ].w.l ) +#define VXY2 ( mipscpu.cp2dr[ 4 ].d ) +#define VX2 ( mipscpu.cp2dr[ 4 ].w.l ) +#define VY2 ( mipscpu.cp2dr[ 4 ].w.h ) +#define VZ2 ( mipscpu.cp2dr[ 5 ].w.l ) +#define RGB ( mipscpu.cp2dr[ 6 ].d ) +#define R ( mipscpu.cp2dr[ 6 ].b.l ) +#define G ( mipscpu.cp2dr[ 6 ].b.h ) +#define B ( mipscpu.cp2dr[ 6 ].b.h2 ) +#define CODE ( mipscpu.cp2dr[ 6 ].b.h3 ) +#define OTZ ( mipscpu.cp2dr[ 7 ].w.l ) +#define IR0 ( mipscpu.cp2dr[ 8 ].d ) +#define IR1 ( mipscpu.cp2dr[ 9 ].d ) +#define IR2 ( mipscpu.cp2dr[ 10 ].d ) +#define IR3 ( mipscpu.cp2dr[ 11 ].d ) +#define SXY0 ( mipscpu.cp2dr[ 12 ].d ) +#define SX0 ( mipscpu.cp2dr[ 12 ].w.l ) +#define SY0 ( mipscpu.cp2dr[ 12 ].w.h ) +#define SXY1 ( mipscpu.cp2dr[ 13 ].d ) +#define SX1 ( mipscpu.cp2dr[ 13 ].w.l ) +#define SY1 ( mipscpu.cp2dr[ 13 ].w.h ) +#define SXY2 ( mipscpu.cp2dr[ 14 ].d ) +#define SX2 ( mipscpu.cp2dr[ 14 ].w.l ) +#define SY2 ( mipscpu.cp2dr[ 14 ].w.h ) +#define SXYP ( mipscpu.cp2dr[ 15 ].d ) +#define SXP ( mipscpu.cp2dr[ 15 ].w.l ) +#define SYP ( mipscpu.cp2dr[ 15 ].w.h ) +#define SZ0 ( mipscpu.cp2dr[ 16 ].w.l ) +#define SZ1 ( mipscpu.cp2dr[ 17 ].w.l ) +#define SZ2 ( mipscpu.cp2dr[ 18 ].w.l ) +#define SZ3 ( mipscpu.cp2dr[ 19 ].w.l ) +#define RGB0 ( mipscpu.cp2dr[ 20 ].d ) +#define R0 ( mipscpu.cp2dr[ 20 ].b.l ) +#define G0 ( mipscpu.cp2dr[ 20 ].b.h ) +#define B0 ( mipscpu.cp2dr[ 20 ].b.h2 ) +#define CD0 ( mipscpu.cp2dr[ 20 ].b.h3 ) +#define RGB1 ( mipscpu.cp2dr[ 21 ].d ) +#define R1 ( mipscpu.cp2dr[ 21 ].b.l ) +#define G1 ( mipscpu.cp2dr[ 21 ].b.h ) +#define B1 ( mipscpu.cp2dr[ 21 ].b.h2 ) +#define CD1 ( mipscpu.cp2dr[ 21 ].b.h3 ) +#define RGB2 ( mipscpu.cp2dr[ 22 ].d ) +#define R2 ( mipscpu.cp2dr[ 22 ].b.l ) +#define G2 ( mipscpu.cp2dr[ 22 ].b.h ) +#define B2 ( mipscpu.cp2dr[ 22 ].b.h2 ) +#define CD2 ( mipscpu.cp2dr[ 22 ].b.h3 ) +#define RES1 ( mipscpu.cp2dr[ 23 ].d ) +#define MAC0 ( mipscpu.cp2dr[ 24 ].d ) +#define MAC1 ( mipscpu.cp2dr[ 25 ].d ) +#define MAC2 ( mipscpu.cp2dr[ 26 ].d ) +#define MAC3 ( mipscpu.cp2dr[ 27 ].d ) +#define IRGB ( mipscpu.cp2dr[ 28 ].d ) +#define ORGB ( mipscpu.cp2dr[ 29 ].d ) +#define LZCS ( mipscpu.cp2dr[ 30 ].d ) +#define LZCR ( mipscpu.cp2dr[ 31 ].d ) + +#define D1 ( mipscpu.cp2cr[ 0 ].d ) +#define R11 ( mipscpu.cp2cr[ 0 ].w.l ) +#define R12 ( mipscpu.cp2cr[ 0 ].w.h ) +#define R13 ( mipscpu.cp2cr[ 1 ].w.l ) +#define R21 ( mipscpu.cp2cr[ 1 ].w.h ) +#define D2 ( mipscpu.cp2cr[ 2 ].d ) +#define R22 ( mipscpu.cp2cr[ 2 ].w.l ) +#define R23 ( mipscpu.cp2cr[ 2 ].w.h ) +#define R31 ( mipscpu.cp2cr[ 3 ].w.l ) +#define R32 ( mipscpu.cp2cr[ 3 ].w.h ) +#define D3 ( mipscpu.cp2cr[ 4 ].d ) +#define R33 ( mipscpu.cp2cr[ 4 ].w.l ) +#define TRX ( mipscpu.cp2cr[ 5 ].d ) +#define TRY ( mipscpu.cp2cr[ 6 ].d ) +#define TRZ ( mipscpu.cp2cr[ 7 ].d ) +#define L11 ( mipscpu.cp2cr[ 8 ].w.l ) +#define L12 ( mipscpu.cp2cr[ 8 ].w.h ) +#define L13 ( mipscpu.cp2cr[ 9 ].w.l ) +#define L21 ( mipscpu.cp2cr[ 9 ].w.h ) +#define L22 ( mipscpu.cp2cr[ 10 ].w.l ) +#define L23 ( mipscpu.cp2cr[ 10 ].w.h ) +#define L31 ( mipscpu.cp2cr[ 11 ].w.l ) +#define L32 ( mipscpu.cp2cr[ 11 ].w.h ) +#define L33 ( mipscpu.cp2cr[ 12 ].w.l ) +#define RBK ( mipscpu.cp2cr[ 13 ].d ) +#define GBK ( mipscpu.cp2cr[ 14 ].d ) +#define BBK ( mipscpu.cp2cr[ 15 ].d ) +#define LR1 ( mipscpu.cp2cr[ 16 ].w.l ) +#define LR2 ( mipscpu.cp2cr[ 16 ].w.h ) +#define LR3 ( mipscpu.cp2cr[ 17 ].w.l ) +#define LG1 ( mipscpu.cp2cr[ 17 ].w.h ) +#define LG2 ( mipscpu.cp2cr[ 18 ].w.l ) +#define LG3 ( mipscpu.cp2cr[ 18 ].w.h ) +#define LB1 ( mipscpu.cp2cr[ 19 ].w.l ) +#define LB2 ( mipscpu.cp2cr[ 19 ].w.h ) +#define LB3 ( mipscpu.cp2cr[ 20 ].w.l ) +#define RFC ( mipscpu.cp2cr[ 21 ].d ) +#define GFC ( mipscpu.cp2cr[ 22 ].d ) +#define BFC ( mipscpu.cp2cr[ 23 ].d ) +#define OFX ( mipscpu.cp2cr[ 24 ].d ) +#define OFY ( mipscpu.cp2cr[ 25 ].d ) +#define H ( mipscpu.cp2cr[ 26 ].w.l ) +#define DQA ( mipscpu.cp2cr[ 27 ].w.l ) +#define DQB ( mipscpu.cp2cr[ 28 ].d ) +#define ZSF3 ( mipscpu.cp2cr[ 29 ].w.l ) +#define ZSF4 ( mipscpu.cp2cr[ 30 ].w.l ) +#define FLAG ( mipscpu.cp2cr[ 31 ].d ) + +static UINT32 getcp2dr( int n_reg ) +{ + if( n_reg == 1 || n_reg == 3 || n_reg == 5 || n_reg == 8 || n_reg == 9 || n_reg == 10 || n_reg == 11 ) + { + mipscpu.cp2dr[ n_reg ].d = (INT32)(INT16)mipscpu.cp2dr[ n_reg ].d; + } + else if( n_reg == 17 || n_reg == 18 || n_reg == 19 ) + { + mipscpu.cp2dr[ n_reg ].d = (UINT32)(UINT16)mipscpu.cp2dr[ n_reg ].d; + } + else if( n_reg == 29 ) + { + ORGB = ( ( IR1 >> 7 ) & 0x1f ) | ( ( IR2 >> 2 ) & 0x3e0 ) | ( ( IR3 << 3 ) & 0x7c00 ); + } + GTELOG( "get CP2DR%u=%08x", n_reg, mipscpu.cp2dr[ n_reg ].d ); + return mipscpu.cp2dr[ n_reg ].d; +} + +static void setcp2dr( int n_reg, UINT32 n_value ) +{ + GTELOG( "set CP2DR%u=%08x", n_reg, n_value ); + mipscpu.cp2dr[ n_reg ].d = n_value; + + if( n_reg == 15 ) + { + SXY0 = SXY1; + SXY1 = SXY2; + SXY2 = SXYP; + } + else if( n_reg == 28 ) + { + IR1 = ( IRGB & 0x1f ) << 4; + IR2 = ( IRGB & 0x3e0 ) >> 1; + IR3 = ( IRGB & 0x7c00 ) >> 6; + } + else if( n_reg == 30 ) + { + UINT32 n_lzcs = LZCS; + UINT32 n_lzcr = 0; + + if( ( n_lzcs & 0x80000000 ) == 0 ) + { + n_lzcs = ~n_lzcs; + } + while( ( n_lzcs & 0x80000000 ) != 0 ) + { + n_lzcr++; + n_lzcs <<= 1; + } + LZCR = n_lzcr; + } +} + +static UINT32 getcp2cr( int n_reg ) +{ + GTELOG( "get CP2CR%u=%08x", n_reg, mipscpu.cp2cr[ n_reg ].d ); + return mipscpu.cp2cr[ n_reg ].d; +} + +static void setcp2cr( int n_reg, UINT32 n_value ) +{ + GTELOG( "set CP2CR%u=%08x", n_reg, n_value ); + mipscpu.cp2cr[ n_reg ].d = n_value; +} + +INLINE INT32 LIM( INT32 n_value, INT32 n_max, INT32 n_min, UINT32 n_flag ) +{ + if( n_value > n_max ) + { + FLAG |= n_flag; + return n_max; + } + else if( n_value < n_min ) + { + FLAG |= n_flag; + return n_min; + } + return n_value; +} + +INLINE INT64 BOUNDS( INT64 n_value, INT64 n_max, int n_maxflag, INT64 n_min, int n_minflag ) +{ + if( n_value > n_max ) + { + FLAG |= n_maxflag; + } + else if( n_value < n_min ) + { + FLAG |= n_minflag; + } + return n_value; +} + +#define A1( a ) BOUNDS( ( a ), 0x7fffffff, 30, -(INT64)0x80000000, ( 1 << 27 ) ) +#define A2( a ) BOUNDS( ( a ), 0x7fffffff, 29, -(INT64)0x80000000, ( 1 << 26 ) ) +#define A3( a ) BOUNDS( ( a ), 0x7fffffff, 28, -(INT64)0x80000000, ( 1 << 25 ) ) +#define Lm_B1( a, l ) LIM( ( a ), 0x7fff, -0x8000 * !l, ( 1 << 31 ) | ( 1 << 24 ) ) +#define Lm_B2( a, l ) LIM( ( a ), 0x7fff, -0x8000 * !l, ( 1 << 31 ) | ( 1 << 23 ) ) +#define Lm_B3( a, l ) LIM( ( a ), 0x7fff, -0x8000 * !l, ( 1 << 22 ) ) +#define Lm_C1( a ) LIM( ( a ), 0x00ff, 0x0000, ( 1 << 21 ) ) +#define Lm_C2( a ) LIM( ( a ), 0x00ff, 0x0000, ( 1 << 20 ) ) +#define Lm_C3( a ) LIM( ( a ), 0x00ff, 0x0000, ( 1 << 19 ) ) +#define Lm_D( a ) LIM( ( a ), 0xffff, 0x0000, ( 1 << 31 ) | ( 1 << 18 ) ) + +INLINE UINT32 Lm_E( UINT32 n_z ) +{ + if( n_z <= H / 2 ) + { + n_z = H / 2; + FLAG |= ( 1 << 31 ) | ( 1 << 17 ); + } + if( n_z == 0 ) + { + n_z = 1; + } + return n_z; +} + +#define F( a ) BOUNDS( ( a ), 0x7fffffff, ( 1 << 31 ) | ( 1 << 16 ), -(INT64)0x80000000, ( 1 << 31 ) | ( 1 << 15 ) ) +#define Lm_G1( a ) LIM( ( a ), 0x3ff, -0x400, ( 1 << 31 ) | ( 1 << 14 ) ) +#define Lm_G2( a ) LIM( ( a ), 0x3ff, -0x400, ( 1 << 31 ) | ( 1 << 13 ) ) +#define Lm_H( a ) LIM( ( a ), 0xfff, 0x000, ( 1 << 12 ) ) + +static void docop2( int gteop ) +{ + int n_sf; + int n_v; + int n_lm; + int n_pass; + UINT16 n_v1; + UINT16 n_v2; + UINT16 n_v3; + const UINT16 **p_n_mx; + const UINT32 **p_n_cv; + static const UINT16 n_zm = 0; + static const UINT32 n_zc = 0; + static const UINT16 *p_n_vx[] = { &VX0, &VX1, &VX2 }; + static const UINT16 *p_n_vy[] = { &VY0, &VY1, &VY2 }; + static const UINT16 *p_n_vz[] = { &VZ0, &VZ1, &VZ2 }; + static const UINT16 *p_n_rm[] = { &R11, &R12, &R13, &R21, &R22, &R23, &R31, &R32, &R33 }; + static const UINT16 *p_n_lm[] = { &L11, &L12, &L13, &L21, &L22, &L23, &L31, &L32, &L33 }; + static const UINT16 *p_n_cm[] = { &LR1, &LR2, &LR3, &LG1, &LG2, &LG3, &LB1, &LB2, &LB3 }; + static const UINT16 *p_n_zm[] = { &n_zm, &n_zm, &n_zm, &n_zm, &n_zm, &n_zm, &n_zm, &n_zm, &n_zm }; + static const UINT16 **p_p_n_mx[] = { p_n_rm, p_n_lm, p_n_cm, p_n_zm }; + static const UINT32 *p_n_tr[] = { &TRX, &TRY, &TRZ }; + static const UINT32 *p_n_bk[] = { &RBK, &GBK, &BBK }; + static const UINT32 *p_n_fc[] = { &RFC, &GFC, &BFC }; + static const UINT32 *p_n_zc[] = { &n_zc, &n_zc, &n_zc }; + static const UINT32 **p_p_n_cv[] = { p_n_tr, p_n_bk, p_n_fc, p_n_zc }; + + switch( GTE_FUNCT( gteop ) ) + { + case 0x01: + if( gteop == 0x0180001 ) + { + GTELOG( "RTPS" ); + FLAG = 0; + + MAC1 = A1( ( ( (INT64)(INT32)TRX << 12 ) + ( (INT16)R11 * (INT16)VX0 ) + ( (INT16)R12 * (INT16)VY0 ) + ( (INT16)R13 * (INT16)VZ0 ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)(INT32)TRY << 12 ) + ( (INT16)R21 * (INT16)VX0 ) + ( (INT16)R22 * (INT16)VY0 ) + ( (INT16)R23 * (INT16)VZ0 ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)(INT32)TRZ << 12 ) + ( (INT16)R31 * (INT16)VX0 ) + ( (INT16)R32 * (INT16)VY0 ) + ( (INT16)R33 * (INT16)VZ0 ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 0 ); + IR2 = Lm_B2( (INT32)MAC2, 0 ); + IR3 = Lm_B3( (INT32)MAC3, 0 ); + SZ0 = SZ1; + SZ1 = SZ2; + SZ2 = SZ3; + SZ3 = Lm_D( (INT32)MAC3 ); + SXY0 = SXY1; + SXY1 = SXY2; + SX2 = Lm_G1( F( (INT64)(INT32)OFX + ( (INT64)(INT16)IR1 * ( ( (UINT32)H << 16 ) / Lm_E( SZ3 ) ) ) ) >> 16 ); + SY2 = Lm_G2( F( (INT64)(INT32)OFY + ( (INT64)(INT16)IR2 * ( ( (UINT32)H << 16 ) / Lm_E( SZ3 ) ) ) ) >> 16 ); + MAC0 = F( (INT64)(INT32)DQB + ( (INT64)(INT16)DQA * ( ( (UINT32)H << 16 ) / Lm_E( SZ3 ) ) ) ); + IR0 = Lm_H( (INT32)MAC0 >> 12 ); + return; + } + break; + case 0x06: + if( gteop == 0x0400006 || + gteop == 0x1400006 || + gteop == 0x0155cc6 ) + { + GTELOG( "NCLIP" ); + FLAG = 0; + + MAC0 = F( ( (INT64)(INT16)SX0 * (INT16)SY1 ) + ( (INT16)SX1 * (INT16)SY2 ) + ( (INT16)SX2 * (INT16)SY0 ) - ( (INT16)SX0 * (INT16)SY2 ) - ( (INT16)SX1 * (INT16)SY0 ) - ( (INT16)SX2 * (INT16)SY1 ) ); + return; + } + break; + case 0x0c: + if( GTE_OP( gteop ) == 0x17 ) + { + GTELOG( "OP" ); + n_sf = 12 * GTE_SF( gteop ); + FLAG = 0; + + MAC1 = A1( ( ( (INT64)(INT32)D2 * (INT16)IR3 ) - ( (INT64)(INT32)D3 * (INT16)IR2 ) ) >> n_sf ); + MAC2 = A2( ( ( (INT64)(INT32)D3 * (INT16)IR1 ) - ( (INT64)(INT32)D1 * (INT16)IR3 ) ) >> n_sf ); + MAC3 = A3( ( ( (INT64)(INT32)D1 * (INT16)IR2 ) - ( (INT64)(INT32)D2 * (INT16)IR1 ) ) >> n_sf ); + IR1 = Lm_B1( (INT32)MAC1, 0 ); + IR2 = Lm_B2( (INT32)MAC2, 0 ); + IR3 = Lm_B3( (INT32)MAC3, 0 ); + return; + } + break; + case 0x10: + if( gteop == 0x0780010 ) + { + GTELOG( "DPCS" ); + FLAG = 0; + + MAC1 = A1( ( ( (INT64)R << 16 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)RFC - ( R << 4 ), 0 ) ) ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)G << 16 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)GFC - ( G << 4 ), 0 ) ) ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)B << 16 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)BFC - ( B << 4 ), 0 ) ) ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 0 ); + IR2 = Lm_B2( (INT32)MAC2, 0 ); + IR3 = Lm_B3( (INT32)MAC3, 0 ); + CD0 = CD1; + CD1 = CD2; + CD2 = CODE; + R0 = R1; + R1 = R2; + R2 = Lm_C1( (INT32)MAC1 >> 4 ); + G0 = G1; + G1 = G2; + G2 = Lm_C2( (INT32)MAC2 >> 4 ); + B0 = B1; + B1 = B2; + B2 = Lm_C3( (INT32)MAC3 >> 4 ); + return; + } + break; + case 0x11: + if( gteop == 0x0980011 ) + { + GTELOG( "INTPL" ); + FLAG = 0; + + MAC1 = A1( ( ( (INT64)(INT16)IR1 << 12 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)RFC - (INT16)IR1, 0 ) ) ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)(INT16)IR2 << 12 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)GFC - (INT16)IR2, 0 ) ) ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)(INT16)IR3 << 12 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)BFC - (INT16)IR3, 0 ) ) ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 0 ); + IR2 = Lm_B2( (INT32)MAC2, 0 ); + IR3 = Lm_B3( (INT32)MAC3, 0 ); + CD0 = CD1; + CD1 = CD2; + CD2 = CODE; + R0 = R1; + R1 = R2; + R2 = Lm_C1( (INT32)MAC1 ); + G0 = G1; + G1 = G2; + G2 = Lm_C2( (INT32)MAC2 ); + B0 = B1; + B1 = B2; + B2 = Lm_C3( (INT32)MAC3 ); + return; + } + break; + case 0x12: + if( GTE_OP( gteop ) == 0x04 ) + { + GTELOG( "MVMVA" ); + n_sf = 12 * GTE_SF( gteop ); + p_n_mx = p_p_n_mx[ GTE_MX( gteop ) ]; + n_v = GTE_V( gteop ); + if( n_v < 3 ) + { + n_v1 = *p_n_vx[ n_v ]; + n_v2 = *p_n_vy[ n_v ]; + n_v3 = *p_n_vz[ n_v ]; + } + else + { + n_v1 = IR1; + n_v2 = IR2; + n_v3 = IR3; + } + p_n_cv = p_p_n_cv[ GTE_CV( gteop ) ]; + n_lm = GTE_LM( gteop ); + FLAG = 0; + + MAC1 = A1( ( ( (INT64)(INT32)*p_n_cv[ 0 ] << 12 ) + ( (INT16)*p_n_mx[ 0 ] * (INT16)n_v1 ) + ( (INT16)*p_n_mx[ 1 ] * (INT16)n_v2 ) + ( (INT16)*p_n_mx[ 2 ] * (INT16)n_v3 ) ) >> n_sf ); + MAC2 = A2( ( ( (INT64)(INT32)*p_n_cv[ 1 ] << 12 ) + ( (INT16)*p_n_mx[ 3 ] * (INT16)n_v1 ) + ( (INT16)*p_n_mx[ 4 ] * (INT16)n_v2 ) + ( (INT16)*p_n_mx[ 5 ] * (INT16)n_v3 ) ) >> n_sf ); + MAC3 = A3( ( ( (INT64)(INT32)*p_n_cv[ 2 ] << 12 ) + ( (INT16)*p_n_mx[ 6 ] * (INT16)n_v1 ) + ( (INT16)*p_n_mx[ 7 ] * (INT16)n_v2 ) + ( (INT16)*p_n_mx[ 8 ] * (INT16)n_v3 ) ) >> n_sf ); + + IR1 = Lm_B1( (INT32)MAC1, n_lm ); + IR2 = Lm_B2( (INT32)MAC2, n_lm ); + IR3 = Lm_B3( (INT32)MAC3, n_lm ); + return; + } + break; + case 0x13: + if( gteop == 0x0e80413 ) + { + GTELOG( "NCDS" ); + FLAG = 0; + + MAC1 = A1( ( ( (INT64)(INT16)L11 * (INT16)VX0 ) + ( (INT16)L12 * (INT16)VY0 ) + ( (INT16)L13 * (INT16)VZ0 ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)(INT16)L21 * (INT16)VX0 ) + ( (INT16)L22 * (INT16)VY0 ) + ( (INT16)L23 * (INT16)VZ0 ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)(INT16)L31 * (INT16)VX0 ) + ( (INT16)L32 * (INT16)VY0 ) + ( (INT16)L33 * (INT16)VZ0 ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + MAC1 = A1( ( ( ( (INT64)R << 4 ) * (INT16)IR1 ) + ( (INT16)IR0 * Lm_B1( (INT32)RFC - ( ( R * (INT16)IR1 ) >> 8 ), 0 ) ) ) >> 12 ); + MAC2 = A2( ( ( ( (INT64)G << 4 ) * (INT16)IR2 ) + ( (INT16)IR0 * Lm_B2( (INT32)GFC - ( ( G * (INT16)IR2 ) >> 8 ), 0 ) ) ) >> 12 ); + MAC3 = A3( ( ( ( (INT64)B << 4 ) * (INT16)IR3 ) + ( (INT16)IR0 * Lm_B3( (INT32)BFC - ( ( B * (INT16)IR3 ) >> 8 ), 0 ) ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + CD0 = CD1; + CD1 = CD2; + CD2 = CODE; + R0 = R1; + R1 = R2; + R2 = Lm_C1( (INT32)MAC1 >> 4 ); + G0 = G1; + G1 = G2; + G2 = Lm_C2( (INT32)MAC2 >> 4 ); + B0 = B1; + B1 = B2; + B2 = Lm_C3( (INT32)MAC3 >> 4 ); + return; + } + break; + case 0x14: + if( gteop == 0x1280414 ) + { + GTELOG( "CDP" ); + FLAG = 0; + + MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); + IR1 = Lm_B1( MAC1, 1 ); + IR2 = Lm_B2( MAC2, 1 ); + IR3 = Lm_B3( MAC3, 1 ); + MAC1 = A1( ( ( ( (INT64)R << 4 ) * (INT16)IR1 ) + ( (INT16)IR0 * Lm_B1( (INT32)RFC - ( ( R * (INT16)IR1 ) >> 8 ), 0 ) ) ) >> 12 ); + MAC2 = A2( ( ( ( (INT64)G << 4 ) * (INT16)IR2 ) + ( (INT16)IR0 * Lm_B2( (INT32)GFC - ( ( G * (INT16)IR2 ) >> 8 ), 0 ) ) ) >> 12 ); + MAC3 = A3( ( ( ( (INT64)B << 4 ) * (INT16)IR3 ) + ( (INT16)IR0 * Lm_B3( (INT32)BFC - ( ( B * (INT16)IR3 ) >> 8 ), 0 ) ) ) >> 12 ); + IR1 = Lm_B1( MAC1, 1 ); + IR2 = Lm_B2( MAC2, 1 ); + IR3 = Lm_B3( MAC3, 1 ); + CD0 = CD1; + CD1 = CD2; + CD2 = CODE; + R0 = R1; + R1 = R2; + R2 = Lm_C1( (INT32)MAC1 >> 4 ); + G0 = G1; + G1 = G2; + G2 = Lm_C2( (INT32)MAC2 >> 4 ); + B0 = B1; + B1 = B2; + B2 = Lm_C3( (INT32)MAC3 >> 4 ); + return; + } + break; + case 0x16: + if( gteop == 0x0f80416 ) + { + GTELOG( "NCDT" ); + FLAG = 0; + + for( n_v = 0; n_v < 3; n_v++ ) + { + MAC1 = A1( ( ( (INT64)(INT16)L11 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L12 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L13 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)(INT16)L21 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L22 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L23 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)(INT16)L31 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L32 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L33 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + MAC1 = A1( ( ( ( (INT64)R << 4 ) * (INT16)IR1 ) + ( (INT16)IR0 * Lm_B1( (INT32)RFC - ( ( R * (INT16)IR1 ) >> 8 ), 0 ) ) ) >> 12 ); + MAC2 = A2( ( ( ( (INT64)G << 4 ) * (INT16)IR2 ) + ( (INT16)IR0 * Lm_B2( (INT32)GFC - ( ( G * (INT16)IR2 ) >> 8 ), 0 ) ) ) >> 12 ); + MAC3 = A3( ( ( ( (INT64)B << 4 ) * (INT16)IR3 ) + ( (INT16)IR0 * Lm_B3( (INT32)BFC - ( ( B * (INT16)IR3 ) >> 8 ), 0 ) ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + CD0 = CD1; + CD1 = CD2; + CD2 = CODE; + R0 = R1; + R1 = R2; + R2 = Lm_C1( (INT32)MAC1 >> 4 ); + G0 = G1; + G1 = G2; + G2 = Lm_C2( (INT32)MAC2 >> 4 ); + B0 = B1; + B1 = B2; + B2 = Lm_C3( (INT32)MAC3 >> 4 ); + } + return; + } + break; + case 0x1b: + if( gteop == 0x108041b ) + { + GTELOG( "NCCS" ); + FLAG = 0; + + MAC1 = A1( ( ( (INT64)(INT16)L11 * (INT16)VX0 ) + ( (INT16)L12 * (INT16)VY0 ) + ( (INT16)L13 * (INT16)VZ0 ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)(INT16)L21 * (INT16)VX0 ) + ( (INT16)L22 * (INT16)VY0 ) + ( (INT16)L23 * (INT16)VZ0 ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)(INT16)L31 * (INT16)VX0 ) + ( (INT16)L32 * (INT16)VY0 ) + ( (INT16)L33 * (INT16)VZ0 ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + MAC1 = A1( ( (INT64)R * (INT16)IR1 ) >> 8 ); + MAC2 = A2( ( (INT64)G * (INT16)IR2 ) >> 8 ); + MAC3 = A3( ( (INT64)B * (INT16)IR3 ) >> 8 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + CD0 = CD1; + CD1 = CD2; + CD2 = CODE; + R0 = R1; + R1 = R2; + R2 = Lm_C1( (INT32)MAC1 >> 4 ); + G0 = G1; + G1 = G2; + G2 = Lm_C2( (INT32)MAC2 >> 4 ); + B0 = B1; + B1 = B2; + B2 = Lm_C3( (INT32)MAC3 >> 4 ); + return; + } + break; + case 0x1c: + if( gteop == 0x138041c ) + { + GTELOG( "CC" ); + FLAG = 0; + + MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); + IR1 = Lm_B1( MAC1, 1 ); + IR2 = Lm_B2( MAC2, 1 ); + IR3 = Lm_B3( MAC3, 1 ); + MAC1 = A1( ( (INT64)R * (INT16)IR1 ) >> 8 ); + MAC2 = A2( ( (INT64)G * (INT16)IR2 ) >> 8 ); + MAC3 = A3( ( (INT64)B * (INT16)IR3 ) >> 8 ); + IR1 = Lm_B1( MAC1, 1 ); + IR2 = Lm_B2( MAC2, 1 ); + IR3 = Lm_B3( MAC3, 1 ); + CD0 = CD1; + CD1 = CD2; + CD2 = CODE; + R0 = R1; + R1 = R2; + R2 = Lm_C1( (INT32)MAC1 >> 4 ); + G0 = G1; + G1 = G2; + G2 = Lm_C2( (INT32)MAC2 >> 4 ); + B0 = B1; + B1 = B2; + B2 = Lm_C3( (INT32)MAC3 >> 4 ); + return; + } + break; + case 0x1e: + if( gteop == 0x0c8041e ) + { + GTELOG( "NCS" ); + FLAG = 0; + + MAC1 = A1( ( ( (INT64)(INT16)L11 * (INT16)VX0 ) + ( (INT16)L12 * (INT16)VY0 ) + ( (INT16)L13 * (INT16)VZ0 ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)(INT16)L21 * (INT16)VX0 ) + ( (INT16)L22 * (INT16)VY0 ) + ( (INT16)L23 * (INT16)VZ0 ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)(INT16)L31 * (INT16)VX0 ) + ( (INT16)L32 * (INT16)VY0 ) + ( (INT16)L33 * (INT16)VZ0 ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + CD0 = CD1; + CD1 = CD2; + CD2 = CODE; + R0 = R1; + R1 = R2; + R2 = Lm_C1( (INT32)MAC1 >> 4 ); + G0 = G1; + G1 = G2; + G2 = Lm_C2( (INT32)MAC2 >> 4 ); + B0 = B1; + B1 = B2; + B2 = Lm_C3( (INT32)MAC3 >> 4 ); + return; + } + break; + case 0x20: + if( gteop == 0x0d80420 ) + { + GTELOG( "NCT" ); + FLAG = 0; + + for( n_v = 0; n_v < 3; n_v++ ) + { + MAC1 = A1( ( ( (INT64)(INT16)L11 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L12 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L13 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)(INT16)L21 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L22 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L23 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)(INT16)L31 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L32 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L33 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + CD0 = CD1; + CD1 = CD2; + CD2 = CODE; + R0 = R1; + R1 = R2; + R2 = Lm_C1( (INT32)MAC1 >> 4 ); + G0 = G1; + G1 = G2; + G2 = Lm_C2( (INT32)MAC2 >> 4 ); + B0 = B1; + B1 = B2; + B2 = Lm_C3( (INT32)MAC3 >> 4 ); + } + return; + } + break; + case 0x28: + if( GTE_OP( gteop ) == 0x0a && GTE_LM( gteop ) == 1 ) + { + GTELOG( "SQR" ); + n_sf = 12 * GTE_SF( gteop ); + FLAG = 0; + + MAC1 = A1( ( (INT64)(INT16)IR1 * (INT16)IR1 ) >> n_sf ); + MAC2 = A2( ( (INT64)(INT16)IR2 * (INT16)IR2 ) >> n_sf ); + MAC3 = A3( ( (INT64)(INT16)IR3 * (INT16)IR3 ) >> n_sf ); + IR1 = Lm_B1( MAC1, 1 ); + IR2 = Lm_B2( MAC2, 1 ); + IR3 = Lm_B3( MAC3, 1 ); + return; + } + break; + // DCPL 0x29 + case 0x2a: + if( gteop == 0x0f8002a ) + { + GTELOG( "DPCT" ); + FLAG = 0; + + for( n_pass = 0; n_pass < 3; n_pass++ ) + { + MAC1 = A1( ( ( (INT64)R0 << 16 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)RFC - ( R0 << 4 ), 0 ) ) ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)G0 << 16 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)GFC - ( G0 << 4 ), 0 ) ) ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)B0 << 16 ) + ( (INT64)(INT16)IR0 * ( Lm_B1( (INT32)BFC - ( B0 << 4 ), 0 ) ) ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 0 ); + IR2 = Lm_B2( (INT32)MAC2, 0 ); + IR3 = Lm_B3( (INT32)MAC3, 0 ); + CD0 = CD1; + CD1 = CD2; + CD2 = CODE; + R0 = R1; + R1 = R2; + R2 = Lm_C1( (INT32)MAC1 >> 4 ); + G0 = G1; + G1 = G2; + G2 = Lm_C2( (INT32)MAC2 >> 4 ); + B0 = B1; + B1 = B2; + B2 = Lm_C3( (INT32)MAC3 >> 4 ); + } + return; + } + break; + case 0x2d: + if( gteop == 0x158002d ) + { + GTELOG( "AVSZ3" ); + FLAG = 0; + + MAC0 = F( ( (INT64)(INT16)ZSF3 * SZ1 ) + ( (INT16)ZSF3 * SZ2 ) + ( (INT16)ZSF3 * SZ3 ) ); + OTZ = Lm_D( (INT32)MAC0 >> 12 ); + return; + } + break; + case 0x2e: + if( gteop == 0x168002e ) + { + GTELOG( "AVSZ4" ); + FLAG = 0; + + MAC0 = F( ( (INT64)(INT16)ZSF4 * SZ0 ) + ( (INT16)ZSF4 * SZ1 ) + ( (INT16)ZSF4 * SZ2 ) + ( (INT16)ZSF4 * SZ3 ) ); + OTZ = Lm_D( (INT32)MAC0 >> 12 ); + return; + } + break; + case 0x30: + if( gteop == 0x0280030 ) + { + GTELOG( "RTPT" ); + FLAG = 0; + + for( n_v = 0; n_v < 3; n_v++ ) + { + MAC1 = A1( ( ( (INT64)(INT32)TRX << 12 ) + ( (INT16)R11 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)R12 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)R13 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)(INT32)TRY << 12 ) + ( (INT16)R21 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)R22 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)R23 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)(INT32)TRZ << 12 ) + ( (INT16)R31 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)R32 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)R33 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 0 ); + IR2 = Lm_B2( (INT32)MAC2, 0 ); + IR3 = Lm_B3( (INT32)MAC3, 0 ); + SZ0 = SZ1; + SZ1 = SZ2; + SZ2 = SZ3; + SZ3 = Lm_D( (INT32)MAC3 ); + SXY0 = SXY1; + SXY1 = SXY2; + SX2 = Lm_G1( F( ( (INT64)(INT32)OFX + ( (INT64)(INT16)IR1 * ( ( (UINT32)H << 16 ) / Lm_E( SZ3 ) ) ) ) >> 16 ) ); + SY2 = Lm_G2( F( ( (INT64)(INT32)OFY + ( (INT64)(INT16)IR2 * ( ( (UINT32)H << 16 ) / Lm_E( SZ3 ) ) ) ) >> 16 ) ); + MAC0 = F( (INT64)(INT32)DQB + ( (INT64)(INT16)DQA * ( ( (UINT32)H << 16 ) / Lm_E( SZ3 ) ) ) ); + IR0 = Lm_H( (INT32)MAC0 >> 12 ); + } + return; + } + break; + case 0x3d: + if( GTE_OP( gteop ) == 0x09 || + GTE_OP( gteop ) == 0x19 ) + { + GTELOG( "GPF" ); + n_sf = 12 * GTE_SF( gteop ); + FLAG = 0; + + MAC1 = A1( ( (INT64)(INT16)IR0 * (INT16)IR1 ) >> n_sf ); + MAC2 = A2( ( (INT64)(INT16)IR0 * (INT16)IR2 ) >> n_sf ); + MAC3 = A3( ( (INT64)(INT16)IR0 * (INT16)IR3 ) >> n_sf ); + IR1 = Lm_B1( (INT32)MAC1, 0 ); + IR2 = Lm_B2( (INT32)MAC2, 0 ); + IR3 = Lm_B3( (INT32)MAC3, 0 ); + CD0 = CD1; + CD1 = CD2; + CD2 = CODE; + R0 = R1; + R1 = R2; + R2 = Lm_C1( (INT32)MAC1 >> 4 ); + G0 = G1; + G1 = G2; + G2 = Lm_C2( (INT32)MAC2 >> 4 ); + B0 = B1; + B1 = B2; + B2 = Lm_C3( (INT32)MAC3 >> 4 ); + return; + } + break; + case 0x3e: + if( GTE_OP( gteop ) == 0x1a ) + { + GTELOG( "GPL" ); + n_sf = 12 * GTE_SF( gteop ); + FLAG = 0; + + MAC1 = A1( ( ( (INT64)(INT32)MAC1 << n_sf ) + ( (INT16)IR0 * (INT16)IR1 ) ) >> n_sf ); + MAC2 = A2( ( ( (INT64)(INT32)MAC2 << n_sf ) + ( (INT16)IR0 * (INT16)IR2 ) ) >> n_sf ); + MAC3 = A3( ( ( (INT64)(INT32)MAC3 << n_sf ) + ( (INT16)IR0 * (INT16)IR3 ) ) >> n_sf ); + IR1 = Lm_B1( (INT32)MAC1, 0 ); + IR2 = Lm_B2( (INT32)MAC2, 0 ); + IR3 = Lm_B3( (INT32)MAC3, 0 ); + CD0 = CD1; + CD1 = CD2; + CD2 = CODE; + R0 = R1; + R1 = R2; + R2 = Lm_C1( (INT32)MAC1 >> 4 ); + G0 = G1; + G1 = G2; + G2 = Lm_C2( (INT32)MAC2 >> 4 ); + B0 = B1; + B1 = B2; + B2 = Lm_C3( (INT32)MAC3 >> 4 ); + return; + } + break; + case 0x3f: + if( gteop == 0x108043f || + gteop == 0x118043f ) + { + GTELOG( "NCCT" ); + FLAG = 0; + + for( n_v = 0; n_v < 3; n_v++ ) + { + MAC1 = A1( ( ( (INT64)(INT16)L11 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L12 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L13 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)(INT16)L21 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L22 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L23 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)(INT16)L31 * (INT16)*p_n_vx[ n_v ] ) + ( (INT16)L32 * (INT16)*p_n_vy[ n_v ] ) + ( (INT16)L33 * (INT16)*p_n_vz[ n_v ] ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + MAC1 = A1( ( ( (INT64)RBK << 12 ) + ( (INT16)LR1 * (INT16)IR1 ) + ( (INT16)LR2 * (INT16)IR2 ) + ( (INT16)LR3 * (INT16)IR3 ) ) >> 12 ); + MAC2 = A2( ( ( (INT64)GBK << 12 ) + ( (INT16)LG1 * (INT16)IR1 ) + ( (INT16)LG2 * (INT16)IR2 ) + ( (INT16)LG3 * (INT16)IR3 ) ) >> 12 ); + MAC3 = A3( ( ( (INT64)BBK << 12 ) + ( (INT16)LB1 * (INT16)IR1 ) + ( (INT16)LB2 * (INT16)IR2 ) + ( (INT16)LB3 * (INT16)IR3 ) ) >> 12 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + MAC1 = A1( ( (INT64)R * (INT16)IR1 ) >> 8 ); + MAC2 = A2( ( (INT64)G * (INT16)IR2 ) >> 8 ); + MAC3 = A3( ( (INT64)B * (INT16)IR3 ) >> 8 ); + IR1 = Lm_B1( (INT32)MAC1, 1 ); + IR2 = Lm_B2( (INT32)MAC2, 1 ); + IR3 = Lm_B3( (INT32)MAC3, 1 ); + CD0 = CD1; + CD1 = CD2; + CD2 = CODE; + R0 = R1; + R1 = R2; + R2 = Lm_C1( (INT32)MAC1 >> 4 ); + G0 = G1; + G1 = G2; + G2 = Lm_C2( (INT32)MAC2 >> 4 ); + B0 = B1; + B1 = B2; + B2 = Lm_C3( (INT32)MAC3 >> 4 ); + } + return; + } + break; + } +// usrintf_showmessage_secs( 1, "unknown GTE op %08x", gteop ); + logerror( "%08x: unknown GTE op %08x\n", mipscpu.pc, gteop ); + mips_stop(); +} + +/************************************************************************** + * Generic set_info + **************************************************************************/ + +void mips_set_info(UINT32 state, union cpuinfo *info) +{ + switch (state) + { + /* --- the following bits of info are set as 64-bit signed integers --- */ + case CPUINFO_INT_INPUT_STATE + MIPS_IRQ0: set_irq_line(MIPS_IRQ0, info->i); break; + case CPUINFO_INT_INPUT_STATE + MIPS_IRQ1: set_irq_line(MIPS_IRQ1, info->i); break; + case CPUINFO_INT_INPUT_STATE + MIPS_IRQ2: set_irq_line(MIPS_IRQ2, info->i); break; + case CPUINFO_INT_INPUT_STATE + MIPS_IRQ3: set_irq_line(MIPS_IRQ3, info->i); break; + case CPUINFO_INT_INPUT_STATE + MIPS_IRQ4: set_irq_line(MIPS_IRQ4, info->i); break; + case CPUINFO_INT_INPUT_STATE + MIPS_IRQ5: set_irq_line(MIPS_IRQ5, info->i); break; + + case CPUINFO_INT_PC: mips_set_pc( info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_PC: mips_set_pc( info->i ); break; + case CPUINFO_INT_SP: /* no stack */ break; + case CPUINFO_INT_REGISTER + MIPS_DELAYV: mipscpu.delayv = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_DELAYR: if( info->i <= REGPC ) mipscpu.delayr = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_HI: mipscpu.hi = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_LO: mipscpu.lo = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R0: mipscpu.r[ 0 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R1: mipscpu.r[ 1 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R2: mipscpu.r[ 2 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R3: mipscpu.r[ 3 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R4: mipscpu.r[ 4 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R5: mipscpu.r[ 5 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R6: mipscpu.r[ 6 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R7: mipscpu.r[ 7 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R8: mipscpu.r[ 8 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R9: mipscpu.r[ 9 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R10: mipscpu.r[ 10 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R11: mipscpu.r[ 11 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R12: mipscpu.r[ 12 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R13: mipscpu.r[ 13 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R14: mipscpu.r[ 14 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R15: mipscpu.r[ 15 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R16: mipscpu.r[ 16 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R17: mipscpu.r[ 17 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R18: mipscpu.r[ 18 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R19: mipscpu.r[ 19 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R20: mipscpu.r[ 20 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R21: mipscpu.r[ 21 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R22: mipscpu.r[ 22 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R23: mipscpu.r[ 23 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R24: mipscpu.r[ 24 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R25: mipscpu.r[ 25 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R26: mipscpu.r[ 26 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R27: mipscpu.r[ 27 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R28: mipscpu.r[ 28 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R29: mipscpu.r[ 29 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R30: mipscpu.r[ 30 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_R31: mipscpu.r[ 31 ] = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R0: mips_set_cp0r( 0, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R1: mips_set_cp0r( 1, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R2: mips_set_cp0r( 2, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R3: mips_set_cp0r( 3, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R4: mips_set_cp0r( 4, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R5: mips_set_cp0r( 5, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R6: mips_set_cp0r( 6, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R7: mips_set_cp0r( 7, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R8: mips_set_cp0r( 8, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R9: mips_set_cp0r( 9, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R10: mips_set_cp0r( 10, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R11: mips_set_cp0r( 11, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R12: mips_set_cp0r( 12, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R13: mips_set_cp0r( 13, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R14: mips_set_cp0r( 14, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R15: mips_set_cp0r( 15, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R16: mips_set_cp0r( 16, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R17: mips_set_cp0r( 17, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R18: mips_set_cp0r( 18, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R19: mips_set_cp0r( 19, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R20: mips_set_cp0r( 20, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R21: mips_set_cp0r( 21, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R22: mips_set_cp0r( 22, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R23: mips_set_cp0r( 23, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R24: mips_set_cp0r( 24, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R25: mips_set_cp0r( 25, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R26: mips_set_cp0r( 26, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R27: mips_set_cp0r( 27, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R28: mips_set_cp0r( 28, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R29: mips_set_cp0r( 29, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R30: mips_set_cp0r( 30, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP0R31: mips_set_cp0r( 31, info->i ); break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR0: mipscpu.cp2dr[ 0 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR1: mipscpu.cp2dr[ 1 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR2: mipscpu.cp2dr[ 2 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR3: mipscpu.cp2dr[ 3 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR4: mipscpu.cp2dr[ 4 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR5: mipscpu.cp2dr[ 5 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR6: mipscpu.cp2dr[ 6 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR7: mipscpu.cp2dr[ 7 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR8: mipscpu.cp2dr[ 8 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR9: mipscpu.cp2dr[ 9 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR10: mipscpu.cp2dr[ 10 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR11: mipscpu.cp2dr[ 11 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR12: mipscpu.cp2dr[ 12 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR13: mipscpu.cp2dr[ 13 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR14: mipscpu.cp2dr[ 14 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR15: mipscpu.cp2dr[ 15 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR16: mipscpu.cp2dr[ 16 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR17: mipscpu.cp2dr[ 17 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR18: mipscpu.cp2dr[ 18 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR19: mipscpu.cp2dr[ 19 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR20: mipscpu.cp2dr[ 20 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR21: mipscpu.cp2dr[ 21 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR22: mipscpu.cp2dr[ 22 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR23: mipscpu.cp2dr[ 23 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR24: mipscpu.cp2dr[ 24 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR25: mipscpu.cp2dr[ 25 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR26: mipscpu.cp2dr[ 26 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR27: mipscpu.cp2dr[ 27 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR28: mipscpu.cp2dr[ 28 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR29: mipscpu.cp2dr[ 29 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR30: mipscpu.cp2dr[ 30 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR31: mipscpu.cp2dr[ 31 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR0: mipscpu.cp2cr[ 0 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR1: mipscpu.cp2cr[ 1 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR2: mipscpu.cp2cr[ 2 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR3: mipscpu.cp2cr[ 3 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR4: mipscpu.cp2cr[ 4 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR5: mipscpu.cp2cr[ 5 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR6: mipscpu.cp2cr[ 6 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR7: mipscpu.cp2cr[ 7 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR8: mipscpu.cp2cr[ 8 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR9: mipscpu.cp2cr[ 9 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR10: mipscpu.cp2cr[ 10 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR11: mipscpu.cp2cr[ 11 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR12: mipscpu.cp2cr[ 12 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR13: mipscpu.cp2cr[ 13 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR14: mipscpu.cp2cr[ 14 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR15: mipscpu.cp2cr[ 15 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR16: mipscpu.cp2cr[ 16 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR17: mipscpu.cp2cr[ 17 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR18: mipscpu.cp2cr[ 18 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR19: mipscpu.cp2cr[ 19 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR20: mipscpu.cp2cr[ 20 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR21: mipscpu.cp2cr[ 21 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR22: mipscpu.cp2cr[ 22 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR23: mipscpu.cp2cr[ 23 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR24: mipscpu.cp2cr[ 24 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR25: mipscpu.cp2cr[ 25 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR26: mipscpu.cp2cr[ 26 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR27: mipscpu.cp2cr[ 27 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR28: mipscpu.cp2cr[ 28 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR29: mipscpu.cp2cr[ 29 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR30: mipscpu.cp2cr[ 30 ].d = info->i; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR31: mipscpu.cp2cr[ 31 ].d = info->i; break; + + /* --- the following bits of info are set as pointers to data or functions --- */ + case CPUINFO_PTR_IRQ_CALLBACK: mipscpu.irq_callback = info->irqcallback; break; + } +} + + + +/************************************************************************** + * Generic get_info + **************************************************************************/ + +void mips_get_info(UINT32 state, union cpuinfo *info) +{ + switch (state) + { + /* --- the following bits of info are returned as 64-bit signed integers --- */ + case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(mipscpu); break; + case CPUINFO_INT_INPUT_LINES: info->i = 6; break; + case CPUINFO_INT_DEFAULT_IRQ_VECTOR: info->i = 0; break; + case CPUINFO_INT_ENDIANNESS: info->i = CPU_IS_LE; break; + case CPUINFO_INT_CLOCK_DIVIDER: info->i = 1; break; + case CPUINFO_INT_MIN_INSTRUCTION_BYTES: info->i = 4; break; + case CPUINFO_INT_MAX_INSTRUCTION_BYTES: info->i = 4; break; + case CPUINFO_INT_MIN_CYCLES: info->i = 1; break; + case CPUINFO_INT_MAX_CYCLES: info->i = 40; break; + + case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break; + case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_PROGRAM: info->i = 32; break; + case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_PROGRAM: info->i = 0; break; + case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; + case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_DATA: info->i = 0; break; + case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_DATA: info->i = 0; break; + case CPUINFO_INT_DATABUS_WIDTH + ADDRESS_SPACE_IO: info->i = 0; break; + case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_IO: info->i = 0; break; + case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_IO: info->i = 0; break; + + case CPUINFO_INT_INPUT_STATE + MIPS_IRQ0: info->i = (mipscpu.cp0r[ CP0_CAUSE ] & 0x400) ? ASSERT_LINE : CLEAR_LINE; break; + case CPUINFO_INT_INPUT_STATE + MIPS_IRQ1: info->i = (mipscpu.cp0r[ CP0_CAUSE ] & 0x800) ? ASSERT_LINE : CLEAR_LINE; break; + case CPUINFO_INT_INPUT_STATE + MIPS_IRQ2: info->i = (mipscpu.cp0r[ CP0_CAUSE ] & 0x1000) ? ASSERT_LINE : CLEAR_LINE; break; + case CPUINFO_INT_INPUT_STATE + MIPS_IRQ3: info->i = (mipscpu.cp0r[ CP0_CAUSE ] & 0x2000) ? ASSERT_LINE : CLEAR_LINE; break; + case CPUINFO_INT_INPUT_STATE + MIPS_IRQ4: info->i = (mipscpu.cp0r[ CP0_CAUSE ] & 0x4000) ? ASSERT_LINE : CLEAR_LINE; break; + case CPUINFO_INT_INPUT_STATE + MIPS_IRQ5: info->i = (mipscpu.cp0r[ CP0_CAUSE ] & 0x8000) ? ASSERT_LINE : CLEAR_LINE; break; + + case CPUINFO_INT_PREVIOUSPC: /* not implemented */ break; + + case CPUINFO_INT_PC: info->i = mipscpu.pc; break; + case CPUINFO_INT_REGISTER + MIPS_PC: info->i = mipscpu.pc; break; + case CPUINFO_INT_SP: + /* because there is no hardware stack and the pipeline causes the cpu to execute the + instruction after a subroutine call before the subroutine is executed there is little + chance of cmd_step_over() in mamedbg.c working. */ + info->i = 0; break; + case CPUINFO_INT_REGISTER + MIPS_DELAYV: info->i = mipscpu.delayv; break; + case CPUINFO_INT_REGISTER + MIPS_DELAYR: info->i = mipscpu.delayr; break; + case CPUINFO_INT_REGISTER + MIPS_HI: info->i = mipscpu.hi; break; + case CPUINFO_INT_REGISTER + MIPS_LO: info->i = mipscpu.lo; break; + case CPUINFO_INT_REGISTER + MIPS_R0: info->i = mipscpu.r[ 0 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R1: info->i = mipscpu.r[ 1 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R2: info->i = mipscpu.r[ 2 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R3: info->i = mipscpu.r[ 3 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R4: info->i = mipscpu.r[ 4 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R5: info->i = mipscpu.r[ 5 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R6: info->i = mipscpu.r[ 6 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R7: info->i = mipscpu.r[ 7 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R8: info->i = mipscpu.r[ 8 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R9: info->i = mipscpu.r[ 9 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R10: info->i = mipscpu.r[ 10 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R11: info->i = mipscpu.r[ 11 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R12: info->i = mipscpu.r[ 12 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R13: info->i = mipscpu.r[ 13 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R14: info->i = mipscpu.r[ 14 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R15: info->i = mipscpu.r[ 15 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R16: info->i = mipscpu.r[ 16 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R17: info->i = mipscpu.r[ 17 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R18: info->i = mipscpu.r[ 18 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R19: info->i = mipscpu.r[ 19 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R20: info->i = mipscpu.r[ 20 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R21: info->i = mipscpu.r[ 21 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R22: info->i = mipscpu.r[ 22 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R23: info->i = mipscpu.r[ 23 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R24: info->i = mipscpu.r[ 24 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R25: info->i = mipscpu.r[ 25 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R26: info->i = mipscpu.r[ 26 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R27: info->i = mipscpu.r[ 27 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R28: info->i = mipscpu.r[ 28 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R29: info->i = mipscpu.r[ 29 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R30: info->i = mipscpu.r[ 30 ]; break; + case CPUINFO_INT_REGISTER + MIPS_R31: info->i = mipscpu.r[ 31 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R0: info->i = mipscpu.cp0r[ 0 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R1: info->i = mipscpu.cp0r[ 1 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R2: info->i = mipscpu.cp0r[ 2 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R3: info->i = mipscpu.cp0r[ 3 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R4: info->i = mipscpu.cp0r[ 4 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R5: info->i = mipscpu.cp0r[ 5 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R6: info->i = mipscpu.cp0r[ 6 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R7: info->i = mipscpu.cp0r[ 7 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R8: info->i = mipscpu.cp0r[ 8 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R9: info->i = mipscpu.cp0r[ 9 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R10: info->i = mipscpu.cp0r[ 10 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R11: info->i = mipscpu.cp0r[ 11 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R12: info->i = mipscpu.cp0r[ 12 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R13: info->i = mipscpu.cp0r[ 13 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R14: info->i = mipscpu.cp0r[ 14 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R15: info->i = mipscpu.cp0r[ 15 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R16: info->i = mipscpu.cp0r[ 16 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R17: info->i = mipscpu.cp0r[ 17 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R18: info->i = mipscpu.cp0r[ 18 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R19: info->i = mipscpu.cp0r[ 19 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R20: info->i = mipscpu.cp0r[ 20 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R21: info->i = mipscpu.cp0r[ 21 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R22: info->i = mipscpu.cp0r[ 22 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R23: info->i = mipscpu.cp0r[ 23 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R24: info->i = mipscpu.cp0r[ 24 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R25: info->i = mipscpu.cp0r[ 25 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R26: info->i = mipscpu.cp0r[ 26 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R27: info->i = mipscpu.cp0r[ 27 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R28: info->i = mipscpu.cp0r[ 28 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R29: info->i = mipscpu.cp0r[ 29 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R30: info->i = mipscpu.cp0r[ 30 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP0R31: info->i = mipscpu.cp0r[ 31 ]; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR0: info->i = mipscpu.cp2dr[ 0 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR1: info->i = mipscpu.cp2dr[ 1 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR2: info->i = mipscpu.cp2dr[ 2 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR3: info->i = mipscpu.cp2dr[ 3 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR4: info->i = mipscpu.cp2dr[ 4 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR5: info->i = mipscpu.cp2dr[ 5 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR6: info->i = mipscpu.cp2dr[ 6 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR7: info->i = mipscpu.cp2dr[ 7 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR8: info->i = mipscpu.cp2dr[ 8 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR9: info->i = mipscpu.cp2dr[ 9 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR10: info->i = mipscpu.cp2dr[ 10 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR11: info->i = mipscpu.cp2dr[ 11 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR12: info->i = mipscpu.cp2dr[ 12 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR13: info->i = mipscpu.cp2dr[ 13 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR14: info->i = mipscpu.cp2dr[ 14 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR15: info->i = mipscpu.cp2dr[ 15 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR16: info->i = mipscpu.cp2dr[ 16 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR17: info->i = mipscpu.cp2dr[ 17 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR18: info->i = mipscpu.cp2dr[ 18 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR19: info->i = mipscpu.cp2dr[ 19 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR20: info->i = mipscpu.cp2dr[ 20 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR21: info->i = mipscpu.cp2dr[ 21 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR22: info->i = mipscpu.cp2dr[ 22 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR23: info->i = mipscpu.cp2dr[ 23 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR24: info->i = mipscpu.cp2dr[ 24 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR25: info->i = mipscpu.cp2dr[ 25 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR26: info->i = mipscpu.cp2dr[ 26 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR27: info->i = mipscpu.cp2dr[ 27 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR28: info->i = mipscpu.cp2dr[ 28 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR29: info->i = mipscpu.cp2dr[ 29 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR30: info->i = mipscpu.cp2dr[ 30 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2DR31: info->i = mipscpu.cp2dr[ 31 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR0: info->i = mipscpu.cp2cr[ 0 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR1: info->i = mipscpu.cp2cr[ 1 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR2: info->i = mipscpu.cp2cr[ 2 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR3: info->i = mipscpu.cp2cr[ 3 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR4: info->i = mipscpu.cp2cr[ 4 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR5: info->i = mipscpu.cp2cr[ 5 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR6: info->i = mipscpu.cp2cr[ 6 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR7: info->i = mipscpu.cp2cr[ 7 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR8: info->i = mipscpu.cp2cr[ 8 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR9: info->i = mipscpu.cp2cr[ 9 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR10: info->i = mipscpu.cp2cr[ 10 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR11: info->i = mipscpu.cp2cr[ 11 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR12: info->i = mipscpu.cp2cr[ 12 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR13: info->i = mipscpu.cp2cr[ 13 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR14: info->i = mipscpu.cp2cr[ 14 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR15: info->i = mipscpu.cp2cr[ 15 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR16: info->i = mipscpu.cp2cr[ 16 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR17: info->i = mipscpu.cp2cr[ 17 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR18: info->i = mipscpu.cp2cr[ 18 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR19: info->i = mipscpu.cp2cr[ 19 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR20: info->i = mipscpu.cp2cr[ 20 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR21: info->i = mipscpu.cp2cr[ 21 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR22: info->i = mipscpu.cp2cr[ 22 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR23: info->i = mipscpu.cp2cr[ 23 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR24: info->i = mipscpu.cp2cr[ 24 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR25: info->i = mipscpu.cp2cr[ 25 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR26: info->i = mipscpu.cp2cr[ 26 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR27: info->i = mipscpu.cp2cr[ 27 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR28: info->i = mipscpu.cp2cr[ 28 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR29: info->i = mipscpu.cp2cr[ 29 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR30: info->i = mipscpu.cp2cr[ 30 ].d; break; + case CPUINFO_INT_REGISTER + MIPS_CP2CR31: info->i = mipscpu.cp2cr[ 31 ].d; break; + + /* --- the following bits of info are returned as pointers to data or functions --- */ + case CPUINFO_PTR_SET_INFO: info->setinfo = mips_set_info; break; + case CPUINFO_PTR_GET_CONTEXT: info->getcontext = mips_get_context; break; + case CPUINFO_PTR_SET_CONTEXT: info->setcontext = mips_set_context; break; + case CPUINFO_PTR_INIT: info->init = mips_init; break; + case CPUINFO_PTR_RESET: info->reset = mips_reset; break; + case CPUINFO_PTR_EXIT: info->exit = mips_exit; break; + case CPUINFO_PTR_EXECUTE: info->execute = mips_execute; break; + case CPUINFO_PTR_BURN: info->burn = NULL; break; + case CPUINFO_PTR_DISASSEMBLE: info->disassemble = mips_dasm; break; + case CPUINFO_PTR_IRQ_CALLBACK: info->irqcallback = mipscpu.irq_callback; break; + case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &mips_ICount; break; + case CPUINFO_PTR_REGISTER_LAYOUT: info->p = mips_reg_layout; break; + case CPUINFO_PTR_WINDOW_LAYOUT: info->p = mips_win_layout; break; + + /* --- the following bits of info are returned as NULL-terminated strings --- */ +#if 0 + case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "PSX CPU"); break; + case CPUINFO_STR_CORE_FAMILY: strcpy(info->s = cpuintrf_temp_str(), "mipscpu"); break; + case CPUINFO_STR_CORE_VERSION: strcpy(info->s = cpuintrf_temp_str(), "1.4"); break; + case CPUINFO_STR_CORE_FILE: strcpy(info->s = cpuintrf_temp_str(), __FILE__); break; + case CPUINFO_STR_CORE_CREDITS: strcpy(info->s = cpuintrf_temp_str(), "Copyright 2003 smf"); break; + + case CPUINFO_STR_FLAGS: strcpy(info->s = cpuintrf_temp_str(), " "); break; + + case CPUINFO_STR_REGISTER + MIPS_PC: sprintf( info->s = cpuintrf_temp_str(), "pc :%08x", mipscpu.pc ); break; + case CPUINFO_STR_REGISTER + MIPS_DELAYV: sprintf( info->s = cpuintrf_temp_str(), "delay :%08x", mipscpu.delayv ); break; + case CPUINFO_STR_REGISTER + MIPS_DELAYR: sprintf( info->s = cpuintrf_temp_str(), "delay %s:%02x", delayn[ mipscpu.delayr ], mipscpu.delayr ); break; + case CPUINFO_STR_REGISTER + MIPS_HI: sprintf( info->s = cpuintrf_temp_str(), "hi :%08x", mipscpu.hi ); break; + case CPUINFO_STR_REGISTER + MIPS_LO: sprintf( info->s = cpuintrf_temp_str(), "lo :%08x", mipscpu.lo ); break; + case CPUINFO_STR_REGISTER + MIPS_R0: sprintf( info->s = cpuintrf_temp_str(), "zero :%08x", mipscpu.r[ 0 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R1: sprintf( info->s = cpuintrf_temp_str(), "at :%08x", mipscpu.r[ 1 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R2: sprintf( info->s = cpuintrf_temp_str(), "v0 :%08x", mipscpu.r[ 2 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R3: sprintf( info->s = cpuintrf_temp_str(), "v1 :%08x", mipscpu.r[ 3 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R4: sprintf( info->s = cpuintrf_temp_str(), "a0 :%08x", mipscpu.r[ 4 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R5: sprintf( info->s = cpuintrf_temp_str(), "a1 :%08x", mipscpu.r[ 5 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R6: sprintf( info->s = cpuintrf_temp_str(), "a2 :%08x", mipscpu.r[ 6 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R7: sprintf( info->s = cpuintrf_temp_str(), "a3 :%08x", mipscpu.r[ 7 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R8: sprintf( info->s = cpuintrf_temp_str(), "t0 :%08x", mipscpu.r[ 8 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R9: sprintf( info->s = cpuintrf_temp_str(), "t1 :%08x", mipscpu.r[ 9 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R10: sprintf( info->s = cpuintrf_temp_str(), "t2 :%08x", mipscpu.r[ 10 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R11: sprintf( info->s = cpuintrf_temp_str(), "t3 :%08x", mipscpu.r[ 11 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R12: sprintf( info->s = cpuintrf_temp_str(), "t4 :%08x", mipscpu.r[ 12 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R13: sprintf( info->s = cpuintrf_temp_str(), "t5 :%08x", mipscpu.r[ 13 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R14: sprintf( info->s = cpuintrf_temp_str(), "t6 :%08x", mipscpu.r[ 14 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R15: sprintf( info->s = cpuintrf_temp_str(), "t7 :%08x", mipscpu.r[ 15 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R16: sprintf( info->s = cpuintrf_temp_str(), "s0 :%08x", mipscpu.r[ 16 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R17: sprintf( info->s = cpuintrf_temp_str(), "s1 :%08x", mipscpu.r[ 17 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R18: sprintf( info->s = cpuintrf_temp_str(), "s2 :%08x", mipscpu.r[ 18 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R19: sprintf( info->s = cpuintrf_temp_str(), "s3 :%08x", mipscpu.r[ 19 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R20: sprintf( info->s = cpuintrf_temp_str(), "s4 :%08x", mipscpu.r[ 20 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R21: sprintf( info->s = cpuintrf_temp_str(), "s5 :%08x", mipscpu.r[ 21 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R22: sprintf( info->s = cpuintrf_temp_str(), "s6 :%08x", mipscpu.r[ 22 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R23: sprintf( info->s = cpuintrf_temp_str(), "s7 :%08x", mipscpu.r[ 23 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R24: sprintf( info->s = cpuintrf_temp_str(), "t8 :%08x", mipscpu.r[ 24 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R25: sprintf( info->s = cpuintrf_temp_str(), "t9 :%08x", mipscpu.r[ 25 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R26: sprintf( info->s = cpuintrf_temp_str(), "k0 :%08x", mipscpu.r[ 26 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R27: sprintf( info->s = cpuintrf_temp_str(), "k1 :%08x", mipscpu.r[ 27 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R28: sprintf( info->s = cpuintrf_temp_str(), "gp :%08x", mipscpu.r[ 28 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R29: sprintf( info->s = cpuintrf_temp_str(), "sp :%08x", mipscpu.r[ 29 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R30: sprintf( info->s = cpuintrf_temp_str(), "fp :%08x", mipscpu.r[ 30 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_R31: sprintf( info->s = cpuintrf_temp_str(), "ra :%08x", mipscpu.r[ 31 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R0: sprintf( info->s = cpuintrf_temp_str(), "Index :%08x", mipscpu.cp0r[ 0 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R1: sprintf( info->s = cpuintrf_temp_str(), "Random :%08x", mipscpu.cp0r[ 1 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R2: sprintf( info->s = cpuintrf_temp_str(), "EntryLo :%08x", mipscpu.cp0r[ 2 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R3: sprintf( info->s = cpuintrf_temp_str(), "cp0r3 :%08x", mipscpu.cp0r[ 3 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R4: sprintf( info->s = cpuintrf_temp_str(), "Context :%08x", mipscpu.cp0r[ 4 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R5: sprintf( info->s = cpuintrf_temp_str(), "cp0r5 :%08x", mipscpu.cp0r[ 5 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R6: sprintf( info->s = cpuintrf_temp_str(), "cp0r6 :%08x", mipscpu.cp0r[ 6 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R7: sprintf( info->s = cpuintrf_temp_str(), "cp0r7 :%08x", mipscpu.cp0r[ 7 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R8: sprintf( info->s = cpuintrf_temp_str(), "BadVAddr:%08x", mipscpu.cp0r[ 8 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R9: sprintf( info->s = cpuintrf_temp_str(), "cp0r9 :%08x", mipscpu.cp0r[ 9 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R10: sprintf( info->s = cpuintrf_temp_str(), "EntryHi :%08x", mipscpu.cp0r[ 10 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R11: sprintf( info->s = cpuintrf_temp_str(), "cp0r11 :%08x", mipscpu.cp0r[ 11 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R12: sprintf( info->s = cpuintrf_temp_str(), "SR :%08x", mipscpu.cp0r[ 12 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R13: sprintf( info->s = cpuintrf_temp_str(), "Cause :%08x", mipscpu.cp0r[ 13 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R14: sprintf( info->s = cpuintrf_temp_str(), "EPC :%08x", mipscpu.cp0r[ 14 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R15: sprintf( info->s = cpuintrf_temp_str(), "PRId :%08x", mipscpu.cp0r[ 15 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R16: sprintf( info->s = cpuintrf_temp_str(), "cp0r16 :%08x", mipscpu.cp0r[ 16 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R17: sprintf( info->s = cpuintrf_temp_str(), "cp0r17 :%08x", mipscpu.cp0r[ 17 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R18: sprintf( info->s = cpuintrf_temp_str(), "cp0r18 :%08x", mipscpu.cp0r[ 18 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R19: sprintf( info->s = cpuintrf_temp_str(), "cp0r19 :%08x", mipscpu.cp0r[ 19 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R20: sprintf( info->s = cpuintrf_temp_str(), "cp0r20 :%08x", mipscpu.cp0r[ 20 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R21: sprintf( info->s = cpuintrf_temp_str(), "cp0r21 :%08x", mipscpu.cp0r[ 21 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R22: sprintf( info->s = cpuintrf_temp_str(), "cp0r22 :%08x", mipscpu.cp0r[ 22 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R23: sprintf( info->s = cpuintrf_temp_str(), "cp0r23 :%08x", mipscpu.cp0r[ 23 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R24: sprintf( info->s = cpuintrf_temp_str(), "cp0r24 :%08x", mipscpu.cp0r[ 24 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R25: sprintf( info->s = cpuintrf_temp_str(), "cp0r25 :%08x", mipscpu.cp0r[ 25 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R26: sprintf( info->s = cpuintrf_temp_str(), "cp0r26 :%08x", mipscpu.cp0r[ 26 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R27: sprintf( info->s = cpuintrf_temp_str(), "cp0r27 :%08x", mipscpu.cp0r[ 27 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R28: sprintf( info->s = cpuintrf_temp_str(), "cp0r28 :%08x", mipscpu.cp0r[ 28 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R29: sprintf( info->s = cpuintrf_temp_str(), "cp0r29 :%08x", mipscpu.cp0r[ 29 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R30: sprintf( info->s = cpuintrf_temp_str(), "cp0r30 :%08x", mipscpu.cp0r[ 30 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP0R31: sprintf( info->s = cpuintrf_temp_str(), "cp0r31 :%08x", mipscpu.cp0r[ 31 ] ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR0: sprintf( info->s = cpuintrf_temp_str(), "vxy0 :%08x", mipscpu.cp2dr[ 0 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR1: sprintf( info->s = cpuintrf_temp_str(), "vz0 :%08x", mipscpu.cp2dr[ 1 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR2: sprintf( info->s = cpuintrf_temp_str(), "vxy1 :%08x", mipscpu.cp2dr[ 2 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR3: sprintf( info->s = cpuintrf_temp_str(), "vz1 :%08x", mipscpu.cp2dr[ 3 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR4: sprintf( info->s = cpuintrf_temp_str(), "vxy2 :%08x", mipscpu.cp2dr[ 4 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR5: sprintf( info->s = cpuintrf_temp_str(), "vz2 :%08x", mipscpu.cp2dr[ 5 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR6: sprintf( info->s = cpuintrf_temp_str(), "rgb :%08x", mipscpu.cp2dr[ 6 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR7: sprintf( info->s = cpuintrf_temp_str(), "otz :%08x", mipscpu.cp2dr[ 7 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR8: sprintf( info->s = cpuintrf_temp_str(), "ir0 :%08x", mipscpu.cp2dr[ 8 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR9: sprintf( info->s = cpuintrf_temp_str(), "ir1 :%08x", mipscpu.cp2dr[ 9 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR10: sprintf( info->s = cpuintrf_temp_str(), "ir2 :%08x", mipscpu.cp2dr[ 10 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR11: sprintf( info->s = cpuintrf_temp_str(), "ir3 :%08x", mipscpu.cp2dr[ 11 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR12: sprintf( info->s = cpuintrf_temp_str(), "sxy0 :%08x", mipscpu.cp2dr[ 12 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR13: sprintf( info->s = cpuintrf_temp_str(), "sxy1 :%08x", mipscpu.cp2dr[ 13 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR14: sprintf( info->s = cpuintrf_temp_str(), "sxy2 :%08x", mipscpu.cp2dr[ 14 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR15: sprintf( info->s = cpuintrf_temp_str(), "sxyp :%08x", mipscpu.cp2dr[ 15 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR16: sprintf( info->s = cpuintrf_temp_str(), "sz0 :%08x", mipscpu.cp2dr[ 16 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR17: sprintf( info->s = cpuintrf_temp_str(), "sz1 :%08x", mipscpu.cp2dr[ 17 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR18: sprintf( info->s = cpuintrf_temp_str(), "sz2 :%08x", mipscpu.cp2dr[ 18 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR19: sprintf( info->s = cpuintrf_temp_str(), "sz3 :%08x", mipscpu.cp2dr[ 19 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR20: sprintf( info->s = cpuintrf_temp_str(), "rgb0 :%08x", mipscpu.cp2dr[ 20 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR21: sprintf( info->s = cpuintrf_temp_str(), "rgb1 :%08x", mipscpu.cp2dr[ 21 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR22: sprintf( info->s = cpuintrf_temp_str(), "rgb2 :%08x", mipscpu.cp2dr[ 22 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR23: sprintf( info->s = cpuintrf_temp_str(), "res1 :%08x", mipscpu.cp2dr[ 23 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR24: sprintf( info->s = cpuintrf_temp_str(), "mac0 :%08x", mipscpu.cp2dr[ 24 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR25: sprintf( info->s = cpuintrf_temp_str(), "mac1 :%08x", mipscpu.cp2dr[ 25 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR26: sprintf( info->s = cpuintrf_temp_str(), "mac2 :%08x", mipscpu.cp2dr[ 26 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR27: sprintf( info->s = cpuintrf_temp_str(), "mac3 :%08x", mipscpu.cp2dr[ 27 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR28: sprintf( info->s = cpuintrf_temp_str(), "irgb :%08x", mipscpu.cp2dr[ 28 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR29: sprintf( info->s = cpuintrf_temp_str(), "orgb :%08x", mipscpu.cp2dr[ 29 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR30: sprintf( info->s = cpuintrf_temp_str(), "lzcs :%08x", mipscpu.cp2dr[ 30 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2DR31: sprintf( info->s = cpuintrf_temp_str(), "lzcr :%08x", mipscpu.cp2dr[ 31 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR0: sprintf( info->s = cpuintrf_temp_str(), "r11r12 :%08x", mipscpu.cp2cr[ 0 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR1: sprintf( info->s = cpuintrf_temp_str(), "r13r21 :%08x", mipscpu.cp2cr[ 1 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR2: sprintf( info->s = cpuintrf_temp_str(), "r22r23 :%08x", mipscpu.cp2cr[ 2 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR3: sprintf( info->s = cpuintrf_temp_str(), "r31r32 :%08x", mipscpu.cp2cr[ 3 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR4: sprintf( info->s = cpuintrf_temp_str(), "r33 :%08x", mipscpu.cp2cr[ 4 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR5: sprintf( info->s = cpuintrf_temp_str(), "trx :%08x", mipscpu.cp2cr[ 5 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR6: sprintf( info->s = cpuintrf_temp_str(), "try :%08x", mipscpu.cp2cr[ 6 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR7: sprintf( info->s = cpuintrf_temp_str(), "trz :%08x", mipscpu.cp2cr[ 7 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR8: sprintf( info->s = cpuintrf_temp_str(), "l11l12 :%08x", mipscpu.cp2cr[ 8 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR9: sprintf( info->s = cpuintrf_temp_str(), "l13l21 :%08x", mipscpu.cp2cr[ 9 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR10: sprintf( info->s = cpuintrf_temp_str(), "l22l23 :%08x", mipscpu.cp2cr[ 10 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR11: sprintf( info->s = cpuintrf_temp_str(), "l31l32 :%08x", mipscpu.cp2cr[ 11 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR12: sprintf( info->s = cpuintrf_temp_str(), "l33 :%08x", mipscpu.cp2cr[ 12 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR13: sprintf( info->s = cpuintrf_temp_str(), "rbk :%08x", mipscpu.cp2cr[ 13 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR14: sprintf( info->s = cpuintrf_temp_str(), "gbk :%08x", mipscpu.cp2cr[ 14 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR15: sprintf( info->s = cpuintrf_temp_str(), "bbk :%08x", mipscpu.cp2cr[ 15 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR16: sprintf( info->s = cpuintrf_temp_str(), "lr1lr2 :%08x", mipscpu.cp2cr[ 16 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR17: sprintf( info->s = cpuintrf_temp_str(), "lr31g1 :%08x", mipscpu.cp2cr[ 17 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR18: sprintf( info->s = cpuintrf_temp_str(), "lg2lg3 :%08x", mipscpu.cp2cr[ 18 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR19: sprintf( info->s = cpuintrf_temp_str(), "lb1lb2 :%08x", mipscpu.cp2cr[ 19 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR20: sprintf( info->s = cpuintrf_temp_str(), "lb3 :%08x", mipscpu.cp2cr[ 20 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR21: sprintf( info->s = cpuintrf_temp_str(), "rfc :%08x", mipscpu.cp2cr[ 21 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR22: sprintf( info->s = cpuintrf_temp_str(), "gfc :%08x", mipscpu.cp2cr[ 22 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR23: sprintf( info->s = cpuintrf_temp_str(), "bfc :%08x", mipscpu.cp2cr[ 23 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR24: sprintf( info->s = cpuintrf_temp_str(), "ofx :%08x", mipscpu.cp2cr[ 24 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR25: sprintf( info->s = cpuintrf_temp_str(), "ofy :%08x", mipscpu.cp2cr[ 25 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR26: sprintf( info->s = cpuintrf_temp_str(), "h :%08x", mipscpu.cp2cr[ 26 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR27: sprintf( info->s = cpuintrf_temp_str(), "dqa :%08x", mipscpu.cp2cr[ 27 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR28: sprintf( info->s = cpuintrf_temp_str(), "dqb :%08x", mipscpu.cp2cr[ 28 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR29: sprintf( info->s = cpuintrf_temp_str(), "zsf3 :%08x", mipscpu.cp2cr[ 29 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR30: sprintf( info->s = cpuintrf_temp_str(), "zsf4 :%08x", mipscpu.cp2cr[ 30 ].d ); break; + case CPUINFO_STR_REGISTER + MIPS_CP2CR31: sprintf( info->s = cpuintrf_temp_str(), "flag :%08x", mipscpu.cp2cr[ 31 ].d ); break; +#endif + } +} + +uint32 mips_get_cause(void) +{ + return mipscpu.cp0r[ CP0_CAUSE ]; +} + +uint32 mips_get_status(void) +{ + return mipscpu.cp0r[ CP0_SR ]; +} + +void mips_set_status(uint32 status) +{ + mipscpu.cp0r[ CP0_SR ] = status; +} + +uint32 mips_get_ePC(void) +{ + return mipscpu.cp0r[ CP0_EPC ]; +} + +int mips_get_icount(void) +{ + return mips_ICount; +} + +void mips_set_icount(int count) +{ + mips_ICount = count; +} + + +#if (HAS_PSXCPU) +/************************************************************************** + * CPU-specific set_info + **************************************************************************/ + +void psxcpu_get_info(UINT32 state, union cpuinfo *info) +{ + switch (state) + { + /* --- the following bits of info are returned as NULL-terminated strings --- */ +// case CPUINFO_STR_NAME: strcpy(info->s = cpuintrf_temp_str(), "PSX CPU"); break; + + default: + mips_get_info(state, info); + break; + } +} +#endif diff -r c40585c57877 -r 7fc2c317d190 src/psf2/psx.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/psx.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,288 @@ +#ifndef _MIPS_H +#define _MIPS_H + +#include "ao.h" +//#include "driver.h" + +typedef void genf(void); +typedef int offs_t; + +#define cpu_readop32(pc) program_read_dword_32le(pc) +#define change_pc(pc) \ + + +#ifdef __GNUC__ +#if (__GNUC__ < 2) || ((__GNUC__ == 2) && (__GNUC_MINOR__ <= 7)) +#define UNUSEDARG +#else +#define UNUSEDARG __attribute__((__unused__)) +#endif +#else +#define UNUSEDARG +#endif + +typedef int8 (*read8_handler) (UNUSEDARG offs_t offset); +typedef void (*write8_handler) (UNUSEDARG offs_t offset, UNUSEDARG int8 data); +typedef int16 (*read16_handler) (UNUSEDARG offs_t offset, UNUSEDARG int16 mem_mask); +typedef void (*write16_handler)(UNUSEDARG offs_t offset, UNUSEDARG int16 data, UNUSEDARG int16 mem_mask); +typedef int32 (*read32_handler) (UNUSEDARG offs_t offset, UNUSEDARG int32 mem_mask); +typedef void (*write32_handler)(UNUSEDARG offs_t offset, UNUSEDARG int32 data, UNUSEDARG int32 mem_mask); +typedef int64 (*read64_handler) (UNUSEDARG offs_t offset, UNUSEDARG int64 mem_mask); +typedef void (*write64_handler)(UNUSEDARG offs_t offset, UNUSEDARG int64 data, UNUSEDARG int64 mem_mask); + +union read_handlers_t +{ + genf * handler; + read8_handler handler8; + read16_handler handler16; + read32_handler handler32; + read64_handler handler64; +}; + +union write_handlers_t +{ + genf * handler; + write8_handler handler8; + write16_handler handler16; + write32_handler handler32; + write64_handler handler64; +}; + +struct address_map_t +{ + uint32 flags; /* flags and additional info about this entry */ + offs_t start, end; /* start/end (or mask/match) values */ + offs_t mirror; /* mirror bits */ + offs_t mask; /* mask bits */ + union read_handlers_t read; /* read handler callback */ + union write_handlers_t write; /* write handler callback */ + void * memory; /* pointer to memory backing this entry */ + uint32 share; /* index of a shared memory block */ + void ** base; /* receives pointer to memory (optional) */ + size_t * size; /* receives size of area in bytes (optional) */ +}; +typedef struct address_map_t *(*construct_map_t)(struct address_map_t *map); + +union cpuinfo +{ + int64 i; /* generic integers */ + void * p; /* generic pointers */ + genf * f; /* generic function pointers */ + char * s; /* generic strings */ + + void (*setinfo)(UINT32 state, union cpuinfo *info);/* CPUINFO_PTR_SET_INFO */ + void (*getcontext)(void *context); /* CPUINFO_PTR_GET_CONTEXT */ + void (*setcontext)(void *context); /* CPUINFO_PTR_SET_CONTEXT */ + void (*init)(void); /* CPUINFO_PTR_INIT */ + void (*reset)(void *param); /* CPUINFO_PTR_RESET */ + void (*exit)(void); /* CPUINFO_PTR_EXIT */ + int (*execute)(int cycles); /* CPUINFO_PTR_EXECUTE */ + void (*burn)(int cycles); /* CPUINFO_PTR_BURN */ + offs_t (*disassemble)(char *buffer, offs_t pc); /* CPUINFO_PTR_DISASSEMBLE */ + int (*irqcallback)(int state); /* CPUINFO_PTR_IRQCALLBACK */ + int * icount; /* CPUINFO_PTR_INSTRUCTION_COUNTER */ + construct_map_t internal_map; /* CPUINFO_PTR_INTERNAL_MEMORY_MAP */ +}; + +enum +{ + MIPS_PC = 1, + MIPS_DELAYV, MIPS_DELAYR, + MIPS_HI, MIPS_LO, + MIPS_R0, MIPS_R1, + MIPS_R2, MIPS_R3, + MIPS_R4, MIPS_R5, + MIPS_R6, MIPS_R7, + MIPS_R8, MIPS_R9, + MIPS_R10, MIPS_R11, + MIPS_R12, MIPS_R13, + MIPS_R14, MIPS_R15, + MIPS_R16, MIPS_R17, + MIPS_R18, MIPS_R19, + MIPS_R20, MIPS_R21, + MIPS_R22, MIPS_R23, + MIPS_R24, MIPS_R25, + MIPS_R26, MIPS_R27, + MIPS_R28, MIPS_R29, + MIPS_R30, MIPS_R31, + MIPS_CP0R0, MIPS_CP0R1, + MIPS_CP0R2, MIPS_CP0R3, + MIPS_CP0R4, MIPS_CP0R5, + MIPS_CP0R6, MIPS_CP0R7, + MIPS_CP0R8, MIPS_CP0R9, + MIPS_CP0R10, MIPS_CP0R11, + MIPS_CP0R12, MIPS_CP0R13, + MIPS_CP0R14, MIPS_CP0R15, + MIPS_CP0R16, MIPS_CP0R17, + MIPS_CP0R18, MIPS_CP0R19, + MIPS_CP0R20, MIPS_CP0R21, + MIPS_CP0R22, MIPS_CP0R23, + MIPS_CP0R24, MIPS_CP0R25, + MIPS_CP0R26, MIPS_CP0R27, + MIPS_CP0R28, MIPS_CP0R29, + MIPS_CP0R30, MIPS_CP0R31, + MIPS_CP2DR0, MIPS_CP2DR1, + MIPS_CP2DR2, MIPS_CP2DR3, + MIPS_CP2DR4, MIPS_CP2DR5, + MIPS_CP2DR6, MIPS_CP2DR7, + MIPS_CP2DR8, MIPS_CP2DR9, + MIPS_CP2DR10, MIPS_CP2DR11, + MIPS_CP2DR12, MIPS_CP2DR13, + MIPS_CP2DR14, MIPS_CP2DR15, + MIPS_CP2DR16, MIPS_CP2DR17, + MIPS_CP2DR18, MIPS_CP2DR19, + MIPS_CP2DR20, MIPS_CP2DR21, + MIPS_CP2DR22, MIPS_CP2DR23, + MIPS_CP2DR24, MIPS_CP2DR25, + MIPS_CP2DR26, MIPS_CP2DR27, + MIPS_CP2DR28, MIPS_CP2DR29, + MIPS_CP2DR30, MIPS_CP2DR31, + MIPS_CP2CR0, MIPS_CP2CR1, + MIPS_CP2CR2, MIPS_CP2CR3, + MIPS_CP2CR4, MIPS_CP2CR5, + MIPS_CP2CR6, MIPS_CP2CR7, + MIPS_CP2CR8, MIPS_CP2CR9, + MIPS_CP2CR10, MIPS_CP2CR11, + MIPS_CP2CR12, MIPS_CP2CR13, + MIPS_CP2CR14, MIPS_CP2CR15, + MIPS_CP2CR16, MIPS_CP2CR17, + MIPS_CP2CR18, MIPS_CP2CR19, + MIPS_CP2CR20, MIPS_CP2CR21, + MIPS_CP2CR22, MIPS_CP2CR23, + MIPS_CP2CR24, MIPS_CP2CR25, + MIPS_CP2CR26, MIPS_CP2CR27, + MIPS_CP2CR28, MIPS_CP2CR29, + MIPS_CP2CR30, MIPS_CP2CR31 +}; + +#define MIPS_INT_NONE ( -1 ) + +#define MIPS_IRQ0 ( 0 ) +#define MIPS_IRQ1 ( 1 ) +#define MIPS_IRQ2 ( 2 ) +#define MIPS_IRQ3 ( 3 ) +#define MIPS_IRQ4 ( 4 ) +#define MIPS_IRQ5 ( 5 ) + +#define MIPS_BYTE_EXTEND( a ) ( (INT32)(INT8)a ) +#define MIPS_WORD_EXTEND( a ) ( (INT32)(INT16)a ) + +#define INS_OP( op ) ( ( op >> 26 ) & 63 ) +#define INS_RS( op ) ( ( op >> 21 ) & 31 ) +#define INS_RT( op ) ( ( op >> 16 ) & 31 ) +#define INS_IMMEDIATE( op ) ( op & 0xffff ) +#define INS_TARGET( op ) ( op & 0x3ffffff ) +#define INS_RD( op ) ( ( op >> 11 ) & 31 ) +#define INS_SHAMT( op ) ( ( op >> 6 ) & 31 ) +#define INS_FUNCT( op ) ( op & 63 ) +#define INS_CODE( op ) ( ( op >> 6 ) & 0xfffff ) +#define INS_CO( op ) ( ( op >> 25 ) & 1 ) +#define INS_COFUN( op ) ( op & 0x1ffffff ) +#define INS_CF( op ) ( op & 63 ) + +#define GTE_OP( op ) ( ( op >> 20 ) & 31 ) +#define GTE_SF( op ) ( ( op >> 19 ) & 1 ) +#define GTE_MX( op ) ( ( op >> 17 ) & 3 ) +#define GTE_V( op ) ( ( op >> 15 ) & 3 ) +#define GTE_CV( op ) ( ( op >> 13 ) & 3 ) +#define GTE_CD( op ) ( ( op >> 11 ) & 3 ) /* not used */ +#define GTE_LM( op ) ( ( op >> 10 ) & 1 ) +#define GTE_CT( op ) ( ( op >> 6 ) & 15 ) /* not used */ +#define GTE_FUNCT( op ) ( op & 63 ) + +#define OP_SPECIAL ( 0 ) +#define OP_REGIMM ( 1 ) +#define OP_J ( 2 ) +#define OP_JAL ( 3 ) +#define OP_BEQ ( 4 ) +#define OP_BNE ( 5 ) +#define OP_BLEZ ( 6 ) +#define OP_BGTZ ( 7 ) +#define OP_ADDI ( 8 ) +#define OP_ADDIU ( 9 ) +#define OP_SLTI ( 10 ) +#define OP_SLTIU ( 11 ) +#define OP_ANDI ( 12 ) +#define OP_ORI ( 13 ) +#define OP_XORI ( 14 ) +#define OP_LUI ( 15 ) +#define OP_COP0 ( 16 ) +#define OP_COP1 ( 17 ) +#define OP_COP2 ( 18 ) +#define OP_LB ( 32 ) +#define OP_LH ( 33 ) +#define OP_LWL ( 34 ) +#define OP_LW ( 35 ) +#define OP_LBU ( 36 ) +#define OP_LHU ( 37 ) +#define OP_LWR ( 38 ) +#define OP_SB ( 40 ) +#define OP_SH ( 41 ) +#define OP_SWL ( 42 ) +#define OP_SW ( 43 ) +#define OP_SWR ( 46 ) +#define OP_LWC1 ( 49 ) +#define OP_LWC2 ( 50 ) +#define OP_SWC1 ( 57 ) +#define OP_SWC2 ( 58 ) + +/* OP_SPECIAL */ +#define FUNCT_SLL ( 0 ) +#define FUNCT_SRL ( 2 ) +#define FUNCT_SRA ( 3 ) +#define FUNCT_SLLV ( 4 ) +#define FUNCT_SRLV ( 6 ) +#define FUNCT_SRAV ( 7 ) +#define FUNCT_JR ( 8 ) +#define FUNCT_JALR ( 9 ) +#define FUNCT_HLECALL ( 11 ) +#define FUNCT_SYSCALL ( 12 ) +#define FUNCT_BREAK ( 13 ) +#define FUNCT_MFHI ( 16 ) +#define FUNCT_MTHI ( 17 ) +#define FUNCT_MFLO ( 18 ) +#define FUNCT_MTLO ( 19 ) +#define FUNCT_MULT ( 24 ) +#define FUNCT_MULTU ( 25 ) +#define FUNCT_DIV ( 26 ) +#define FUNCT_DIVU ( 27 ) +#define FUNCT_ADD ( 32 ) +#define FUNCT_ADDU ( 33 ) +#define FUNCT_SUB ( 34 ) +#define FUNCT_SUBU ( 35 ) +#define FUNCT_AND ( 36 ) +#define FUNCT_OR ( 37 ) +#define FUNCT_XOR ( 38 ) +#define FUNCT_NOR ( 39 ) +#define FUNCT_SLT ( 42 ) +#define FUNCT_SLTU ( 43 ) + +/* OP_REGIMM */ +#define RT_BLTZ ( 0 ) +#define RT_BGEZ ( 1 ) +#define RT_BLTZAL ( 16 ) +#define RT_BGEZAL ( 17 ) + +/* OP_COP0/OP_COP1/OP_COP2 */ +#define RS_MFC ( 0 ) +#define RS_CFC ( 2 ) +#define RS_MTC ( 4 ) +#define RS_CTC ( 6 ) +#define RS_BC ( 8 ) + +/* RS_BC */ +#define RT_BCF ( 0 ) +#define RT_BCT ( 1 ) + +/* OP_COP0 */ +#define CF_RFE ( 16 ) + +#ifdef MAME_DEBUG +extern unsigned DasmMIPS(char *buff, unsigned _pc); +#endif + +#if (HAS_PSXCPU) +extern void psxcpu_get_info(UINT32 state, union cpuinfo *info); +#endif + +#endif diff -r c40585c57877 -r 7fc2c317d190 src/psf2/psx_hw.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/psf2/psx_hw.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,3540 @@ +/* + Audio Overload SDK - PSX and IOP hardware emulation + + Copyright (c) 2007 R. Belmont and Richard Bannister. + + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + * Neither the names of R. Belmont and Richard Bannister nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* + psx_hw.c - Minimal PSX/IOP hardware glue/emulation/whatever + + supported: main RAM (2 MB, mirrored to fill an 8 MB space like on real HW) + DMA channel 4 (SPURAM) in both directions (including completion IRQ) + VBL IRQ + Root counters 2 and 3 including completion events and IRQs + Some BIOS services including exception handling (via HLE) + HLE emulation of IOP operating system, including multithreading + SPU(2), SPU(2)RAM (via PEOpS) + + + + Special notes: + PSF1 + - Chocobo's Dungeon 2 contains an illegal code sequence (patched) + + PSF2 + - Shadow Hearts assumes that the wave buffer alloc will go to 0x80060000 and the sequence buffer to 0x80170000. + Our memory management doesn't work out that way, so we have to (wait for it) cheese it. +*/ + +#include +#include "ao.h" +#include "cpuintrf.h" +#include "psx.h" + +#define DEBUG_HLE_BIOS (0) // debug PS1 HLE BIOS +#define DEBUG_HLE_IOP (0) // debug PS2 IOP OS calls +#define DEBUG_UNK_RW (0) // debug unknown reads/writes +#define DEBUG_THREADING (0) // debug PS2 IOP threading + +extern void mips_get_info(UINT32 state, union cpuinfo *info); +extern void mips_set_info(UINT32 state, union cpuinfo *info); +extern int psxcpu_verbose; +extern uint16 SPUreadRegister(uint32 reg); +extern void SPUwriteRegister(uint32 reg, uint16 val); +extern void SPUwriteDMAMem(uint32 usPSXMem,int iSize); +extern void SPUreadDMAMem(uint32 usPSXMem,int iSize); +extern void mips_shorten_frame(void); +extern int mips_execute( int cycles ); +extern uint32 psf2_load_file(char *file, uint8 *buf, uint32 buflen); +extern uint32 psf2_load_elf(uint8 *start, uint32 len); +void psx_hw_runcounters(void); +int mips_get_icount(void); +void mips_set_icount(int count); + +extern int psf_refresh; + +static int skipyet = 0; + +// SPU2 +extern void SPU2write(unsigned long reg, unsigned short val); +extern unsigned short SPU2read(unsigned long reg); +extern void SPU2readDMA4Mem(uint32 usPSXMem,int iSize); +extern void SPU2writeDMA4Mem(uint32 usPSXMem,int iSize); +extern void SPU2readDMA7Mem(uint32 usPSXMem,int iSize); +extern void SPU2writeDMA7Mem(uint32 usPSXMem,int iSize); +extern void SPU2interruptDMA4(void); +extern void SPU2interruptDMA7(void); + +#define MAX_FILE_SLOTS (32) + +static volatile int softcall_target = 0; +static int filestat[MAX_FILE_SLOTS]; +static uint8 *filedata[MAX_FILE_SLOTS]; +static uint32 filesize[MAX_FILE_SLOTS], filepos[MAX_FILE_SLOTS]; +uint32 psf2_get_loadaddr(void); +void psf2_set_loadaddr(uint32 new); +static void call_irq_routine(uint32 routine, uint32 parameter); +static int intr_susp = 0; + +static uint64 sys_time; +static int timerexp = 0; + +typedef struct +{ + char name[10]; + uint32 dispatch; +} ExternLibEntries; + +static int32 iNumLibs; +static ExternLibEntries reglibs[32]; + +typedef struct +{ + uint32 type; + uint32 value; + uint32 param; + int inUse; +} EventFlag; + +static int32 iNumFlags; +static EventFlag evflags[32]; + +typedef struct +{ + uint32 attr; + uint32 option; + int32 init; + int32 current; + int32 max; + int32 threadsWaiting; + int32 inuse; +} Semaphore; + +#define SEMA_MAX (64) + +static int32 iNumSema; +static Semaphore semaphores[SEMA_MAX]; + +// thread states +enum +{ + TS_RUNNING = 0, // now running + TS_READY, // ready to run + TS_WAITEVFLAG, // waiting on an event flag + TS_WAITSEMA, // waiting on a semaphore + TS_WAITDELAY, // waiting on a time delay + TS_SLEEPING, // sleeping + TS_CREATED, // newly created, hasn't run yet + + TS_MAXSTATE +}; + +typedef struct +{ + int32 iState; // state of thread + + uint32 flags; // flags + uint32 routine; // start of code for the thread + uint32 stackloc; // stack location in IOP RAM + uint32 stacksize; // stack size + uint32 refCon; // user value passed in at CreateThread time + + uint32 waitparm; // what we're waiting on if in one the TS_WAIT* states + + uint32 save_regs[37]; // CPU registers belonging to this thread +} Thread; + +static int32 iNumThreads, iCurThread; +static Thread threads[32]; + +#if DEBUG_THREADING +static char *_ThreadStateNames[TS_MAXSTATE] = { "RUNNING", "READY", "WAITEVFLAG", "WAITSEMA", "WAITDELAY", "SLEEPING", "CREATED" }; +#endif + +#if DEBUG_HLE_IOP +static char *seek_types[3] = { "SEEK_SET", "SEEK_CUR", "SEEK_END" }; +#endif + +typedef struct +{ + int32 iActive; + uint32 count; + uint32 target; + uint32 source; + uint32 prescale; + uint32 handler; + uint32 hparam; + uint32 mode; +} IOPTimer; + +static IOPTimer iop_timers[8]; +static int32 iNumTimers; + +typedef struct +{ + uint32 count; + uint32 mode; + uint32 target; + uint32 sysclock; +} Counter; + +static Counter root_cnts[3]; // 3 of the bastards + +#define CLOCK_DIV (8) // 33 MHz / this = what we run the R3000 at to keep the CPU usage not insane + +// counter modes +#define RC_EN (0x0001) // halt +#define RC_RESET (0x0008) // automatically wrap +#define RC_IQ1 (0x0010) // IRQ when target reached +#define RC_IQ2 (0x0040) // IRQ when target reached (pSX treats same as IQ1?) +#define RC_CLC (0x0100) // counter uses direct system clock +#define RC_DIV8 (0x0200) // (counter 2 only) system clock/8 + +typedef struct +{ + uint32 desc; + int32 status; + int32 mode; + uint32 fhandler; +} EvtCtrlBlk[32]; + +static EvtCtrlBlk *Event; +static EvtCtrlBlk *CounterEvent; + +// Sony event states +#define EvStUNUSED 0x0000 +#define EvStWAIT 0x1000 +#define EvStACTIVE 0x2000 +#define EvStALREADY 0x4000 + +// Sony event modes +#define EvMdINTR 0x1000 +#define EvMdNOINTR 0x2000 + +// PSX main RAM +uint32 psx_ram[(2*1024*1024)/4]; +uint32 psx_scratch[0x400]; +// backup image to restart songs +uint32 initial_ram[(2*1024*1024)/4]; +uint32 initial_scratch[0x400]; + +static uint32 spu_delay, dma_icr, irq_data, irq_mask, dma_timer, WAI; +static uint32 dma4_madr, dma4_bcr, dma4_chcr, dma4_delay; +static uint32 dma7_madr, dma7_bcr, dma7_chcr, dma7_delay; +static uint32 dma4_cb, dma7_cb, dma4_fval, dma4_flag, dma7_fval, dma7_flag; +static uint32 irq9_cb, irq9_fval, irq9_flag; + +// take a snapshot of the CPU state for a thread +static void FreezeThread(int32 iThread, int flag) +{ + int i; + union cpuinfo mipsinfo; + + #if DEBUG_THREADING +// printf("IOP: FreezeThread(%d)\n", iThread); + #endif + + for (i = 0; i < 32; i++) + { + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R0 + i, &mipsinfo); + threads[iThread].save_regs[i] = mipsinfo.i; + } + mips_get_info(CPUINFO_INT_REGISTER + MIPS_HI, &mipsinfo); + threads[iThread].save_regs[32] = mipsinfo.i; + mips_get_info(CPUINFO_INT_REGISTER + MIPS_LO, &mipsinfo); + threads[iThread].save_regs[33] = mipsinfo.i; + mips_get_info(CPUINFO_INT_REGISTER + MIPS_DELAYV, &mipsinfo); + threads[iThread].save_regs[35] = mipsinfo.i; + mips_get_info(CPUINFO_INT_REGISTER + MIPS_DELAYR, &mipsinfo); + threads[iThread].save_regs[36] = mipsinfo.i; + + + // if a thread is freezing itself due to a IOP syscall, we must save the RA as the PC + // to come back to or else the syscall will recurse + if (flag) + { + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + } + else + { + mips_get_info(CPUINFO_INT_PC, &mipsinfo); + } + threads[iThread].save_regs[34] = mipsinfo.i; + + #if DEBUG_THREADING + { + char buffer[256]; + + DasmMIPS(buffer, mipsinfo.i, &psx_ram[(mipsinfo.i & 0x7fffffff)/4]); + + printf("IOP: FreezeThread(%d) => %08x [%s]\n", iThread, threads[iThread].save_regs[34], buffer); + } + #endif + + // if thread was running, now it's ready + if (threads[iThread].iState == TS_RUNNING) + { + threads[iThread].iState = TS_READY; + } +} + +// restore the CPU state from a thread's snapshot +static void ThawThread(int32 iThread) +{ + int i; + union cpuinfo mipsinfo; + + // the first time a thread is put on the CPU, + // some special setup is required + if (threads[iThread].iState == TS_CREATED) + { + // PC = starting routine + threads[iThread].save_regs[34] = threads[iThread].routine-4; // compensate for weird delay slot effects + // SP = thread's stack area + threads[iThread].save_regs[29] = (threads[iThread].stackloc + threads[iThread].stacksize) - 16; + threads[iThread].save_regs[29] |= 0x80000000; + + threads[iThread].save_regs[35] = threads[iThread].save_regs[36] = 0; + + #if DEBUG_THREADING +// printf("IOP: Initial setup for thread %d => PC %x SP %x\n", iThread, threads[iThread].save_regs[34]+4, threads[iThread].save_regs[29]); + #endif + } + + #if DEBUG_THREADING + { + char buffer[256]; + + mips_get_info(CPUINFO_INT_PC, &mipsinfo); + DasmMIPS(buffer, mipsinfo.i, &psx_ram[(mipsinfo.i & 0x7fffffff)/4]); + + printf("IOP: ThawThread(%d) => %08x [%s] (wake %d)\n", iThread, threads[iThread].save_regs[34], buffer, wakecount); + } + #endif + + for (i = 0; i < 32; i++) + { + mipsinfo.i = threads[iThread].save_regs[i]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R0 + i, &mipsinfo); + } + + mipsinfo.i = threads[iThread].save_regs[32]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_HI, &mipsinfo); + mipsinfo.i = threads[iThread].save_regs[33]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_LO, &mipsinfo); + mipsinfo.i = threads[iThread].save_regs[34]; + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + mipsinfo.i = threads[iThread].save_regs[35]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_DELAYV, &mipsinfo); + mipsinfo.i = threads[iThread].save_regs[36]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_DELAYR, &mipsinfo); + + threads[iThread].iState = TS_RUNNING; +} + +// find a new thread to run +static void ps2_reschedule(void) +{ + int i, starti, iNextThread; + + iNextThread = -1; + + // see if any thread other than the current one is ready to run + i = iCurThread+1; + if (i >= iNumThreads) + { + i = 0; + } + + starti = i; + + // starting with the next thread after this one, + // see who wants to run + while (i < iNumThreads) + { + if (i != iCurThread) + { + if (threads[i].iState == TS_READY) + { + iNextThread = i; + break; + } + } + + i++; + } + + // if we started above thread 0 and didn't pick one, + // go around and try from zero + if ((starti > 0) && (iNextThread == -1)) + { + for (i = 0; i < iNumThreads; i++) + { + if (i != iCurThread) + { + if (threads[i].iState == TS_READY) + { + iNextThread = i; + break; + } + } + } + } + + if (iNextThread != -1) + { + #if DEBUG_THREADING + for (i = 0; i < iNumThreads; i++) + { + printf("Thread %02d: %s\n", i, _ThreadStateNames[threads[i].iState]); + } + #endif + + if (iCurThread != -1) + { + FreezeThread(iCurThread, 0); + } + ThawThread(iNextThread); + iCurThread = iNextThread; + threads[iCurThread].iState = TS_RUNNING; + } + else + { + // no thread to switch to, is the current one still running? + if (iCurThread != -1) + { + if (threads[iCurThread].iState != TS_RUNNING) + { + #if DEBUG_THREADING + printf("IOP: no threads to run\n"); + + for (i = 0; i < iNumThreads; i++) + { + printf("Thread %02d: %s\n", i, _ThreadStateNames[threads[i].iState]); + } + #endif + + mips_shorten_frame(); // kill the CPU + iCurThread = -1; // no threads are active + } + } + else + { + mips_shorten_frame(); // kill the CPU + iCurThread = -1; // no threads are active + } + } +} + +static void psx_irq_update(void) +{ + union cpuinfo mipsinfo; + + if ((irq_data & irq_mask) != 0) + { // assert the line + WAI = 0; + mipsinfo.i = ASSERT_LINE; + mips_set_info( CPUINFO_INT_INPUT_STATE + MIPS_IRQ0, &mipsinfo ); + } + else + { + // clear the line + mipsinfo.i = CLEAR_LINE; + mips_set_info( CPUINFO_INT_INPUT_STATE + MIPS_IRQ0, &mipsinfo ); + } +} + +void psx_irq_set(uint32 irq) +{ + irq_data |= irq; + + psx_irq_update(); +} + +static uint32 gpu_stat = 0; + +uint32 psx_hw_read(offs_t offset, uint32 mem_mask) +{ + if (offset >= 0x00000000 && offset <= 0x007fffff) + { + offset &= 0x1fffff; + return LE32(psx_ram[offset>>2]); + } + + if (offset >= 0x80000000 && offset <= 0x807fffff) + { + offset &= 0x1fffff; + return LE32(psx_ram[offset>>2]); + } + + if (offset == 0xbfc00180 || offset == 0xbfc00184) // exception vector + { + return FUNCT_HLECALL; + } + + if (offset == 0x1f801014) + { + return spu_delay; + } + + if (offset == 0xbf801014) + { + return spu_delay; + } + + if (offset == 0x1f801814) + { + gpu_stat ^= 0xffffffff; + return gpu_stat; + } + + if (offset >= 0x1f801c00 && offset <= 0x1f801dff) + { + if ((mem_mask == 0xffff0000) || (mem_mask == 0xffffff00)) + { + return SPUreadRegister(offset) & ~mem_mask; + } + else if (mem_mask == 0x0000ffff) + { + return SPUreadRegister(offset)<<16; + } + else printf("SPU: read unknown mask %08x\n", mem_mask); + } + + if (offset >= 0xbf900000 && offset <= 0xbf9007ff) + { + if ((mem_mask == 0xffff0000) || (mem_mask == 0xffffff00)) + { + return SPU2read(offset) & ~mem_mask; + } + else if (mem_mask == 0x0000ffff) + { + return SPU2read(offset)<<16; + } + else if (mem_mask == 0) + { + return SPU2read(offset) | SPU2read(offset+2)<<16; + } + else printf("SPU2: read unknown mask %08x\n", mem_mask); + } + + if (offset >= 0x1f801100 && offset <= 0x1f801128) + { + int cnt = (offset>>4) & 0xf; + + switch (offset & 0xf) + { + case 0: +// printf("RC: read counter %d count = %x\n", cnt, root_cnts[cnt].count); + return root_cnts[cnt].count; + break; + case 4: +// printf("RC: read counter %d mode\n", cnt); + return root_cnts[cnt].mode; + break; + case 8: +// printf("RC: read counter %d target\n", cnt); + return root_cnts[cnt].target; + break; + } + + return 0; + } + + if (offset == 0x1f8010f4) + { + return dma_icr; + } + else if (offset == 0x1f801070) + { +// printf("Read IRQ_data %x (mask %08x)\n", irq_data, mem_mask); + return irq_data; + } + else if (offset == 0x1f801074) + { + return irq_mask; + } + +/* if (offset == 0xbf801508) + { + return dma7_bcr; + }*/ + + if (offset == 0xbf920344) + { + return 0x80808080; + } + + #if DEBUG_UNK_RW + { + union cpuinfo mipsinfo; + + mips_get_info(CPUINFO_INT_PC, &mipsinfo); + printf("Unknown read: %08x, mask %08x (PC=%x)\n", offset&~3, mem_mask, mipsinfo.i); + } + #endif + return 0; +} + +static void psx_dma4(uint32 madr, uint32 bcr, uint32 chcr) +{ + if (chcr == 0x01000201) // cpu to SPU + { +// printf("DMA4: RAM %08x to SPU\n", madr); + bcr = (bcr>>16) * (bcr & 0xffff) * 2; + SPUwriteDMAMem(madr&0x1fffff, bcr); + } + else + { +// printf("DMA4: SPU to RAM %08x\n", madr); + bcr = (bcr>>16) * (bcr & 0xffff) * 2; + SPUreadDMAMem(madr&0x1fffff, bcr); + } +} + +static void ps2_dma4(uint32 madr, uint32 bcr, uint32 chcr) +{ + if (chcr == 0x01000201) // cpu to SPU2 + { + #if DEBUG_HLE_IOP + printf("DMA4: RAM %08x to SPU2\n", madr); + #endif + bcr = (bcr>>16) * (bcr & 0xffff) * 4; + SPU2writeDMA4Mem(madr&0x1fffff, bcr); + } + else + { + #if DEBUG_HLE_IOP + printf("DMA4: SPU2 to RAM %08x\n", madr); + #endif + bcr = (bcr>>16) * (bcr & 0xffff) * 4; + SPU2readDMA4Mem(madr&0x1fffff, bcr); + } + + dma4_delay = 80; +} + +static void ps2_dma7(uint32 madr, uint32 bcr, uint32 chcr) +{ + if ((chcr == 0x01000201) || (chcr == 0x00100010) || (chcr == 0x000f0010) || (chcr == 0x00010010)) // cpu to SPU2 + { + #if DEBUG_HLE_IOP + printf("DMA7: RAM %08x to SPU2\n", madr); + #endif + bcr = (bcr>>16) * (bcr & 0xffff) * 4; + SPU2writeDMA7Mem(madr&0x1fffff, bcr); + } + else + { + #if DEBUG_HLE_IOP + printf("DMA7: SPU2 to RAM %08x\n", madr); + #endif + bcr = (bcr>>16) * (bcr & 0xffff) * 4; +// SPU2readDMA7Mem(madr&0x1fffff, bcr); + } + + dma7_delay = 80; +} + +void psx_hw_write(offs_t offset, uint32 data, uint32 mem_mask) +{ + union cpuinfo mipsinfo; + + if (offset >= 0x00000000 && offset <= 0x007fffff) + { + offset &= 0x1fffff; +// if (offset < 0x10000) printf("Write %x to kernel @ %x\n", data, offset); + + mips_get_info(CPUINFO_INT_PC, &mipsinfo); + + psx_ram[offset>>2] &= LE32(mem_mask); + psx_ram[offset>>2] |= LE32(data); + return; + } + + if (offset >= 0x80000000 && offset <= 0x807fffff) + { + offset &= 0x1fffff; +// if (offset < 0x10000) printf("Write %x to kernel @ %x\n", data, offset); + mips_get_info(CPUINFO_INT_PC, &mipsinfo); + psx_ram[offset>>2] &= LE32(mem_mask); + psx_ram[offset>>2] |= LE32(data); + return; + } + + if (offset == 0x1f801014 || offset == 0xbf801014) + { + spu_delay &= mem_mask; + spu_delay |= data; + return; + } + + if (offset >= 0x1f801c00 && offset <= 0x1f801dff) + { + // printf("SPU2 wrote %x to SPU1 address %x!\n", data, offset); + if (mem_mask == 0xffff0000) + { + SPUwriteRegister(offset, data); + return; + } + else if (mem_mask == 0x0000ffff) + { + SPUwriteRegister(offset, data>>16); + return; + } + else printf("SPU: write unknown mask %08x\n", mem_mask); + } + + if (offset >= 0xbf900000 && offset <= 0xbf9007ff) + { + if (mem_mask == 0xffff0000) + { + SPU2write(offset, data); + return; + } + else if (mem_mask == 0x0000ffff) + { + SPU2write(offset, data>>16); + return; + } + else if (mem_mask == 0) + { + SPU2write(offset, data & 0xffff); + SPU2write(offset+2, data>>16); + return; + } + else printf("SPU2: write unknown mask %08x\n", mem_mask); + } + + if (offset >= 0x1f801100 && offset <= 0x1f801128) + { + int cnt = (offset>>4) & 0xf; + + switch (offset & 0xf) + { + case 0: + root_cnts[cnt].count = data; +// printf("RC: counter %d count = %x\n", cnt, data); + break; + case 4: + root_cnts[cnt].mode = data; +// printf("RC: counter %d mode = %x\n", cnt, data); + break; + case 8: + root_cnts[cnt].target = data; +// printf("RC: counter %d target = %x\n", cnt, data); + break; + } + + return; + } + + // DMA4 + if (offset == 0x1f8010c0) + { + dma4_madr = data; + return; + } + else if (offset == 0x1f8010c4) + { + dma4_bcr = data; + return; + } + else if (offset == 0x1f8010c8) + { + dma4_chcr = data; + psx_dma4(dma4_madr, dma4_bcr, dma4_chcr); + + if (dma_icr & (1 << (16+4))) + { + dma_timer = 3; + } + return; + } + else if (offset == 0x1f8010f4) + { + dma_icr = ( dma_icr & mem_mask ) | + ( ~mem_mask & 0x80000000 & dma_icr) | + ( ~data & ~mem_mask & 0x7f000000 & dma_icr) | + ( data & ~mem_mask & 0x00ffffff); + + if ((dma_icr & 0x7f000000) != 0) + { + dma_icr &= ~0x80000000; + } + + return; + } + else if (offset == 0x1f801070) + { + irq_data = (irq_data & mem_mask) | (irq_data & irq_mask & data); + psx_irq_update(); + return; + } + else if (offset == 0x1f801074) + { + irq_mask &= mem_mask; + irq_mask |= data; + psx_irq_update(); + return; + } + + // PS2 DMA4 + if (offset == 0xbf8010c0) + { + dma4_madr = data; + return; + } + else if (offset == 0xbf8010c8) + { + dma4_chcr = data; + ps2_dma4(dma4_madr, dma4_bcr, dma4_chcr); + + if (dma_icr & (1 << (16+4))) + { + dma_timer = 3; + } + return; + } + + if (offset == 0xbf8010c4 || offset == 0xbf8010c6) + { + dma4_bcr &= mem_mask; + dma4_bcr |= data; + return; + } + + // PS2 DMA7 + if (offset == 0xbf801500) + { + dma7_madr = data; + return; + } + else if (offset == 0xbf801504) + { + dma7_chcr = data; + ps2_dma7(dma7_madr, dma7_bcr, dma7_chcr); + return; + } + + if (offset == 0xbf801508 || offset == 0xbf80150a) + { + dma7_bcr &= mem_mask; + dma7_bcr |= data; + return; + } + + #if DEBUG_UNK_RW + { + union cpuinfo mipsinfo; + + mips_get_info(CPUINFO_INT_PC, &mipsinfo); + printf("Unknown write: %08x to %08x, mask %08x (PC=%x)\n", data, offset&~3, mem_mask, mipsinfo.i); + } + #endif +} + +// called per sample, 1/44100th of a second (768 clock cycles) +void psx_hw_slice(void) +{ + psx_hw_runcounters(); + + if (!WAI) + mips_execute(768/CLOCK_DIV); + + if (dma_timer) + { + dma_timer--; + if (dma_timer == 0) + { + dma_icr |= (1 << (24+4)); + psx_irq_set(0x0008); + } + } +} + +void ps2_hw_slice(void) +{ + int i = 0; + + timerexp = 0; + psx_hw_runcounters(); + + if (iCurThread != -1) + { + mips_execute(836/CLOCK_DIV); + } + else // no thread, don't run CPU, just update counters + { + if (timerexp) + { + ps2_reschedule(); + + if (iCurThread != -1) + { + mips_execute((836/CLOCK_DIV)-i); + i = (836/CLOCK_DIV); + } + } + } +} + +static int fcnt = 0; + +void psx_hw_frame(void) +{ + if (psf_refresh == 50) + { + fcnt++;; + + if (fcnt < 6) + { + psx_irq_set(1); + } + else + { + fcnt = 0; + } + } + else // NTSC + { + psx_irq_set(1); + } +} + +void ps2_hw_frame(void) +{ + ps2_reschedule(); +} + +// BIOS HLE + +// heap block struct offsets +enum +{ + BLK_STAT = 0, + BLK_SIZE = 4, + BLK_FD = 8, + BLK_BK = 12 +}; + +static uint32 heap_addr, entry_int = 0; + +extern uint32 mips_get_cause(void); +extern uint32 mips_get_status(void); +extern void mips_set_status(uint32 status); +extern uint32 mips_get_ePC(void); + +static uint32 irq_regs[37]; + +static int irq_mutex = 0; + +static void call_irq_routine(uint32 routine, uint32 parameter) +{ + int j, oldICount; + union cpuinfo mipsinfo; + + if (!irq_mutex) + { + irq_mutex = 1; + } + else + { + printf("IOP: ERROR! IRQ reentry!\n"); + return; + } + + // save regs for IRQ + for (j = 0; j < 32; j++) + { + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R0 + j, &mipsinfo); + irq_regs[j] = mipsinfo.i; + } + mips_get_info(CPUINFO_INT_REGISTER + MIPS_HI, &mipsinfo); + irq_regs[32] = mipsinfo.i; + mips_get_info(CPUINFO_INT_REGISTER + MIPS_LO, &mipsinfo); + irq_regs[33] = mipsinfo.i; + mips_get_info(CPUINFO_INT_PC, &mipsinfo); + irq_regs[34] = mipsinfo.i; + mips_get_info(CPUINFO_INT_REGISTER + MIPS_DELAYV, &mipsinfo); + irq_regs[35] = mipsinfo.i; + mips_get_info(CPUINFO_INT_REGISTER + MIPS_DELAYR, &mipsinfo); + irq_regs[36] = mipsinfo.i; + + // PC = timer handler routine + mipsinfo.i = routine; + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + + // parameter in a0 + mipsinfo.i = parameter; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R4, &mipsinfo); + + // RA = a trap address we can set + mipsinfo.i = 0x80001000; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + + // make sure we're set + psx_ram[0x1000/4] = LE32(FUNCT_HLECALL); + + softcall_target = 0; + oldICount = mips_get_icount(); + while (!softcall_target) + { + mips_execute(10); + } + mips_set_icount(oldICount); + + // restore IRQ regs + for (j = 0; j < 32; j++) + { + mipsinfo.i = irq_regs[j]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R0 + j, &mipsinfo); + } + + mipsinfo.i = irq_regs[32]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_HI, &mipsinfo); + mipsinfo.i = irq_regs[33]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_LO, &mipsinfo); + mipsinfo.i = irq_regs[34]; + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + mipsinfo.i = irq_regs[35]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_DELAYV, &mipsinfo); + mipsinfo.i = irq_regs[36]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_DELAYR, &mipsinfo); + + irq_mutex = 0; +} + +void psx_bios_exception(uint32 pc) +{ + uint32 a0, status; + union cpuinfo mipsinfo; + int i, oldICount; + +// printf("bios_exception: cause %x\n", mips_get_cause() & 0x3c); + + // get a0 + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R4, &mipsinfo); + a0 = mipsinfo.i; + + switch (mips_get_cause() & 0x3c) + { + case 0: // IRQ +// printf("IRQ: %x, mask %x\n", irq_data, irq_mask); + // save all regs + for (i = 0; i < 32; i++) + { + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R0 + i, &mipsinfo); + irq_regs[i] = mipsinfo.i; + } + mips_get_info(CPUINFO_INT_REGISTER + MIPS_HI, &mipsinfo); + irq_regs[32] = mipsinfo.i; + mips_get_info(CPUINFO_INT_REGISTER + MIPS_LO, &mipsinfo); + irq_regs[33] = mipsinfo.i; + + // check BIOS-driven interrupts + if (irq_data & 1) // VSync + { + if (CounterEvent[3][1].status == LE32(EvStACTIVE)) + { + // run the handler + mipsinfo.i = LE32(CounterEvent[3][1].fhandler); +// printf("Cause = %x, ePC = %x\n", mips_get_cause(), mips_get_ePC()); +// printf("VBL running handler @ %x\n", mipsinfo.i); + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + mipsinfo.i = 0x80001000; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + + // make sure we're set + psx_ram[0x1000/4] = LE32(FUNCT_HLECALL); + + softcall_target = 0; + oldICount = mips_get_icount(); + while (!softcall_target) + { + mips_execute(10); + } + mips_set_icount(oldICount); + +// printf("Exiting softcall handler\n"); + + irq_data &= ~1; // clear the VBL IRQ if we handled it + } + } + else if (irq_data & 0x70) // root counters + { + for (i = 0; i < 3; i++) + { + if (irq_data & (1 << (i+4))) + { + if (CounterEvent[i][1].status == LE32(EvStACTIVE)) + { + // run the handler + mipsinfo.i = LE32(CounterEvent[i][1].fhandler); +// printf("Cause = %x, ePC = %x\n", mips_get_cause(), mips_get_ePC()); +// printf("Counter %d running handler @ %x\n", i, mipsinfo.i); + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + mipsinfo.i = 0x80001000; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + + // make sure we're set + psx_ram[0x1000/4] = LE32(FUNCT_HLECALL); + + softcall_target = 0; + oldICount = mips_get_icount(); + while (!softcall_target) + { + mips_execute(10); + } + mips_set_icount(oldICount); + +// printf("Exiting softcall handler\n"); + irq_data &= ~(1 << (i+4)); + } + else + { +// printf("CEvt %d not active\n", i); + } + } + } + } + + if (entry_int) + { + psx_hw_write(0x1f801070, 0xffffffff, 0); + + a0 = entry_int; + +// printf("taking entry_int\n"); + + // RA (and PC) + mipsinfo.i = LE32(psx_ram[((a0&0x1fffff)+0)/4]); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + // SP + mipsinfo.i = LE32(psx_ram[((a0&0x1fffff)+4)/4]); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R29, &mipsinfo); + // FP + mipsinfo.i = LE32(psx_ram[((a0&0x1fffff)+8)/4]); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R30, &mipsinfo); + + // S0-S7 are next + for (i = 0; i < 8; i++) + { + mipsinfo.i = LE32(psx_ram[((a0&0x1fffff)+12+(i*4))/4]); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R16 + i, &mipsinfo); + } + + // GP + mipsinfo.i = LE32(psx_ram[((a0&0x1fffff)+44)/4]); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R28, &mipsinfo); + + // v0 = 1 + mipsinfo.i = 1; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + else + { + psx_hw_write(0x1f801070, 0, 0xffff0000); + + // note: the entry_int won't be bailing us out here, so do it ourselves + for (i = 0; i < 32; i++) + { + mipsinfo.i = irq_regs[i]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R0 + i, &mipsinfo); + } + + mipsinfo.i = irq_regs[32]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_HI, &mipsinfo); + mipsinfo.i = irq_regs[33]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_LO, &mipsinfo); + mipsinfo.i = mips_get_ePC(); + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + + status = mips_get_status(); + status = (status & 0xfffffff0) | ((status & 0x3c)>>2); + mips_set_status(status); + } + break; + + case 0x20: // syscall + // syscall always farks with the status, so get it now + status = mips_get_status(); + + switch (a0) + { + case 1: // EnterCritical + #if DEBUG_HLE_BIOS + printf("HLEBIOS: EnterCritical\n"); + #endif + status &= ~0x0404; + break; + + case 2: // ExitCritical + #if DEBUG_HLE_BIOS + printf("HLEBIOS: ExitCritical\n"); + #endif + status |= 0x0404; + break; + + default: + #if DEBUG_HLE_BIOS + printf("HLEBIOS: Unknown syscall %x\n", a0); + #endif + break; + } + + // PC = ePC + 4 + mipsinfo.i = mips_get_ePC() + 4; + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + + // and update the status accordingly + status = (status & 0xfffffff0) | ((status & 0x3c)>>2); + mips_set_status(status); + break; + + default: + #if DEBUG_HLE_BIOS + printf("HLEBIOS: Unknown exception %x\n", mips_get_cause()); + #endif + break; + } +} + +static uint32 calc_ev(uint32 a0) +{ + uint32 ev; + + ev = (a0 >> 24) & 0xf; + if (ev == 0xf) + { + ev = 0x5; + } + ev *= 32; + ev += (a0 & 0x1f); + + return ev; +} + +static uint32 calc_spec(uint32 a1) +{ + uint32 spec = 0; + int i; + + if (a1 == 0x301) + { + spec = 16; + } + else if (a1 == 0x302) + { + spec = 17; + } + else + { + for (i = 0; i < 16; i++) + { + if (a1 & (1< PC %08x\n", a0, mipsinfo.i); + #endif + // SP + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R29, &mipsinfo); + psx_ram[((a0&0x1fffff)+4)/4] = LE32(mipsinfo.i); + // FP + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R30, &mipsinfo); + psx_ram[((a0&0x1fffff)+8)/4] = LE32(mipsinfo.i); + + // S0-S7 are next + for (i = 0; i < 8; i++) + { + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R16 + i, &mipsinfo); + psx_ram[((a0&0x1fffff)+12+(i*4))/4] = LE32(mipsinfo.i); + } + + // GP + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R28, &mipsinfo); + psx_ram[((a0&0x1fffff)+44)/4] = LE32(mipsinfo.i); + + // v0 = 0 + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 0x18: // strncmp + { + uint8 *dst, *src; + + #if DEBUG_HLE_BIOS + printf("HLEBIOS: strncmp(%08x, %08x, %d)\n", a0, a1, a2); + #endif + + dst = (uint8 *)psx_ram; + src = (uint8 *)psx_ram; + dst += (a0 & 0x1fffff); + src += (a1 & 0x1fffff); + + // v0 = result + mipsinfo.i = strncmp((char *)dst, (char *)src, a2); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + case 0x19: // strcpy + { + uint8 *dst, *src; + + #if DEBUG_HLE_BIOS + printf("HLEBIOS: strcpy(%08x, %08x)\n", a0, a1); + #endif + + dst = (uint8 *)psx_ram; + src = (uint8 *)psx_ram; + dst += (a0 & 0x1fffff); + src += (a1 & 0x1fffff); + + while (*src) + { + *dst = *src; + dst++; + src++; + } + + // v0 = a0 + mipsinfo.i = a0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + case 0x28: // bzero + { + uint8 *dst; + + #if DEBUG_HLE_BIOS + printf("HLEBIOS: bzero(%08x, %08x)\n", a0, a1); + #endif + + dst = (uint8 *)psx_ram; + dst += (a0 & 0x1fffff); + memset(dst, 0, a1); + } + break; + + case 0x2a: // memcpy + { + uint8 *dst, *src; + + #if DEBUG_HLE_BIOS + printf("HLEBIOS: memcpy(%08x, %08x, %08x)\n", a0, a1, a2); + #endif + + dst = (uint8 *)psx_ram; + src = (uint8 *)psx_ram; + dst += (a0 & 0x1fffff); + src += (a1 & 0x1fffff); + + while (a2) + { + *dst = *src; + dst++; + src++; + a2--; + } + + // v0 = a0 + mipsinfo.i = a0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + case 0x2b: // memset + { + uint8 *dst; + + #if DEBUG_HLE_BIOS + printf("HLEBIOS: memset(%08x, %08x, %08x)\n", a0, a1, a2); + #endif + + dst = (uint8 *)psx_ram; + dst += (a0 & 0x1fffff); + + while (a2) + { + *dst = a1; + dst++; + a2--; + } + + // v0 = a0 + mipsinfo.i = a0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + case 0x2f: // rand + #if DEBUG_HLE_BIOS + printf("HLEBIOS: rand\n"); + #endif + + // v0 = result + mipsinfo.i = 1 + (int)(32767.0*rand()/(RAND_MAX+1.0)); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 0x30: // srand + #if DEBUG_HLE_BIOS + printf("HLEBIOS: srand(%x)\n", a0); + #endif + srand(a0); + break; + + case 0x33: // malloc + { + uint32 chunk, fd; + + #if DEBUG_HLE_BIOS + printf("HLEBIOS: malloc(%x)\n", a0); + #endif + + chunk = heap_addr; + + // find a free block that's big enough + while ((a0 > LE32(psx_ram[(chunk+BLK_SIZE)/4])) || + (LE32(psx_ram[(chunk+BLK_STAT)/4]) == 1)) + { + chunk = LE32(psx_ram[(chunk+BLK_FD)]); + } + + // split free block + fd = chunk + 16 + a0; // free block starts after block record and allocation size + psx_ram[(fd+BLK_STAT)/4] = psx_ram[(chunk+BLK_STAT)/4]; + psx_ram[(fd+BLK_SIZE)/4] = LE32(LE32(psx_ram[(chunk+BLK_SIZE)/4]) - a0); + psx_ram[(fd+BLK_FD)/4] = psx_ram[(chunk+BLK_FD)/4]; + psx_ram[(fd+BLK_BK)/4] = chunk; + + psx_ram[(chunk+BLK_STAT)/4] = LE32(1); + psx_ram[(chunk+BLK_SIZE)/4] = LE32(a0); + psx_ram[(chunk+BLK_FD)/4] = LE32(fd); + + mipsinfo.i = chunk + 16; + mipsinfo.i |= 0x80000000; + #if DEBUG_HLE_BIOS + printf("== %08x\n", mipsinfo.i); + #endif + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + case 0x39: // InitHeap + // heap address in A0, length in A1 + #if DEBUG_HLE_BIOS + printf("HLEBIOS: InitHeap(%08x, %08x)\n", a0, a1); + #endif + + heap_addr = a0 & 0x3fffffff; + + psx_ram[(heap_addr+BLK_STAT)/4] = LE32(0); + psx_ram[(heap_addr+BLK_FD)/4] = LE32(0); + psx_ram[(heap_addr+BLK_BK)/4] = LE32(0); + + // if heap size out of range, clamp it + if (((a0 & 0x1fffff) + a1) >= 2*1024*1024) + { + psx_ram[(heap_addr+BLK_SIZE)/4] = LE32(0x1ffffc - (a0 & 0x1fffff)); + } + else + { + psx_ram[(heap_addr+BLK_SIZE)/4] = LE32(a1); + } + break; + + case 0x3f: // printf + #if DEBUG_HLE_BIOS + printf("HLEBIOS: printf(%08x) = %s\n", a0, &psx_ram[(a0&0x1fffff)/4]); + #endif + break; + + case 0x72: //__96_remove + #if DEBUG_HLE_BIOS + printf("HLEBIOS: __96_remove\n"); + #endif + break; + + default: + #if DEBUG_HLE_BIOS + printf("Unknown BIOS A0 call = %x\n", subcall); + #endif + break; + } + break; + + case 0xb0: // b0 syscalls + switch (subcall) + { + case 0x07: // DeliverEvent + { + int ev, spec; + + + ev = calc_ev(a0); + spec = calc_spec(a1); + + #if DEBUG_HLE_BIOS + printf("HLEBIOS: DeliverEvent(ev %d, spec %d)\n", ev, spec); + #endif + + if (Event[ev][spec].status != LE32(EvStACTIVE)) + { + #if DEBUG_HLE_BIOS + printf("event not active\n"); + #endif + return; + } + + // if interrupt mode, do the call + if (Event[ev][spec].mode == LE32(EvMdINTR)) + { + #if DEBUG_HLE_BIOS + printf("INTR type, need to call handler %x\n", LE32(Event[ev][spec].fhandler)); + #endif + } + else + { + Event[ev][spec].status = LE32(EvStALREADY); + } + } + break; + + case 0x08: // OpenEvent + { + int ev, spec; + + ev = calc_ev(a0); + spec = calc_spec(a1); + + #if DEBUG_HLE_BIOS + printf("HLEBIOS: OpenEvent(%08x, %08x, %08x, %08x) = ev %d spec %d\n", a0, a1, a2, a3, ev, spec); + if (ev >= 64 && ev <= 67) + { + printf("HLEBIOS: event %d maps to root counter %d\n", ev, ev-64); + } + #endif + + Event[ev][spec].status = LE32(EvStWAIT); + Event[ev][spec].mode = LE32(a2); + Event[ev][spec].fhandler = LE32(a3); + + // v0 = ev | spec<<8; + mipsinfo.i = ev | (spec<<8); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + case 0x0a: // WaitEvent + { + int ev, spec; + + ev = a0 & 0xff; + spec = (a0 >> 8) & 0xff; + + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + #if DEBUG_HLE_BIOS + printf("HLEBIOS: WaitEvent(ev %d spec %d) PC=%x\n", ev, spec, mipsinfo.i); + #endif + + Event[ev][spec].status = LE32(EvStACTIVE); + + // v0 = 1 + mipsinfo.i = 1; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + + WAI = 1; + mips_shorten_frame(); + } + break; + + case 0x0b: // TestEvent + { + int ev, spec; + + ev = a0 & 0xff; + spec = (a0 >> 8) & 0xff; + + #if DEBUG_HLE_BIOS + printf("HLEBIOS: TestEvent(ev %d spec %d)\n", ev, spec); + #endif + + // v0 = (is event ready?) + if (Event[ev][spec].status == LE32(EvStALREADY)) + { + Event[ev][spec].status = LE32(EvStACTIVE); + mipsinfo.i = 1; + } + else + { + mipsinfo.i = 0; + } + + WAI = 1; + + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + + // it looks like this sets v1 to something non-zero too + // (code in Crash 2 & 3 actually relies on that behavior) + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R3, &mipsinfo); + } + break; + + case 0x0c: // EnableEvent + { + int ev, spec; + + ev = a0 & 0xff; + spec = (a0 >> 8) & 0xff; + + #if DEBUG_HLE_BIOS + printf("HLEBIOS: EnableEvent(ev %d spec %d)\n", ev, spec); + #endif + + Event[ev][spec].status = LE32(EvStACTIVE); + + // v0 = 1 + mipsinfo.i = 1; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + case 0x0d: // DisableEvent + { + int ev, spec; + + ev = a0 & 0xff; + spec = (a0 >> 8) & 0xff; + + #if DEBUG_HLE_BIOS + printf("HLEBIOS: DisableEvent(ev %d spec %d)\n", ev, spec); + #endif + + Event[ev][spec].status = LE32(EvStWAIT); + + // v0 = 1 + mipsinfo.i = 1; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + case 0x17: // ReturnFromException + for (i = 0; i < 32; i++) + { + mipsinfo.i = irq_regs[i]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R0 + i, &mipsinfo); + } + + mipsinfo.i = irq_regs[32]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_HI, &mipsinfo); + mipsinfo.i = irq_regs[33]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_LO, &mipsinfo); + mipsinfo.i = mips_get_ePC(); +// printf("ReturnFromException: IRQ state %x\n", irq_data & irq_mask); +// printf("HLEBIOS: ReturnFromException, cause = %08x, PC = %08x\n", mips_get_cause(), mipsinfo.i); + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + + status = mips_get_status(); + status = (status & 0xfffffff0) | ((status & 0x3c)>>2); + mips_set_status(status); + return; // force return to avoid PC=RA below + break; + + case 0x19: // HookEntryInt + #if DEBUG_HLE_BIOS + printf("HLEBIOS: HookEntryInt(%08x)\n", a0); + #endif + entry_int = a0; + break; + + case 0x3f: // puts +// printf("HLEBIOS: puts\n"); + break; + + case 0x5b: // ChangeClearPAD + #if DEBUG_HLE_BIOS + printf("HLEBIOS: ChangeClearPAD\n"); + #endif + break; + + default: + #if DEBUG_HLE_BIOS + printf("Unknown BIOS B0 call = %x\n", subcall); + #endif + break; + } + break; + + case 0xc0: // c0 syscalls + switch (subcall) + { + case 0xa: // ChangeClearRCnt + #if DEBUG_HLE_BIOS + printf("HLEBIOS: ChangeClearRCnt(%08x, %08x)\n", a0, a1); + #endif + + // v0 = (a0*4)+0x8600 + mipsinfo.i = LE32(psx_ram[((a0<<2) + 0x8600)/4]); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + + // (a0*4)+0x8600 = a1; + psx_ram[((a0<<2) + 0x8600)/4] = LE32(a1); + break; + + default: + #if DEBUG_HLE_BIOS + printf("Unknown BIOS C0 call = %x\n", subcall); + #endif + break; + } + break; + } + + // PC = RA + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + mips_set_info(CPUINFO_INT_PC, &mipsinfo); +} + +// root counters + +void psx_hw_runcounters(void) +{ + int i, j; + union cpuinfo mipsinfo; + + // don't process any IRQ sources when interrupts are suspended + if (!intr_susp) + { + if (dma4_delay) + { + dma4_delay--; + + if (dma4_delay == 0) + { + SPU2interruptDMA4(); + + if (dma4_cb) + { + call_irq_routine(dma4_cb, dma4_flag); + } + } + } + + if (dma7_delay) + { + dma7_delay--; + + if (dma7_delay == 0) + { + SPU2interruptDMA7(); + + if (dma7_cb) + { + call_irq_routine(dma7_cb, dma7_flag); + } + } + } + + for (i = 0; i < iNumThreads; i++) + { + if (threads[i].iState == TS_WAITDELAY) + { + if (threads[i].waitparm > CLOCK_DIV) + { + threads[i].waitparm -= CLOCK_DIV; + } + else // time's up + { + threads[i].waitparm = 0; + threads[i].iState = TS_READY; + + timerexp = 1; + + ps2_reschedule(); + } + } + } + + sys_time += 836; + + if (iNumTimers > 0) + { + for (i = 0; i < iNumTimers; i++) + { + if (iop_timers[i].iActive > 0) + { + iop_timers[i].count += 836; + if (iop_timers[i].count >= iop_timers[i].target) + { + iop_timers[i].count -= iop_timers[i].target; + + // printf("Timer %d: handler = %08x, param = %08x\n", i, iop_timers[i].handler, iop_timers[i].hparam); + call_irq_routine(iop_timers[i].handler, iop_timers[i].hparam); + + timerexp = 1; + } + } + } + } + } + +// PS1 root counters + for (i = 0; i < 3; i++) + { + if ((!(root_cnts[i].mode & RC_EN)) && (root_cnts[i].mode != 0)) + { + if (root_cnts[i].mode & RC_DIV8) + { + root_cnts[i].count += 768/8; + } + else + { + root_cnts[i].count += 768; + } + + if (root_cnts[i].count >= root_cnts[i].target) + { + if (!(root_cnts[i].mode & RC_RESET)) + { + root_cnts[i].mode |= RC_EN; + } + else + { + root_cnts[i].count %= root_cnts[i].target; + } + + psx_irq_set(1<<(4+i)); + } + } + } +} + +// PEOpS callbacks + +void SPUirq(void) +{ +// psx_irq_set(0x200); +} + +// PSXCPU callbacks + +uint8 program_read_byte_32le(offs_t address) +{ + switch (address & 0x3) + { + case 0: + return psx_hw_read(address, 0xffffff00); + break; + case 1: + return psx_hw_read(address, 0xffff00ff)>>8; + break; + case 2: + return psx_hw_read(address, 0xff00ffff)>>16; + break; + case 3: + return psx_hw_read(address, 0x00ffffff)>>24; + break; + } +} + +uint16 program_read_word_32le(offs_t address) +{ + if (address & 2) + return psx_hw_read(address, 0x0000ffff)>>16; + + return psx_hw_read(address, 0xffff0000); +} + +uint32 program_read_dword_32le(offs_t address) +{ + return psx_hw_read(address, 0); +} + +void program_write_byte_32le(offs_t address, uint8 data) +{ + switch (address & 0x3) + { + case 0: + psx_hw_write(address, data, 0xffffff00); + break; + case 1: + psx_hw_write(address, data<<8, 0xffff00ff); + break; + case 2: + psx_hw_write(address, data<<16, 0xff00ffff); + break; + case 3: + psx_hw_write(address, data<<24, 0x00ffffff); + break; + } +} + +void program_write_word_32le(offs_t address, uint16 data) +{ + if (address & 2) + { + psx_hw_write(address, data<<16, 0x0000ffff); + return; + } + + psx_hw_write(address, data, 0xffff0000); +} + +void program_write_dword_32le(offs_t address, uint32 data) +{ + psx_hw_write(address, data, 0); +} + +// sprintf replacement +static iop_sprintf(char *out, char *fmt, uint32 pstart) +{ + char temp[64], tfmt[64]; + char *cf, *pstr; + union cpuinfo mipsinfo; + int curparm, fp, isnum; + + curparm = pstart; + cf = fmt; + + while (*cf != '\0') + { + if (*cf != '%') + { + if (*cf == 27) + { + *out++ = '['; + *out++ = 'E'; + *out++ = 'S'; + *out++ = 'C'; + *out = ']'; + } + else + { + *out = *cf; + } + out++; + cf++; + } + else // got format + { + cf++; + + tfmt[0] = '%'; + fp = 1; + while (((*cf >= '0') && (*cf <= '9')) || (*cf == '.')) + { + tfmt[fp] = *cf; + fp++; + cf++; + } + + tfmt[fp] = *cf; + tfmt[fp+1] = '\0'; + + isnum = 0; + switch (*cf) + { + case 'x': + case 'X': + case 'd': + case 'D': + case 'c': + case 'C': + case 'u': + case 'U': + isnum = 1; + break; + } + +// printf("]]] temp format: [%s] [%d]\n", tfmt, isnum); + + if (isnum) + { + mips_get_info(curparm, &mipsinfo); +// printf("parameter %d = %x\n", curparm-pstart, mipsinfo.i); + curparm++; + sprintf(temp, tfmt, (int32)mipsinfo.i); + } + else + { + mips_get_info(curparm, &mipsinfo); + curparm++; + + pstr = (char *)psx_ram; + pstr += (mipsinfo.i & 0x1fffff); + + sprintf(temp, tfmt, pstr); + } + + pstr = &temp[0]; + while (*pstr != '\0') + { + *out = *pstr; + out++; + pstr++; + } + + cf++; + } + } + + *out = '\0'; +} + +// PS2 IOP callbacks +void psx_iop_call(uint32 pc, uint32 callnum) +{ + uint32 scan; + char *mname, *str1, *str2, *str3, name[9], out[512]; + uint32 a0, a1, a2, a3; + union cpuinfo mipsinfo; + int i; + +// printf("IOP call @ %08x\n", pc); + + // prefetch parameters + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R4, &mipsinfo); + a0 = mipsinfo.i; + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R5, &mipsinfo); + a1 = mipsinfo.i; + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R6, &mipsinfo); + a2 = mipsinfo.i; + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R7, &mipsinfo); + a3 = mipsinfo.i; + + scan = (pc&0x0fffffff)/4; + while ((psx_ram[scan] != LE32(0x41e00000)) && (scan >= (0x10000/4))) + { + scan--; + } + + if (psx_ram[scan] != LE32(0x41e00000)) + { + printf("FATAL ERROR: couldn't find IOP link signature\n"); + return; + } + + scan += 3; // skip zero and version + memcpy(name, &psx_ram[scan], 8); + name[8] = '\0'; + +// printf("IOP: call module [%s] service %d (PC=%08x)\n", name, callnum, pc); + + if (!strcmp(name, "stdio")) + { + switch (callnum) + { + case 4: // printf + mname = (char *)psx_ram; + mname += a0 & 0x1fffff; + mname += (a0 & 3); + + iop_sprintf(out, mname, CPUINFO_INT_REGISTER + MIPS_R5); // a1 is first parm + + /* if (out[strlen(out)-1] != '\n') + { + strcat(out, "\n"); + }*/ + + #if DEBUG_HLE_IOP + printf("%s", out); + #endif + break; + + default: + printf("IOP: Unhandled service %d for module %s\n", callnum, name); + break; + } + } + else if (!strcmp(name, "sifman")) + { + switch (callnum) + { + case 5: // sceSifInit + #if DEBUG_HLE_IOP + printf("IOP: sceSifInit()\n"); + #endif + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 7: // sceSifSetDma + #if DEBUG_HLE_IOP + printf("IOP: sceSifSetDma(%08x %08x)\n", a0, a1); + #endif + + mipsinfo.i = 1; // nonzero = success + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 8: // sceSifDmaStat + #if DEBUG_HLE_IOP + printf("IOP: sceSifDmaStat(%08x)\n", a0); + #endif + + mipsinfo.i = -1; // dma completed + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 29: // sceSifCheckInit + #if DEBUG_HLE_IOP + printf("IOP: sceSifCheckInit()\n"); + #endif + + mipsinfo.i = 1; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + default: + printf("IOP: Unhandled service %d for module %s\n", callnum, name); + break; + } + } + else if (!strcmp(name, "thbase")) + { + uint32 newAlloc; + + switch (callnum) + { + case 4: // CreateThread + #if DEBUG_THREADING + printf("IOP: CreateThread(%08x)\n", a0); + #endif + a0 &= 0x1fffff; + a0 /= 4; + #if DEBUG_THREADING + printf(" : flags %x routine %08x pri %x stacksize %d refCon %08x\n", + psx_ram[a0], psx_ram[a0+1], psx_ram[a0+2], psx_ram[a0+3], psx_ram[a0+4]); + #endif + + newAlloc = psf2_get_loadaddr(); + // force 16-byte alignment + if (newAlloc & 0xf) + { + newAlloc &= ~0xf; + newAlloc += 16; + } + psf2_set_loadaddr(newAlloc + LE32(psx_ram[a0+3])); + + threads[iNumThreads].iState = TS_CREATED; + threads[iNumThreads].stackloc = newAlloc; + threads[iNumThreads].flags = LE32(psx_ram[a0]); + threads[iNumThreads].routine = LE32(psx_ram[a0+2]); + threads[iNumThreads].stacksize = LE32(psx_ram[a0+3]); + threads[iNumThreads].refCon = LE32(psx_ram[a0+4]); + + mipsinfo.i = iNumThreads; + iNumThreads++; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 6: // StartThread + #if DEBUG_THREADING + printf("IOP: StartThread(%d %d)\n", a0, a1); + #endif + + FreezeThread(iCurThread, 1); + ThawThread(a0); + iCurThread = a0; + break; + + case 20:// GetThreadID + #if DEBUG_THREADING + printf("IOP: GetThreadId()\n"); + #endif + + mipsinfo.i = iCurThread; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 24:// SleepThread + #if DEBUG_THREADING + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + printf("IOP: SleepThread() [curThread %d, PC=%x]\n", iCurThread, mipsinfo.i); + #endif + + FreezeThread(iCurThread, 1); + threads[iCurThread].iState = TS_SLEEPING; + iCurThread = -1; + + ps2_reschedule(); + break; + + case 25:// WakeupThread + #if DEBUG_THREADING + printf("IOP: WakeupThread(%d)\n", a0); + #endif + + // set thread to "ready to go" + threads[a0].iState = TS_READY; + break; + + case 26:// iWakeupThread + #if DEBUG_THREADING + printf("IOP: iWakeupThread(%d)\n", a0); + #endif + + // set thread to "ready to go" if it's not running + if (threads[a0].iState != TS_RUNNING) + { + threads[a0].iState = TS_READY; + } + break; + + case 33:// DelayThread + { + double dTicks; + int i; + + #if DEBUG_THREADING + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + printf("IOP: DelayThread(%d) (PC=%x) [curthread = %d]\n", a0, mipsinfo.i, iCurThread); + #endif + + if (a0 < 100) + { + a0 = 100; + } + dTicks = (double)a0; + + FreezeThread(iCurThread, 1); + threads[iCurThread].iState = TS_WAITDELAY; + dTicks /= (double)1000000.0; + dTicks *= (double)36864000.0; // 768*48000 = IOP native-mode clock rate + threads[iCurThread].waitparm = (uint32)dTicks; + iCurThread = -1; + + ps2_reschedule(); + } + break; + + case 34://GetSystemTime + #if DEBUG_HLE_IOP + printf("IOP: GetSystemTime(%x)\n", a0); + #endif + + a0 &= 0x1fffff; + a0 /= 4; + + psx_ram[a0] = LE32(sys_time & 0xffffffff); // low + psx_ram[a0+1] = LE32(sys_time >> 32); // high + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 39:// USec2SysClock + { + uint64 dTicks = (uint64)a0; + uint32 hi, lo; + + #if DEBUG_HLE_IOP + printf("IOP: USec2SysClock(%d %08x)\n", a0, a1); + #endif + + dTicks *= (uint64)36864000; + dTicks /= (uint64)1000000; + + hi = dTicks>>32; + lo = dTicks & 0xffffffff; + + psx_ram[((a1 & 0x1fffff)/4)] = LE32(lo); + psx_ram[((a1 & 0x1fffff)/4)+1] = LE32(hi); + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + case 40://SysClock2USec + { + uint64 temp; + uint32 seconds, usec; + + #if DEBUG_HLE_IOP + printf("IOP: SysClock2USec(%08x %08x %08x)\n", a0, a1, a2); + #endif + + a0 &= 0x1fffff; + a1 &= 0x1fffff; + a2 &= 0x1fffff; + a0 /= 4; + a1 /= 4; + a2 /= 4; + + temp = LE32(psx_ram[a0]); + temp |= (uint64)LE32(psx_ram[a0+1])<<32; + + temp *= (uint64)1000000; + temp /= (uint64)36864000; + + // temp now is USec + seconds = (temp / 1000000) & 0xffffffff; + usec = (temp % 1000000) & 0xffffffff; + + psx_ram[a1] = LE32(seconds); + psx_ram[a2] = LE32(usec); + } + break; + + default: + printf("IOP: Unhandled service %d for module %s\n", callnum, name); + break; + } + } + else if (!strcmp(name, "thevent")) + { + switch (callnum) + { + case 4: // CreateEventFlag + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + #if DEBUG_HLE_IOP + printf("IOP: CreateEventFlag(%08x) (PC=%x)\n", a0, mipsinfo.i); + #endif + + a0 &= 0x1fffff; + a0 /= 4; + + evflags[iNumFlags].type = LE32(psx_ram[a0]); + evflags[iNumFlags].value = LE32(psx_ram[a0+1]); + evflags[iNumFlags].param = LE32(psx_ram[a0+2]); + evflags[iNumFlags].inUse = 1; + + #if DEBUG_HLE_IOP + printf(" Flag %02d: type %d init %08x param %08x\n", iNumFlags, evflags[iNumFlags].type, evflags[iNumFlags].value, evflags[iNumFlags].param); + #endif + + mipsinfo.i = iNumFlags+1; + iNumFlags++; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 6: // SetEventFlag + a0--; + #if DEBUG_HLE_IOP + printf("IOP: SetEventFlag(%d %08x)\n", a0, a1); + #endif + + evflags[a0].value |= a1; + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 7: // iSetEventFlag + a0--; + #if DEBUG_HLE_IOP + printf("IOP: iSetEventFlag(%08x %08x)\n", a0, a1); + #endif + + evflags[a0].value |= a1; + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + + for (i=0; i < iNumThreads; i++) + { + if ((threads[i].iState == TS_WAITEVFLAG) && (threads[i].waitparm == a0)) + { + threads[i].iState = TS_READY; + } + } + break; + + case 8: // ClearEventFlag + a0--; + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + #if DEBUG_HLE_IOP + printf("IOP: ClearEventFlag(%d %08x) (PC=%x)\n", a0, a1, mipsinfo.i); + #endif + + evflags[a0].value &= a1; + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 9: // iClearEventFlag + a0--; + #if DEBUG_HLE_IOP + printf("IOP: iClearEventFlag(%d %08x)\n", a0, a1); + #endif + + evflags[a0].value &= a1; + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 10:// WaitEventFlag + a0--; + #if DEBUG_HLE_IOP + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + printf("IOP: WaitEventFlag(%d %08x %d %08x PC=%x)\n", a0, a1, a2, a3, mipsinfo.i); + #endif + + // if we're not set, freeze this thread + if (!(evflags[a0].value & a1)) + { + FreezeThread(iCurThread, 1); + threads[iCurThread].iState = TS_WAITEVFLAG; + threads[iCurThread].waitparm = a0; + iCurThread = -1; + + ps2_reschedule(); + } + else + { + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + default: + printf("IOP: Unhandled service %d for module %s\n", callnum, name); + break; + } + } + else if (!strcmp(name, "thsemap")) + { + int foundthread; + + switch (callnum) + { + case 4: // CreateSema + #if DEBUG_HLE_IOP + printf("IOP: CreateSema(%08x)\n", a0); + #endif + + mipsinfo.i = -1; + for (i = 0; i < SEMA_MAX; i++) + { + if (!semaphores[i].inuse) + { + mipsinfo.i = i; + break; + } + } + + if (mipsinfo.i == -1) + { + printf("IOP: out of semaphores!\n"); + } + + a0 &= 0x7fffffff; + a0 /= 4; + +// printf("Sema %d Parms: %08x %08x %08x %08x\n", mipsinfo.i, psx_ram[a0], psx_ram[a0+1], psx_ram[a0+2], psx_ram[a0+3]); + + if (mipsinfo.i != -1) + { + semaphores[mipsinfo.i].attr = LE32(psx_ram[a0]); + semaphores[mipsinfo.i].option = LE32(psx_ram[a0+1]); + semaphores[mipsinfo.i].init = LE32(psx_ram[a0+2]); + semaphores[mipsinfo.i].max = LE32(psx_ram[a0+3]); + + semaphores[mipsinfo.i].current = semaphores[mipsinfo.i].init; + + semaphores[mipsinfo.i].inuse = 1; + } + + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 6: // SignalSema + #if DEBUG_HLE_IOP + printf("IOP: SignalSema(%d) (current %d)\n", a0, semaphores[a0].current); + #endif + + foundthread = 0; + for (i=0; i < iNumThreads; i++) + { + if ((threads[i].iState == TS_WAITSEMA) && (threads[i].waitparm == a0)) + { + threads[i].iState = TS_READY; + semaphores[a0].threadsWaiting--; + foundthread = 1; + break; + } + } + + mipsinfo.i = 0; + + if (!foundthread) + { + if (semaphores[a0].current < semaphores[a0].max) + { + semaphores[a0].current++; + } + else + { + mipsinfo.i = -420; // semaphore overflow + } + } + + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 7: // iSignalSema + #if DEBUG_HLE_IOP + printf("IOP: iSignalSema(%d)\n", a0); + #endif + + foundthread = 0; + for (i=0; i < iNumThreads; i++) + { + if ((threads[i].iState == TS_WAITSEMA) && (threads[i].waitparm == a0)) + { + threads[i].iState = TS_READY; + semaphores[a0].threadsWaiting--; + foundthread = 1; + break; + } + } + + mipsinfo.i = 0; + + if (!foundthread) + { + if (semaphores[a0].current < semaphores[a0].max) + { + semaphores[a0].current++; + } + else + { + mipsinfo.i = -420; // semaphore overflow + } + } + + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 8: // WaitSema + #if DEBUG_HLE_IOP + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + printf("IOP: WaitSema(%d) (cnt %d) (th %d) (PC=%x)\n", a0, iCurThread, semaphores[a0].current, mipsinfo.i); + #endif + + if (semaphores[a0].current > 0) + { + semaphores[a0].current--; + } + else + { + FreezeThread(iCurThread, 1); + threads[iCurThread].iState = TS_WAITSEMA; + threads[iCurThread].waitparm = a0; + ps2_reschedule(); + } + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + default: + printf("IOP: Unhandled service %d for module %s\n", callnum, name); + break; + } + } + else if (!strcmp(name, "timrman")) + { + switch (callnum) + { + case 4: // AllocHardTimer + #if DEBUG_HLE_IOP + printf("IOP: AllocHardTimer(%d %d %d)\n", a0, a1, a2); + #endif + // source, size, prescale + + if (a1 != 32) + { + printf("IOP: AllocHardTimer doesn't support 16-bit timers!\n"); + } + + iop_timers[iNumTimers].source = a0; + iop_timers[iNumTimers].prescale = a2; + + mipsinfo.i = iNumTimers+1; + iNumTimers++; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 6: // FreeHardTimer + #if DEBUG_HLE_IOP + printf("IOP: FreeHardTimer(%d)\n", a0); + #endif + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 10:// GetTimerCounter + mipsinfo.i = iop_timers[a0-1].count; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 20: // SetTimerHandler + #if DEBUG_HLE_IOP + printf("IOP: SetTimerHandler(%d %d %08x %08x)\n", a0, a1, a2, a3); + #endif + // id, compare, handler, common (last is param for handler) + + iop_timers[a0-1].target = a1; + iop_timers[a0-1].handler = a2; + iop_timers[a0-1].hparam = a3; + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 22: // SetupHardTimer + #if DEBUG_HLE_IOP + printf("IOP: SetupHardTimer(%d %d %d %d)\n", a0, a1, a2, a3); + #endif + // id, source, mode, prescale + + iop_timers[a0-1].source = a1; + iop_timers[a0-1].mode = a2; + iop_timers[a0-1].prescale = a3; + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 23: // StartHardTimer + #if DEBUG_HLE_IOP + printf("IOP: StartHardTimer(%d)\n", a0); + #endif + + iop_timers[a0-1].iActive = 1; + iop_timers[a0-1].count = 0; + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 24: // StopHardTimer + #if DEBUG_HLE_IOP + printf("IOP: StopHardTimer(%d)\n", a0); + #endif + + iop_timers[a0-1].iActive = 0; + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + default: + printf("IOP: Unhandled service %d for module %s\n", callnum, name); + break; + } + } + else if (!strcmp(name, "sysclib")) + { + switch (callnum) + { + case 12: // memcpy + { + uint8 *dst, *src; + + #if DEBUG_HLE_IOP + printf("IOP: memcpy(%08x, %08x, %d)\n", a0, a1, a2); + #endif + + dst = (uint8 *)&psx_ram[(a0&0x1fffff)/4]; + src = (uint8 *)&psx_ram[(a1&0x1fffff)/4]; + // get exact byte alignment + dst += a0 % 4; + src += a1 % 4; + + while (a2) + { + *dst = *src; + dst++; + src++; + a2--; + } + + // v0 = a0 + mipsinfo.i = a0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + case 13: // memmove + { + uint8 *dst, *src; + + #if DEBUG_HLE_IOP + printf("IOP: memmove(%08x, %08x, %d)\n", a0, a1, a2); + #endif + + dst = (uint8 *)&psx_ram[(a0&0x1fffff)/4]; + src = (uint8 *)&psx_ram[(a1&0x1fffff)/4]; + // get exact byte alignment + dst += a0 % 4; + src += a1 % 4; + + dst += a2 - 1; + src += a2 - 1; + + while (a2) + { + *dst = *src; + dst--; + src--; + a2--; + } + + // v0 = a0 + mipsinfo.i = a0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + case 14: // memset + { + uint8 *dst; + + #if DEBUG_HLE_IOP + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + printf("IOP: memset(%08x, %02x, %d) [PC=%x]\n", a0, a1, a2, mipsinfo.i); + #endif + + dst = (uint8 *)&psx_ram[(a0&0x1fffff)/4]; + dst += (a0 & 3); + + memset(dst, a1, a2); + } + break; + + case 17: // bzero + { + uint8 *dst; + + #if DEBUG_HLE_IOP + printf("IOP: bzero(%08x, %08x)\n", a0, a1); + #endif + + dst = (uint8 *)&psx_ram[(a0&0x1fffff)/4]; + dst += (a0 & 3); + memset(dst, 0, a1); + } + break; + + case 19: // sprintf + mname = (char *)psx_ram; + str1 = (char *)psx_ram; + mname += a0 & 0x1fffff; + str1 += a1 & 0x1fffff; + + #if DEBUG_HLE_IOP + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + printf("IOP: sprintf(%08x, %s, ...) [PC=%08x]\n", a0, str1, (uint32)mipsinfo.i); + printf("%x %x %x %x\n", a0, a1, a2, a3); + #endif + + iop_sprintf(mname, str1, CPUINFO_INT_REGISTER + MIPS_R6); // a2 is first parameter + + #if DEBUG_HLE_IOP + printf(" = [%s]\n", mname); + #endif + break; + + case 23: // strcpy + { + uint8 *dst, *src; + + #if DEBUG_HLE_IOP + printf("IOP: strcpy(%08x, %08x)\n", a0, a1); + #endif + + dst = (uint8 *)&psx_ram[(a0&0x1fffff)/4]; + src = (uint8 *)&psx_ram[(a1&0x1fffff)/4]; + // get exact byte alignment + dst += a0 % 4; + src += a1 % 4; + + while (*src != '\0') + { + *dst = *src; + dst++; + src++; + } + *dst = '\0'; + + // v0 = a0 + mipsinfo.i = a0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + case 27: // strlen + { + char *dst; + + #if DEBUG_HLE_IOP + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + printf("IOP: strlen(%08x) [PC=%x]\n", a0, mipsinfo.i); + #endif + + dst = (char *)&psx_ram[(a0&0x1fffff)/4]; + dst += (a0 & 3); + mipsinfo.i = strlen(dst); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + case 30: // strncpy + { + char *dst, *src; + + #if DEBUG_HLE_IOP + printf("IOP: strncpy(%08x, %08x, %d)\n", a0, a1, a2); + #endif + + dst = (char *)&psx_ram[(a0&0x1fffff)/4]; + src = (char *)&psx_ram[(a1&0x1fffff)/4]; + // get exact byte alignment + dst += a0 % 4; + src += a1 % 4; + + while ((*src != '\0') && (a2 > 0)) + { + *dst = *src; + dst++; + src++; + a2--; + } + *dst = '\0'; + + // v0 = a0 + mipsinfo.i = a0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + } + break; + + + case 36: // strtol + mname = (char *)&psx_ram[(a0 & 0x1fffff)/4]; + mname += (a0 & 3); + + if (a1) + { + printf("IOP: Unhandled strtol with non-NULL second parm\n"); + } + + mipsinfo.i = strtol(mname, NULL, a2); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + default: + printf("IOP: Unhandled service %d for module %s\n", callnum, name); + break; + } + } + else if (!strcmp(name, "intrman")) + { + switch (callnum) + { + case 4: // RegisterIntrHandler + #if DEBUG_HLE_IOP + printf("IOP: RegisterIntrHandler(%d %08x %08x %08x)\n", a0, a1, a2, a3); + #endif + + if (a0 == 9) + { + irq9_fval = a1; + irq9_cb = a2; + irq9_flag = a3; + } + + // DMA4? + if (a0 == 36) + { + dma4_fval = a1; + dma4_cb = a2; + dma4_flag = a3; + } + + // DMA7? + if (a0 == 40) + { + dma7_fval = a1; + dma7_cb = a2; + dma7_flag = a3; + } + break; + + case 5: // ReleaseIntrHandler + #if DEBUG_HLE_IOP + printf("IOP: ReleaseIntrHandler(%d)\n", a0); + #endif + break; + + case 6: // EnableIntr + #if DEBUG_HLE_IOP + printf("IOP: EnableIntr(%d)\n", a0); + #endif + break; + + case 7: // DisableIntr + #if DEBUG_HLE_IOP + printf("IOP: DisableIntr(%d)\n", a0); + #endif + break; + + case 8: // CpuDisableIntr + #if DEBUG_HLE_IOP + printf("IOP: CpuDisableIntr(%d)\n", a0); + #endif + break; + + case 9: // CpuEnableIntr + #if DEBUG_HLE_IOP + printf("IOP: CpuEnableIntr(%d)\n", a0); + #endif + break; + + case 17: // CpuSuspendIntr + #if DEBUG_HLE_IOP + printf("IOP: CpuSuspendIntr\n"); + #endif + + // if already suspended, return an error code + if (intr_susp) + { + mipsinfo.i = -102; + } + else + { + mipsinfo.i = 0; + } + intr_susp = 1; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 18: // CpuResumeIntr + #if DEBUG_HLE_IOP + printf("IOP: CpuResumeIntr\n"); + #endif + intr_susp = 0; + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 23: // QueryIntrContext + #if DEBUG_HLE_IOP + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + printf("IOP: QueryIntrContext(PC=%x)\n", mipsinfo.i); + #endif + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + default: + printf("IOP: Unhandled service %d for module %s\n", callnum, name); + break; + } + } + else if (!strcmp(name, "loadcore")) + { + switch (callnum) + { + case 5: // FlushDcache + #if DEBUG_HLE_IOP + printf("IOP: FlushDcache()\n"); + #endif + break; + + case 6: // RegisterLibraryEntries + a0 &= 0x1fffff; + #if DEBUG_HLE_IOP + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + printf("IOP: RegisterLibraryEntries(%08x) (PC=%x)\n", a0, mipsinfo.i); + #endif + + if (psx_ram[a0/4] == LE32(0x41c00000)) + { + a0 += 3*4; + memcpy(®libs[iNumLibs].name, &psx_ram[a0/4], 8); + reglibs[iNumLibs].name[8] = '\0'; + #if DEBUG_HLE_IOP + printf("Lib name [%s]\n", ®libs[iNumLibs].name); + #endif + a0 += 2*4; + reglibs[iNumLibs].dispatch = a0; + iNumLibs++; + } + else + { + printf("ERROR: Entry table signature missing\n"); + + } + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + default: + printf("IOP: Unhandled service %d for module %s\n", callnum, name); + break; + } + } + else if (!strcmp(name, "sysmem")) + { + uint32 newAlloc; + + switch (callnum) + { + case 4: // AllocMemory + newAlloc = psf2_get_loadaddr(); + // make sure we're 16-byte aligned + if (newAlloc & 15) + { + newAlloc &= ~15; + newAlloc += 16; + } + + if (a1 & 15) + { + a1 &= ~15; + a1 += 16; + } + + if (a1 == 1114112) // HACK for crappy code in Shadow Hearts rip that assumes the buffer address + { + printf("SH Hack: was %x now %x\n", newAlloc, 0x60000); + newAlloc = 0x60000; + } + + psf2_set_loadaddr(newAlloc + a1); + + #if DEBUG_HLE_IOP + printf("IOP: AllocMemory(%d, %d, %x) = %08x\n", a0, a1, a2, newAlloc|0x80000000); + #endif + + mipsinfo.i = newAlloc; // | 0x80000000; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 5: // FreeMemory + #if DEBUG_HLE_IOP + printf("IOP: FreeMemory(%x)\n", a0); + #endif + break; + + case 7: // QueryMaxFreeMemSize + #if DEBUG_HLE_IOP + printf("IOP: QueryMaxFreeMemSize\n"); + #endif + + mipsinfo.i = (2*1024*1024) - psf2_get_loadaddr(); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 8: // QueryTotalFreeMemSize + #if DEBUG_HLE_IOP + printf("IOP: QueryTotalFreeMemSize\n"); + #endif + + mipsinfo.i = (2*1024*1024) - psf2_get_loadaddr(); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 14: // Kprintf + mname = (char *)psx_ram; + mname += a0 & 0x1fffff; + mname += (a0 & 3); + + iop_sprintf(out, mname, CPUINFO_INT_REGISTER + MIPS_R5); // a1 is first parm + + if (out[strlen(out)-1] != '\n') + { + strcat(out, "\n"); + } + + // filter out ESC characters + { + int ch; + + for (ch = 0; ch < strlen(out); ch++) + { + if (out[ch] == 27) + { + out[ch] = ']'; + } + } + } + + #if DEBUG_HLE_IOP + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + printf("KTTY: %s [PC=%x]\n", out, mipsinfo.i); + #endif + + #if 0 + { + FILE *f; + f = fopen("psxram.bin", "wb"); + fwrite(psx_ram, 2*1024*1024, 1, f); + fclose(f); + } + #endif + break; + + default: + printf("IOP: Unhandled service %d for module %s\n", callnum, name); + break; + } + } + else if (!strcmp(name, "modload")) + { + uint8 *tempmem; + uint32 newAlloc; + + switch (callnum) + { + case 7: // LoadStartModule + mname = (char *)&psx_ram[(a0 & 0x1fffff)/4]; + mname += 8; + str1 = (char *)&psx_ram[(a2 & 0x1fffff)/4]; + #if DEBUG_HLE_IOP + printf("LoadStartModule: %s\n", mname); + #endif + + // get 2k for our parameters + newAlloc = psf2_get_loadaddr(); + // force 16-byte alignment + if (newAlloc & 0xf) + { + newAlloc &= ~0xf; + newAlloc += 16; + } + psf2_set_loadaddr(newAlloc + 2048); + + tempmem = (uint8 *)malloc(2*1024*1024); + if (psf2_load_file(mname, tempmem, 2*1024*1024) != 0xffffffff) + { + uint32 start; + int i; + + start = psf2_load_elf(tempmem, 2*1024*1024); + + if (start != 0xffffffff) + { + uint32 args[20], numargs = 1, argofs; + uint8 *argwalk = (uint8 *)psx_ram, *argbase; + + argwalk += (a2 & 0x1fffff); + argbase = argwalk; + + args[0] = a0; // program name is argc[0] + + argofs = 0; + + if (a1 > 0) + { + args[numargs] = a2; + numargs++; + + while (a1) + { + if ((*argwalk == 0) && (a1 > 1)) + { + args[numargs] = a2 + argofs + 1; + numargs++; + } + argwalk++; + argofs++; + a1--; + } + } + + for (i = 0; i < numargs; i++) + { + #if DEBUG_HLE_IOP +// printf("Arg %d: %08x [%s]\n", i, args[i], &argbase[args[i]-a2]); + #endif + psx_ram[(newAlloc/4)+i] = LE32(args[i]); + } + + // set argv and argc + mipsinfo.i = numargs; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R4, &mipsinfo); + mipsinfo.i = 0x80000000 | newAlloc; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R5, &mipsinfo); + + // leave RA alone, PC = module start + // (NOTE: we get called in the delay slot!) + mipsinfo.i = start - 4; + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + } + } + free(tempmem); + break; + + default: + printf("IOP: Unhandled service %d for module %s\n", callnum, name); + break; + } + + } + else if (!strcmp(name, "ioman")) + { + switch (callnum) + { + case 4: // open + { + int i, slot2use; + + slot2use = -1; + for (i = 0; i < MAX_FILE_SLOTS; i++) + { + if (filestat[i] == 0) + { + slot2use = i; + break; + } + } + + if (slot2use == -1) + { + printf("IOP: out of file slots!\n"); + mipsinfo.i = 0xffffffff; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + return; + } + + mname = (char *)psx_ram; + mname += (a0 & 0x1fffff); + + if (!strncmp(mname, "aofile:", 7)) + { + mname += 8; + } + else if (!strncmp(mname, "hefile:", 7)) + { + mname += 8; + } + else if (!strncmp(mname, "host0:", 6)) + { + mname += 7; + } + + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + #if DEBUG_HLE_IOP + printf("IOP: open(\"%s\") (PC=%08x)\n", mname, mipsinfo.i); + #endif + + filedata[slot2use] = malloc(6*1024*1024); + filesize[slot2use] = psf2_load_file(mname, filedata[slot2use], 6*1024*1024); + filepos[slot2use] = 0; + filestat[slot2use] = 1; + + if (filesize[slot2use] == 0xffffffff) + { + mipsinfo.i = filesize[slot2use]; + } + else + { + mipsinfo.i = slot2use; + } + } + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 5: // close + #if DEBUG_HLE_IOP + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + printf("IOP: close(%d) (PC=%08x)\n", a0, mipsinfo.i); + #endif + free(filedata[a0]); + filedata[a0] = (uint8 *)NULL; + filepos[a0] = 0; + filesize[a0] = 0; + filestat[a0] = 0; + break; + + case 6: // read + #if DEBUG_HLE_IOP + printf("IOP: read(%x %x %d) [pos %d size %d]\n", a0, a1, a2, filepos[a0], filesize[a0]); + #endif + + if (filepos[a0] >= filesize[a0]) + { + mipsinfo.i = 0; + } + else + { + uint8 *rp; + + if ((filepos[a0] + a2) > filesize[a0]) + { + a2 = filesize[a0] - filepos[a0]; + } + + rp = (uint8 *)psx_ram; + rp += (a1 & 0x1fffff); + memcpy(rp, &filedata[a0][filepos[a0]], a2); + + filepos[a0] += a2; + mipsinfo.i = a2; + } + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 8: // lseek + #if DEBUG_HLE_IOP + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + printf("IOP: lseek(%d, %d, %s) (PC=%08x)\n", a0, a1, seek_types[a2], mipsinfo.i); + #endif + + switch (a2) + { + case 0: // SEEK_SET + if (a1 <= filesize[a0]) + { + filepos[a0] = a1; + } + break; + case 1: // SEEK_CUR + if ((a1 + filepos[a0]) < filesize[a0]) + { + filepos[a0] += a1; + } + break; + case 2: // SEEK_END + filepos[a0] = filesize[a0] - a1; + break; + } + + mipsinfo.i = filepos[a0]; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 20: // AddDrv + #if DEBUG_HLE_IOP + printf("IOP: AddDrv(%x)\n", a0); + #endif + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + case 21: // DelDrv + #if DEBUG_HLE_IOP + printf("IOP: DelDrv(%x)\n", a0); + #endif + + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_R2, &mipsinfo); + break; + + default: + printf("IOP: Unhandled service %d for module %s\n", callnum, name); + } + } + else + { + int lib; + + if (iNumLibs > 0) + { + for (lib = 0; lib < iNumLibs; lib++) + { + if (!strcmp(name, reglibs[lib].name)) + { + #if DEBUG_HLE_IOP + uint32 PC; + + mips_get_info(CPUINFO_INT_REGISTER + MIPS_R31, &mipsinfo); + PC = mipsinfo.i; + #endif + + // zap the delay slot handling + mipsinfo.i = 0; + mips_set_info(CPUINFO_INT_REGISTER + MIPS_DELAYV, &mipsinfo); + mips_set_info(CPUINFO_INT_REGISTER + MIPS_DELAYR, &mipsinfo); + + mipsinfo.i = LE32(psx_ram[(reglibs[lib].dispatch/4) + callnum]); + + // (NOTE: we get called in the delay slot!) + #if DEBUG_HLE_IOP + printf("IOP: Calling %s (%d) service %d => %08x (parms %08x %08x %08x %08x) (PC=%x)\n", + reglibs[lib].name, + lib, + callnum, + (uint32)mipsinfo.i, + a0, a1, a2, a3, PC); + #endif + + #if 0 + if (!strcmp(reglibs[lib].name, "ssd")) + { + if (callnum == 37) + { + psxcpu_verbose = 4096; + } + } + #endif + + mipsinfo.i -= 4; + mips_set_info(CPUINFO_INT_PC, &mipsinfo); + + return; + } + } + } + + printf("IOP: Unhandled service %d for module %s\n", callnum, name); + } +} + diff -r c40585c57877 -r 7fc2c317d190 src/sid/xmms-sid.glade --- a/src/sid/xmms-sid.glade Thu Jul 03 17:23:34 2008 +0300 +++ b/src/sid/xmms-sid.glade Thu Jul 03 17:37:11 2008 +0300 @@ -3252,6 +3252,20 @@ 8 + + True + Cancel any changes + True + True + gtk-cancel + True + GTK_RELIEF_NORMAL + True + + + + + True Accept and update changes @@ -3264,20 +3278,6 @@ - - - - True - Cancel any changes - True - True - gtk-cancel - True - GTK_RELIEF_NORMAL - True - - - 0 diff -r c40585c57877 -r 7fc2c317d190 src/sid/xs_interface.c --- a/src/sid/xs_interface.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/sid/xs_interface.c Thu Jul 03 17:37:11 2008 +0300 @@ -222,8 +222,8 @@ GtkWidget *label18; GtkWidget *w_label3; GtkWidget *hbuttonbox1; + GtkWidget *cfg_cancel; GtkWidget *cfg_ok; - GtkWidget *cfg_cancel; GtkTooltips *tooltips; tooltips = gtk_tooltips_new (); @@ -1312,6 +1312,13 @@ gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox1), GTK_BUTTONBOX_END); gtk_box_set_spacing (GTK_BOX (hbuttonbox1), 8); + cfg_cancel = gtk_button_new_from_stock ("gtk-cancel"); + gtk_widget_set_name (cfg_cancel, "cfg_cancel"); + gtk_widget_show (cfg_cancel); + gtk_container_add (GTK_CONTAINER (hbuttonbox1), cfg_cancel); + GTK_WIDGET_SET_FLAGS (cfg_cancel, GTK_CAN_DEFAULT); + gtk_tooltips_set_tip (tooltips, cfg_cancel, _("Cancel any changes"), NULL); + cfg_ok = gtk_button_new_from_stock ("gtk-ok"); gtk_widget_set_name (cfg_ok, "cfg_ok"); gtk_widget_show (cfg_ok); @@ -1319,13 +1326,6 @@ GTK_WIDGET_SET_FLAGS (cfg_ok, GTK_CAN_DEFAULT); gtk_tooltips_set_tip (tooltips, cfg_ok, _("Accept and update changes"), NULL); - cfg_cancel = gtk_button_new_from_stock ("gtk-cancel"); - gtk_widget_set_name (cfg_cancel, "cfg_cancel"); - gtk_widget_show (cfg_cancel); - gtk_container_add (GTK_CONTAINER (hbuttonbox1), cfg_cancel); - GTK_WIDGET_SET_FLAGS (cfg_cancel, GTK_CAN_DEFAULT); - gtk_tooltips_set_tip (tooltips, cfg_cancel, _("Cancel any changes"), NULL); - g_signal_connect ((gpointer) xs_configwin, "delete_event", G_CALLBACK (xs_configwin_delete), NULL); @@ -1395,12 +1395,12 @@ g_signal_connect ((gpointer) cfg_hvsc_browse, "clicked", G_CALLBACK (xs_cfg_hvsc_browse), NULL); + g_signal_connect ((gpointer) cfg_cancel, "clicked", + G_CALLBACK (xs_cfg_cancel), + NULL); g_signal_connect ((gpointer) cfg_ok, "clicked", G_CALLBACK (xs_cfg_ok), NULL); - g_signal_connect ((gpointer) cfg_cancel, "clicked", - G_CALLBACK (xs_cfg_cancel), - NULL); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT_NO_REF (xs_configwin, xs_configwin, "xs_configwin"); @@ -1582,8 +1582,8 @@ GLADE_HOOKUP_OBJECT (xs_configwin, label18, "label18"); GLADE_HOOKUP_OBJECT (xs_configwin, w_label3, "w_label3"); GLADE_HOOKUP_OBJECT (xs_configwin, hbuttonbox1, "hbuttonbox1"); + GLADE_HOOKUP_OBJECT (xs_configwin, cfg_cancel, "cfg_cancel"); GLADE_HOOKUP_OBJECT (xs_configwin, cfg_ok, "cfg_ok"); - GLADE_HOOKUP_OBJECT (xs_configwin, cfg_cancel, "cfg_cancel"); GLADE_HOOKUP_OBJECT_NO_REF (xs_configwin, tooltips, "tooltips"); return xs_configwin; diff -r c40585c57877 -r 7fc2c317d190 src/skins/plugin.c --- a/src/skins/plugin.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/skins/plugin.c Thu Jul 03 17:37:11 2008 +0300 @@ -31,17 +31,15 @@ gchar *skins_paths[SKINS_PATH_COUNT] = {}; -GeneralPlugin skins_gp = +static Interface skins_gp = { - .description= "Audacious Skinned GUI", + .id = "skinned", + .desc = "Audacious Skinned GUI", .init = skins_init, - .about = skins_about, - .configure = skins_configure, - .cleanup = skins_cleanup + .fini = skins_cleanup }; -GeneralPlugin *skins_gplist[] = { &skins_gp, NULL }; -SIMPLE_GENERAL_PLUGIN(skins, skins_gplist); +SIMPLE_INTERFACE_PLUGIN("skinned", &skins_gp); gboolean plugin_is_active = FALSE; static void skins_free_paths(void) { @@ -73,7 +71,7 @@ g_free(xdg_cache_home); } -void skins_init(void) { +gboolean skins_init(void) { plugin_is_active = TRUE; g_log_set_handler(NULL, G_LOG_LEVEL_WARNING, g_log_default_handler, NULL); @@ -83,18 +81,21 @@ register_aud_stock_icons(); ui_manager_init(); ui_manager_create_menus(); - mainwin_setup_menus(); init_skins(config.skin); + mainwin_setup_menus(); if (config.player_visible) mainwin_real_show(); if (config.equalizer_visible) equalizerwin_show(TRUE); if (config.playlist_visible) playlistwin_show(); - return; + g_message("Entering Gtk+ main loop!"); + gtk_main(); + + return TRUE; } -void skins_cleanup(void) { +gboolean skins_cleanup(void) { if (plugin_is_active == TRUE) { skins_cfg_save(); skins_free_paths(); @@ -114,7 +115,9 @@ plugin_is_active = FALSE; } - return; + gtk_main_quit(); + + return TRUE; } void skins_about(void) { diff -r c40585c57877 -r 7fc2c317d190 src/skins/plugin.h --- a/src/skins/plugin.h Thu Jul 03 17:23:34 2008 +0300 +++ b/src/skins/plugin.h Thu Jul 03 17:37:11 2008 +0300 @@ -40,8 +40,8 @@ extern gchar *skins_paths[]; -void skins_init(void); -void skins_cleanup(void); +gboolean skins_init(void); +gboolean skins_cleanup(void); void skins_about(void); #endif diff -r c40585c57877 -r 7fc2c317d190 src/skins/ui_equalizer.c --- a/src/skins/ui_equalizer.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/skins/ui_equalizer.c Thu Jul 03 17:37:11 2008 +0300 @@ -84,7 +84,9 @@ static GtkWidget *equalizerwin_on, *equalizerwin_auto; -static GtkWidget *equalizerwin_close, *equalizerwin_presets, *equalizerwin_shade; +static GtkWidget *equalizerwin_close, *equalizerwin_shade; +static GtkWidget *equalizerwin_shaded_close, *equalizerwin_shaded_shade; +static GtkWidget *equalizerwin_presets; static GtkWidget *equalizerwin_preamp,*equalizerwin_bands[10]; static GtkWidget *equalizerwin_volume, *equalizerwin_balance; @@ -126,7 +128,7 @@ } GList *iter; - for (iter = GTK_FIXED (SKINNED_WINDOW(equalizerwin)->fixed)->children; iter; iter = g_list_next (iter)) { + for (iter = GTK_FIXED (SKINNED_WINDOW(equalizerwin)->normal)->children; iter; iter = g_list_next (iter)) { GtkFixedChild *child_data = (GtkFixedChild *) iter->data; GtkWidget *child = child_data->widget; g_signal_emit_by_name(child, "toggle-scaled"); @@ -138,26 +140,14 @@ equalizerwin_set_shade_menu_cb(gboolean shaded) { config.equalizer_shaded = shaded; + ui_skinned_window_set_shade(equalizerwin, shaded); if (shaded) { dock_shade(get_dock_window_list(), GTK_WINDOW(equalizerwin), 14 * EQUALIZER_SCALE_FACTOR); - ui_skinned_set_push_button_data(equalizerwin_shade, -1, 3, -1, 47); - ui_skinned_button_set_skin_index1(equalizerwin_shade, SKIN_EQ_EX); - ui_skinned_set_push_button_data(equalizerwin_close, 11, 38, 11, 47); - ui_skinned_button_set_skin_index(equalizerwin_close, SKIN_EQ_EX); - gtk_widget_show(equalizerwin_volume); - gtk_widget_show(equalizerwin_balance); - } - else { + } else { dock_shade(get_dock_window_list(), GTK_WINDOW(equalizerwin), 116 * EQUALIZER_SCALE_FACTOR); - ui_skinned_set_push_button_data(equalizerwin_shade, -1, 137, -1, 38); - ui_skinned_button_set_skin_index1(equalizerwin_shade, SKIN_EQMAIN); - ui_skinned_set_push_button_data(equalizerwin_close, 0, 116, 0, 125); - ui_skinned_button_set_skin_index(equalizerwin_close, SKIN_EQMAIN); - gtk_widget_hide(equalizerwin_volume); - gtk_widget_hide(equalizerwin_balance); } gtk_widget_shape_combine_mask(equalizerwin, skin_get_mask(aud_active_skin, SKIN_MASK_EQ + config.equalizer_shaded), 0, 0); @@ -426,46 +416,56 @@ gint i; equalizerwin_on = ui_skinned_button_new(); - ui_skinned_toggle_button_setup(equalizerwin_on, SKINNED_WINDOW(equalizerwin)->fixed, + ui_skinned_toggle_button_setup(equalizerwin_on, SKINNED_WINDOW(equalizerwin)->normal, 14, 18, 25, 12, 10, 119, 128, 119, 69, 119, 187, 119, SKIN_EQMAIN); g_signal_connect(equalizerwin_on, "clicked", equalizerwin_on_pushed, NULL); ui_skinned_button_set_inside(equalizerwin_on, aud_cfg->equalizer_active); equalizerwin_auto = ui_skinned_button_new(); - ui_skinned_toggle_button_setup(equalizerwin_auto, SKINNED_WINDOW(equalizerwin)->fixed, + ui_skinned_toggle_button_setup(equalizerwin_auto, SKINNED_WINDOW(equalizerwin)->normal, 39, 18, 33, 12, 35, 119, 153, 119, 94, 119, 212, 119, SKIN_EQMAIN); g_signal_connect(equalizerwin_auto, "clicked", equalizerwin_auto_pushed, NULL); ui_skinned_button_set_inside(equalizerwin_auto, aud_cfg->equalizer_autoload); equalizerwin_presets = ui_skinned_button_new(); - ui_skinned_push_button_setup(equalizerwin_presets, SKINNED_WINDOW(equalizerwin)->fixed, + ui_skinned_push_button_setup(equalizerwin_presets, SKINNED_WINDOW(equalizerwin)->normal, 217, 18, 44, 12, 224, 164, 224, 176, SKIN_EQMAIN); g_signal_connect(equalizerwin_presets, "clicked", equalizerwin_presets_pushed, NULL ); equalizerwin_close = ui_skinned_button_new(); - ui_skinned_push_button_setup(equalizerwin_close, SKINNED_WINDOW(equalizerwin)->fixed, + ui_skinned_push_button_setup(equalizerwin_close, SKINNED_WINDOW(equalizerwin)->normal, 264, 3, 9, 9, 0, 116, 0, 125, SKIN_EQMAIN); g_signal_connect(equalizerwin_close, "clicked", equalizerwin_close_cb, NULL ); equalizerwin_shade = ui_skinned_button_new(); - ui_skinned_push_button_setup(equalizerwin_shade, SKINNED_WINDOW(equalizerwin)->fixed, + ui_skinned_push_button_setup(equalizerwin_shade, SKINNED_WINDOW(equalizerwin)->normal, 254, 3, 9, 9, 254, 137, 1, 38, SKIN_EQMAIN); ui_skinned_button_set_skin_index2(equalizerwin_shade, SKIN_EQ_EX); g_signal_connect(equalizerwin_shade, "clicked", equalizerwin_shade_toggle, NULL ); - equalizerwin_graph = ui_skinned_equalizer_graph_new(SKINNED_WINDOW(equalizerwin)->fixed, 86, 17); + equalizerwin_shaded_close = ui_skinned_button_new(); + ui_skinned_push_button_setup(equalizerwin_shaded_close, SKINNED_WINDOW(equalizerwin)->shaded, + 264, 3, 9, 9, 11, 38, 11, 47, SKIN_EQ_EX); + g_signal_connect(equalizerwin_shaded_close, "clicked", equalizerwin_close_cb, NULL ); - equalizerwin_preamp = ui_skinned_equalizer_slider_new(SKINNED_WINDOW(equalizerwin)->fixed, 21, 38); + equalizerwin_shaded_shade = ui_skinned_button_new(); + ui_skinned_push_button_setup(equalizerwin_shaded_shade, SKINNED_WINDOW(equalizerwin)->shaded, + 254, 3, 9, 9, 254, 3, 1, 47, SKIN_EQ_EX); + g_signal_connect(equalizerwin_shaded_shade, "clicked", equalizerwin_shade_toggle, NULL ); + + equalizerwin_graph = ui_skinned_equalizer_graph_new(SKINNED_WINDOW(equalizerwin)->normal, 86, 17); + + equalizerwin_preamp = ui_skinned_equalizer_slider_new(SKINNED_WINDOW(equalizerwin)->normal, 21, 38); ui_skinned_equalizer_slider_set_position(equalizerwin_preamp, aud_cfg->equalizer_preamp); for (i = 0; i < 10; i++) { equalizerwin_bands[i] = - ui_skinned_equalizer_slider_new(SKINNED_WINDOW(equalizerwin)->fixed, 78 + (i * 18), 38); + ui_skinned_equalizer_slider_new(SKINNED_WINDOW(equalizerwin)->normal, 78 + (i * 18), 38); ui_skinned_equalizer_slider_set_position(equalizerwin_bands[i], aud_cfg->equalizer_bands[i]); } equalizerwin_volume = - ui_skinned_horizontal_slider_new(SKINNED_WINDOW(equalizerwin)->fixed, + ui_skinned_horizontal_slider_new(SKINNED_WINDOW(equalizerwin)->shaded, 61, 4, 97, 8, 1, 30, 1, 30, 3, 7, 4, 61, 0, 94, equalizerwin_volume_frame_cb, SKIN_EQ_EX); g_signal_connect(equalizerwin_volume, "motion", G_CALLBACK(equalizerwin_volume_motion_cb), NULL); @@ -473,7 +473,7 @@ equalizerwin_balance = - ui_skinned_horizontal_slider_new(SKINNED_WINDOW(equalizerwin)->fixed, + ui_skinned_horizontal_slider_new(SKINNED_WINDOW(equalizerwin)->shaded, 164, 4, 42, 8, 11, 30, 11, 30, 3, 7, 4, 164, 0, 39, equalizerwin_balance_frame_cb, SKIN_EQ_EX); g_signal_connect(equalizerwin_balance, "motion", G_CALLBACK(equalizerwin_balance_motion_cb), NULL); @@ -566,17 +566,6 @@ ui_skinned_button_set_inside(mainwin_eq, TRUE); gtk_widget_show_all(equalizerwin); - if (!config.equalizer_shaded) { - gtk_widget_hide(equalizerwin_volume); - gtk_widget_hide(equalizerwin_balance); - } - else { - ui_skinned_set_push_button_data(equalizerwin_shade, -1, 3, -1, 47); - ui_skinned_button_set_skin_index1(equalizerwin_shade, SKIN_EQ_EX); - ui_skinned_set_push_button_data(equalizerwin_close, 11, 38, 11, 47); - ui_skinned_button_set_skin_index(equalizerwin_close, SKIN_EQ_EX); - } - gtk_window_present(GTK_WINDOW(equalizerwin)); } diff -r c40585c57877 -r 7fc2c317d190 src/skins/ui_main.c --- a/src/skins/ui_main.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/skins/ui_main.c Thu Jul 03 17:37:11 2008 +0300 @@ -102,8 +102,8 @@ static gint seek_state = MAINWIN_SEEK_NIL; static gint seek_initial_pos = 0; -static GtkWidget *mainwin_menubtn; -static GtkWidget *mainwin_minimize, *mainwin_shade, *mainwin_close; +static GtkWidget *mainwin_menubtn, *mainwin_minimize, *mainwin_shade, *mainwin_close; +static GtkWidget *mainwin_shaded_menubtn, *mainwin_shaded_minimize, *mainwin_shaded_shade, *mainwin_shaded_close; static GtkWidget *mainwin_rew, *mainwin_fwd; static GtkWidget *mainwin_eject; @@ -185,6 +185,7 @@ mainwin_set_shade_menu_cb(gboolean shaded) { config.player_shaded = shaded; + ui_skinned_window_set_shade(mainwin, shaded); if (shaded) { dock_shade(get_dock_window_list(), GTK_WINDOW(mainwin), @@ -197,7 +198,6 @@ } mainwin_refresh_hints(); - ui_skinned_set_push_button_data(mainwin_shade, 0, config.player_shaded ? 27 : 18, 9, config.player_shaded ? 27 : 18); gtk_widget_shape_combine_mask(mainwin, skin_get_mask(aud_active_skin, SKIN_MASK_MAIN + config.player_shaded), 0, 0); } @@ -461,16 +461,6 @@ gtk_widget_hide(mainwin_stime_sec); } } else { - gtk_widget_hide(mainwin_srew); - gtk_widget_hide(mainwin_splay); - gtk_widget_hide(mainwin_spause); - gtk_widget_hide(mainwin_sstop); - gtk_widget_hide(mainwin_sfwd); - gtk_widget_hide(mainwin_seject); - gtk_widget_hide(mainwin_stime_min); - gtk_widget_hide(mainwin_stime_sec); - gtk_widget_hide(mainwin_svis); - gtk_widget_hide(mainwin_sposition); ui_vis_clear_data(mainwin_vis); if (config.vis_type != VIS_OFF) ui_vis_set_visible(mainwin_vis, TRUE); @@ -486,7 +476,7 @@ { /* positioning and size attributes */ if (aud_active_skin->properties.mainwin_vis_x && aud_active_skin->properties.mainwin_vis_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_vis), aud_active_skin->properties.mainwin_vis_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_vis), aud_active_skin->properties.mainwin_vis_x, aud_active_skin->properties.mainwin_vis_y); if (aud_active_skin->properties.mainwin_vis_width) @@ -494,7 +484,7 @@ UI_VIS(mainwin_vis)->height* MAINWIN_SCALE_FACTOR); if (aud_active_skin->properties.mainwin_text_x && aud_active_skin->properties.mainwin_text_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_info), aud_active_skin->properties.mainwin_text_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_info), aud_active_skin->properties.mainwin_text_x, aud_active_skin->properties.mainwin_text_y); if (aud_active_skin->properties.mainwin_text_width) { @@ -504,100 +494,100 @@ } if (aud_active_skin->properties.mainwin_infobar_x && aud_active_skin->properties.mainwin_infobar_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_othertext), aud_active_skin->properties.mainwin_infobar_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_othertext), aud_active_skin->properties.mainwin_infobar_x, aud_active_skin->properties.mainwin_infobar_y); if (aud_active_skin->properties.mainwin_number_0_x && aud_active_skin->properties.mainwin_number_0_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_minus_num), aud_active_skin->properties.mainwin_number_0_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_minus_num), aud_active_skin->properties.mainwin_number_0_x, aud_active_skin->properties.mainwin_number_0_y); if (aud_active_skin->properties.mainwin_number_1_x && aud_active_skin->properties.mainwin_number_1_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_10min_num), aud_active_skin->properties.mainwin_number_1_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_10min_num), aud_active_skin->properties.mainwin_number_1_x, aud_active_skin->properties.mainwin_number_1_y); if (aud_active_skin->properties.mainwin_number_2_x && aud_active_skin->properties.mainwin_number_2_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_min_num), aud_active_skin->properties.mainwin_number_2_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_min_num), aud_active_skin->properties.mainwin_number_2_x, aud_active_skin->properties.mainwin_number_2_y); if (aud_active_skin->properties.mainwin_number_3_x && aud_active_skin->properties.mainwin_number_3_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_10sec_num), aud_active_skin->properties.mainwin_number_3_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_10sec_num), aud_active_skin->properties.mainwin_number_3_x, aud_active_skin->properties.mainwin_number_3_y); if (aud_active_skin->properties.mainwin_number_4_x && aud_active_skin->properties.mainwin_number_4_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_sec_num), aud_active_skin->properties.mainwin_number_4_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_sec_num), aud_active_skin->properties.mainwin_number_4_x, aud_active_skin->properties.mainwin_number_4_y); if (aud_active_skin->properties.mainwin_playstatus_x && aud_active_skin->properties.mainwin_playstatus_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), mainwin_playstatus, aud_active_skin->properties.mainwin_playstatus_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), mainwin_playstatus, aud_active_skin->properties.mainwin_playstatus_x, aud_active_skin->properties.mainwin_playstatus_y); if (aud_active_skin->properties.mainwin_volume_x && aud_active_skin->properties.mainwin_volume_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_volume), aud_active_skin->properties.mainwin_volume_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_volume), aud_active_skin->properties.mainwin_volume_x, aud_active_skin->properties.mainwin_volume_y); if (aud_active_skin->properties.mainwin_balance_x && aud_active_skin->properties.mainwin_balance_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_balance), aud_active_skin->properties.mainwin_balance_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_balance), aud_active_skin->properties.mainwin_balance_x, aud_active_skin->properties.mainwin_balance_y); if (aud_active_skin->properties.mainwin_position_x && aud_active_skin->properties.mainwin_position_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_position), aud_active_skin->properties.mainwin_position_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_position), aud_active_skin->properties.mainwin_position_x, aud_active_skin->properties.mainwin_position_y); if (aud_active_skin->properties.mainwin_previous_x && aud_active_skin->properties.mainwin_previous_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), mainwin_rew, aud_active_skin->properties.mainwin_previous_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), mainwin_rew, aud_active_skin->properties.mainwin_previous_x, aud_active_skin->properties.mainwin_previous_y); if (aud_active_skin->properties.mainwin_play_x && aud_active_skin->properties.mainwin_play_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_play), aud_active_skin->properties.mainwin_play_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_play), aud_active_skin->properties.mainwin_play_x, aud_active_skin->properties.mainwin_play_y); if (aud_active_skin->properties.mainwin_pause_x && aud_active_skin->properties.mainwin_pause_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_pause), aud_active_skin->properties.mainwin_pause_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_pause), aud_active_skin->properties.mainwin_pause_x, aud_active_skin->properties.mainwin_pause_y); if (aud_active_skin->properties.mainwin_stop_x && aud_active_skin->properties.mainwin_stop_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_stop), aud_active_skin->properties.mainwin_stop_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_stop), aud_active_skin->properties.mainwin_stop_x, aud_active_skin->properties.mainwin_stop_y); if (aud_active_skin->properties.mainwin_next_x && aud_active_skin->properties.mainwin_next_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_fwd), aud_active_skin->properties.mainwin_next_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_fwd), aud_active_skin->properties.mainwin_next_x, aud_active_skin->properties.mainwin_next_y); if (aud_active_skin->properties.mainwin_eject_x && aud_active_skin->properties.mainwin_eject_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_eject), aud_active_skin->properties.mainwin_eject_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_eject), aud_active_skin->properties.mainwin_eject_x, aud_active_skin->properties.mainwin_eject_y); if (aud_active_skin->properties.mainwin_eqbutton_x && aud_active_skin->properties.mainwin_eqbutton_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_eq), aud_active_skin->properties.mainwin_eqbutton_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_eq), aud_active_skin->properties.mainwin_eqbutton_x, aud_active_skin->properties.mainwin_eqbutton_y); if (aud_active_skin->properties.mainwin_plbutton_x && aud_active_skin->properties.mainwin_plbutton_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_pl), aud_active_skin->properties.mainwin_plbutton_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_pl), aud_active_skin->properties.mainwin_plbutton_x, aud_active_skin->properties.mainwin_plbutton_y); if (aud_active_skin->properties.mainwin_shuffle_x && aud_active_skin->properties.mainwin_shuffle_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_shuffle), aud_active_skin->properties.mainwin_shuffle_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_shuffle), aud_active_skin->properties.mainwin_shuffle_x, aud_active_skin->properties.mainwin_shuffle_y); if (aud_active_skin->properties.mainwin_repeat_x && aud_active_skin->properties.mainwin_repeat_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_repeat), aud_active_skin->properties.mainwin_repeat_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_repeat), aud_active_skin->properties.mainwin_repeat_x, aud_active_skin->properties.mainwin_repeat_y); if (aud_active_skin->properties.mainwin_about_x && aud_active_skin->properties.mainwin_about_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_about), aud_active_skin->properties.mainwin_about_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_about), aud_active_skin->properties.mainwin_about_x, aud_active_skin->properties.mainwin_about_y); if (aud_active_skin->properties.mainwin_minimize_x && aud_active_skin->properties.mainwin_minimize_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_minimize), config.player_shaded ? 244 : aud_active_skin->properties.mainwin_minimize_x, + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_minimize), config.player_shaded ? 244 : aud_active_skin->properties.mainwin_minimize_x, config.player_shaded ? 3 : aud_active_skin->properties.mainwin_minimize_y); if (aud_active_skin->properties.mainwin_shade_x && aud_active_skin->properties.mainwin_shade_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_shade), config.player_shaded ? 254 : aud_active_skin->properties.mainwin_shade_x, - config.player_shaded ? 3 : aud_active_skin->properties.mainwin_shade_y); + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_shade), aud_active_skin->properties.mainwin_shade_x, + aud_active_skin->properties.mainwin_shade_y); if (aud_active_skin->properties.mainwin_close_x && aud_active_skin->properties.mainwin_close_y) - gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->fixed), GTK_WIDGET(mainwin_close), config.player_shaded ? 264 : aud_active_skin->properties.mainwin_close_x, - config.player_shaded ? 3 : aud_active_skin->properties.mainwin_close_y); + gtk_fixed_move(GTK_FIXED(SKINNED_WINDOW(mainwin)->normal), GTK_WIDGET(mainwin_close), aud_active_skin->properties.mainwin_close_x, + aud_active_skin->properties.mainwin_close_y); mainwin_refresh_visible(); @@ -714,18 +704,6 @@ gtk_widget_hide(mainwin_sposition); } -static gboolean -mainwin_mouse_button_release(GtkWidget * widget, - GdkEventButton * event, - gpointer callback_data) -{ - if (dock_is_moving(GTK_WINDOW(mainwin))) { - dock_move_release(GTK_WINDOW(mainwin)); - } - - return FALSE; -} - void mainwin_scrolled(GtkWidget *widget, GdkEventScroll *event, gpointer callback_data) @@ -1482,7 +1460,7 @@ void mainwin_spos_release_cb(GtkWidget *widget, gint pos) { - audacious_drct_seek(((aud_playlist_get_current_length(aud_playlist_get_active()) / 1000) * + audacious_drct_seek(((aud_playlist_get_current_length(aud_playlist_get_active())) * (pos - 1)) / 12); } @@ -1728,7 +1706,7 @@ aud_active_skin->properties.mainwin_width * config.scale_factor , aud_active_skin->properties.mainwin_height * config.scale_factor); GList *iter; - for (iter = GTK_FIXED (SKINNED_WINDOW(mainwin)->fixed)->children; iter; iter = g_list_next (iter)) { + for (iter = GTK_FIXED (SKINNED_WINDOW(mainwin)->normal)->children; iter; iter = g_list_next (iter)) { GtkFixedChild *child_data = (GtkFixedChild *) iter->data; GtkWidget *child = child_data->widget; g_signal_emit_by_name(child, "toggle-scaled"); @@ -2215,176 +2193,198 @@ mainwin_create_widgets(void) { mainwin_menubtn = ui_skinned_button_new(); - ui_skinned_push_button_setup(mainwin_menubtn, SKINNED_WINDOW(mainwin)->fixed, + ui_skinned_push_button_setup(mainwin_menubtn, SKINNED_WINDOW(mainwin)->normal, 6, 3, 9, 9, 0, 0, 0, 9, SKIN_TITLEBAR); g_signal_connect(mainwin_menubtn, "clicked", mainwin_menubtn_cb, NULL ); mainwin_minimize = ui_skinned_button_new(); - ui_skinned_push_button_setup(mainwin_minimize, SKINNED_WINDOW(mainwin)->fixed, + ui_skinned_push_button_setup(mainwin_minimize, SKINNED_WINDOW(mainwin)->normal, 244, 3, 9, 9, 9, 0, 9, 9, SKIN_TITLEBAR); g_signal_connect(mainwin_minimize, "clicked", mainwin_minimize_cb, NULL ); mainwin_shade = ui_skinned_button_new(); - ui_skinned_push_button_setup(mainwin_shade, SKINNED_WINDOW(mainwin)->fixed, - 254, 3, 9, 9, 0, - config.player_shaded ? 27 : 18, 9, config.player_shaded ? 27 : 18, SKIN_TITLEBAR); + ui_skinned_push_button_setup(mainwin_shade, SKINNED_WINDOW(mainwin)->normal, + 254, 3, 9, 9, 0, 18, 9, 18, SKIN_TITLEBAR); g_signal_connect(mainwin_shade, "clicked", mainwin_shade_toggle, NULL ); mainwin_close = ui_skinned_button_new(); - ui_skinned_push_button_setup(mainwin_close, SKINNED_WINDOW(mainwin)->fixed, + ui_skinned_push_button_setup(mainwin_close, SKINNED_WINDOW(mainwin)->normal, 264, 3, 9, 9, 18, 0, 18, 9, SKIN_TITLEBAR); g_signal_connect(mainwin_close, "clicked", mainwin_quit_cb, NULL ); mainwin_rew = ui_skinned_button_new(); - ui_skinned_push_button_setup(mainwin_rew, SKINNED_WINDOW(mainwin)->fixed, + ui_skinned_push_button_setup(mainwin_rew, SKINNED_WINDOW(mainwin)->normal, 16, 88, 23, 18, 0, 0, 0, 18, SKIN_CBUTTONS); g_signal_connect(mainwin_rew, "pressed", mainwin_rev_pushed, NULL); g_signal_connect(mainwin_rew, "released", mainwin_rev_release, NULL); mainwin_fwd = ui_skinned_button_new(); - ui_skinned_push_button_setup(mainwin_fwd, SKINNED_WINDOW(mainwin)->fixed, + ui_skinned_push_button_setup(mainwin_fwd, SKINNED_WINDOW(mainwin)->normal, 108, 88, 22, 18, 92, 0, 92, 18, SKIN_CBUTTONS); g_signal_connect(mainwin_fwd, "pressed", mainwin_fwd_pushed, NULL); g_signal_connect(mainwin_fwd, "released", mainwin_fwd_release, NULL); mainwin_play = ui_skinned_button_new(); - ui_skinned_push_button_setup(mainwin_play, SKINNED_WINDOW(mainwin)->fixed, + ui_skinned_push_button_setup(mainwin_play, SKINNED_WINDOW(mainwin)->normal, 39, 88, 23, 18, 23, 0, 23, 18, SKIN_CBUTTONS); g_signal_connect(mainwin_play, "clicked", mainwin_play_pushed, NULL ); mainwin_pause = ui_skinned_button_new(); - ui_skinned_push_button_setup(mainwin_pause, SKINNED_WINDOW(mainwin)->fixed, + ui_skinned_push_button_setup(mainwin_pause, SKINNED_WINDOW(mainwin)->normal, 62, 88, 23, 18, 46, 0, 46, 18, SKIN_CBUTTONS); g_signal_connect(mainwin_pause, "clicked", audacious_drct_pause, NULL ); mainwin_stop = ui_skinned_button_new(); - ui_skinned_push_button_setup(mainwin_stop, SKINNED_WINDOW(mainwin)->fixed, + ui_skinned_push_button_setup(mainwin_stop, SKINNED_WINDOW(mainwin)->normal, 85, 88, 23, 18, 69, 0, 69, 18, SKIN_CBUTTONS); g_signal_connect(mainwin_stop, "clicked", mainwin_stop_pushed, NULL ); mainwin_eject = ui_skinned_button_new(); - ui_skinned_push_button_setup(mainwin_eject, SKINNED_WINDOW(mainwin)->fixed, + ui_skinned_push_button_setup(mainwin_eject, SKINNED_WINDOW(mainwin)->normal, 136, 89, 22, 16, 114, 0, 114, 16, SKIN_CBUTTONS); g_signal_connect(mainwin_eject, "clicked", mainwin_eject_pushed, NULL); - mainwin_srew = ui_skinned_button_new(); - ui_skinned_small_button_setup(mainwin_srew, SKINNED_WINDOW(mainwin)->fixed, 169, 4, 8, 7); - g_signal_connect(mainwin_srew, "clicked", mainwin_aud_playlist_prev, NULL); - - mainwin_splay = ui_skinned_button_new(); - ui_skinned_small_button_setup(mainwin_splay, SKINNED_WINDOW(mainwin)->fixed, 177, 4, 10, 7); - g_signal_connect(mainwin_splay, "clicked", mainwin_play_pushed, NULL); - - mainwin_spause = ui_skinned_button_new(); - ui_skinned_small_button_setup(mainwin_spause, SKINNED_WINDOW(mainwin)->fixed, 187, 4, 10, 7); - g_signal_connect(mainwin_spause, "clicked", audacious_drct_pause, NULL); - - mainwin_sstop = ui_skinned_button_new(); - ui_skinned_small_button_setup(mainwin_sstop, SKINNED_WINDOW(mainwin)->fixed, 197, 4, 9, 7); - g_signal_connect(mainwin_sstop, "clicked", mainwin_stop_pushed, NULL); - - mainwin_sfwd = ui_skinned_button_new(); - ui_skinned_small_button_setup(mainwin_sfwd, SKINNED_WINDOW(mainwin)->fixed, 206, 4, 8, 7); - g_signal_connect(mainwin_sfwd, "clicked", mainwin_aud_playlist_next, NULL); - - mainwin_seject = ui_skinned_button_new(); - ui_skinned_small_button_setup(mainwin_seject, SKINNED_WINDOW(mainwin)->fixed, 216, 4, 9, 7); - g_signal_connect(mainwin_seject, "clicked", mainwin_eject_pushed, NULL); - mainwin_shuffle = ui_skinned_button_new(); - ui_skinned_toggle_button_setup(mainwin_shuffle, SKINNED_WINDOW(mainwin)->fixed, + ui_skinned_toggle_button_setup(mainwin_shuffle, SKINNED_WINDOW(mainwin)->normal, 164, 89, 46, 15, 28, 0, 28, 15, 28, 30, 28, 45, SKIN_SHUFREP); g_signal_connect(mainwin_shuffle, "clicked", mainwin_shuffle_pushed_cb, NULL); mainwin_repeat = ui_skinned_button_new(); - ui_skinned_toggle_button_setup(mainwin_repeat, SKINNED_WINDOW(mainwin)->fixed, + ui_skinned_toggle_button_setup(mainwin_repeat, SKINNED_WINDOW(mainwin)->normal, 210, 89, 28, 15, 0, 0, 0, 15, 0, 30, 0, 45, SKIN_SHUFREP); g_signal_connect(mainwin_repeat, "clicked", mainwin_repeat_pushed_cb, NULL); mainwin_eq = ui_skinned_button_new(); - ui_skinned_toggle_button_setup(mainwin_eq, SKINNED_WINDOW(mainwin)->fixed, + ui_skinned_toggle_button_setup(mainwin_eq, SKINNED_WINDOW(mainwin)->normal, 219, 58, 23, 12, 0, 61, 46, 61, 0, 73, 46, 73, SKIN_SHUFREP); g_signal_connect(mainwin_eq, "clicked", mainwin_equalizer_pushed_cb, NULL); ui_skinned_button_set_inside(mainwin_eq, config.equalizer_visible); mainwin_pl = ui_skinned_button_new(); - ui_skinned_toggle_button_setup(mainwin_pl, SKINNED_WINDOW(mainwin)->fixed, + ui_skinned_toggle_button_setup(mainwin_pl, SKINNED_WINDOW(mainwin)->normal, 242, 58, 23, 12, 23, 61, 69, 61, 23, 73, 69, 73, SKIN_SHUFREP); g_signal_connect(mainwin_pl, "clicked", mainwin_playlist_pushed_cb, NULL); ui_skinned_button_set_inside(mainwin_pl, config.playlist_visible); - mainwin_info = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 112, 27, 153, 1, SKIN_TEXT); + mainwin_info = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->normal, 112, 27, 153, 1, SKIN_TEXT); ui_skinned_textbox_set_scroll(mainwin_info, config.autoscroll); ui_skinned_textbox_set_xfont(mainwin_info, !config.mainwin_use_bitmapfont, config.mainwin_font); g_signal_connect(mainwin_info, "double-clicked", mainwin_info_double_clicked_cb, NULL); g_signal_connect(mainwin_info, "right-clicked", G_CALLBACK(mainwin_info_right_clicked_cb), NULL); - mainwin_othertext = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 112, 43, 153, 1, SKIN_TEXT); - - mainwin_rate_text = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 111, 43, 15, 0, SKIN_TEXT); - - mainwin_freq_text = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 156, 43, 10, 0, SKIN_TEXT); - - mainwin_menurow = ui_skinned_menurow_new(SKINNED_WINDOW(mainwin)->fixed, 10, 22, 304, 0, 304, 44, SKIN_TITLEBAR); + mainwin_othertext = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->normal, 112, 43, 153, 1, SKIN_TEXT); + + mainwin_rate_text = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->normal, 111, 43, 15, 0, SKIN_TEXT); + + mainwin_freq_text = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->normal, 156, 43, 10, 0, SKIN_TEXT); + + mainwin_menurow = ui_skinned_menurow_new(SKINNED_WINDOW(mainwin)->normal, 10, 22, 304, 0, 304, 44, SKIN_TITLEBAR); g_signal_connect(mainwin_menurow, "change", G_CALLBACK(mainwin_mr_change), NULL); g_signal_connect(mainwin_menurow, "release", G_CALLBACK(mainwin_mr_release), NULL); - mainwin_volume = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->fixed, 107, 57, 68, + mainwin_volume = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->normal, 107, 57, 68, 13, 15, 422, 0, 422, 14, 11, 15, 0, 0, 51, mainwin_volume_frame_cb, SKIN_VOLUME); g_signal_connect(mainwin_volume, "motion", G_CALLBACK(mainwin_volume_motion_cb), NULL); g_signal_connect(mainwin_volume, "release", G_CALLBACK(mainwin_volume_release_cb), NULL); - mainwin_balance = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->fixed, 177, 57, 38, + mainwin_balance = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->normal, 177, 57, 38, 13, 15, 422, 0, 422, 14, 11, 15, 9, 0, 24, mainwin_balance_frame_cb, SKIN_BALANCE); g_signal_connect(mainwin_balance, "motion", G_CALLBACK(mainwin_balance_motion_cb), NULL); g_signal_connect(mainwin_balance, "release", G_CALLBACK(mainwin_balance_release_cb), NULL); - mainwin_monostereo = ui_skinned_monostereo_new(SKINNED_WINDOW(mainwin)->fixed, 212, 41, SKIN_MONOSTEREO); - - mainwin_playstatus = ui_skinned_playstatus_new(SKINNED_WINDOW(mainwin)->fixed, 24, 28); - - mainwin_minus_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, 36, 26, SKIN_NUMBERS); + mainwin_monostereo = ui_skinned_monostereo_new(SKINNED_WINDOW(mainwin)->normal, 212, 41, SKIN_MONOSTEREO); + + mainwin_playstatus = ui_skinned_playstatus_new(SKINNED_WINDOW(mainwin)->normal, 24, 28); + + mainwin_minus_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->normal, 36, 26, SKIN_NUMBERS); g_signal_connect(mainwin_minus_num, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL); - mainwin_10min_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, 48, 26, SKIN_NUMBERS); + mainwin_10min_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->normal, 48, 26, SKIN_NUMBERS); g_signal_connect(mainwin_10min_num, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL); - mainwin_min_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, 60, 26, SKIN_NUMBERS); + mainwin_min_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->normal, 60, 26, SKIN_NUMBERS); g_signal_connect(mainwin_min_num, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL); - mainwin_10sec_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, 78, 26, SKIN_NUMBERS); + mainwin_10sec_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->normal, 78, 26, SKIN_NUMBERS); g_signal_connect(mainwin_10sec_num, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL); - mainwin_sec_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->fixed, 90, 26, SKIN_NUMBERS); + mainwin_sec_num = ui_skinned_number_new(SKINNED_WINDOW(mainwin)->normal, 90, 26, SKIN_NUMBERS); g_signal_connect(mainwin_sec_num, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL); mainwin_about = ui_skinned_button_new(); - ui_skinned_small_button_setup(mainwin_about, SKINNED_WINDOW(mainwin)->fixed, 247, 83, 20, 25); + ui_skinned_small_button_setup(mainwin_about, SKINNED_WINDOW(mainwin)->normal, 247, 83, 20, 25); g_signal_connect(mainwin_about, "clicked", G_CALLBACK(action_about_audacious), NULL); - mainwin_vis = ui_vis_new(SKINNED_WINDOW(mainwin)->fixed, 24, 43, 76); + mainwin_vis = ui_vis_new(SKINNED_WINDOW(mainwin)->normal, 24, 43, 76); g_signal_connect(mainwin_vis, "button-press-event", G_CALLBACK(mainwin_vis_cb), NULL); - mainwin_svis = ui_svis_new(SKINNED_WINDOW(mainwin)->fixed, 79, 5); - g_signal_connect(mainwin_svis, "button-press-event", G_CALLBACK(mainwin_vis_cb), NULL); - - mainwin_position = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->fixed, 16, 72, 248, + + mainwin_position = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->normal, 16, 72, 248, 10, 248, 0, 278, 0, 29, 10, 10, 0, 0, 219, NULL, SKIN_POSBAR); g_signal_connect(mainwin_position, "motion", G_CALLBACK(mainwin_position_motion_cb), NULL); g_signal_connect(mainwin_position, "release", G_CALLBACK(mainwin_position_release_cb), NULL); - mainwin_sposition = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->fixed, 226, 4, 17, + /* shaded */ + + mainwin_shaded_menubtn = ui_skinned_button_new(); + ui_skinned_push_button_setup(mainwin_shaded_menubtn, SKINNED_WINDOW(mainwin)->shaded, + 6, 3, 9, 9, 0, 0, 0, 9, SKIN_TITLEBAR); + g_signal_connect(mainwin_shaded_menubtn, "clicked", mainwin_menubtn_cb, NULL ); + + mainwin_shaded_minimize = ui_skinned_button_new(); + ui_skinned_push_button_setup(mainwin_shaded_minimize, SKINNED_WINDOW(mainwin)->shaded, + 244, 3, 9, 9, 9, 0, 9, 9, SKIN_TITLEBAR); + g_signal_connect(mainwin_shaded_minimize, "clicked", mainwin_minimize_cb, NULL ); + + mainwin_shaded_shade = ui_skinned_button_new(); + ui_skinned_push_button_setup(mainwin_shaded_shade, SKINNED_WINDOW(mainwin)->shaded, + 254, 3, 9, 9, 0, 27, 9, 27, SKIN_TITLEBAR); + g_signal_connect(mainwin_shaded_shade, "clicked", mainwin_shade_toggle, NULL ); + + mainwin_shaded_close = ui_skinned_button_new(); + ui_skinned_push_button_setup(mainwin_shaded_close, SKINNED_WINDOW(mainwin)->shaded, + 264, 3, 9, 9, 18, 0, 18, 9, SKIN_TITLEBAR); + g_signal_connect(mainwin_shaded_close, "clicked", mainwin_quit_cb, NULL ); + + mainwin_srew = ui_skinned_button_new(); + ui_skinned_small_button_setup(mainwin_srew, SKINNED_WINDOW(mainwin)->shaded, 169, 4, 8, 7); + g_signal_connect(mainwin_srew, "clicked", mainwin_aud_playlist_prev, NULL); + + mainwin_splay = ui_skinned_button_new(); + ui_skinned_small_button_setup(mainwin_splay, SKINNED_WINDOW(mainwin)->shaded, 177, 4, 10, 7); + g_signal_connect(mainwin_splay, "clicked", mainwin_play_pushed, NULL); + + mainwin_spause = ui_skinned_button_new(); + ui_skinned_small_button_setup(mainwin_spause, SKINNED_WINDOW(mainwin)->shaded, 187, 4, 10, 7); + g_signal_connect(mainwin_spause, "clicked", audacious_drct_pause, NULL); + + mainwin_sstop = ui_skinned_button_new(); + ui_skinned_small_button_setup(mainwin_sstop, SKINNED_WINDOW(mainwin)->shaded, 197, 4, 9, 7); + g_signal_connect(mainwin_sstop, "clicked", mainwin_stop_pushed, NULL); + + mainwin_sfwd = ui_skinned_button_new(); + ui_skinned_small_button_setup(mainwin_sfwd, SKINNED_WINDOW(mainwin)->shaded, 206, 4, 8, 7); + g_signal_connect(mainwin_sfwd, "clicked", mainwin_aud_playlist_next, NULL); + + mainwin_seject = ui_skinned_button_new(); + ui_skinned_small_button_setup(mainwin_seject, SKINNED_WINDOW(mainwin)->shaded, 216, 4, 9, 7); + g_signal_connect(mainwin_seject, "clicked", mainwin_eject_pushed, NULL); + + mainwin_svis = ui_svis_new(SKINNED_WINDOW(mainwin)->shaded, 79, 5); + g_signal_connect(mainwin_svis, "button-press-event", G_CALLBACK(mainwin_vis_cb), NULL); + + mainwin_sposition = ui_skinned_horizontal_slider_new(SKINNED_WINDOW(mainwin)->shaded, 226, 4, 17, 7, 17, 36, 17, 36, 3, 7, 36, 0, 1, 13, mainwin_spos_frame_cb, SKIN_TITLEBAR); g_signal_connect(mainwin_sposition, "motion", G_CALLBACK(mainwin_spos_motion_cb), NULL); g_signal_connect(mainwin_sposition, "release", G_CALLBACK(mainwin_spos_release_cb), NULL); - mainwin_stime_min = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 130, 4, 15, FALSE, SKIN_TEXT); + mainwin_stime_min = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->shaded, 130, 4, 15, FALSE, SKIN_TEXT); g_signal_connect(mainwin_stime_min, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL); - mainwin_stime_sec = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->fixed, 147, 4, 10, FALSE, SKIN_TEXT); + mainwin_stime_sec = ui_skinned_textbox_new(SKINNED_WINDOW(mainwin)->shaded, 147, 4, 10, FALSE, SKIN_TEXT); g_signal_connect(mainwin_stime_sec, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL); } @@ -2416,8 +2416,6 @@ G_CALLBACK(mainwin_mouse_button_press), NULL); g_signal_connect(mainwin, "scroll_event", G_CALLBACK(mainwin_scrolled), NULL); - g_signal_connect(mainwin, "button_release_event", - G_CALLBACK(mainwin_mouse_button_release), NULL); aud_drag_dest_set(mainwin); diff -r c40585c57877 -r 7fc2c317d190 src/skins/ui_playlist.c --- a/src/skins/ui_playlist.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/skins/ui_playlist.c Thu Jul 03 17:37:11 2008 +0300 @@ -74,6 +74,7 @@ static GtkWidget *playlistwin_list = NULL; static GtkWidget *playlistwin_shade, *playlistwin_close; +static GtkWidget *playlistwin_shaded_shade, *playlistwin_shaded_close; static gboolean playlistwin_hint_flag = FALSE; @@ -338,19 +339,14 @@ playlistwin_set_shade(gboolean shaded) { config.playlist_shaded = shaded; + ui_skinned_window_set_shade(playlistwin, shaded); if (shaded) { playlistwin_set_sinfo_font(config.playlist_font); playlistwin_set_sinfo_scroll(config.autoscroll); - gtk_widget_show(playlistwin_sinfo); - ui_skinned_set_push_button_data(playlistwin_shade, 128, 45, 150, 42); - ui_skinned_set_push_button_data(playlistwin_close, 138, 45, -1, -1); } else { - gtk_widget_hide(playlistwin_sinfo); playlistwin_set_sinfo_scroll(FALSE); - ui_skinned_set_push_button_data(playlistwin_shade, 157, 3, 62, 42); - ui_skinned_set_push_button_data(playlistwin_close, 167, 3, -1, -1); } dock_shade(get_dock_window_list(), GTK_WINDOW(playlistwin), @@ -644,6 +640,8 @@ ui_skinned_button_move_relative(playlistwin_shade, dx, 0); ui_skinned_button_move_relative(playlistwin_close, dx, 0); + ui_skinned_button_move_relative(playlistwin_shaded_shade, dx, 0); + ui_skinned_button_move_relative(playlistwin_shaded_close, dx, 0); ui_skinned_textbox_move_relative(playlistwin_time_min, dx, dy); ui_skinned_textbox_move_relative(playlistwin_time_sec, dx, dy); ui_skinned_textbox_move_relative(playlistwin_info, dx, dy); @@ -1366,57 +1364,58 @@ /* This function creates the custom widgets used by the playlist editor */ /* text box for displaying song title in shaded mode */ - playlistwin_sinfo = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->fixed, + playlistwin_sinfo = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->shaded, 4, 4, playlistwin_get_width() - 35, TRUE, SKIN_TEXT); playlistwin_set_sinfo_font(config.playlist_font); + + playlistwin_shaded_shade = ui_skinned_button_new(); + ui_skinned_push_button_setup(playlistwin_shaded_shade, SKINNED_WINDOW(playlistwin)->shaded, + playlistwin_get_width() - 21, 3, + 9, 9, 128, 45, 150, 42, SKIN_PLEDIT); + g_signal_connect(playlistwin_shaded_shade, "clicked", playlistwin_shade_toggle, NULL ); + + playlistwin_shaded_close = ui_skinned_button_new(); + ui_skinned_push_button_setup(playlistwin_shaded_close, SKINNED_WINDOW(playlistwin)->shaded, + playlistwin_get_width() - 11, 3, 9, 9, 138, 45, 52, 42, SKIN_PLEDIT); + g_signal_connect(playlistwin_shaded_close, "clicked", playlistwin_hide, NULL ); + playlistwin_shade = ui_skinned_button_new(); - /* shade/unshade window push button */ - if (config.playlist_shaded) - ui_skinned_push_button_setup(playlistwin_shade, SKINNED_WINDOW(playlistwin)->fixed, - playlistwin_get_width() - 21, 3, - 9, 9, 128, 45, 150, 42, SKIN_PLEDIT); - else - ui_skinned_push_button_setup(playlistwin_shade, SKINNED_WINDOW(playlistwin)->fixed, - playlistwin_get_width() - 21, 3, - 9, 9, 157, 3, 62, 42, SKIN_PLEDIT); - + ui_skinned_push_button_setup(playlistwin_shade, SKINNED_WINDOW(playlistwin)->normal, + playlistwin_get_width() - 21, 3, + 9, 9, 157, 3, 62, 42, SKIN_PLEDIT); g_signal_connect(playlistwin_shade, "clicked", playlistwin_shade_toggle, NULL ); - /* close window push button */ playlistwin_close = ui_skinned_button_new(); - ui_skinned_push_button_setup(playlistwin_close, SKINNED_WINDOW(playlistwin)->fixed, - playlistwin_get_width() - 11, 3, 9, 9, - config.playlist_shaded ? 138 : 167, - config.playlist_shaded ? 45 : 3, 52, 42, SKIN_PLEDIT); - + ui_skinned_push_button_setup(playlistwin_close, SKINNED_WINDOW(playlistwin)->normal, + playlistwin_get_width() - 11, 3, 9, 9, 167, 3, 52, 42, SKIN_PLEDIT); g_signal_connect(playlistwin_close, "clicked", playlistwin_hide, NULL ); /* playlist list box */ - playlistwin_list = ui_skinned_playlist_new(SKINNED_WINDOW(playlistwin)->fixed, 12, 20, + playlistwin_list = ui_skinned_playlist_new(SKINNED_WINDOW(playlistwin)->normal, 12, 20, playlistwin_get_width() - 31, config.playlist_height - 58); ui_skinned_playlist_set_font(config.playlist_font); /* playlist list box slider */ - playlistwin_slider = ui_skinned_playlist_slider_new(SKINNED_WINDOW(playlistwin)->fixed, playlistwin_get_width() - 15, + playlistwin_slider = ui_skinned_playlist_slider_new(SKINNED_WINDOW(playlistwin)->normal, playlistwin_get_width() - 15, 20, config.playlist_height - 58); /* track time (minute) */ - playlistwin_time_min = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->fixed, + playlistwin_time_min = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->normal, playlistwin_get_width() - 82, config.playlist_height - 15, 15, FALSE, SKIN_TEXT); g_signal_connect(playlistwin_time_min, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL); /* track time (second) */ - playlistwin_time_sec = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->fixed, + playlistwin_time_sec = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->normal, playlistwin_get_width() - 64, config.playlist_height - 15, 10, FALSE, SKIN_TEXT); g_signal_connect(playlistwin_time_sec, "button-press-event", G_CALLBACK(change_timer_mode_cb), NULL); /* playlist information (current track length / total track length) */ - playlistwin_info = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->fixed, + playlistwin_info = ui_skinned_textbox_new(SKINNED_WINDOW(playlistwin)->normal, playlistwin_get_width() - 143, config.playlist_height - 28, 90, FALSE, SKIN_TEXT); @@ -1424,54 +1423,54 @@ /* rewind button */ playlistwin_srew = ui_skinned_button_new(); - ui_skinned_small_button_setup(playlistwin_srew, SKINNED_WINDOW(playlistwin)->fixed, + ui_skinned_small_button_setup(playlistwin_srew, SKINNED_WINDOW(playlistwin)->normal, playlistwin_get_width() - 144, config.playlist_height - 16, 8, 7); g_signal_connect(playlistwin_srew, "clicked", local_playlist_prev, NULL); /* play button */ playlistwin_splay = ui_skinned_button_new(); - ui_skinned_small_button_setup(playlistwin_splay, SKINNED_WINDOW(playlistwin)->fixed, + ui_skinned_small_button_setup(playlistwin_splay, SKINNED_WINDOW(playlistwin)->normal, playlistwin_get_width() - 138, config.playlist_height - 16, 10, 7); g_signal_connect(playlistwin_splay, "clicked", mainwin_play_pushed, NULL); /* pause button */ playlistwin_spause = ui_skinned_button_new(); - ui_skinned_small_button_setup(playlistwin_spause, SKINNED_WINDOW(playlistwin)->fixed, + ui_skinned_small_button_setup(playlistwin_spause, SKINNED_WINDOW(playlistwin)->normal, playlistwin_get_width() - 128, config.playlist_height - 16, 10, 7); g_signal_connect(playlistwin_spause, "clicked", audacious_drct_pause, NULL); /* stop button */ playlistwin_sstop = ui_skinned_button_new(); - ui_skinned_small_button_setup(playlistwin_sstop, SKINNED_WINDOW(playlistwin)->fixed, + ui_skinned_small_button_setup(playlistwin_sstop, SKINNED_WINDOW(playlistwin)->normal, playlistwin_get_width() - 118, config.playlist_height - 16, 9, 7); g_signal_connect(playlistwin_sstop, "clicked", mainwin_stop_pushed, NULL); /* forward button */ playlistwin_sfwd = ui_skinned_button_new(); - ui_skinned_small_button_setup(playlistwin_sfwd, SKINNED_WINDOW(playlistwin)->fixed, + ui_skinned_small_button_setup(playlistwin_sfwd, SKINNED_WINDOW(playlistwin)->normal, playlistwin_get_width() - 109, config.playlist_height - 16, 8, 7); g_signal_connect(playlistwin_sfwd, "clicked", local_playlist_next, NULL); /* eject button */ playlistwin_seject = ui_skinned_button_new(); - ui_skinned_small_button_setup(playlistwin_seject, SKINNED_WINDOW(playlistwin)->fixed, + ui_skinned_small_button_setup(playlistwin_seject, SKINNED_WINDOW(playlistwin)->normal, playlistwin_get_width() - 100, config.playlist_height - 16, 9, 7); g_signal_connect(playlistwin_seject, "clicked", mainwin_eject_pushed, NULL); playlistwin_sscroll_up = ui_skinned_button_new(); - ui_skinned_small_button_setup(playlistwin_sscroll_up, SKINNED_WINDOW(playlistwin)->fixed, + ui_skinned_small_button_setup(playlistwin_sscroll_up, SKINNED_WINDOW(playlistwin)->normal, playlistwin_get_width() - 14, config.playlist_height - 35, 8, 5); g_signal_connect(playlistwin_sscroll_up, "clicked", playlistwin_scroll_up_pushed, NULL); playlistwin_sscroll_down = ui_skinned_button_new(); - ui_skinned_small_button_setup(playlistwin_sscroll_down, SKINNED_WINDOW(playlistwin)->fixed, + ui_skinned_small_button_setup(playlistwin_sscroll_down, SKINNED_WINDOW(playlistwin)->normal, playlistwin_get_width() - 14, config.playlist_height - 30, 8, 5); g_signal_connect(playlistwin_sscroll_down, "clicked", playlistwin_scroll_down_pushed, NULL); diff -r c40585c57877 -r 7fc2c317d190 src/skins/ui_skin.c --- a/src/skins/ui_skin.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/skins/ui_skin.c Thu Jul 03 17:37:11 2008 +0300 @@ -1753,9 +1753,9 @@ x = -1; y = -1; - if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(mainwin)->fixed) { + if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(mainwin)->normal) { GList *iter; - for (iter = GTK_FIXED (SKINNED_WINDOW(mainwin)->fixed)->children; iter; iter = g_list_next (iter)) { + for (iter = GTK_FIXED (SKINNED_WINDOW(mainwin)->normal)->children; iter; iter = g_list_next (iter)) { GtkFixedChild *child_data = (GtkFixedChild *) iter->data; if (child_data->widget == widget) { x = child_data->x; @@ -1779,10 +1779,10 @@ if (pixmap_id == SKIN_MONOSTEREO) height = pixmap->height/2; } - } else if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(equalizerwin)->fixed) { + } else if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(equalizerwin)->normal) { if (!(pixmap_id == SKIN_EQMAIN && ysrc == 314)) /* equalizer preamp on equalizer graph */ gtk_widget_hide(widget); - } else if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(playlistwin)->fixed) { + } else if (gtk_widget_get_parent(widget) == SKINNED_WINDOW(playlistwin)->normal) { /* I haven't seen any skin with substandard playlist */ gtk_widget_hide(widget); } diff -r c40585c57877 -r 7fc2c317d190 src/skins/ui_skinned_button.c --- a/src/skins/ui_skinned_button.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/skins/ui_skinned_button.c Thu Jul 03 17:37:11 2008 +0300 @@ -398,8 +398,8 @@ } static void button_released(UiSkinnedButton *button) { + if(button->hover && button->button_down) ui_skinned_button_clicked(button); button->button_down = FALSE; - if(button->hover) ui_skinned_button_clicked(button); ui_skinned_button_update_state(button); } @@ -487,25 +487,6 @@ gtk_widget_queue_draw(widget); } -void ui_skinned_set_push_button_data(GtkWidget *button, gint nx, gint ny, gint px, gint py) { - UiSkinnedButtonPrivate *priv = UI_SKINNED_BUTTON_GET_PRIVATE(button); - if (nx > -1) priv->nx = nx; - if (ny > -1) priv->ny = ny; - if (px > -1) priv->px = px; - if (py > -1) priv->py = py; - gtk_widget_queue_draw(button); -} - -void ui_skinned_button_set_skin_index(GtkWidget *button, SkinPixmapId si) { - UiSkinnedButtonPrivate *priv = UI_SKINNED_BUTTON_GET_PRIVATE (button); - priv->skin_index1 = priv->skin_index2 = si; -} - -void ui_skinned_button_set_skin_index1(GtkWidget *button, SkinPixmapId si) { - UiSkinnedButtonPrivate *priv = UI_SKINNED_BUTTON_GET_PRIVATE (button); - priv->skin_index1 = si; -} - void ui_skinned_button_set_skin_index2(GtkWidget *button, SkinPixmapId si) { UiSkinnedButtonPrivate *priv = UI_SKINNED_BUTTON_GET_PRIVATE (button); priv->skin_index2 = si; diff -r c40585c57877 -r 7fc2c317d190 src/skins/ui_skinned_button.h --- a/src/skins/ui_skinned_button.h Thu Jul 03 17:23:34 2008 +0300 +++ b/src/skins/ui_skinned_button.h Thu Jul 03 17:37:11 2008 +0300 @@ -62,11 +62,8 @@ GType ui_skinned_button_get_type(void) G_GNUC_CONST; GtkWidget* ui_skinned_button_new(); void ui_skinned_push_button_setup(GtkWidget *button, GtkWidget *fixed, gint x, gint y, gint w, gint h, gint nx, gint ny, gint px, gint py, SkinPixmapId si); -void ui_skinned_set_push_button_data(GtkWidget *button, gint nx, gint ny, gint px, gint py); void ui_skinned_toggle_button_setup(GtkWidget *button, GtkWidget *fixed, gint x, gint y, gint w, gint h, gint nx, gint ny, gint px, gint py, gint pnx, gint pny, gint ppx, gint ppy, SkinPixmapId si); void ui_skinned_small_button_setup(GtkWidget *button, GtkWidget *fixed, gint x, gint y, gint w, gint h); -void ui_skinned_button_set_skin_index(GtkWidget *button, SkinPixmapId si); -void ui_skinned_button_set_skin_index1(GtkWidget *button, SkinPixmapId si); void ui_skinned_button_set_skin_index2(GtkWidget *button, SkinPixmapId si); void ui_skinned_button_move_relative(GtkWidget *button, gint x, gint y); void ui_skinned_button_set_inside(GtkWidget *widget, gboolean inside); diff -r c40585c57877 -r 7fc2c317d190 src/skins/ui_skinned_window.c --- a/src/skins/ui_skinned_window.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/skins/ui_skinned_window.c Thu Jul 03 17:37:11 2008 +0300 @@ -119,7 +119,7 @@ } static gboolean ui_skinned_window_expose(GtkWidget *widget, GdkEventExpose *event) { - SkinnedWindow *window = SKINNED_WINDOW(widget); + SkinnedWindow *window = SKINNED_WINDOW(gtk_widget_get_parent(widget)); GdkPixbuf *obj = NULL; @@ -142,7 +142,7 @@ } obj = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, width, height); - gboolean focus = gtk_window_has_toplevel_focus(GTK_WINDOW(widget)); + gboolean focus = gtk_window_has_toplevel_focus(GTK_WINDOW(window)); switch (window->type) { case WINDOW_MAIN: @@ -173,7 +173,7 @@ break; } - ui_skinned_widget_draw(GTK_WIDGET(window), obj, width, height, + ui_skinned_widget_draw(widget, obj, width, height, window->type != WINDOW_PLAYLIST && config.scaled); g_object_unref(obj); @@ -191,7 +191,6 @@ parent = gtk_type_class(gtk_window_get_type()); widget_class->motion_notify_event = ui_skinned_window_motion_notify_event; - widget_class->expose_event = ui_skinned_window_expose; widget_class->focus_in_event = ui_skinned_window_focus_in; widget_class->focus_out_event = ui_skinned_window_focus_out; widget_class->button_press_event = ui_skinned_window_button_press; @@ -258,17 +257,26 @@ if (!strcmp(wmclass_name, "playlist")) SKINNED_WINDOW(widget)->type = WINDOW_PLAYLIST; - /* GtkFixed hasn't got its GdkWindow, this means that it can be used to - display widgets while the logo below will be displayed anyway; - however fixed positions are not that great, cause the button sizes may (will) - vary depending on the gtk style used, so it's not possible to center - them unless a fixed width and heigth is forced (and this may bring to cutted - text if someone, i.e., uses a big font for gtk widgets); - other types of container most likely have their GdkWindow, this simply - means that the logo must be drawn on the container widget, instead of the - window; otherwise, it won't be displayed correctly */ - SKINNED_WINDOW(widget)->fixed = gtk_fixed_new(); - gtk_container_add(GTK_CONTAINER(widget), GTK_WIDGET(SKINNED_WINDOW(widget)->fixed)); + SKINNED_WINDOW(widget)->normal = gtk_fixed_new(); + gtk_fixed_set_has_window(GTK_FIXED(SKINNED_WINDOW(widget)->normal), TRUE); + gtk_widget_add_events(SKINNED_WINDOW(widget)->normal, GDK_ALL_EVENTS_MASK); + + SKINNED_WINDOW(widget)->shaded = gtk_fixed_new(); + gtk_fixed_set_has_window(GTK_FIXED(SKINNED_WINDOW(widget)->shaded), TRUE); + gtk_widget_add_events(SKINNED_WINDOW(widget)->shaded, GDK_ALL_EVENTS_MASK); + + g_object_ref(SKINNED_WINDOW(widget)->normal); + g_object_ref(SKINNED_WINDOW(widget)->shaded); + + gtk_container_add(GTK_CONTAINER(widget), GTK_WIDGET(SKINNED_WINDOW(widget)->normal)); + + gtk_widget_realize(widget); + gtk_widget_realize(SKINNED_WINDOW(widget)->normal); + gtk_widget_realize(SKINNED_WINDOW(widget)->shaded); + + g_signal_connect(SKINNED_WINDOW(widget)->normal, "expose-event", G_CALLBACK(ui_skinned_window_expose), NULL); + g_signal_connect(SKINNED_WINDOW(widget)->shaded, "expose-event", G_CALLBACK(ui_skinned_window_expose), NULL); + return widget; } @@ -277,10 +285,16 @@ mainwin_refresh_hints(); gtk_widget_queue_draw(widget); - GList *iter; - for (iter = GTK_FIXED (SKINNED_WINDOW(widget)->fixed)->children; iter; iter = g_list_next (iter)) { - GtkFixedChild *child_data = (GtkFixedChild *) iter->data; - GtkWidget *child = child_data->widget; - gtk_widget_queue_draw(child); +} + +void ui_skinned_window_set_shade(GtkWidget *widget, gboolean shaded) { + if (shaded) { + gtk_container_remove(GTK_CONTAINER(widget), SKINNED_WINDOW(widget)->normal); + gtk_container_add(GTK_CONTAINER(widget), SKINNED_WINDOW(widget)->shaded); + gtk_widget_show_all(SKINNED_WINDOW(widget)->shaded); + } else { + gtk_container_remove(GTK_CONTAINER(widget), SKINNED_WINDOW(widget)->shaded); + gtk_container_add(GTK_CONTAINER(widget), SKINNED_WINDOW(widget)->normal); + gtk_widget_show_all(SKINNED_WINDOW(widget)->normal); } } diff -r c40585c57877 -r 7fc2c317d190 src/skins/ui_skinned_window.h --- a/src/skins/ui_skinned_window.h Thu Jul 03 17:23:34 2008 +0300 +++ b/src/skins/ui_skinned_window.h Thu Jul 03 17:37:11 2008 +0300 @@ -45,11 +45,10 @@ { GtkWindow window; - GtkWidget *canvas; gint x,y; - gint type; - GtkWidget *fixed; + GtkWidget *normal; + GtkWidget *shaded; }; struct _SkinnedWindowClass @@ -59,6 +58,7 @@ extern GType ui_skinned_window_get_type(void); extern GtkWidget *ui_skinned_window_new(const gchar *wmclass_name); -extern void ui_skinned_window_draw_all(GtkWidget *widget); +void ui_skinned_window_draw_all(GtkWidget *widget); +void ui_skinned_window_set_shade(GtkWidget *widget, gboolean shaded); #endif diff -r c40585c57877 -r 7fc2c317d190 src/streambrowser/Makefile --- a/src/streambrowser/Makefile Thu Jul 03 17:23:34 2008 +0300 +++ b/src/streambrowser/Makefile Thu Jul 03 17:37:11 2008 +0300 @@ -2,13 +2,20 @@ SRCS = streambrowser.c \ streamdir.c \ - shoutcast.c + shoutcast.c \ + gui/about_win.c \ + gui/streambrowser_win.c + +DATA = images/shoutcast.png include ../../buildsys.mk include ../../extra.mk -plugindir := ${plugindir}/${INPUT_PLUGIN_DIR} +PACKAGE = audacious -CFLAGS += ${PLUGIN_CFLAGS} +plugindir := ${plugindir}/${GENERAL_PLUGIN_DIR} + +CFLAGS += ${PLUGIN_CFLAGS} ${BEEP_DEFINES} CPPFLAGS += ${PLUGIN_CPPFLAGS} ${MOWGLI_CFLAGS} ${GTK_CFLAGS} ${GLIB_CFLAGS} ${XML_CPPFLAGS} ${ARCH_DEFINES} -I../.. LIBS += ${GTK_LIBS} ${GLIB_LIBS} ${MOWGLI_LIBS} ${XML_LIBS} + diff -r c40585c57877 -r 7fc2c317d190 src/streambrowser/gui/about_win.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/streambrowser/gui/about_win.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,1 @@ + diff -r c40585c57877 -r 7fc2c317d190 src/streambrowser/gui/about_win.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/streambrowser/gui/about_win.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,6 @@ + +#ifndef ABOUT_WIN_H +#define ABOUT_WIN_H + +#endif // ABOUT_WIN_H + diff -r c40585c57877 -r 7fc2c317d190 src/streambrowser/gui/streambrowser_win.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/streambrowser/gui/streambrowser_win.c Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,368 @@ + +#include +#include +#include + +#include "../streambrowser.h" +#include "streambrowser_win.h" + + +typedef struct { + + streamdir_t* streamdir; + GtkWidget* table; + GtkWidget* tree_view; + +} streamdir_gui_t; + + +void (* update_function) (streamdir_t *streamdir, category_t *category, streaminfo_t *streaminfo); + +static GtkWidget* gtk_label_new_with_icon(gchar *icon_filename, gchar *label_text); +static GtkWidget* gtk_streamdir_tree_view_new(); +static GtkWidget* gtk_streamdir_table_new(GtkWidget *tree_view); + +static gboolean on_notebook_switch_page(GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer data); +static gboolean on_tree_view_cursor_changed(GtkTreeView *tree_view, gpointer data); +static gboolean on_add_button_clicked(GtkButton *button, gpointer data); + +static streamdir_gui_t* find_streamdir_gui_by_name(gchar *name); +static streamdir_gui_t* find_streamdir_gui_by_tree_view(GtkTreeView *tree_view); +static streamdir_gui_t* find_streamdir_gui_by_table(GtkTable *table); + + +static GtkWidget* notebook; +static GtkWidget* search_entry; +static GtkWidget* add_button; +static GtkWidget* streambrowser_window; +static GList* streamdir_gui_list; +static GtkCellRenderer* cell_renderer_pixbuf; +static GtkCellRenderer* cell_renderer_text; + + +void streambrowser_win_init() +{ + /* notebook */ + notebook = gtk_notebook_new(); + g_signal_connect(G_OBJECT(notebook), "switch-page", G_CALLBACK(on_notebook_switch_page), NULL); + gtk_widget_show(notebook); + + GtkWidget *search_label = gtk_label_new(_("Search:")); + gtk_widget_show(search_label); + + /* search entry */ + search_entry = gtk_entry_new(); + gtk_widget_show(search_entry); + + GtkWidget *hbox1 = gtk_hbox_new(FALSE, 0); + gtk_box_pack_start(GTK_BOX(hbox1), search_label, FALSE, TRUE, 3); + gtk_box_pack_start(GTK_BOX(hbox1), search_entry, TRUE, TRUE, 3); + gtk_widget_show(hbox1); + + /* add button */ + add_button = gtk_button_new_from_stock(GTK_STOCK_ADD); + g_signal_connect(G_OBJECT(add_button), "clicked", G_CALLBACK(on_add_button_clicked), NULL); + gtk_widget_show(add_button); + + GtkWidget *vbox1 = gtk_vbox_new(FALSE, 3); + gtk_box_pack_start(GTK_BOX(vbox1), notebook, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox1), hbox1, FALSE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(vbox1), add_button, FALSE, TRUE, 0); + gtk_widget_show(vbox1); + + /* streambrowser window */ + streambrowser_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_window_set_title(GTK_WINDOW(streambrowser_window), _("Stream browser")); + gtk_window_set_position(GTK_WINDOW(streambrowser_window), GTK_WIN_POS_CENTER); + gtk_window_set_default_size(GTK_WINDOW(streambrowser_window), 700, 400); + g_signal_connect(G_OBJECT(streambrowser_window), "delete-event", G_CALLBACK(gtk_widget_hide_on_delete), streambrowser_window); + gtk_container_add(GTK_CONTAINER(streambrowser_window), vbox1); + + /* others */ + cell_renderer_pixbuf = gtk_cell_renderer_pixbuf_new(); + g_object_set(G_OBJECT(cell_renderer_pixbuf), "stock-id", "gtk-directory", NULL); + cell_renderer_text = gtk_cell_renderer_text_new(); +} + +void streambrowser_win_done() +{ +} + +void streambrowser_win_show() +{ + gtk_widget_show(streambrowser_window); +} + +void streambrowser_win_hide() +{ + gtk_widget_hide(streambrowser_window); +} + +void streambrowser_win_set_streamdir(streamdir_t *streamdir, gchar *icon_filename) +{ + GtkWidget *tree_view = NULL; + + /* search for an old instance of this streamdir and replace it */ + streamdir_gui_t *streamdir_gui = find_streamdir_gui_by_name(streamdir->name); + if (streamdir_gui != NULL) { + streamdir_delete(streamdir_gui->streamdir); + streamdir_gui->streamdir = streamdir; + tree_view = streamdir_gui->tree_view; + } + /* if no older instance of this streamdir has been found, we add a brand new one */ + else { + streamdir_gui = g_malloc(sizeof(streamdir_gui_t)); + + tree_view = gtk_streamdir_tree_view_new(); + + GtkWidget *table = gtk_streamdir_table_new(tree_view); + gtk_widget_show_all(table); + + GtkWidget *label = gtk_label_new_with_icon(icon_filename, streamdir->name); + gtk_widget_show_all(label); + + streamdir_gui->streamdir = streamdir; + streamdir_gui->tree_view = tree_view; + streamdir_gui->table = table; + + streamdir_gui_list = g_list_append(streamdir_gui_list, streamdir_gui); + + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table, label); + } + + /* fill the tree with categories */ + GtkTreeIter iter; + GtkTreeStore *store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(tree_view))); + + gtk_tree_store_clear(store); + + int i, count = category_get_count(streamdir); + category_t *category; + for (i = 0; i < count; i++) { + category = category_get_by_index(streamdir, i); + + gtk_tree_store_append(store, &iter, NULL); + gtk_tree_store_set(store, &iter, 0, NULL, 1, category->name, 2, "", -1); + } +} + +void streambrowser_win_set_category(streamdir_t *streamdir, category_t *category) +{ + streamdir_gui_t *streamdir_gui = find_streamdir_gui_by_name(streamdir->name); + if (streamdir_gui == NULL) { + failure("gui: streambrowser_win_set_category() called with non-existent streamdir\n"); + return; + } + + GtkTreeView *tree_view = GTK_TREE_VIEW(streamdir_gui->tree_view); + GtkTreeStore *store = GTK_TREE_STORE(gtk_tree_view_get_model(GTK_TREE_VIEW(tree_view))); + GtkTreePath *path; + GtkTreeIter iter, new_iter; + + /* clear all the previously added streaminfo in this category */ + path = gtk_tree_path_new_from_indices(category_get_index(streamdir, category), 0, -1); + if (gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, path)) { + while (gtk_tree_store_remove(store, &iter)) + ; + } + + /* find the corresponding category tree iter */ + path = gtk_tree_path_new_from_indices(category_get_index(streamdir, category), -1); + if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, path)) + return; + + /* append the new streaminfos to the current category / iter */ + int i, count = streaminfo_get_count(category); + streaminfo_t *streaminfo; + for (i = 0; i < count; i++) { + streaminfo = streaminfo_get_by_index(category, i); + + gtk_tree_store_append(store, &new_iter, &iter); + gtk_tree_store_set(store, &new_iter, 0, NULL, 1, streaminfo->name, 2, streaminfo->current_track, -1); + } +} + +void streambrowser_win_set_update_function(void (*function) (streamdir_t *streamdir, category_t *category, streaminfo_t *streaminfo)) +{ + update_function = function; +} + +static GtkWidget* gtk_label_new_with_icon(gchar *icon_filename, gchar *label_text) +{ + GtkWidget *hbox = gtk_hbox_new(FALSE, 1); + GtkWidget *label = gtk_label_new(label_text); + GtkWidget *icon = gtk_image_new_from_file(icon_filename); + + gtk_box_pack_start(GTK_BOX(hbox), icon, FALSE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(hbox), label, TRUE, TRUE, 0); + + return hbox; +} + +static GtkWidget *gtk_streamdir_tree_view_new() +{ + GtkWidget *tree_view = gtk_tree_view_new(); + + GtkTreeStore *store = gtk_tree_store_new(3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING); + gtk_tree_view_set_model(GTK_TREE_VIEW(tree_view), GTK_TREE_MODEL(store)); + + // todo: why doesn't the tree view allow to be resized? + gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_view), TRUE); + gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(tree_view), TRUE); + gtk_tree_view_set_reorderable(GTK_TREE_VIEW(tree_view), TRUE); + gtk_tree_view_set_fixed_height_mode(GTK_TREE_VIEW(tree_view), FALSE); + + gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree_view), -1, "", cell_renderer_pixbuf, "pixbuf", 0, NULL); + gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree_view), -1, _("Stream name"), cell_renderer_text, "text", 1, NULL); + gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tree_view), -1, _("Now playing"), cell_renderer_text, "text", 2, NULL); + + g_signal_connect(G_OBJECT(tree_view), "cursor-changed", G_CALLBACK(on_tree_view_cursor_changed), NULL); + + return tree_view; +} + +static GtkWidget* gtk_streamdir_table_new(GtkWidget *tree_view) +{ + GtkWidget *scrolled_window = gtk_scrolled_window_new(NULL, NULL); + gtk_container_add(GTK_CONTAINER(scrolled_window), tree_view); + + GtkWidget *table = gtk_table_new(1, 1, FALSE); + gtk_table_attach(GTK_TABLE(table), scrolled_window, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + + return table; +} + +static gboolean on_notebook_switch_page(GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer data) +{ + if (page_num < 0) + return FALSE; + + /* update the current selected stream */ + + /* + streamdir_gui_t *streamdir_gui = g_list_nth_data(streamdir_gui_list, page_num); + update_function(streamdir_gui->streamdir, NULL, NULL); + */ + + /* clear the search box */ + gtk_entry_set_text(GTK_ENTRY(search_entry), ""); + + return TRUE; +} + +static gboolean on_tree_view_cursor_changed(GtkTreeView *tree_view, gpointer data) +{ + GtkTreePath *path; + GtkTreeViewColumn *focus_column; + + /* obtain the current category */ + gtk_tree_view_get_cursor(tree_view, &path, &focus_column); + + if (path == NULL) + return TRUE; + + gint *indices = gtk_tree_path_get_indices(path); + if (gtk_tree_path_get_depth(path) != 1) { + gtk_tree_path_free(path); + return TRUE; + } + + int category_index = indices[0]; + + gtk_tree_path_free(path); + + streamdir_gui_t *streamdir_gui = find_streamdir_gui_by_tree_view(tree_view); + if (streamdir_gui == NULL) + return TRUE; + + /* issue an update on the current category */ + update_function(streamdir_gui->streamdir, category_get_by_index(streamdir_gui->streamdir, category_index), NULL); + + /* clear the search box */ + gtk_entry_set_text(GTK_ENTRY(search_entry), ""); + + return TRUE; +} + +static gboolean on_add_button_clicked(GtkButton *button, gpointer data) +{ + GtkTreePath *path; + GtkTreeViewColumn *focus_column; + + GtkWidget *table = gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook))); + streamdir_gui_t *streamdir_gui = find_streamdir_gui_by_table(GTK_TABLE(table)); + if (streamdir_gui == NULL) + return TRUE; + + GtkWidget *tree_view = streamdir_gui->tree_view; + + gtk_tree_view_get_cursor(GTK_TREE_VIEW(tree_view), &path, &focus_column); + + if (path == NULL) + return TRUE; + + gint *indices = gtk_tree_path_get_indices(path); + if (gtk_tree_path_get_depth(path) != 2) { + gtk_tree_path_free(path); + return TRUE; + } + + int category_index = indices[0]; + int streaminfo_index = indices[1]; + + gtk_tree_path_free(path); + + streamdir_t *streamdir = streamdir_gui->streamdir; + category_t *category = category_get_by_index(streamdir_gui->streamdir, category_index); + streaminfo_t *streaminfo = streaminfo_get_by_index(category, streaminfo_index); + + update_function(streamdir, category, streaminfo); + + return TRUE; +} + +static streamdir_gui_t *find_streamdir_gui_by_name(gchar *name) +{ + GList *iterator; + streamdir_gui_t *streamdir_gui; + + for (iterator = g_list_first(streamdir_gui_list); iterator != NULL; iterator = g_list_next(iterator)) { + streamdir_gui = iterator->data; + + if (strcmp(streamdir_gui->streamdir->name, name) == 0) + return streamdir_gui; + } + + return NULL; +} + +static streamdir_gui_t *find_streamdir_gui_by_tree_view(GtkTreeView *tree_view) +{ + GList *iterator; + streamdir_gui_t *streamdir_gui; + + for (iterator = g_list_first(streamdir_gui_list); iterator != NULL; iterator = g_list_next(iterator)) { + streamdir_gui = iterator->data; + + if ((void *) streamdir_gui->tree_view == (void *) tree_view) + return streamdir_gui; + } + + return NULL; +} + +static streamdir_gui_t *find_streamdir_gui_by_table(GtkTable *table) +{ + GList *iterator; + streamdir_gui_t *streamdir_gui; + + for (iterator = g_list_first(streamdir_gui_list); iterator != NULL; iterator = g_list_next(iterator)) { + streamdir_gui = iterator->data; + + if ((void *) streamdir_gui->table == (void *) table) + return streamdir_gui; + } + + return NULL; +} + diff -r c40585c57877 -r 7fc2c317d190 src/streambrowser/gui/streambrowser_win.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/streambrowser/gui/streambrowser_win.h Thu Jul 03 17:37:11 2008 +0300 @@ -0,0 +1,19 @@ + +#ifndef STREAMBROWSER_WIN_H +#define STREAMBROWSER_WIN_H + +#include "../streamdir.h" + + +void streambrowser_win_init(); +void streambrowser_win_done(); +void streambrowser_win_show(); +void streambrowser_win_hide(); + +void streambrowser_win_set_streamdir(streamdir_t *streamdir, gchar *icon_filename); +void streambrowser_win_set_category(streamdir_t *streamdir, category_t *category); +void streambrowser_win_set_update_function(void (* update_function) (streamdir_t *streamdir, category_t *category, streaminfo_t *streaminfo)); + + +#endif // STREAMBROWSER_WIN_H + diff -r c40585c57877 -r 7fc2c317d190 src/streambrowser/images/shoutcast.png Binary file src/streambrowser/images/shoutcast.png has changed diff -r c40585c57877 -r 7fc2c317d190 src/streambrowser/shoutcast.c --- a/src/streambrowser/shoutcast.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/streambrowser/shoutcast.c Thu Jul 03 17:37:11 2008 +0300 @@ -3,42 +3,41 @@ #include #include #include +#include #include "streambrowser.h" #include "shoutcast.h" -static streaminfo_t* shoutcast_streaminfo_fetch(gchar *station_name, gchar *station_id); -static category_t* shoutcast_category_fetch(gchar *category_name); - - -static streaminfo_t *shoutcast_streaminfo_fetch(gchar *station_name, gchar *station_id) +gboolean shoutcast_category_fetch(category_t *category) { gchar url[DEF_STRING_LEN]; - g_snprintf(url, DEF_STRING_LEN, SHOUTCAST_STREAMINFO_URL, station_id); - - streaminfo_t *streaminfo = streaminfo_new(station_name, url); + g_snprintf(url, DEF_STRING_LEN, SHOUTCAST_CATEGORY_URL, category->name); - // todo: read the .pls file fetched from the above url - - return streaminfo; -} + /* generate a valid, temporary filename */ + char *temp_filename = tempnam(NULL, "aud_sb"); + if (temp_filename == NULL) { + failure("shoutcast: failed to create a temporary file\n"); + return FALSE; + } -static category_t *shoutcast_category_fetch(gchar *category_name) -{ - category_t *category = category_new(category_name); + char temp_pathname[DEF_STRING_LEN]; + sprintf(temp_pathname, "file://%s", temp_filename); + free(temp_filename); - gchar url[DEF_STRING_LEN]; - g_snprintf(url, DEF_STRING_LEN, SHOUTCAST_CATEGORY_URL, category_name); + debug("shoutcast: fetching category file '%s'\n", url); + if (!fetch_remote_to_local_file(url, temp_pathname)) { + failure("shoutcast: category file '%s' could not be downloaded to '%s'\n", url, temp_pathname); + return FALSE; + } + debug("shoutcast: category file '%s' successfuly downloaded to '%s'\n", url, temp_pathname); - xmlDoc *doc = xmlReadFile(url, NULL, 0); + xmlDoc *doc = xmlReadFile(temp_pathname, NULL, 0); if (doc == NULL) { - error(" shoutcast: failed to read \"%s\" category file\n", category_name); - return NULL; + failure("shoutcast: failed to read '%s' category file\n", category->name); + return FALSE; } - debug(" shoutcast: category file fetched\n"); - xmlNode *root_node = xmlDocGetRootElement(doc); xmlNode *node; @@ -46,38 +45,61 @@ for (node = root_node; node != NULL; node = node->next) { if (node->type == XML_ELEMENT_NODE && !strcmp((char *) node->name, "station")) { - gchar *station_name = (gchar*) xmlGetProp(node, (xmlChar *) "name"); - gchar *station_id = (gchar*) xmlGetProp(node, (xmlChar *) "id"); + gchar *streaminfo_name = (gchar*) xmlGetProp(node, (xmlChar *) "name"); + gchar *streaminfo_id = (gchar*) xmlGetProp(node, (xmlChar *) "id"); + gchar streaminfo_playlist_url[DEF_STRING_LEN]; + gchar *streaminfo_current_track = (gchar*) xmlGetProp(node, (xmlChar *) "ct"); + + g_snprintf(streaminfo_playlist_url, DEF_STRING_LEN, SHOUTCAST_STREAMINFO_URL, streaminfo_id); - debug(" shoutcast: fetching stream info for name = \"%s\" and id = %s\n", station_name, station_id); + debug("shoutcast: fetching stream info for '%s/%d' from '%s'\n", streaminfo_name, streaminfo_id, url); - streaminfo_t *streaminfo = shoutcast_streaminfo_fetch(station_name, station_id); + streaminfo_t *streaminfo = streaminfo_new(streaminfo_name, streaminfo_playlist_url, streaminfo_current_track); streaminfo_add(category, streaminfo); - - // todo: debug - print info about streaminfon urls - debug(" shoutcast: stream info added for name = \"%s\" and id = %s\n", station_name, station_id); + + xmlFree(streaminfo_name); + xmlFree(streaminfo_id); + xmlFree(streaminfo_current_track); + + debug("shoutcast: stream info added\n"); } } - return category; + remove(temp_filename); + // todo: free the mallocs() + + return TRUE; } streamdir_t* shoutcast_streamdir_fetch() { - streamdir_t *streamdir = streamdir_new("Shoutcast"); + streamdir_t *streamdir = streamdir_new(SHOUTCAST_NAME); - debug("shoutcast: fetching streaming directory file\n"); - - // todo: replace dummy filename with SHOUTCAST_DIRECTORY_URL - xmlDoc *doc = xmlReadFile("shoutcast.xml", NULL, 0); - if (doc == NULL) { - error("shoutcast: failed to read stream directory file\n"); + /* generate a valid, temporary filename */ + char *temp_filename = tempnam(NULL, "aud_sb"); + if (temp_filename == NULL) { + failure("shoutcast: failed to create a temporary file\n"); return NULL; } - debug("shoutcast: streaming directory file fetched\n"); + char temp_pathname[DEF_STRING_LEN]; + sprintf(temp_pathname, "file://%s", temp_filename); + free(temp_filename); + + debug("shoutcast: fetching streaming directory file '%s'\n", SHOUTCAST_STREAMDIR_URL); + if (!fetch_remote_to_local_file(SHOUTCAST_STREAMDIR_URL, temp_pathname)) { + failure("shoutcast: stream directory file '%s' could not be downloaded to '%s'\n", SHOUTCAST_STREAMDIR_URL, temp_pathname); + return NULL; + } + debug("shoutcast: stream directory file '%s' successfuly downloaded to '%s'\n", SHOUTCAST_STREAMDIR_URL, temp_pathname); + xmlDoc *doc = xmlReadFile(temp_pathname, NULL, 0); + if (doc == NULL) { + failure("shoutcast: failed to read stream directory file\n"); + return NULL; + } + xmlNode *root_node = xmlDocGetRootElement(doc); xmlNode *node; @@ -87,15 +109,22 @@ if (node->type == XML_ELEMENT_NODE) { gchar *category_name = (gchar*) xmlGetProp(node, (xmlChar *) "name"); - debug(" shoutcast: fetching category \"%s\"\n", category_name); + debug("shoutcast: fetching category '%s'\n", category_name); - category_t *category = shoutcast_category_fetch(category_name); + category_t *category = category_new(category_name); category_add(streamdir, category); - debug(" shoutcast: added category \"%s\"\n", category_name); + xmlFree(category_name); + + debug("shoutcast: category added\n", category_name); } } + + // todo: free the mallocs() - exit(0); + remove(temp_filename); + debug("shoutcast: streaming directory successfuly loaded\n"); + + return streamdir; } diff -r c40585c57877 -r 7fc2c317d190 src/streambrowser/shoutcast.h --- a/src/streambrowser/shoutcast.h Thu Jul 03 17:23:34 2008 +0300 +++ b/src/streambrowser/shoutcast.h Thu Jul 03 17:37:11 2008 +0300 @@ -5,11 +5,15 @@ #include "streambrowser.h" #include "streamdir.h" +#define SHOUTCAST_NAME "Shoutcast" +#define SHOUTCAST_ICON DATA_DIR G_DIR_SEPARATOR_S "images" G_DIR_SEPARATOR_S "shoutcast.png" #define SHOUTCAST_STREAMDIR_URL "http://www.shoutcast.com/sbin/newxml.phtml" #define SHOUTCAST_CATEGORY_URL "http://www.shoutcast.com/sbin/newxml.phtml?genre=%s" #define SHOUTCAST_STREAMINFO_URL "http://www.shoutcast.com/sbin/shoutcast-playlist.pls?rn=%s&file=filename.pls" +#define SHOUTCAST_BUFFER_SIZE 256 +gboolean shoutcast_category_fetch(category_t *category); streamdir_t* shoutcast_streamdir_fetch(); diff -r c40585c57877 -r 7fc2c317d190 src/streambrowser/streambrowser.c --- a/src/streambrowser/streambrowser.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/streambrowser/streambrowser.c Thu Jul 03 17:37:11 2008 +0300 @@ -7,6 +7,17 @@ #include "streambrowser.h" #include "streamdir.h" #include "shoutcast.h" +#include "gui/streambrowser_win.h" +#include "gui/about_win.h" + + +typedef struct { + + streamdir_t* streamdir; + category_t* category; + streaminfo_t* streaminfo; + +} update_thread_data_t; static void sb_init(); @@ -14,9 +25,24 @@ static void sb_configure(); static void sb_cleanup(); -static void menu_click(); -static void add_plugin_services_menu_item(); +static void gui_init(); +static void gui_done(); +static void config_load(); +static void config_save(); +static void streamdir_update(streamdir_t *streamdir, category_t *category, streaminfo_t *streaminfo); +static gpointer update_thread_core(update_thread_data_t *data); +static void streaminfo_add_to_playlist(streaminfo_t *streaminfo); +static void on_plugin_services_menu_item_click(); + +static GtkWidget* playlist_menu_item; +static GtkWidget* main_menu_item; +static GQueue* update_thread_data_queue; +static gint update_thread_count = 0; +static GMutex* update_thread_mutex; + + +streambrowser_cfg_t streambrowser_cfg; static GeneralPlugin sb_plugin = { @@ -38,8 +64,7 @@ void debug(const char *fmt, ...) { - // todo: replace with config->debug - if (TRUE) { + if (streambrowser_cfg.debug) { va_list ap; fprintf(stderr, "* streambrowser: "); va_start(ap, fmt); @@ -48,7 +73,7 @@ } } -void error(const char *fmt, ...) +void failure(const char *fmt, ...) { va_list ap; fprintf(stderr, "! streambrowser: "); @@ -57,12 +82,58 @@ va_end(ap); } +gboolean fetch_remote_to_local_file(gchar *remote_url, gchar *local_url) +{ + VFSFile *remote_file = aud_vfs_fopen(remote_url, "r"); + if (remote_file == NULL) { + failure("failed to fetch file '%s'\n", remote_url); + return FALSE; + } + + VFSFile *local_file = aud_vfs_fopen(local_url, "w"); + if (local_file == NULL) { + aud_vfs_fclose(remote_file); + + failure("failed to create local file '%s'\n", local_file); + return FALSE; + } + + unsigned char buff[DEF_BUFFER_SIZE]; + int size; + while (!aud_vfs_feof(remote_file)) { + size = aud_vfs_fread(buff, 1, DEF_BUFFER_SIZE, remote_file); + + // i don't know why aud_vfs_feof() doesn't ever return TRUE + // so this is a workaround to properly end the loop + if (size == 0) + break; + + size = aud_vfs_fwrite(buff, 1, size, local_file); + if (size == 0) { + aud_vfs_fclose(local_file); + aud_vfs_fclose(remote_file); + + failure("failed to write to local file '%s'\n", local_file); + return FALSE; + } + } + + aud_vfs_fclose(local_file); + aud_vfs_fclose(remote_file); + + return TRUE; +} + static void sb_init() { + /* workaround to print sb_init() */ + streambrowser_cfg.debug = TRUE; debug("sb_init()\n"); + streambrowser_cfg.debug = FALSE; - //shoutcast_streamdir_fetch(); + config_load(); + gui_init(); } static void sb_about() @@ -78,23 +149,207 @@ static void sb_cleanup() { debug("sb_cleanup()\n"); + + gui_done(); + config_save(); +} + +static void gui_init() +{ + /* the plugin services menu */ + playlist_menu_item = gtk_image_menu_item_new_with_label("Streambrowser"); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(playlist_menu_item), gtk_image_new_from_stock(GTK_STOCK_CDROM, GTK_ICON_SIZE_MENU)); + gtk_widget_show(playlist_menu_item); + g_signal_connect(G_OBJECT(playlist_menu_item), "activate", G_CALLBACK(on_plugin_services_menu_item_click), NULL); + audacious_menu_plugin_item_add(AUDACIOUS_MENU_PLAYLIST_RCLICK, playlist_menu_item); + + main_menu_item = gtk_image_menu_item_new_with_label("Streambrowser"); + gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(main_menu_item), gtk_image_new_from_stock(GTK_STOCK_CDROM, GTK_ICON_SIZE_MENU)); + gtk_widget_show(main_menu_item); + g_signal_connect(G_OBJECT(main_menu_item), "activate", G_CALLBACK(on_plugin_services_menu_item_click), NULL); + audacious_menu_plugin_item_add(AUDACIOUS_MENU_MAIN, main_menu_item); + + /* main streambrowser window */ + streambrowser_win_init(); + streambrowser_win_set_update_function(streamdir_update); + + /* others */ + update_thread_mutex = g_mutex_new(); + update_thread_data_queue = g_queue_new(); + + debug("gui initialized\n"); } -static void menu_click() +static void gui_done() +{ + /* the plugin services menu */ + audacious_menu_plugin_item_remove(AUDACIOUS_MENU_PLAYLIST_RCLICK, playlist_menu_item); + audacious_menu_plugin_item_remove(AUDACIOUS_MENU_MAIN, main_menu_item); + + /* main streambrowser window */ + streambrowser_win_hide(); + streambrowser_win_done(); + + /* others */ + g_mutex_free(update_thread_mutex); + g_queue_free(update_thread_data_queue); + + debug("gui destroied\n"); +} + +static void config_load() { - debug("menu_click()\n"); + streambrowser_cfg.debug = FALSE; + + mcs_handle_t *db; + if ((db = aud_cfg_db_open()) == NULL) { + failure("failed to load configuration\n"); + return; + } + + aud_cfg_db_get_bool(db, "streambrowser", "debug", &streambrowser_cfg.debug); + + aud_cfg_db_close(db); + + debug("configuration loaded\n"); + debug("debug = %d\n", streambrowser_cfg.debug); +} + +static void config_save() +{ + mcs_handle_t *db; + if ((db = aud_cfg_db_open()) == NULL) { + failure("failed to save configuration\n"); + return; + } + + aud_cfg_db_set_bool(db, "streambrowser", "debug", streambrowser_cfg.debug); + + aud_cfg_db_close(db); + + debug("configuration saved\n"); } -static void add_plugin_services_menu_item() +static void streamdir_update(streamdir_t *streamdir, category_t *category, streaminfo_t *streaminfo) { - /* - GtkWidget *menu_item; + debug("requested streamdir update (streamdir = '%s', category = '%s', streaminfo = '%s')\n", + streamdir == NULL ? "" : streamdir->name, + category == NULL ? "" : category->name, + streaminfo == NULL ? "" : streaminfo->name); - menu_item = gtk_image_menu_item_new_with_label("SB Test"); - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), gtk_image_new_from_stock(GTK_STOCK_CDROM, GTK_ICON_SIZE_MENU)); - gtk_widget_show(menu_item); - audacious_menu_plugin_item_add(AUDACIOUS_MENU_PLAYLIST_RCLICK, menu_item); - g_signal_connect(G_OBJECT(menu_item), "activate", G_CALLBACK(menu_click), NULL); - */ + if (update_thread_count >= MAX_UPDATE_THREADS) { + debug("another %d streamdir updates are pending, this request will be dropped\n", update_thread_count); + } + else + if (update_thread_count > 0) { + debug("another %d streamdir updates are pending, this request will be queued\n", update_thread_count); + + g_mutex_lock(update_thread_mutex); + + update_thread_data_t *update_thread_data = g_malloc(sizeof(update_thread_data_t)); + + update_thread_data->streamdir = streamdir; + update_thread_data->category = category; + update_thread_data->streaminfo = streaminfo; + g_queue_push_tail(update_thread_data_queue, update_thread_data); + + update_thread_count++; + + g_mutex_unlock(update_thread_mutex); + } + else { + update_thread_data_t *data = g_malloc(sizeof(update_thread_data_t)); + + data->streamdir = streamdir; + data->category = category; + data->streaminfo = streaminfo; + + g_thread_create((GThreadFunc) update_thread_core, data, TRUE, NULL); + } } +static gpointer update_thread_core(update_thread_data_t *data) +{ + g_mutex_lock(update_thread_mutex); + update_thread_count++; + g_mutex_unlock(update_thread_mutex); + + /* update a streaminfo - that is - add this streaminfo to playlist */ + if (data->streaminfo != NULL) { + streaminfo_add_to_playlist(data->streaminfo); + } + /* update a category */ + else if (data->category != NULL) { + /* shoutcast */ + if (strncmp(data->streamdir->name, SHOUTCAST_NAME, strlen(SHOUTCAST_NAME)) == 0) { + shoutcast_category_fetch(data->category); + + gdk_threads_enter(); + streambrowser_win_set_category(data->streamdir, data->category); + gdk_threads_leave(); + } + } + /* update a streamdir */ + else if (data->streamdir != NULL) { + /* shoutcast */ + if (strncmp(data->streamdir->name, SHOUTCAST_NAME, strlen(SHOUTCAST_NAME)) == 0) { + streamdir_t *streamdir = shoutcast_streamdir_fetch(); + if (streamdir != NULL) { + gdk_threads_enter(); + streambrowser_win_set_streamdir(streamdir, SHOUTCAST_ICON); + gdk_threads_leave(); + } + } + } + /* update all streamdirs */ + else { + /* shoutcast */ + streamdir_t *shoutcast_streamdir = shoutcast_streamdir_fetch(); + if (shoutcast_streamdir != NULL) { + gdk_threads_enter(); + streambrowser_win_set_streamdir(shoutcast_streamdir, SHOUTCAST_ICON); + gdk_threads_leave(); + } + } + + g_free(data); + + /* check to see if there are pending update requests */ + + data = NULL; + g_mutex_lock(update_thread_mutex); + update_thread_count--; + + if (update_thread_count > 0) { + data = g_queue_pop_head(update_thread_data_queue); + + update_thread_count--; + } + g_mutex_unlock(update_thread_mutex); + + if (data != NULL) + update_thread_core(data); + + return NULL; +} + +static void streaminfo_add_to_playlist(streaminfo_t *streaminfo) +{ + debug("fetching stream playlist for station '%s' from '%s'\n", streaminfo->name, streaminfo->playlist_url); + if (!fetch_remote_to_local_file(streaminfo->playlist_url, PLAYLIST_TEMP_FILE)) { + failure("shoutcast: stream playlist '%s' could not be downloaded to '%s'\n", streaminfo->playlist_url, PLAYLIST_TEMP_FILE); + return; + } + debug("stream playlist '%s' successfuly downloaded to '%s'\n", streaminfo->playlist_url, PLAYLIST_TEMP_FILE); + + aud_playlist_add(aud_playlist_get_active(), PLAYLIST_TEMP_FILE); +} + +static void on_plugin_services_menu_item_click() +{ + debug("on_plugin_services_menu_item_click()\n"); + + streambrowser_win_show(); + streamdir_update(NULL, NULL, NULL); +} + diff -r c40585c57877 -r 7fc2c317d190 src/streambrowser/streambrowser.h --- a/src/streambrowser/streambrowser.h Thu Jul 03 17:23:34 2008 +0300 +++ b/src/streambrowser/streambrowser.h Thu Jul 03 17:37:11 2008 +0300 @@ -2,11 +2,29 @@ #ifndef STREAMBROWSER_H #define STREAMBROWSER_H -#define DEF_STRING_LEN 256 +#include + +#include +#include + +#define DEF_STRING_LEN 1024 +#define DEF_BUFFER_SIZE 512 +#define MAX_UPDATE_THREADS 4 +#define PLAYLIST_TEMP_FILE "file:///tmp/playlist.pls" + + +typedef struct { + + gboolean debug; + +} streambrowser_cfg_t; + +extern streambrowser_cfg_t streambrowser_cfg; void debug(const char *fmt, ...); -void error(const char *fmt, ...); +void failure(const char *fmt, ...); +gboolean fetch_remote_to_local_file(gchar *remote_url, gchar *local_url); #endif // STREAMBROWSER_H diff -r c40585c57877 -r 7fc2c317d190 src/streambrowser/streamdir.c --- a/src/streambrowser/streamdir.c Thu Jul 03 17:23:34 2008 +0300 +++ b/src/streambrowser/streamdir.c Thu Jul 03 17:37:11 2008 +0300 @@ -20,7 +20,7 @@ GList *iterator; category_t *category; - for (iterator = g_list_first(streamdir->category_list); iterator != NULL; iterator = g_list_next(streamdir->category_list)) { + for (iterator = g_list_first(streamdir->category_list); iterator != NULL; iterator = g_list_next(iterator)) { category = iterator->data; category_delete(category); } @@ -44,7 +44,7 @@ GList *iterator; streaminfo_t *streaminfo; - for (iterator = g_list_first(category->streaminfo_list); iterator != NULL; iterator = g_list_next(category->streaminfo_list)) { + for (iterator = g_list_first(category->streaminfo_list); iterator != NULL; iterator = g_list_next(iterator)) { streaminfo = iterator->data; streaminfo_delete(streaminfo); } @@ -73,9 +73,9 @@ GList *iterator; category_t *category; - for (iterator = g_list_first(streamdir->category_list); iterator != NULL; iterator = g_list_next(streamdir->category_list)) { + for (iterator = g_list_first(streamdir->category_list); iterator != NULL; iterator = g_list_next(iterator)) { category = iterator->data; - if (!strncasecmp(category->name, name, DEF_STRING_LEN)) + if (strncasecmp(category->name, name, DEF_STRING_LEN) == 0) return category; } @@ -87,13 +87,19 @@ return g_list_length(streamdir->category_list); } +gint category_get_index(streamdir_t *streamdir, category_t *category) +{ + return g_list_index(streamdir->category_list, category); +} -streaminfo_t* streaminfo_new(gchar *name, gchar *url) + +streaminfo_t* streaminfo_new(gchar *name, gchar *playlist_url, gchar *current_track) { streaminfo_t *streaminfo = (streaminfo_t*) g_malloc(sizeof(streaminfo_t)); strncpy(streaminfo->name, name, DEF_STRING_LEN); - strncpy(streaminfo->url, url, DEF_STRING_LEN); - + strncpy(streaminfo->playlist_url, playlist_url, DEF_STRING_LEN); + strncpy(streaminfo->current_track, current_track, DEF_STRING_LEN); + return streaminfo; } @@ -122,9 +128,9 @@ GList *iterator; streaminfo_t *streaminfo; - for (iterator = g_list_first(category->streaminfo_list); iterator != NULL; iterator = g_list_next(category->streaminfo_list)) { + for (iterator = g_list_first(category->streaminfo_list); iterator != NULL; iterator = g_list_next(iterator)) { streaminfo = iterator->data; - if (!strncasecmp(streaminfo->name, name, DEF_STRING_LEN)) + if (strncasecmp(streaminfo->name, name, DEF_STRING_LEN) == 0) return streaminfo; } @@ -136,3 +142,9 @@ return g_list_length(category->streaminfo_list); } +gint streaminfo_get_index(category_t *category, streaminfo_t *streaminfo) +{ + return g_list_index(category->streaminfo_list, streaminfo); +} + + diff -r c40585c57877 -r 7fc2c317d190 src/streambrowser/streamdir.h --- a/src/streambrowser/streamdir.h Thu Jul 03 17:23:34 2008 +0300 +++ b/src/streambrowser/streamdir.h Thu Jul 03 17:37:11 2008 +0300 @@ -11,7 +11,8 @@ typedef struct { gchar name[DEF_STRING_LEN]; - gchar url[DEF_STRING_LEN]; + gchar playlist_url[DEF_STRING_LEN]; + gchar current_track[DEF_STRING_LEN]; } streaminfo_t; @@ -40,8 +41,9 @@ category_t* category_get_by_index(streamdir_t *streamdir, gint index); category_t* category_get_by_name(streamdir_t *streamdir, gchar *name); gint category_get_count(streamdir_t *streamdir); +gint category_get_index(streamdir_t *streamdir, category_t *category); -streaminfo_t* streaminfo_new(gchar *name, gchar *url); +streaminfo_t* streaminfo_new(gchar *name, gchar *playlist_url, gchar *current_track); void streaminfo_delete(streaminfo_t *streaminfo); void streaminfo_free(streaminfo_t *streaminfo); void streaminfo_add(category_t *category, streaminfo_t *streaminfo); @@ -49,6 +51,7 @@ streaminfo_t* streaminfo_get_by_index(category_t *category, gint index); streaminfo_t* streaminfo_get_by_name(category_t *category, gchar *name); gint streaminfo_get_count(category_t *category); +gint streaminfo_get_index(category_t *category, streaminfo_t *streaminfo); #endif // STREAMDIR_H diff -r c40585c57877 -r 7fc2c317d190 src/wavpack/libwavpack.cxx --- a/src/wavpack/libwavpack.cxx Thu Jul 03 17:23:34 2008 +0300 +++ b/src/wavpack/libwavpack.cxx Thu Jul 03 17:37:11 2008 +0300 @@ -70,7 +70,6 @@ wv_stop, wv_pause, wv_seek, - NULL, //set eq wv_get_time, NULL, //get volume NULL, //set volume @@ -80,7 +79,6 @@ NULL, wv_get_song_info, wv_file_info_box, //info box - NULL, //output wv_get_song_tuple, wv_is_our_fd, (gchar **)wv_fmts, @@ -247,9 +245,9 @@ return true; } - gboolean open_audio() + gboolean open_audio(InputPlayback *playback) { - return wvpack->output->open_audio(SAMPLE_FMT(bits_per_sample), sample_rate, num_channels); + return playback->output->open_audio(SAMPLE_FMT(bits_per_sample), sample_rate, num_channels); } void process_buffer(InputPlayback *playback, guint32 num_samples) @@ -334,7 +332,7 @@ AUDDBG("reading WavPack file, %dHz, %d channels and %dbits\n", d.sample_rate, d.num_channels, d.bits_per_sample); - if (!d.open_audio()) { + if (!d.open_audio(playback)) { AUDDBG("error opening audio channel\n"); killDecodeThread = true; AudioError = true; @@ -362,7 +360,7 @@ printf("wavpack: Error decoding file.\n"); break; } - else if (samples_left == 0 && wvpack.output->buffer_playing() == 0) { + else if (samples_left == 0 && playback->output->buffer_playing() == 0) { killDecodeThread = true; break; } @@ -532,8 +530,8 @@ if (thread_handle != 0) { g_thread_join(thread_handle); if (openedAudio) { - wvpack.output->buffer_free(); - wvpack.output->close_audio(); + data->output->buffer_free(); + data->output->close_audio(); } openedAudio = false; if (AudioError)